diff --git a/App/Hi.Wpf.dll b/App/Hi.Wpf.dll index 6cf6e6e..9d73e75 100644 Binary files a/App/Hi.Wpf.dll and b/App/Hi.Wpf.dll differ diff --git a/App/HiCbtr.dll b/App/HiCbtr.dll index 879c22a..79febb7 100644 Binary files a/App/HiCbtr.dll and b/App/HiCbtr.dll differ diff --git a/App/HiDisp.dll b/App/HiDisp.dll index f1bb42d..13d4d7b 100644 Binary files a/App/HiDisp.dll and b/App/HiDisp.dll differ diff --git a/App/HiGeom.dll b/App/HiGeom.dll index e9ed022..fa32f27 100644 Binary files a/App/HiGeom.dll and b/App/HiGeom.dll differ diff --git a/App/HiLicense.dll b/App/HiLicense.dll index 59b5cbc..98bc91a 100644 Binary files a/App/HiLicense.dll and b/App/HiLicense.dll differ diff --git a/App/HiMech.dll b/App/HiMech.dll index afe9ae2..1217ab6 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 31f7d78..4470c72 100644 --- a/App/HiNC-2025-win-desktop.deps.json +++ b/App/HiNC-2025-win-desktop.deps.json @@ -11,8 +11,8 @@ "dependencies": { "AvalonEdit": "6.3.0.90", "FontAwesome.Sharp": "6.3.0", - "Hi.Wpf": "3.1.66", - "HiNc": "3.1.87", + "Hi.Wpf": "3.1.67", + "HiNc": "3.1.88", "runtimepack.Microsoft.NETCore.App.Runtime.win-x64": "9.0.11", "runtimepack.Microsoft.WindowsDesktop.App.Runtime.win-x64": "9.0.11", "runtimepack.Microsoft.AspNetCore.App.Runtime.win-x64": "9.0.11" @@ -1600,39 +1600,39 @@ } } }, - "Hi.Wpf/3.1.66": { + "Hi.Wpf/3.1.67": { "dependencies": { - "HiDisp": "3.1.71" + "HiDisp": "3.1.72" }, "runtime": { "lib/net9.0-windows7.0/Hi.Wpf.dll": { - "assemblyVersion": "3.1.66.0", - "fileVersion": "3.1.66.0" + "assemblyVersion": "3.1.67.0", + "fileVersion": "3.1.67.0" } } }, - "HiCbtr/3.1.71": { + "HiCbtr/3.1.72": { "dependencies": { - "HiDisp": "3.1.71" + "HiDisp": "3.1.72" }, "runtime": { "lib/net9.0/HiCbtr.dll": { - "assemblyVersion": "3.1.71.0", - "fileVersion": "3.1.71.0" + "assemblyVersion": "3.1.72.0", + "fileVersion": "3.1.72.0" } } }, - "HiDisp/3.1.71": { + "HiDisp/3.1.72": { "dependencies": { - "HiGeom": "3.1.66", + "HiGeom": "3.1.67", "System.Configuration.ConfigurationManager": "10.0.0", "System.Drawing.Common": "10.0.0", "System.Resources.Extensions": "10.0.0" }, "runtime": { "lib/net9.0/HiDisp.dll": { - "assemblyVersion": "3.1.71.0", - "fileVersion": "3.1.71.0" + "assemblyVersion": "3.1.72.0", + "fileVersion": "3.1.72.0" } }, "native": { @@ -1647,7 +1647,7 @@ } } }, - "HiGeom/3.1.66": { + "HiGeom/3.1.67": { "dependencies": { "Google.Protobuf": "3.28.3", "Grpc.AspNetCore": "2.66.0", @@ -1658,8 +1658,8 @@ }, "runtime": { "lib/net9.0/HiGeom.dll": { - "assemblyVersion": "3.1.66.0", - "fileVersion": "3.1.66.0" + "assemblyVersion": "3.1.67.0", + "fileVersion": "3.1.67.0" } }, "resources": { @@ -1671,27 +1671,27 @@ } } }, - "HiLicense/3.1.66": { + "HiLicense/3.1.67": { "dependencies": { - "HiGeom": "3.1.66" + "HiGeom": "3.1.67" }, "runtime": { "lib/net9.0/HiLicense.dll": { - "assemblyVersion": "3.1.66.0", - "fileVersion": "3.1.66.0" + "assemblyVersion": "3.1.67.0", + "fileVersion": "3.1.67.0" } } }, - "HiMech/3.1.78": { + "HiMech/3.1.79": { "dependencies": { "CommandLineParser": "2.9.1", - "HiCbtr": "3.1.71", + "HiCbtr": "3.1.72", "Microsoft.CodeAnalysis.CSharp.Scripting": "5.0.0" }, "runtime": { "lib/net9.0/HiMech.dll": { - "assemblyVersion": "3.1.78.0", - "fileVersion": "3.1.78.0" + "assemblyVersion": "3.1.79.0", + "fileVersion": "3.1.79.0" } }, "resources": { @@ -1706,20 +1706,20 @@ } } }, - "HiNc/3.1.87": { + "HiNc/3.1.88": { "dependencies": { "Google.Protobuf": "3.28.3", "Grpc.AspNetCore": "2.66.0", "Grpc.Net.Client": "2.66.0", - "HiLicense": "3.1.66", - "HiMech": "3.1.78", - "HiUniNc": "3.1.75", + "HiLicense": "3.1.67", + "HiMech": "3.1.79", + "HiUniNc": "3.1.76", "System.IO.Pipelines": "10.0.0" }, "runtime": { "lib/net9.0/HiNc.dll": { - "assemblyVersion": "3.1.87.0", - "fileVersion": "3.1.87.0" + "assemblyVersion": "3.1.88.0", + "fileVersion": "3.1.88.0" } }, "resources": { @@ -1731,14 +1731,14 @@ } } }, - "HiUniNc/3.1.75": { + "HiUniNc/3.1.76": { "dependencies": { - "HiMech": "3.1.78" + "HiMech": "3.1.79" }, "runtime": { "lib/net9.0/HiUniNc.dll": { - "assemblyVersion": "3.1.75.0", - "fileVersion": "3.1.75.0" + "assemblyVersion": "3.1.76.0", + "fileVersion": "3.1.76.0" } } }, @@ -2219,61 +2219,61 @@ "path": "grpc.net.common/2.66.0", "hashPath": "grpc.net.common.2.66.0.nupkg.sha512" }, - "Hi.Wpf/3.1.66": { + "Hi.Wpf/3.1.67": { "type": "package", "serviceable": true, - "sha512": "sha512-g94DIO6rCAobe7D9AtauX1cQxMIoYIOGvHuPcWSbj5hXFsBBdpxO9r0ghPJlp6GPiX7Twks8zf5KneAsOM0JeQ==", - "path": "hi.wpf/3.1.66", - "hashPath": "hi.wpf.3.1.66.nupkg.sha512" + "sha512": "sha512-0zrTQuGkONCcBgyWdZFzjqLslyKtLqSR5NF5RTZhpHKK80lEzoh/KSEbIXknd6JcCWsru4FLGvcwYuBiMVpRIA==", + "path": "hi.wpf/3.1.67", + "hashPath": "hi.wpf.3.1.67.nupkg.sha512" }, - "HiCbtr/3.1.71": { + "HiCbtr/3.1.72": { "type": "package", "serviceable": true, - "sha512": "sha512-Mzbc5qqBj1dm7Am2rUhu4kpPv8LstkQPt+zLWDh6xT4caD5OKySwHf8xrCZN2G9wGGadmvGG6UHLdBWHD37ITQ==", - "path": "hicbtr/3.1.71", - "hashPath": "hicbtr.3.1.71.nupkg.sha512" + "sha512": "sha512-DjdVfnqK9ezMy83NecAdo82e/+UrLddx/b7PpRfmNU03qITJrLUdZX/84zMTvjSKYS8LsJ8rBL+ColKLHny8zw==", + "path": "hicbtr/3.1.72", + "hashPath": "hicbtr.3.1.72.nupkg.sha512" }, - "HiDisp/3.1.71": { + "HiDisp/3.1.72": { "type": "package", "serviceable": true, - "sha512": "sha512-ehx1WHGVma9D8xrQwLOTFrCkfOHIE7pYYM4o1E52CFZpA13QRbD7zLLeOh0/1KYruCsVvPlB+RFnGJQulgE2eg==", - "path": "hidisp/3.1.71", - "hashPath": "hidisp.3.1.71.nupkg.sha512" + "sha512": "sha512-HseZ2V1Zz2LOV/DZD6l9S40gMpv+Cv6Yrlxub+Y9eI7I/EX02zDwh8b2NZlKFYP8x6SDvgqnDcd5w3QUWVj6yg==", + "path": "hidisp/3.1.72", + "hashPath": "hidisp.3.1.72.nupkg.sha512" }, - "HiGeom/3.1.66": { + "HiGeom/3.1.67": { "type": "package", "serviceable": true, - "sha512": "sha512-zbBqQLEdfGFZcZ3Wem5RHCAiSinTEs57QEUWb2+NhIKVMyA4w/ZE38Xko/+J8x+Zci2MSM5bem8tDDC5J69kzA==", - "path": "higeom/3.1.66", - "hashPath": "higeom.3.1.66.nupkg.sha512" + "sha512": "sha512-5eK986BtFuffkIdUC7BMBVspY8azZSN1cpP/QX01mUR4GXuAsTEwNbaC6p6mrCI+BgVOlaXqN2a7l1f0J+8nFg==", + "path": "higeom/3.1.67", + "hashPath": "higeom.3.1.67.nupkg.sha512" }, - "HiLicense/3.1.66": { + "HiLicense/3.1.67": { "type": "package", "serviceable": true, - "sha512": "sha512-1qy+3IooEg1/w9dW2FkwqS1Pvj4DskJ/Y0/Ofu+tPnvXMu9CTVgHJ7HgaHu9/iAQTPdp7GLWcIh9fqh7BQdBoQ==", - "path": "hilicense/3.1.66", - "hashPath": "hilicense.3.1.66.nupkg.sha512" + "sha512": "sha512-wFb+3Gv3qf4McyLgfSvbjwH3OYa927qYMQLQEOEt+GfiXxm+37hYvz8ZKx7Ax7aPMdxxF/Lv6eJHIyEjMdvB9w==", + "path": "hilicense/3.1.67", + "hashPath": "hilicense.3.1.67.nupkg.sha512" }, - "HiMech/3.1.78": { + "HiMech/3.1.79": { "type": "package", "serviceable": true, - "sha512": "sha512-JvLO9pIxT4s2+GEPiyjlLdYniWsH1b0SIrUqynm8SPs+aiOD9RaAX9K3DQk272uOPRqtQONJqv5IN16PHs3H3w==", - "path": "himech/3.1.78", - "hashPath": "himech.3.1.78.nupkg.sha512" + "sha512": "sha512-Nn1RLi8Lp+7+U5AWA3/ICVTX/lbdggxiWLVWMDPZKhU/vhqy0ok74NXKXsnuznB6RYRCHJdQsajLOq/Q3jSoYw==", + "path": "himech/3.1.79", + "hashPath": "himech.3.1.79.nupkg.sha512" }, - "HiNc/3.1.87": { + "HiNc/3.1.88": { "type": "package", "serviceable": true, - "sha512": "sha512-COTm9wO+3RJJ71b0wHUXbgtlP8eRiB8o213QgCkZSK8r6ztL3wlurZyMIszuryHYhuFcbgl8qSTu8RtHDFUivw==", - "path": "hinc/3.1.87", - "hashPath": "hinc.3.1.87.nupkg.sha512" + "sha512": "sha512-bOCV1fk2+VJ3BwS6ZWUZ65BBhvvLZBORVEdCA5N67ZmLfdNP4Na0A7F+4Ia9hVIYADmC4PlR0qU9R5oovisaCA==", + "path": "hinc/3.1.88", + "hashPath": "hinc.3.1.88.nupkg.sha512" }, - "HiUniNc/3.1.75": { + "HiUniNc/3.1.76": { "type": "package", "serviceable": true, - "sha512": "sha512-O4s77AfgydjHN6arQJnY0t2+tByYNO/YiTtOV6idMohfJ4j65+e0w+uMjwTRJBHmDDBuSt0Yqpi052Ou0m4IEA==", - "path": "hiuninc/3.1.75", - "hashPath": "hiuninc.3.1.75.nupkg.sha512" + "sha512": "sha512-XbFy9gWOXkcgy69ZQ8LvWPaN9brfjayttoobXgL6GufvWUAKgI4QS++KhrMrq7vaDMn5A3Z8E65h+zRNlDruTQ==", + "path": "hiuninc/3.1.76", + "hashPath": "hiuninc.3.1.76.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 55f6e18..cb9fdd3 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 0e80b4a..f1154d3 100644 Binary files a/App/HiNC-2025-win-desktop.pdb and b/App/HiNC-2025-win-desktop.pdb differ diff --git a/App/HiNc.dll b/App/HiNc.dll index 763b1f9..df66319 100644 Binary files a/App/HiNc.dll and b/App/HiNc.dll differ diff --git a/App/HiUniNc.dll b/App/HiUniNc.dll index 52a21b7..95b1d4e 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 eb01e69..9c5c676 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 5d79673..afad1dc 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.MachiningSteps.MachiningStep.html b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningSteps.MachiningStep.html index ab2e3f1..4224771 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningSteps.MachiningStep.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningSteps.MachiningStep.html @@ -4058,7 +4058,7 @@ public SpindleDirection GetSpindleDirection()

Update NcOptOption for this step only. -It should not be mixed with the StepBuilt event and NC inline script since the concurent process may break the logics.

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

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcOpt.NcOptProc.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcOpt.NcOptProc.html index 3d33fa3..446b460 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.NcOpt.NcOptProc.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcOpt.NcOptProc.html @@ -331,7 +331,7 @@ Class NcOptProc -

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

+

Enable create log file for building situ (independent) FlatExtendedStep process.

diff --git a/App/wwwroot/HiAPI-docsite/brief/dev-doc/release-note/index.html b/App/wwwroot/HiAPI-docsite/brief/dev-doc/release-note/index.html index a52c1c0..e918337 100644 --- a/App/wwwroot/HiAPI-docsite/brief/dev-doc/release-note/index.html +++ b/App/wwwroot/HiAPI-docsite/brief/dev-doc/release-note/index.html @@ -87,13 +87,13 @@

Release Note

-

HiNc Packages Version 3.1.87

+

HiNc Packages Version 3.1.86

組態設定可以穿插在NC仿真間,將會作用在組態設定後的NC仿真。

+
+
Warning
+

MachiningStepBuilt(API) 事件內使用 UpdateNcOptOption(API) 時,不能與NC碼內嵌優化指令併用,否則可能因平行計算產生未定義行為。

+

以上範例為例,優化後的NC程式file1.nc的無切削區域快速進給為4000,file2.nc則為8000。

Tip
diff --git a/App/wwwroot/HiAPI-docsite/index.json b/App/wwwroot/HiAPI-docsite/index.json index ca1032e..4350248 100644 --- a/App/wwwroot/HiAPI-docsite/index.json +++ b/App/wwwroot/HiAPI-docsite/index.json @@ -2027,7 +2027,7 @@ "api/Hi.MachiningSteps.MachiningStep.html": { "href": "api/Hi.MachiningSteps.MachiningStep.html", "title": "Class MachiningStep | HiAPI-C# 2025", - "summary": "Class MachiningStep Namespace Hi.MachiningSteps Assembly HiMech.dll Represents a machining step enriched with physics, mapping and source metadata. The duration-based step property is based on the duration from previous-step to current-step. public class MachiningStep : IGetIndexedFileLine, IFlexDictionaryHost, IGetFeedrate, IGetSpindleSpeed, IGetRgbWithPriority Inheritance object MachiningStep Implements IGetIndexedFileLine IFlexDictionaryHost IGetFeedrate IGetSpindleSpeed IGetRgbWithPriority Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) FlexDictionaryUtil.CallFlexDictionary(IFlexDictionaryHost) FlexDictionaryUtil.GetFlexDictionaryBytes(IFlexDictionaryHost, IntegerKeyDictionaryConverter) FlexDictionaryUtil.WriteFlexDictionary(IFlexDictionaryHost, BinaryWriter, IntegerKeyDictionaryConverter) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningStep(IMachiningStepHost, int, IIndexedFileLine, MachineMotionStep, MillingInstance, CollidedKeyPair[]) Initializes a new instance of the MachiningStep class. public MachiningStep(IMachiningStepHost host, int stepIndex, IIndexedFileLine sourceCommand, MachineMotionStep machineMotionStep, MillingInstance millingInstance, MachiningStep.CollidedKeyPair[] collidedKeyPairs) Parameters host IMachiningStepHost The host of the milling step. stepIndex int The index of the step. sourceCommand IIndexedFileLine The source command. machineMotionStep MachineMotionStep The machine motion step parameters. millingInstance MillingInstance The physics result for the step. collidedKeyPairs CollidedKeyPair[] The collided key pairs detected in this step. Properties AccumulatedCraterWear_um Gets the accumulated crater wear in micrometers [Present(\"Accumulated Crater Wear\", \"A.C.Wear\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double AccumulatedCraterWear_um { get; } Property Value double AccumulatedFlankWearDepth_um Gets the accumulated flank wear depth in micrometers [Present(\"Accumulated Flank Wear Depth\", \"A.F.Wear.Depth\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double AccumulatedFlankWearDepth_um { get; } Property Value double AccumulatedFlankWearWidth_um Gets the accumulated flank wear width in micrometers [Present(\"Accumulated Flank Wear Width\", \"A.F.Wear.Width\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double AccumulatedFlankWearWidth_um { get; } Property Value double AccumulatedSpindleEnergyConsumption_kWh Gets the accumulated spindle energy consumption in kilowatt-hours [Present(\"Accumulated Spindle Energy Consumption\", null, PhysicsUnit.kWh, \"G6\")] [JsAce(ClassExt = \"MachiningStep\")] public double AccumulatedSpindleEnergyConsumption_kWh { get; } Property Value double AccumulatedTime Ideal accumulated worked time by simulation. Ideal Program duration. [Present(\"Time\", null, PhysicsUnit.None, \"G\")] [JsAce(ClassExt = \"MachiningStep\")] public TimeSpan AccumulatedTime { get; } Property Value TimeSpan ActualTime Actual accumulated worked time. Actual Program time. [Present(\"Actual Time\", \"Act.Time\", PhysicsUnit.None, \"G\")] [JsAce(ClassExt = \"MachiningStep\")] public TimeSpan? ActualTime { get; set; } Property Value TimeSpan? AvgAbsMomentAboutSensorVec3d_Nm Gets the average absolute moment about sensor vector in Newton-meters [Present(\"Avg Abs Moment To Tool About Sensor\", \"Avg-Abs-M-ToTool-Sensor-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d AvgAbsMomentAboutSensorVec3d_Nm { get; } Property Value Vec3d AvgAbsMomentXAboutSensorOnSpindleRotationCoordinate_Nm Gets the average absolute moment X about sensor on spindle rotation coordinate in Newton-meters [Present(\"Avg Abs Moment X To Tool About Sensor On Spindle Rotation Coordinate\", \"AvgAbsMx-ToTool-Sensor-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgAbsMomentXAboutSensorOnSpindleRotationCoordinate_Nm { get; } Property Value double? AvgAbsMomentXAboutToolTipOnSpindleRotationCoordinate_Nm Gets the average absolute moment X about tool tip on spindle rotation coordinate in Newton-meters [Present(\"Avg Abs Moment X To Tool About Tool Tip On Spindle Rotation Coordinate\", \"AvgAbsMx-ToTool-Tip-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double AvgAbsMomentXAboutToolTipOnSpindleRotationCoordinate_Nm { get; } Property Value double AvgAbsTorqueByMapping_Nm Gets the average absolute torque by mapping in Newton-meters [Present(\"Avg Abs Torque By Mapping\", \"AvgAbsTorque-Map\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgAbsTorqueByMapping_Nm { get; } Property Value double? AvgAbsTorqueErrorRatioWithMapping numerator is sim value minus mapping value; denominator is the mapping value. [Present(\"Avg Torque Error Ratio by Mapping\", \"Torque-Err-R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgAbsTorqueErrorRatioWithMapping { get; } Property Value double? AvgAbsTorqueSignedErrorRelationWithMapping The sign is from sim value minus mapping value. the quantity is Math.Sqrt(err.Square() / Math.Abs(sim * mapping)) [JsAce(ClassExt = \"MachiningStep\")] public double? AvgAbsTorqueSignedErrorRelationWithMapping { get; } Property Value double? AvgAbsTorque_Nm AvgAbsTorqueOnSpindleRotationCoordinate [Present(\"Avg Abs Torque\", \"AvgAbsTorque\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgAbsTorque_Nm { get; } Property Value double? AvgForceToToolOnToolRunningCoordinate_N Gets the average force to tool on tool running coordinate in N. [Present(\"AvgForceToToolOnToolRunningCoordinate\", \"AvgForce-ToTool-TR\", PhysicsUnit.N, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d AvgForceToToolOnToolRunningCoordinate_N { get; } Property Value Vec3d AvgForceXToToolOnToolRunningCoordinate_N Gets the average force X to tool on tool running coordinate in N. [JsAce(ClassExt = \"MachiningStep\")] public double? AvgForceXToToolOnToolRunningCoordinate_N { get; } Property Value double? AvgForceYToToolOnToolRunningCoordinate_N Gets the average force Y to tool on tool running coordinate in N. [JsAce(ClassExt = \"MachiningStep\")] public double? AvgForceYToToolOnToolRunningCoordinate_N { get; } Property Value double? AvgForceZToToolOnToolRunningCoordinate_N Gets the average force Z to tool on tool running coordinate in N. [JsAce(ClassExt = \"MachiningStep\")] public double? AvgForceZToToolOnToolRunningCoordinate_N { get; } Property Value double? AvgMomentAboutSensor_Nm Gets the average moment about sensor in Newton-meters [Present(\"Avg Moment To Tool About Sensor\", \"AvgM-ToTool-Sensor-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgMomentAboutSensor_Nm { get; } Property Value double? AvgMomentAboutToolTipOnProgramCoordinate_Nm Gets the average moment about tool tip on program coordinate in Newton-meters [Present(\"Avg Moment To Tool About Tool Tip On Workpiece Program Coordinate\", \"AvgAbsM-ToTool-Tip-W\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d AvgMomentAboutToolTipOnProgramCoordinate_Nm { get; } Property Value Vec3d AvgMomentAboutToolTipOnToolRunningCoordinate_Nm Gets the average moment about tool tip on tool running coordinate in Newton-meters [Present(\"Avg Moment To Tool About Tool Tip On Tool Running Coordinate\", \"AvgAbsM-ToTool-Tip-TR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d AvgMomentAboutToolTipOnToolRunningCoordinate_Nm { get; } Property Value Vec3d AvgMomentAboutToolTip_Nm Gets the average moment about tool tip in Newton-meters [Present(\"Avg Moment To Tool About ToolTip\", \"AvgM-ToTool-Tip-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgMomentAboutToolTip_Nm { get; } Property Value double? AvgMomentXyAboutObservationPoint_Nm Gets the average moment XY about observation point in Newton-meters [Present(\"Avg Moment XY To Tool About Sensor\", \"AvgM-ToTool-Sensor.XY\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgMomentXyAboutObservationPoint_Nm { get; } Property Value double? AvgMomentXyByMapping_Nm Gets the average moment XY by mapping in Newton-meters [Present(\"Avg Moment XY By Mapping\", \"AvgM-Map.XY\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgMomentXyByMapping_Nm { get; } Property Value double? AvgMomentXyErrorRatioWithMapping Gets the average moment XY error ratio with mapping. Numerator is sim value minus mapping value; denominator is the mapping value. [Present(\"Avg Moment XY Error Ratio by Mapping\", \"M-XY-Err-R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgMomentXyErrorRatioWithMapping { get; } Property Value double? AvgMomentXySignedErrorRelationWithMapping The sign is from sim value minus mapping value. the quantity is Math.Sqrt(err.Square() / Math.Abs(sim * mapping)) [JsAce(ClassExt = \"MachiningStep\")] public double? AvgMomentXySignedErrorRelationWithMapping { get; } Property Value double? BeginSpindleAngle_deg Gets the beginning spindle angle in degrees. [Present(\"Beginning Spindle Angle Shift\", \"Spd. Ang. Shift\", PhysicsUnit.deg, \"F2\")] [JsAce(ClassExt = \"MachiningStep\")] public double BeginSpindleAngle_deg { get; } Property Value double ChipMass_g Gets the chip mass in grams. [JsAce(ClassExt = \"MachiningStep\")] public double? ChipMass_g { get; } Property Value double? ChipMass_mg Gets the chip mass in milligrams. [Present(\"Chip Mass\", null, PhysicsUnit.mg, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ChipMass_mg { get; } Property Value double? ChipTemperature_C Gets the chip temperature in Celsius [Present(\"Chip Temperature\", \"Chip T.\", PhysicsUnit.C, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ChipTemperature_C { get; } Property Value double? ChipThickness_mm Gets the chip thickness in mm. [Present(\"Chip Thickness\", null, PhysicsUnit.mm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ChipThickness_mm { get; } Property Value double? ChipThickness_um Gets the chip thickness in micrometers public double? ChipThickness_um { get; } Property Value double? ChipVolume_mm3 Gets the chip volume in mm³. [Present(\"Chip Volume\", null, PhysicsUnit.mm3, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ChipVolume_mm3 { get; } Property Value double? Cl Gets the cutter location. [Present(\"Cutter Location\", \"CL\", PhysicsUnit.mm, \"F5\")] public DVec3d Cl { get; } Property Value DVec3d CollidedKeyPairs Gets or sets the collided key pairs if a collision was detected for this step. public MachiningStep.CollidedKeyPair[] CollidedKeyPairs { get; set; } Property Value CollidedKeyPair[] CollisionText A formatted text representing collided key pairs, e.g. \"(A,B);(C,D)\". Returns null when there is no collision. [Present] [JsAce(ClassExt = \"MachiningStep\")] public string CollisionText { get; } Property Value string CutterBodyTemperature_C Gets the cutter body temperature in Celsius [Present(\"Cutter Body Temperature\", \"Ct. Body T.\", PhysicsUnit.C, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? CutterBodyTemperature_C { get; } Property Value double? CutterDermisTemperature_C Gets the cutter dermis temperature in Celsius [Present(\"Cutter Dermis Temperature\", \"Ct. Dermis T.\", PhysicsUnit.C, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? CutterDermisTemperature_C { get; } Property Value double? CuttingDepth_mm Gets the cutting depth in mm. [Present(\"Cutting Depth\", \"ap\", PhysicsUnit.mm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double CuttingDepth_mm { get; } Property Value double CuttingForcesToToolOnToolRunningCoordinate_N Cutting forces on tool running coordinate. Unit is Newtons. The forced item is tool. public List CuttingForcesToToolOnToolRunningCoordinate_N { get; } Property Value List CuttingForcesToWorkpieceOnProgramCoordinate_N Get the cutting forces on program coordinate. Unit is Newtons. The forced item is workpiece. public List CuttingForcesToWorkpieceOnProgramCoordinate_N { get; } Property Value List CuttingSpeed_mmds Gets the cutting speed in mm/s. The speed on the cutter outer radius by the spindle rotating. [Present(\"Cutting Speed\", \"Vc\", PhysicsUnit.mmds, \"G5\")] [JsAce(ClassExt = \"MachiningStep\")] public double? CuttingSpeed_mmds { get; } Property Value double? CuttingWidth_mm Gets the cutting width in mm. [Present(\"Cutting Width\", \"ae\", PhysicsUnit.mm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double CuttingWidth_mm { get; } Property Value double DeltaTipDeflectionOnToolRunningCoordinate_um Gets the delta tip deflection on tool running coordinate in micrometers [Present(\"Delta Tip Deflection On Tool Running Coordinate\", \"Dlt.Df.-Tip-TR\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d DeltaTipDeflectionOnToolRunningCoordinate_um { get; } Property Value Vec3d FeedPerCycle_mm Gets the feed per cycle in mm. [Present(\"Feed per Cycle\", \"frc\", PhysicsUnit.mm, \"G5\")] [JsAce(ClassExt = \"MachiningStep\")] public double FeedPerCycle_mm { get; } Property Value double FeedPerTooth_mm Gets the feed per tooth in mm. [Present(\"Feed per Tooth\", \"frt\", PhysicsUnit.mm, \"G5\")] [JsAce(ClassExt = \"MachiningStep\")] public double FeedPerTooth_mm { get; } Property Value double Feedrate_mmdmin Gets the feedrate in mm/min. [Present(\"Feedrate\", \"F\", PhysicsUnit.mmdmin, \"G5\")] [JsAce(ClassExt = \"MachiningStep\")] public double Feedrate_mmdmin { get; } Property Value double Feedrate in mm/s FileNo Gets the file number. [Present] [JsAce(ClassExt = \"MachiningStep\")] public int? FileNo { get; } Property Value int? FilePath Gets the file path. [Present] [JsAce(ClassExt = \"MachiningStep\")] public string FilePath { get; } Property Value string FlagsText Gets the flags text. [Present] [JsAce(ClassExt = \"MachiningStep\")] public string FlagsText { get; } Property Value string FlexDictionary Gets or sets the flexible dictionary. public Dictionary FlexDictionary { get; set; } Property Value Dictionary FrictionPower_W friction power takes by workpiece per cycle. the unit is watt. [JsAce(ClassExt = \"MachiningStep\")] public double? FrictionPower_W { get; } Property Value double? Host Gets or sets the host of the milling step. public IMachiningStepHost Host { get; set; } Property Value IMachiningStepHost InfInsistentSpindlePowerRatio Continuous spindle power ratio: input power / time-unlimited maximum power per spindle capability. [Present(\"Continue Spindle Power Ratio\", \"Cont.Spd.Pow.R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? InfInsistentSpindlePowerRatio { get; } Property Value double? InfInsistentSpindleTorqueRatio Gets the infinite insistent spindle torque ratio [Present(\"Continue Spindle Torque Ratio\", \"Cont.Spd.Torque-R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? InfInsistentSpindleTorqueRatio { get; } Property Value double? InstantCraterWear_um Gets the instant crater wear in micrometers [Present(\"Instant Crater Wear\", \"I.C.Wear\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? InstantCraterWear_um { get; } Property Value double? IsReliefFaceCollided Gets a value indicating whether the relief face is collided. [Present(\"Is Relief Face Collided\", \"Is-Rlf.C.\", PhysicsUnit.None, \"G\")] [JsAce(ClassExt = \"MachiningStep\")] public bool? IsReliefFaceCollided { get; } Property Value bool? IsTouched Gets whether the step is touched. [Present(\"Is Touched\", null, PhysicsUnit.None, \"G\")] [JsAce(ClassExt = \"MachiningStep\")] public bool IsTouched { get; } Property Value bool this[string] Gets or sets a value in the flexible dictionary by key. public object this[string key] { get; set; } Parameters key string The key to look up. Property Value object The value associated with the key, or null if not found. LineNo Gets the line number. [Present] [JsAce(ClassExt = \"MachiningStep\")] public int? LineNo { get; } Property Value int? LineText Gets the line text. [Present] [JsAce(ClassExt = \"MachiningStep\")] public string LineText { get; } Property Value string MachineMotionStep Gets or sets the machining step. public MachineMotionStep MachineMotionStep { get; set; } Property Value MachineMotionStep MachiningTool Gets the machining tool used for this milling step. public IMachiningTool MachiningTool { get; } Property Value IMachiningTool MaxAbsForce_N Max absolute force at the rotation cycle. [Present(\"Max Absolute Force\", \"Max Abs F.\", PhysicsUnit.N, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? MaxAbsForce_N { get; } Property Value double? MaxBottomEdgeDeflectionOnToolRunningCoordinate_mm Gets the maximum bottom edge deflection on tool running coordinate in millimeters It only make sense in end mill. The z value of this factor is re-cut depth. [JsAce(ClassExt = \"MachiningStep\")] public Vec3d MaxBottomEdgeDeflectionOnToolRunningCoordinate_mm { get; } Property Value Vec3d MaxBottomEdgeDeflectionOnToolRunningCoordinate_um Gets the maximum bottom edge deflection on tool running coordinate in micrometers. [Present(\"Max Bottom Edge Deflection On Tool Running Coordinate\", \"Df.-Bt.Edge-TR\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d MaxBottomEdgeDeflectionOnToolRunningCoordinate_um { get; } Property Value Vec3d MaxForceOnToolRunningCoordinate_N Gets the maximum force on tool running coordinate in N. public Vec3d MaxForceOnToolRunningCoordinate_N { get; } Property Value Vec3d MaxMomentAboutSensor_Nm Gets the maximum moment about sensor in Newton-meters [Present(\"Max Moment To Tool About Sensor\", \"MaxM-ToTool-Sensor-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double MaxMomentAboutSensor_Nm { get; } Property Value double MaxMomentAboutToolTip_Nm Gets the maximum moment about tool tip in Newton-meters [Present(\"Max Moment To Tool About ToolTip\", \"MaxM-ToTool-Tip-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double MaxMomentAboutToolTip_Nm { get; } Property Value double MaxSpindlePowerRatio Maximum spindle power ratio: input power / instantaneous maximum power per spindle capability. [Present(\"Max Spindle Power Ratio\", \"Max.Spd.Pow.R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? MaxSpindlePowerRatio { get; } Property Value double? MaxSpindleTorqueRatio Gets the maximum spindle torque ratio [Present(\"Max Spindle Torque Ratio\", \"Max.Spd.Torque-R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? MaxSpindleTorqueRatio { get; } Property Value double? MaxTipDeflectionOnToolRunningCoordinate_mm Gets the maximum tip deflection on tool running coordinate in millimeters [JsAce(ClassExt = \"MachiningStep\")] public Vec3d MaxTipDeflectionOnToolRunningCoordinate_mm { get; } Property Value Vec3d MaxTipDeflectionOnToolRunningCoordinate_um Gets the maximum tip deflection on tool running coordinate in micrometers [Present(\"Max Tip Deflection On Tool Running Coordinate\", \"Max.Df.-Tip-TR\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d MaxTipDeflectionOnToolRunningCoordinate_um { get; } Property Value Vec3d MillingInstance Gets or sets the milling instance. public MillingInstance MillingInstance { get; set; } Property Value MillingInstance MillingStepLuggage Get luggage by sequencing loading performance optimization. public MillingStepLuggage MillingStepLuggage { get; } Property Value MillingStepLuggage MomentsToToolAboutObservationPointOnSpindleRotationCoordinate_Nm Get Moments About Observation Point On Spindle Rotation Coordinate. Unit is Newtons-meter. The forced item is tool. public List MomentsToToolAboutObservationPointOnSpindleRotationCoordinate_Nm { get; } Property Value List Remarks Not cached data. Light computation cost of the vectors transformation. MoveOnProgramCoordinate Gets the move on program coordinate. [Present(\"Move On Workpiece Program Coordinate\", \"Move-W\", PhysicsUnit.mm, \"F4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d MoveOnProgramCoordinate { get; } Property Value Vec3d MovingLength_mm Gets the moving length in mm. From previous-step to current-step. [Present(\"Move Length\", \"Move Len.\", PhysicsUnit.mm, \"F4\")] [JsAce(ClassExt = \"MachiningStep\")] public double MovingLength_mm { get; } Property Value double Mrr_mm3ds Gets the material removal rate in mm³/s. [Present(\"MRR\", null, PhysicsUnit.mm3ds, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double Mrr_mm3ds { get; } Property Value double ProgramSideCusp_um Gets the program side cusp in micrometers. Side cusp without deformation. The value is count by feed per tooth and the tool radius. [Present(\"Program Side Cusp\", null, PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double ProgramSideCusp_um { get; } Property Value double ReCutDepth_um Gets or sets the recut depth in micrometers. The recut depth cause the cutting mark by the end mill. The recut depth increased by the cutter radius increased. [Present(\"Re-Cut Depth on Bottom Edge on Tool Running Coordinate\", \"Re-Cut Depth\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double ReCutDepth_um { get; } Property Value double ReliefFaceCollidingDepth_mm Gets the relief face colliding depth in millimeters. [Present(\"Relief Face Colliding Depth\", \"Rlf.C.Depth\", PhysicsUnit.mm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ReliefFaceCollidingDepth_mm { get; } Property Value double? SideCuspList_um Gets the list of side cusps in micrometers. [JsAce(ClassExt = \"MachiningStep\")] public List SideCuspList_um { get; } Property Value List SourceCommand Gets or sets the source command. public IIndexedFileLine SourceCommand { get; set; } Property Value IIndexedFileLine SpindleCyclePeriod_s Gets the spindle rotation cycle period in seconds. [Present(\"Spindle Cycle Period\", null, PhysicsUnit.sec, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double SpindleCyclePeriod_s { get; } Property Value double SpindleInputPower_W Input spindle power in watts: energy entering the spindle. [Present(\"Spindle Input Power\", null, PhysicsUnit.watt, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double SpindleInputPower_W { get; } Property Value double Input spindle power in Watts. SpindleOutputPower_W Spindle output power in watts (axial power taken by workpiece). Energy at the cutting end after spindle losses; causes workpiece/chip deformation and temperature rise. [Present(\"Spindle Output Power\", null, PhysicsUnit.watt, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double SpindleOutputPower_W { get; } Property Value double SpindleSpeed_rpm Gets the spindle speed in RPM. [Present(\"Spindle Speed\", \"S\", PhysicsUnit.rpm, \"G5\")] [JsAce(ClassExt = \"MachiningStep\")] public double SpindleSpeed_rpm { get; } Property Value double Spindle speed in rad/s SpindleTemperature_C Gets the spindle temperature in Celsius [Present(\"Spindle Temperature\", \"Spd.Temp.\", PhysicsUnit.C, \"G2\")] [JsAce(ClassExt = \"MachiningStep\")] public double? SpindleTemperature_C { get; } Property Value double? SpindleWorkingTemperatureRatio Gets the spindle working temperature ratio [Present(\"Spindle Working Temperature Ratio\", \"Spd.Temp.R.\", PhysicsUnit.None, \"G2\")] [JsAce(ClassExt = \"MachiningStep\")] public double? SpindleWorkingTemperatureRatio { get; } Property Value double? StepDuration Gets the step duration. [Present(\"Step Duration\", \"duration\", PhysicsUnit.sec, \"ss\\\\.ffffff\")] [JsAce(ClassExt = \"MachiningStep\")] public TimeSpan StepDuration { get; } Property Value TimeSpan StepIndex Gets the index of the step. [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] [Present(\"Step Index\", \"S.I.\", PhysicsUnit.None, \"G\")] public int StepIndex { get; } Property Value int ThermalStress_MPa Gets the thermal stress in MPa [Present(\"Thermal Stress\", \"Th. S.\", PhysicsUnit.MPa, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ThermalStress_MPa { get; } Property Value double? ThermalYieldRatio Gets the thermal yield ratio [Present(\"Thermal Yield Ratio\", \"Th. Yield R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ThermalYieldRatio { get; } Property Value double? TipDeflectionsOnToolRunningCoordinate_um Gets the tip deflections on tool running coordinate in micrometers [JsAce(ClassExt = \"MachiningStep\")] public List TipDeflectionsOnToolRunningCoordinate_um { get; } Property Value List ToolId Gets the tool ID. [Present(\"Tool ID\", \"T\", PhysicsUnit.None, \"G\")] [JsAce(ClassExt = \"MachiningStep\")] public int ToolId { get; } Property Value int ToothArcDuration_s Gets the tooth arc duration in seconds by the spindle rotation. The value is SpindleCyclePeriod_s div Cutter's teeth number. [Present(\"Tooth Arc Duration\", null, PhysicsUnit.sec, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double ToothArcDuration_s { get; } Property Value double ToothSeqOnToolRunningCoordinate Gets the sequence pair of transformation matrices representing tooth positions on the tool running coordinate system. public SeqPair ToothSeqOnToolRunningCoordinate { get; } Property Value SeqPair WorkpieceDermisTemperature_C Gets the workpiece dermis temperature in Celsius [Present(\"Workpiece Dermis Temperature\", \"W. Dermis T.\", PhysicsUnit.C, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? WorkpieceDermisTemperature_C { get; } Property Value double? WorkpiecePlasticDepth_um Gets the workpiece plastic depth in micrometers. The depth is at the location that the cutting stress is equal to the yielding stress. The cutting stress exert to the workpiece decreased on the depth increased. [Present(\"Workpiece Plastic Deformation Depth\", \"W.P.Depth\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double WorkpiecePlasticDepth_um { get; } Property Value double YieldingStressRatio Gets the yielding stress ratio [Present(\"Yielding Stress Ratio\", \"Y-Stress-R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? YieldingStressRatio { get; } Property Value double? Methods GetCutterDermisAvgTemperature_C(double) Gets the average cutter dermis temperature in Celsius at the specified depth. [JsAce(ClassExt = \"MachiningStep\")] public double GetCutterDermisAvgTemperature_C(double depth_mm) Parameters depth_mm double The depth in millimeters Returns double Average temperature in Celsius GetCutterDermisTemperature_C(double) Gets the cutter dermis temperature in Celsius at the specified depth. [JsAce(ClassExt = \"MachiningStep\")] public double GetCutterDermisTemperature_C(double depth_mm) Parameters depth_mm double The depth in millimeters Returns double Temperature in Celsius GetFeedrate_mmds() Gets the program feedrate in millimeters per second. public double GetFeedrate_mmds() Returns double Feedrate in mm/s GetIndexedFileLine() Gets the file line associated with this object. public IndexedFileLine GetIndexedFileLine() Returns IndexedFileLine The file line object. GetKeyToQuantityNativeDictionary(IMachiningChain) Internal use. public static ConcurrentDictionary> GetKeyToQuantityNativeDictionary(IMachiningChain machiningChain) Parameters machiningChain IMachiningChain Returns ConcurrentDictionary> GetMcValue(IMachiningChain, string) Gets the MC value for the specified tag in the machining chain. public double? GetMcValue(IMachiningChain chain, string tag) Parameters chain IMachiningChain The machining chain. tag string The tag to look up. Returns double? The MC value for the specified tag. GetMcValue(int) Gets the MC value at the specified index. For common machine tool, the index 0,1,2,3,4,5 is corresponding to motion component X,Y,Z,A,B,C. If the corresponding motion component not existed, return NaN. If MachineMotionStep not existed, return null. [JsAce(ClassExt = \"MachiningStep\")] public double? GetMcValue(int index) Parameters index int The index to look up. Returns double? The MC value at the specified index. GetRgbWithPriority(out Vec3d, out double) Gets the RGB color and priority for the milling step. public void GetRgbWithPriority(out Vec3d rgb, out double priority) Parameters rgb Vec3d The RGB color vector. priority double The priority value. GetSpindleDirection() Gets the spindle direction for this milling step. [Present(\"Spindle Direction\", \"Spd.Dir.\", PhysicsUnit.None, \"G\")] [JsAce(ClassExt = \"MachiningStep\")] public SpindleDirection GetSpindleDirection() Returns SpindleDirection GetSpindleSpeed_cycleds() public double GetSpindleSpeed_cycleds() Returns double GetSpindleSpeed_radds() Gets the spindle speed in radians per second. public double GetSpindleSpeed_radds() Returns double Spindle speed in rad/s UpdateNcOptOption(Action) Update NcOptOption for this step only. It should not be mixed with the StepBuilt event and NC inline script since the concurent process may break the logics. public void UpdateNcOptOption(Action action) Parameters action Action the action to modify the step." + "summary": "Class MachiningStep Namespace Hi.MachiningSteps Assembly HiMech.dll Represents a machining step enriched with physics, mapping and source metadata. The duration-based step property is based on the duration from previous-step to current-step. public class MachiningStep : IGetIndexedFileLine, IFlexDictionaryHost, IGetFeedrate, IGetSpindleSpeed, IGetRgbWithPriority Inheritance object MachiningStep Implements IGetIndexedFileLine IFlexDictionaryHost IGetFeedrate IGetSpindleSpeed IGetRgbWithPriority Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) FlexDictionaryUtil.CallFlexDictionary(IFlexDictionaryHost) FlexDictionaryUtil.GetFlexDictionaryBytes(IFlexDictionaryHost, IntegerKeyDictionaryConverter) FlexDictionaryUtil.WriteFlexDictionary(IFlexDictionaryHost, BinaryWriter, IntegerKeyDictionaryConverter) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningStep(IMachiningStepHost, int, IIndexedFileLine, MachineMotionStep, MillingInstance, CollidedKeyPair[]) Initializes a new instance of the MachiningStep class. public MachiningStep(IMachiningStepHost host, int stepIndex, IIndexedFileLine sourceCommand, MachineMotionStep machineMotionStep, MillingInstance millingInstance, MachiningStep.CollidedKeyPair[] collidedKeyPairs) Parameters host IMachiningStepHost The host of the milling step. stepIndex int The index of the step. sourceCommand IIndexedFileLine The source command. machineMotionStep MachineMotionStep The machine motion step parameters. millingInstance MillingInstance The physics result for the step. collidedKeyPairs CollidedKeyPair[] The collided key pairs detected in this step. Properties AccumulatedCraterWear_um Gets the accumulated crater wear in micrometers [Present(\"Accumulated Crater Wear\", \"A.C.Wear\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double AccumulatedCraterWear_um { get; } Property Value double AccumulatedFlankWearDepth_um Gets the accumulated flank wear depth in micrometers [Present(\"Accumulated Flank Wear Depth\", \"A.F.Wear.Depth\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double AccumulatedFlankWearDepth_um { get; } Property Value double AccumulatedFlankWearWidth_um Gets the accumulated flank wear width in micrometers [Present(\"Accumulated Flank Wear Width\", \"A.F.Wear.Width\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double AccumulatedFlankWearWidth_um { get; } Property Value double AccumulatedSpindleEnergyConsumption_kWh Gets the accumulated spindle energy consumption in kilowatt-hours [Present(\"Accumulated Spindle Energy Consumption\", null, PhysicsUnit.kWh, \"G6\")] [JsAce(ClassExt = \"MachiningStep\")] public double AccumulatedSpindleEnergyConsumption_kWh { get; } Property Value double AccumulatedTime Ideal accumulated worked time by simulation. Ideal Program duration. [Present(\"Time\", null, PhysicsUnit.None, \"G\")] [JsAce(ClassExt = \"MachiningStep\")] public TimeSpan AccumulatedTime { get; } Property Value TimeSpan ActualTime Actual accumulated worked time. Actual Program time. [Present(\"Actual Time\", \"Act.Time\", PhysicsUnit.None, \"G\")] [JsAce(ClassExt = \"MachiningStep\")] public TimeSpan? ActualTime { get; set; } Property Value TimeSpan? AvgAbsMomentAboutSensorVec3d_Nm Gets the average absolute moment about sensor vector in Newton-meters [Present(\"Avg Abs Moment To Tool About Sensor\", \"Avg-Abs-M-ToTool-Sensor-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d AvgAbsMomentAboutSensorVec3d_Nm { get; } Property Value Vec3d AvgAbsMomentXAboutSensorOnSpindleRotationCoordinate_Nm Gets the average absolute moment X about sensor on spindle rotation coordinate in Newton-meters [Present(\"Avg Abs Moment X To Tool About Sensor On Spindle Rotation Coordinate\", \"AvgAbsMx-ToTool-Sensor-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgAbsMomentXAboutSensorOnSpindleRotationCoordinate_Nm { get; } Property Value double? AvgAbsMomentXAboutToolTipOnSpindleRotationCoordinate_Nm Gets the average absolute moment X about tool tip on spindle rotation coordinate in Newton-meters [Present(\"Avg Abs Moment X To Tool About Tool Tip On Spindle Rotation Coordinate\", \"AvgAbsMx-ToTool-Tip-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double AvgAbsMomentXAboutToolTipOnSpindleRotationCoordinate_Nm { get; } Property Value double AvgAbsTorqueByMapping_Nm Gets the average absolute torque by mapping in Newton-meters [Present(\"Avg Abs Torque By Mapping\", \"AvgAbsTorque-Map\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgAbsTorqueByMapping_Nm { get; } Property Value double? AvgAbsTorqueErrorRatioWithMapping numerator is sim value minus mapping value; denominator is the mapping value. [Present(\"Avg Torque Error Ratio by Mapping\", \"Torque-Err-R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgAbsTorqueErrorRatioWithMapping { get; } Property Value double? AvgAbsTorqueSignedErrorRelationWithMapping The sign is from sim value minus mapping value. the quantity is Math.Sqrt(err.Square() / Math.Abs(sim * mapping)) [JsAce(ClassExt = \"MachiningStep\")] public double? AvgAbsTorqueSignedErrorRelationWithMapping { get; } Property Value double? AvgAbsTorque_Nm AvgAbsTorqueOnSpindleRotationCoordinate [Present(\"Avg Abs Torque\", \"AvgAbsTorque\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgAbsTorque_Nm { get; } Property Value double? AvgForceToToolOnToolRunningCoordinate_N Gets the average force to tool on tool running coordinate in N. [Present(\"AvgForceToToolOnToolRunningCoordinate\", \"AvgForce-ToTool-TR\", PhysicsUnit.N, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d AvgForceToToolOnToolRunningCoordinate_N { get; } Property Value Vec3d AvgForceXToToolOnToolRunningCoordinate_N Gets the average force X to tool on tool running coordinate in N. [JsAce(ClassExt = \"MachiningStep\")] public double? AvgForceXToToolOnToolRunningCoordinate_N { get; } Property Value double? AvgForceYToToolOnToolRunningCoordinate_N Gets the average force Y to tool on tool running coordinate in N. [JsAce(ClassExt = \"MachiningStep\")] public double? AvgForceYToToolOnToolRunningCoordinate_N { get; } Property Value double? AvgForceZToToolOnToolRunningCoordinate_N Gets the average force Z to tool on tool running coordinate in N. [JsAce(ClassExt = \"MachiningStep\")] public double? AvgForceZToToolOnToolRunningCoordinate_N { get; } Property Value double? AvgMomentAboutSensor_Nm Gets the average moment about sensor in Newton-meters [Present(\"Avg Moment To Tool About Sensor\", \"AvgM-ToTool-Sensor-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgMomentAboutSensor_Nm { get; } Property Value double? AvgMomentAboutToolTipOnProgramCoordinate_Nm Gets the average moment about tool tip on program coordinate in Newton-meters [Present(\"Avg Moment To Tool About Tool Tip On Workpiece Program Coordinate\", \"AvgAbsM-ToTool-Tip-W\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d AvgMomentAboutToolTipOnProgramCoordinate_Nm { get; } Property Value Vec3d AvgMomentAboutToolTipOnToolRunningCoordinate_Nm Gets the average moment about tool tip on tool running coordinate in Newton-meters [Present(\"Avg Moment To Tool About Tool Tip On Tool Running Coordinate\", \"AvgAbsM-ToTool-Tip-TR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d AvgMomentAboutToolTipOnToolRunningCoordinate_Nm { get; } Property Value Vec3d AvgMomentAboutToolTip_Nm Gets the average moment about tool tip in Newton-meters [Present(\"Avg Moment To Tool About ToolTip\", \"AvgM-ToTool-Tip-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgMomentAboutToolTip_Nm { get; } Property Value double? AvgMomentXyAboutObservationPoint_Nm Gets the average moment XY about observation point in Newton-meters [Present(\"Avg Moment XY To Tool About Sensor\", \"AvgM-ToTool-Sensor.XY\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgMomentXyAboutObservationPoint_Nm { get; } Property Value double? AvgMomentXyByMapping_Nm Gets the average moment XY by mapping in Newton-meters [Present(\"Avg Moment XY By Mapping\", \"AvgM-Map.XY\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgMomentXyByMapping_Nm { get; } Property Value double? AvgMomentXyErrorRatioWithMapping Gets the average moment XY error ratio with mapping. Numerator is sim value minus mapping value; denominator is the mapping value. [Present(\"Avg Moment XY Error Ratio by Mapping\", \"M-XY-Err-R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgMomentXyErrorRatioWithMapping { get; } Property Value double? AvgMomentXySignedErrorRelationWithMapping The sign is from sim value minus mapping value. the quantity is Math.Sqrt(err.Square() / Math.Abs(sim * mapping)) [JsAce(ClassExt = \"MachiningStep\")] public double? AvgMomentXySignedErrorRelationWithMapping { get; } Property Value double? BeginSpindleAngle_deg Gets the beginning spindle angle in degrees. [Present(\"Beginning Spindle Angle Shift\", \"Spd. Ang. Shift\", PhysicsUnit.deg, \"F2\")] [JsAce(ClassExt = \"MachiningStep\")] public double BeginSpindleAngle_deg { get; } Property Value double ChipMass_g Gets the chip mass in grams. [JsAce(ClassExt = \"MachiningStep\")] public double? ChipMass_g { get; } Property Value double? ChipMass_mg Gets the chip mass in milligrams. [Present(\"Chip Mass\", null, PhysicsUnit.mg, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ChipMass_mg { get; } Property Value double? ChipTemperature_C Gets the chip temperature in Celsius [Present(\"Chip Temperature\", \"Chip T.\", PhysicsUnit.C, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ChipTemperature_C { get; } Property Value double? ChipThickness_mm Gets the chip thickness in mm. [Present(\"Chip Thickness\", null, PhysicsUnit.mm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ChipThickness_mm { get; } Property Value double? ChipThickness_um Gets the chip thickness in micrometers public double? ChipThickness_um { get; } Property Value double? ChipVolume_mm3 Gets the chip volume in mm³. [Present(\"Chip Volume\", null, PhysicsUnit.mm3, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ChipVolume_mm3 { get; } Property Value double? Cl Gets the cutter location. [Present(\"Cutter Location\", \"CL\", PhysicsUnit.mm, \"F5\")] public DVec3d Cl { get; } Property Value DVec3d CollidedKeyPairs Gets or sets the collided key pairs if a collision was detected for this step. public MachiningStep.CollidedKeyPair[] CollidedKeyPairs { get; set; } Property Value CollidedKeyPair[] CollisionText A formatted text representing collided key pairs, e.g. \"(A,B);(C,D)\". Returns null when there is no collision. [Present] [JsAce(ClassExt = \"MachiningStep\")] public string CollisionText { get; } Property Value string CutterBodyTemperature_C Gets the cutter body temperature in Celsius [Present(\"Cutter Body Temperature\", \"Ct. Body T.\", PhysicsUnit.C, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? CutterBodyTemperature_C { get; } Property Value double? CutterDermisTemperature_C Gets the cutter dermis temperature in Celsius [Present(\"Cutter Dermis Temperature\", \"Ct. Dermis T.\", PhysicsUnit.C, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? CutterDermisTemperature_C { get; } Property Value double? CuttingDepth_mm Gets the cutting depth in mm. [Present(\"Cutting Depth\", \"ap\", PhysicsUnit.mm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double CuttingDepth_mm { get; } Property Value double CuttingForcesToToolOnToolRunningCoordinate_N Cutting forces on tool running coordinate. Unit is Newtons. The forced item is tool. public List CuttingForcesToToolOnToolRunningCoordinate_N { get; } Property Value List CuttingForcesToWorkpieceOnProgramCoordinate_N Get the cutting forces on program coordinate. Unit is Newtons. The forced item is workpiece. public List CuttingForcesToWorkpieceOnProgramCoordinate_N { get; } Property Value List CuttingSpeed_mmds Gets the cutting speed in mm/s. The speed on the cutter outer radius by the spindle rotating. [Present(\"Cutting Speed\", \"Vc\", PhysicsUnit.mmds, \"G5\")] [JsAce(ClassExt = \"MachiningStep\")] public double? CuttingSpeed_mmds { get; } Property Value double? CuttingWidth_mm Gets the cutting width in mm. [Present(\"Cutting Width\", \"ae\", PhysicsUnit.mm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double CuttingWidth_mm { get; } Property Value double DeltaTipDeflectionOnToolRunningCoordinate_um Gets the delta tip deflection on tool running coordinate in micrometers [Present(\"Delta Tip Deflection On Tool Running Coordinate\", \"Dlt.Df.-Tip-TR\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d DeltaTipDeflectionOnToolRunningCoordinate_um { get; } Property Value Vec3d FeedPerCycle_mm Gets the feed per cycle in mm. [Present(\"Feed per Cycle\", \"frc\", PhysicsUnit.mm, \"G5\")] [JsAce(ClassExt = \"MachiningStep\")] public double FeedPerCycle_mm { get; } Property Value double FeedPerTooth_mm Gets the feed per tooth in mm. [Present(\"Feed per Tooth\", \"frt\", PhysicsUnit.mm, \"G5\")] [JsAce(ClassExt = \"MachiningStep\")] public double FeedPerTooth_mm { get; } Property Value double Feedrate_mmdmin Gets the feedrate in mm/min. [Present(\"Feedrate\", \"F\", PhysicsUnit.mmdmin, \"G5\")] [JsAce(ClassExt = \"MachiningStep\")] public double Feedrate_mmdmin { get; } Property Value double Feedrate in mm/s FileNo Gets the file number. [Present] [JsAce(ClassExt = \"MachiningStep\")] public int? FileNo { get; } Property Value int? FilePath Gets the file path. [Present] [JsAce(ClassExt = \"MachiningStep\")] public string FilePath { get; } Property Value string FlagsText Gets the flags text. [Present] [JsAce(ClassExt = \"MachiningStep\")] public string FlagsText { get; } Property Value string FlexDictionary Gets or sets the flexible dictionary. public Dictionary FlexDictionary { get; set; } Property Value Dictionary FrictionPower_W friction power takes by workpiece per cycle. the unit is watt. [JsAce(ClassExt = \"MachiningStep\")] public double? FrictionPower_W { get; } Property Value double? Host Gets or sets the host of the milling step. public IMachiningStepHost Host { get; set; } Property Value IMachiningStepHost InfInsistentSpindlePowerRatio Continuous spindle power ratio: input power / time-unlimited maximum power per spindle capability. [Present(\"Continue Spindle Power Ratio\", \"Cont.Spd.Pow.R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? InfInsistentSpindlePowerRatio { get; } Property Value double? InfInsistentSpindleTorqueRatio Gets the infinite insistent spindle torque ratio [Present(\"Continue Spindle Torque Ratio\", \"Cont.Spd.Torque-R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? InfInsistentSpindleTorqueRatio { get; } Property Value double? InstantCraterWear_um Gets the instant crater wear in micrometers [Present(\"Instant Crater Wear\", \"I.C.Wear\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? InstantCraterWear_um { get; } Property Value double? IsReliefFaceCollided Gets a value indicating whether the relief face is collided. [Present(\"Is Relief Face Collided\", \"Is-Rlf.C.\", PhysicsUnit.None, \"G\")] [JsAce(ClassExt = \"MachiningStep\")] public bool? IsReliefFaceCollided { get; } Property Value bool? IsTouched Gets whether the step is touched. [Present(\"Is Touched\", null, PhysicsUnit.None, \"G\")] [JsAce(ClassExt = \"MachiningStep\")] public bool IsTouched { get; } Property Value bool this[string] Gets or sets a value in the flexible dictionary by key. public object this[string key] { get; set; } Parameters key string The key to look up. Property Value object The value associated with the key, or null if not found. LineNo Gets the line number. [Present] [JsAce(ClassExt = \"MachiningStep\")] public int? LineNo { get; } Property Value int? LineText Gets the line text. [Present] [JsAce(ClassExt = \"MachiningStep\")] public string LineText { get; } Property Value string MachineMotionStep Gets or sets the machining step. public MachineMotionStep MachineMotionStep { get; set; } Property Value MachineMotionStep MachiningTool Gets the machining tool used for this milling step. public IMachiningTool MachiningTool { get; } Property Value IMachiningTool MaxAbsForce_N Max absolute force at the rotation cycle. [Present(\"Max Absolute Force\", \"Max Abs F.\", PhysicsUnit.N, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? MaxAbsForce_N { get; } Property Value double? MaxBottomEdgeDeflectionOnToolRunningCoordinate_mm Gets the maximum bottom edge deflection on tool running coordinate in millimeters It only make sense in end mill. The z value of this factor is re-cut depth. [JsAce(ClassExt = \"MachiningStep\")] public Vec3d MaxBottomEdgeDeflectionOnToolRunningCoordinate_mm { get; } Property Value Vec3d MaxBottomEdgeDeflectionOnToolRunningCoordinate_um Gets the maximum bottom edge deflection on tool running coordinate in micrometers. [Present(\"Max Bottom Edge Deflection On Tool Running Coordinate\", \"Df.-Bt.Edge-TR\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d MaxBottomEdgeDeflectionOnToolRunningCoordinate_um { get; } Property Value Vec3d MaxForceOnToolRunningCoordinate_N Gets the maximum force on tool running coordinate in N. public Vec3d MaxForceOnToolRunningCoordinate_N { get; } Property Value Vec3d MaxMomentAboutSensor_Nm Gets the maximum moment about sensor in Newton-meters [Present(\"Max Moment To Tool About Sensor\", \"MaxM-ToTool-Sensor-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double MaxMomentAboutSensor_Nm { get; } Property Value double MaxMomentAboutToolTip_Nm Gets the maximum moment about tool tip in Newton-meters [Present(\"Max Moment To Tool About ToolTip\", \"MaxM-ToTool-Tip-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double MaxMomentAboutToolTip_Nm { get; } Property Value double MaxSpindlePowerRatio Maximum spindle power ratio: input power / instantaneous maximum power per spindle capability. [Present(\"Max Spindle Power Ratio\", \"Max.Spd.Pow.R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? MaxSpindlePowerRatio { get; } Property Value double? MaxSpindleTorqueRatio Gets the maximum spindle torque ratio [Present(\"Max Spindle Torque Ratio\", \"Max.Spd.Torque-R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? MaxSpindleTorqueRatio { get; } Property Value double? MaxTipDeflectionOnToolRunningCoordinate_mm Gets the maximum tip deflection on tool running coordinate in millimeters [JsAce(ClassExt = \"MachiningStep\")] public Vec3d MaxTipDeflectionOnToolRunningCoordinate_mm { get; } Property Value Vec3d MaxTipDeflectionOnToolRunningCoordinate_um Gets the maximum tip deflection on tool running coordinate in micrometers [Present(\"Max Tip Deflection On Tool Running Coordinate\", \"Max.Df.-Tip-TR\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d MaxTipDeflectionOnToolRunningCoordinate_um { get; } Property Value Vec3d MillingInstance Gets or sets the milling instance. public MillingInstance MillingInstance { get; set; } Property Value MillingInstance MillingStepLuggage Get luggage by sequencing loading performance optimization. public MillingStepLuggage MillingStepLuggage { get; } Property Value MillingStepLuggage MomentsToToolAboutObservationPointOnSpindleRotationCoordinate_Nm Get Moments About Observation Point On Spindle Rotation Coordinate. Unit is Newtons-meter. The forced item is tool. public List MomentsToToolAboutObservationPointOnSpindleRotationCoordinate_Nm { get; } Property Value List Remarks Not cached data. Light computation cost of the vectors transformation. MoveOnProgramCoordinate Gets the move on program coordinate. [Present(\"Move On Workpiece Program Coordinate\", \"Move-W\", PhysicsUnit.mm, \"F4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d MoveOnProgramCoordinate { get; } Property Value Vec3d MovingLength_mm Gets the moving length in mm. From previous-step to current-step. [Present(\"Move Length\", \"Move Len.\", PhysicsUnit.mm, \"F4\")] [JsAce(ClassExt = \"MachiningStep\")] public double MovingLength_mm { get; } Property Value double Mrr_mm3ds Gets the material removal rate in mm³/s. [Present(\"MRR\", null, PhysicsUnit.mm3ds, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double Mrr_mm3ds { get; } Property Value double ProgramSideCusp_um Gets the program side cusp in micrometers. Side cusp without deformation. The value is count by feed per tooth and the tool radius. [Present(\"Program Side Cusp\", null, PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double ProgramSideCusp_um { get; } Property Value double ReCutDepth_um Gets or sets the recut depth in micrometers. The recut depth cause the cutting mark by the end mill. The recut depth increased by the cutter radius increased. [Present(\"Re-Cut Depth on Bottom Edge on Tool Running Coordinate\", \"Re-Cut Depth\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double ReCutDepth_um { get; } Property Value double ReliefFaceCollidingDepth_mm Gets the relief face colliding depth in millimeters. [Present(\"Relief Face Colliding Depth\", \"Rlf.C.Depth\", PhysicsUnit.mm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ReliefFaceCollidingDepth_mm { get; } Property Value double? SideCuspList_um Gets the list of side cusps in micrometers. [JsAce(ClassExt = \"MachiningStep\")] public List SideCuspList_um { get; } Property Value List SourceCommand Gets or sets the source command. public IIndexedFileLine SourceCommand { get; set; } Property Value IIndexedFileLine SpindleCyclePeriod_s Gets the spindle rotation cycle period in seconds. [Present(\"Spindle Cycle Period\", null, PhysicsUnit.sec, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double SpindleCyclePeriod_s { get; } Property Value double SpindleInputPower_W Input spindle power in watts: energy entering the spindle. [Present(\"Spindle Input Power\", null, PhysicsUnit.watt, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double SpindleInputPower_W { get; } Property Value double Input spindle power in Watts. SpindleOutputPower_W Spindle output power in watts (axial power taken by workpiece). Energy at the cutting end after spindle losses; causes workpiece/chip deformation and temperature rise. [Present(\"Spindle Output Power\", null, PhysicsUnit.watt, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double SpindleOutputPower_W { get; } Property Value double SpindleSpeed_rpm Gets the spindle speed in RPM. [Present(\"Spindle Speed\", \"S\", PhysicsUnit.rpm, \"G5\")] [JsAce(ClassExt = \"MachiningStep\")] public double SpindleSpeed_rpm { get; } Property Value double Spindle speed in rad/s SpindleTemperature_C Gets the spindle temperature in Celsius [Present(\"Spindle Temperature\", \"Spd.Temp.\", PhysicsUnit.C, \"G2\")] [JsAce(ClassExt = \"MachiningStep\")] public double? SpindleTemperature_C { get; } Property Value double? SpindleWorkingTemperatureRatio Gets the spindle working temperature ratio [Present(\"Spindle Working Temperature Ratio\", \"Spd.Temp.R.\", PhysicsUnit.None, \"G2\")] [JsAce(ClassExt = \"MachiningStep\")] public double? SpindleWorkingTemperatureRatio { get; } Property Value double? StepDuration Gets the step duration. [Present(\"Step Duration\", \"duration\", PhysicsUnit.sec, \"ss\\\\.ffffff\")] [JsAce(ClassExt = \"MachiningStep\")] public TimeSpan StepDuration { get; } Property Value TimeSpan StepIndex Gets the index of the step. [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] [Present(\"Step Index\", \"S.I.\", PhysicsUnit.None, \"G\")] public int StepIndex { get; } Property Value int ThermalStress_MPa Gets the thermal stress in MPa [Present(\"Thermal Stress\", \"Th. S.\", PhysicsUnit.MPa, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ThermalStress_MPa { get; } Property Value double? ThermalYieldRatio Gets the thermal yield ratio [Present(\"Thermal Yield Ratio\", \"Th. Yield R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ThermalYieldRatio { get; } Property Value double? TipDeflectionsOnToolRunningCoordinate_um Gets the tip deflections on tool running coordinate in micrometers [JsAce(ClassExt = \"MachiningStep\")] public List TipDeflectionsOnToolRunningCoordinate_um { get; } Property Value List ToolId Gets the tool ID. [Present(\"Tool ID\", \"T\", PhysicsUnit.None, \"G\")] [JsAce(ClassExt = \"MachiningStep\")] public int ToolId { get; } Property Value int ToothArcDuration_s Gets the tooth arc duration in seconds by the spindle rotation. The value is SpindleCyclePeriod_s div Cutter's teeth number. [Present(\"Tooth Arc Duration\", null, PhysicsUnit.sec, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double ToothArcDuration_s { get; } Property Value double ToothSeqOnToolRunningCoordinate Gets the sequence pair of transformation matrices representing tooth positions on the tool running coordinate system. public SeqPair ToothSeqOnToolRunningCoordinate { get; } Property Value SeqPair WorkpieceDermisTemperature_C Gets the workpiece dermis temperature in Celsius [Present(\"Workpiece Dermis Temperature\", \"W. Dermis T.\", PhysicsUnit.C, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? WorkpieceDermisTemperature_C { get; } Property Value double? WorkpiecePlasticDepth_um Gets the workpiece plastic depth in micrometers. The depth is at the location that the cutting stress is equal to the yielding stress. The cutting stress exert to the workpiece decreased on the depth increased. [Present(\"Workpiece Plastic Deformation Depth\", \"W.P.Depth\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double WorkpiecePlasticDepth_um { get; } Property Value double YieldingStressRatio Gets the yielding stress ratio [Present(\"Yielding Stress Ratio\", \"Y-Stress-R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? YieldingStressRatio { get; } Property Value double? Methods GetCutterDermisAvgTemperature_C(double) Gets the average cutter dermis temperature in Celsius at the specified depth. [JsAce(ClassExt = \"MachiningStep\")] public double GetCutterDermisAvgTemperature_C(double depth_mm) Parameters depth_mm double The depth in millimeters Returns double Average temperature in Celsius GetCutterDermisTemperature_C(double) Gets the cutter dermis temperature in Celsius at the specified depth. [JsAce(ClassExt = \"MachiningStep\")] public double GetCutterDermisTemperature_C(double depth_mm) Parameters depth_mm double The depth in millimeters Returns double Temperature in Celsius GetFeedrate_mmds() Gets the program feedrate in millimeters per second. public double GetFeedrate_mmds() Returns double Feedrate in mm/s GetIndexedFileLine() Gets the file line associated with this object. public IndexedFileLine GetIndexedFileLine() Returns IndexedFileLine The file line object. GetKeyToQuantityNativeDictionary(IMachiningChain) Internal use. public static ConcurrentDictionary> GetKeyToQuantityNativeDictionary(IMachiningChain machiningChain) Parameters machiningChain IMachiningChain Returns ConcurrentDictionary> GetMcValue(IMachiningChain, string) Gets the MC value for the specified tag in the machining chain. public double? GetMcValue(IMachiningChain chain, string tag) Parameters chain IMachiningChain The machining chain. tag string The tag to look up. Returns double? The MC value for the specified tag. GetMcValue(int) Gets the MC value at the specified index. For common machine tool, the index 0,1,2,3,4,5 is corresponding to motion component X,Y,Z,A,B,C. If the corresponding motion component not existed, return NaN. If MachineMotionStep not existed, return null. [JsAce(ClassExt = \"MachiningStep\")] public double? GetMcValue(int index) Parameters index int The index to look up. Returns double? The MC value at the specified index. GetRgbWithPriority(out Vec3d, out double) Gets the RGB color and priority for the milling step. public void GetRgbWithPriority(out Vec3d rgb, out double priority) Parameters rgb Vec3d The RGB color vector. priority double The priority value. GetSpindleDirection() Gets the spindle direction for this milling step. [Present(\"Spindle Direction\", \"Spd.Dir.\", PhysicsUnit.None, \"G\")] [JsAce(ClassExt = \"MachiningStep\")] public SpindleDirection GetSpindleDirection() Returns SpindleDirection GetSpindleSpeed_cycleds() public double GetSpindleSpeed_cycleds() Returns double GetSpindleSpeed_radds() Gets the spindle speed in radians per second. public double GetSpindleSpeed_radds() Returns double Spindle speed in rad/s UpdateNcOptOption(Action) Update NcOptOption for this step only. It should not be mixed with the StepBuilt event and NC inline optimization script since the concurent process may break the logics. public void UpdateNcOptOption(Action action) Parameters action Action the action to modify the step." }, "api/Hi.MachiningSteps.MachiningStepUtil.html": { "href": "api/Hi.MachiningSteps.MachiningStepUtil.html", @@ -3367,7 +3367,7 @@ "api/Hi.NcOpt.NcOptProc.html": { "href": "api/Hi.NcOpt.NcOptProc.html", "title": "Class NcOptProc | HiAPI-C# 2025", - "summary": "Class NcOptProc Namespace Hi.NcOpt Assembly HiNc.dll Provides functionality for optimizing NC programs by modifying feed rates and tool paths. public class NcOptProc : IMakeXmlSource Inheritance object NcOptProc Implements IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors NcOptProc(SequentialBulkReader) Ctor. public NcOptProc(SequentialBulkReader millingStepLuggageReader) Parameters millingStepLuggageReader SequentialBulkReader NcOptProc(XElement, string, SequentialBulkReader) Ctor. public NcOptProc(XElement src, string baseDirectory, SequentialBulkReader millingStepLuggageReader) Parameters src XElement XML baseDirectory string Base directory path millingStepLuggageReader SequentialBulkReader Milling step luggage reader Properties CoreNum Parallel computation thread num. 0 is special number to use all cores. public static int CoreNum { get; set; } Property Value int EnableEmbeddedLog Enable embedded log to optimized NC file. public static bool EnableEmbeddedLog { get; set; } Property Value bool EnableFlatProcLog Enable create log file for first (independent) situ process. public static bool EnableFlatProcLog { get; set; } Property Value bool XName Name for XML IO. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Optimize(ICuttingPara, MachiningSession, LinkedList, NcEnv, List, MachiningToolHouse, IMessageHost, CancellationToken, string, string) Optimizes NC lines based on cutting parameters and milling steps. public IEnumerable<(NcLine SrcNcLine, NcLine OptNcLine)> Optimize(ICuttingPara millingPara, MachiningSession machiningSession, LinkedList srcNcLines, NcEnv ncEnv, List machiningSteps, MachiningToolHouse millingToolHouse, IMessageHost messageHost, CancellationToken cancellationToken, string baseDirectory, string relFileTemplate) Parameters millingPara ICuttingPara The cutting parameters for optimization machiningSession MachiningSession The current machining session srcNcLines LinkedList The source NC lines to optimize ncEnv NcEnv The NC environment settings machiningSteps List The list of milling steps millingToolHouse MachiningToolHouse The machining tool house messageHost IMessageHost The message host for logging cancellationToken CancellationToken Cancellation token to cancel the operation baseDirectory string relFileTemplate string The relative file template for output Returns IEnumerable<(NcLine SrcNcLine, NcLine OptNcLine)> Enumerable of source and optimized NC line pairs OptimizeToFiles(ICuttingPara, MachiningSession, LinkedList, NcEnv, MachiningToolHouse, ClStrip, string, IMessageHost, CancellationToken, string) Optimizes NC lines and writes the results to files. public void OptimizeToFiles(ICuttingPara millingPara, MachiningSession machiningSession, LinkedList ncLines, NcEnv ncEnv, MachiningToolHouse millingToolHouse, ClStrip clStrip, string baseDirectory, IMessageHost messageHost, CancellationToken cancellationToken, string relFileTemplate = \"Output/Opt-[NcName]\") Parameters millingPara ICuttingPara The cutting parameters for optimization machiningSession MachiningSession The current machining session ncLines LinkedList The NC lines to optimize ncEnv NcEnv The NC environment settings millingToolHouse MachiningToolHouse The machining tool house clStrip ClStrip The cutter location strip baseDirectory string The base directory for output files messageHost IMessageHost The message host for logging cancellationToken CancellationToken Cancellation token to cancel the operation relFileTemplate string The relative file template for output files" + "summary": "Class NcOptProc Namespace Hi.NcOpt Assembly HiNc.dll Provides functionality for optimizing NC programs by modifying feed rates and tool paths. public class NcOptProc : IMakeXmlSource Inheritance object NcOptProc Implements IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors NcOptProc(SequentialBulkReader) Ctor. public NcOptProc(SequentialBulkReader millingStepLuggageReader) Parameters millingStepLuggageReader SequentialBulkReader NcOptProc(XElement, string, SequentialBulkReader) Ctor. public NcOptProc(XElement src, string baseDirectory, SequentialBulkReader millingStepLuggageReader) Parameters src XElement XML baseDirectory string Base directory path millingStepLuggageReader SequentialBulkReader Milling step luggage reader Properties CoreNum Parallel computation thread num. 0 is special number to use all cores. public static int CoreNum { get; set; } Property Value int EnableEmbeddedLog Enable embedded log to optimized NC file. public static bool EnableEmbeddedLog { get; set; } Property Value bool EnableFlatProcLog Enable create log file for building situ (independent) FlatExtendedStep process. public static bool EnableFlatProcLog { get; set; } Property Value bool XName Name for XML IO. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Optimize(ICuttingPara, MachiningSession, LinkedList, NcEnv, List, MachiningToolHouse, IMessageHost, CancellationToken, string, string) Optimizes NC lines based on cutting parameters and milling steps. public IEnumerable<(NcLine SrcNcLine, NcLine OptNcLine)> Optimize(ICuttingPara millingPara, MachiningSession machiningSession, LinkedList srcNcLines, NcEnv ncEnv, List machiningSteps, MachiningToolHouse millingToolHouse, IMessageHost messageHost, CancellationToken cancellationToken, string baseDirectory, string relFileTemplate) Parameters millingPara ICuttingPara The cutting parameters for optimization machiningSession MachiningSession The current machining session srcNcLines LinkedList The source NC lines to optimize ncEnv NcEnv The NC environment settings machiningSteps List The list of milling steps millingToolHouse MachiningToolHouse The machining tool house messageHost IMessageHost The message host for logging cancellationToken CancellationToken Cancellation token to cancel the operation baseDirectory string relFileTemplate string The relative file template for output Returns IEnumerable<(NcLine SrcNcLine, NcLine OptNcLine)> Enumerable of source and optimized NC line pairs OptimizeToFiles(ICuttingPara, MachiningSession, LinkedList, NcEnv, MachiningToolHouse, ClStrip, string, IMessageHost, CancellationToken, string) Optimizes NC lines and writes the results to files. public void OptimizeToFiles(ICuttingPara millingPara, MachiningSession machiningSession, LinkedList ncLines, NcEnv ncEnv, MachiningToolHouse millingToolHouse, ClStrip clStrip, string baseDirectory, IMessageHost messageHost, CancellationToken cancellationToken, string relFileTemplate = \"Output/Opt-[NcName]\") Parameters millingPara ICuttingPara The cutting parameters for optimization machiningSession MachiningSession The current machining session ncLines LinkedList The NC lines to optimize ncEnv NcEnv The NC environment settings millingToolHouse MachiningToolHouse The machining tool house clStrip ClStrip The cutter location strip baseDirectory string The base directory for output files messageHost IMessageHost The message host for logging cancellationToken CancellationToken Cancellation token to cancel the operation relFileTemplate string The relative file template for output files" }, "api/Hi.NcOpt.ShapeBasedCutterOptLimit.html": { "href": "api/Hi.NcOpt.ShapeBasedCutterOptLimit.html", @@ -5047,7 +5047,7 @@ "brief/dev-doc/release-note/index.html": { "href": "brief/dev-doc/release-note/index.html", "title": "Release Note | HiAPI-C# 2025", - "summary": "Release Note HiNc Packages Version 3.1.87 Re-build NcOptProc with stricter optimization logics (see NC優化) Add optimization logging features (see 優化日誌): .flatproc.log file output for optimization process analysis (controlled by OptEnableFlatProcLog) Embedded log comments in optimized NC file marking source lines with (src) suffix (controlled by OptEnableEmbeddedLog) 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 RuntimeApi by unifying SessionMessageHost usage Improve optimization performance with better task scheduling Various performance improvements and bug fixes HiNc Packages Version 3.1.75 Add actual time tracking functionality (ActualTime) 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 depth detection (ReliefFaceCollidingDepth_mm) 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.86 Re-build NcOptProc with stricter optimization logics. Add optimization logging features (see 優化日誌): .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 RuntimeApi by unifying SessionMessageHost usage Improve optimization performance with better task scheduling Various performance improvements and bug fixes HiNc Packages Version 3.1.75 Add actual time tracking functionality (ActualTime) 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 depth detection (ReliefFaceCollidingDepth_mm) and optimization (EnableLimitByReliefAngle) Add UpdateNcOptOption function to step processing Fix step ordering bug from concurrent processing Fix ClStrip shrinking to zero issue" }, "brief/dev-doc/system-requirements.html": { "href": "brief/dev-doc/system-requirements.html", @@ -5337,7 +5337,7 @@ "brief/user-guide/zh-Hant/script/NcOptimization/index.html": { "href": "brief/user-guide/zh-Hant/script/NcOptimization/index.html", "title": "NC優化 | HiAPI-C# 2025", - "summary": "NC優化 組態在NC仿真前設定,然後執行輸出優化NC檔指令。 可同時參考閱讀說明章節NC優化。 組態 Note 指令格式 OptEnableFeedrate = <布林值>; OptEnableInterpolation = <布林值>; OptRapidFeed_mmdmin = <實數>; OptMinFeedrate_mmdmin = <實數>; OptMaxFeedrate_mmdmin = <實數>; OptMaxAcceleration_mmds2 = <實數>; OptExtendedPreDistance_mm = <實數>; OptExtendedPostDistance_mm = <實數>; OptSpindlePowerSafetyFactor = <實數>; OptSpindleTorqueSafetyFactor = <實數>; OptThermalYieldSafetyFactor = <實數>; OptPreferedForce_N = <實數>; OptEnableFeedrate(API):啟用順序式(Sequential)進給率優化。 順序式係指該功能從下指令開始作用。與其相對的設定在刀具端,刀具端也能設定進給率優化,但是在裝刀時才會發揮作用。 OptEnableFeedrate(API)與所有其他啟用進給率優化的指令需同時為真,進給率優化才會啟用。 即與刀具設定端必須同時為真(true),進給率優化才會啟用。 OptEnableFeedrate(API)預設值為真。 OptEnableInterpolation(API):優化程序用重新插補。 重新插捕後NC碼會增加,可以更好地控制加減速。 OptFeedrateAssignmentRatio(API):進給賦值倍率。 當優化程序用重新插補並且進給率變化超過進給賦值倍率時,系統會依據OptMaxAcceleration_mmds2(API)插入附帶進給率指令的NC碼。 進給賦值倍率越小,插補點越密集。進給賦值倍率越大,則偏離優化標的的程度越大。 在改進給賦值倍率的同時也要對應加大安全係數。 進給賦值倍率若是0.01,就是1%,每變更1%進給率就會給個新的插補點。 如果改大,比方說10%,可能會變成該處理論值應該是F100,可是優化後卻是F110,所以要配合安全係數修改。 OptRapidFeed_mmdmin(API):優化程序中的無切削區域進給率。單位mm/min。 沒有切到工件的NC路徑,為無切削區域。優化後該路徑將採用無切削區域進給率。 OptMinFeedrate_mmdmin(API):優化程序中的有切削區域最小進給。單位mm/min。 OptMaxFeedrate_mmdmin(API):優化程序中的有切削區域最大進給。單位mm/min。 有切到工件的NC路徑,為有切削區域。有切削區域的最大最小進給的設定通常依據經驗法則。 OptMaxAcceleration_mmds2(API):優化程序中的加減速限制。優化後NC碼的F值變化在該限制之內。單位 \\(mm/s^2\\)。 OptExtendedPreDistance_mm(API):優化程序中的有切削區域等效計算的前長度。單位mm。 OptExtendedPostDistance_mm(API):優化程序中的有切削區域等效計算的後長度。單位mm。 優化程序中的有切削區域等效計算的長度 OptSpindlePowerSafetyFactor(API):主軸功率安全係數。 於優化後的NC碼,主軸功率將盡可能趨近於目標值。 設為0則忽略此限制。 OptSpindleTorqueSafetyFactor(API):主軸扭力安全係數。 優化後的NC碼,主軸扭力將盡可能趨近於目標值。 設為0則忽略此限制。 OptThermalYieldSafetyFactor(API):刀刃熱降伏安全係數。 刀刃表面溫度超過一定值時,刀刃表面會因溫差產生的壓力造成塑性變形。 優化後的NC碼,刀刃表面度將盡可能趨近於目標值。 設為0則忽略此限制。 Note 目標值算法 目標值 = 100% / 安全係數 OptPreferedForce_N(API):優化程中的目標力。單位N。 在符合所有限制的條件下,優化程序中的加工路徑產生的力會盡可能的趨近目標力。 限制的優先序 在有切削區域中: 進給率的直接限制 優先於 加減速限制(OptMaxAcceleration_mmds2(API)) 優先於 基於物理特性算出的限制。 進給率的直接限制 包含 腳本指令 OptMinFeedrate_mmdmin(API) OptMaxFeedrate_mmdmin(API) 刀具設定 每刃最小進給 每刃最大進給 基於物理特性算出的進給率限制 包含 腳本指令 OptSpindlePowerSafetyFactor(API) OptSpindleTorqueSafetyFactor(API) OptThermalYieldSafetyFactor(API) OptPreferedForce_N(API) 刀具設定 降伏力安全係數 若同級項目中的限制有衝突,則採取其中的最低進給率。 NC碼中的優化腳本指令 於指定NC行不啟用優化 在執行 Preserve(API)() 的NC行中,不啟用優化。 Tip 指令範例 在 N0140 行不啟用優化。 ... N0130 X-1.965 Y17.053 N0140 G03 X-2.66 Y38.193 I-103.796 J7.172 (;@Preserve();) N0150 G01 X-3.068 Y40.776 ... 於指定NC範圍不啟用優化 使用BeginPreserve(API)()的NC行及EndPreserve(API)()的NC行及包含的NC範圍,不啟用優化。 Tip 指令範例 在 N0140、N0150、N0160 行不啟用優化。 ... N0130 X-1.965 Y17.053 N0140 G03 X-2.66 Y38.193 I-103.796 J7.172 (;@BeginPreserve();) N0150 G01 X-3.068 Y40.776 N0160 X-3.555 Y43.338 (;@EndPreserve();) N0170 X-4.125 Y45.875 ... 優化日誌 優化過程提供兩種日誌功能,方便分析與除錯。 優化過程日誌檔 OptEnableFlatProcLog(API):啟用優化過程日誌檔輸出。預設為真。 啟用後,優化過程會為每個NC檔輸出一個 .flatproc.log 檔案,記錄各步階的優化條件經OptExtendedPreDistance_mm(API)及OptExtendedPostDistance_mm(API)展開後獨立優化計算的資訊(不包含步階間的交互關係,如加減速)。 嵌入式日誌註解 OptEnableEmbeddedLog(API):啟用嵌入式日誌註解。預設為真。 啟用後,優化後的NC檔中會在原始NC行後方加上 (src) 後綴,方便對照原始NC碼與優化後的NC碼。 Note 指令格式 OptEnableFlatProcLog = <布林值>; OptEnableEmbeddedLog = <布林值>; 輸出優化NC檔 使用 OptimizeToFiles(API) 方法輸出優化後的NC檔。 Note 指令格式 OptimizeToFiles(<路徑樣板>); <路徑樣板>支援 檔案路徑樣板。 Tip 指令範例 OptEnableFeedrate = true; OptEnableInterpolation = true; OptRapidFeed_mmdmin = 4000; OptMinFeedrate_mmdmin = 100; OptMaxFeedrate_mmdmin = 4000; OptMaxAcceleration_mmds2 = 10; OptExtendedPreDistance_mm = 3; OptExtendedPostDistance_mm = 2; OptSpindlePowerSafetyFactor = 1.5; OptSpindleTorqueSafetyFactor = 1.5; OptThermalYieldSafetyFactor = 0; OptPreferedForce_N = double.PositiveInfinity; PlayNcFile(\"NC/file1.nc\"); OptRapidFeed_mmdmin = 8000; PlayNcFile(\"NC/file2.nc\"); OptimizeToFiles(\"Cache/Opt-[NcName]\"); 組態設定可以穿插在NC仿真間,將會作用在組態設定後的NC仿真。 以上範例為例,優化後的NC程式file1.nc的無切削區域快速進給為4000,file2.nc則為8000。 Tip NC碼中的優化指令範例 ... N0110 X-3.064 Y6.378 (;@OptMaxAcceleration_mmds2=10;) N0120 X-2.411 Y11.712 N0130 X-1.965 Y17.053 N0140 G03 X-2.66 Y38.193 I-103.796 J7.172 (;@Preserve();) N0150 G01 X-3.068 Y40.776 (;@OptMaxAcceleration_mmds2=100; OptMaxFeedrate_mmdmin=12000;) N0160 X-3.555 Y43.338 N0170 X-4.125 Y45.875 ... N0110至N0150前,優化區加速度設為10 \\(mm/s^2\\); N0140單行不做優化; N0150及以後,優化區加速度設為100 \\(mm/s^2\\); N0150及以後,優化區切削區域最大進給設為12000 \\(mm/min\\);" + "summary": "NC優化 組態在NC仿真前設定,然後執行輸出優化NC檔指令。 可同時參考閱讀說明章節NC優化。 組態 Note 指令格式 OptEnableFeedrate = <布林值>; OptEnableInterpolation = <布林值>; OptRapidFeed_mmdmin = <實數>; OptMinFeedrate_mmdmin = <實數>; OptMaxFeedrate_mmdmin = <實數>; OptMaxAcceleration_mmds2 = <實數>; OptExtendedPreDistance_mm = <實數>; OptExtendedPostDistance_mm = <實數>; OptSpindlePowerSafetyFactor = <實數>; OptSpindleTorqueSafetyFactor = <實數>; OptThermalYieldSafetyFactor = <實數>; OptPreferedForce_N = <實數>; OptEnableFeedrate(API):啟用順序式(Sequential)進給率優化。 順序式係指該功能從下指令開始作用。與其相對的設定在刀具端,刀具端也能設定進給率優化,但是在裝刀時才會發揮作用。 OptEnableFeedrate(API)與所有其他啟用進給率優化的指令需同時為真,進給率優化才會啟用。 即與刀具設定端必須同時為真(true),進給率優化才會啟用。 OptEnableFeedrate(API)預設值為真。 OptEnableInterpolation(API):優化程序用重新插補。 重新插捕後NC碼會增加,可以更好地控制加減速。 OptFeedrateAssignmentRatio(API):進給賦值倍率。 當優化程序用重新插補並且進給率變化超過進給賦值倍率時,系統會依據OptMaxAcceleration_mmds2(API)插入附帶進給率指令的NC碼。 進給賦值倍率越小,插補點越密集。進給賦值倍率越大,則偏離優化標的的程度越大。 在改進給賦值倍率的同時也要對應加大安全係數。 進給賦值倍率若是0.01,就是1%,每變更1%進給率就會給個新的插補點。 如果改大,比方說10%,可能會變成該處理論值應該是F100,可是優化後卻是F110,所以要配合安全係數修改。 OptRapidFeed_mmdmin(API):優化程序中的無切削區域進給率。單位mm/min。 沒有切到工件的NC路徑,為無切削區域。優化後該路徑將採用無切削區域進給率。 OptMinFeedrate_mmdmin(API):優化程序中的有切削區域最小進給。單位mm/min。 OptMaxFeedrate_mmdmin(API):優化程序中的有切削區域最大進給。單位mm/min。 有切到工件的NC路徑,為有切削區域。有切削區域的最大最小進給的設定通常依據經驗法則。 OptMaxAcceleration_mmds2(API):優化程序中的加減速限制。優化後NC碼的F值變化在該限制之內。單位 \\(mm/s^2\\)。 OptExtendedPreDistance_mm(API):優化程序中的有切削區域等效計算的前長度。單位mm。 OptExtendedPostDistance_mm(API):優化程序中的有切削區域等效計算的後長度。單位mm。 優化程序中的有切削區域等效計算的長度 OptSpindlePowerSafetyFactor(API):主軸功率安全係數。 於優化後的NC碼,主軸功率將盡可能趨近於目標值。 設為0則忽略此限制。 OptSpindleTorqueSafetyFactor(API):主軸扭力安全係數。 優化後的NC碼,主軸扭力將盡可能趨近於目標值。 設為0則忽略此限制。 OptThermalYieldSafetyFactor(API):刀刃熱降伏安全係數。 刀刃表面溫度超過一定值時,刀刃表面會因溫差產生的壓力造成塑性變形。 優化後的NC碼,刀刃表面度將盡可能趨近於目標值。 設為0則忽略此限制。 Note 目標值算法 目標值 = 100% / 安全係數 OptPreferedForce_N(API):優化程中的目標力。單位N。 在符合所有限制的條件下,優化程序中的加工路徑產生的力會盡可能的趨近目標力。 限制的優先序 在有切削區域中: 進給率的直接限制 優先於 加減速限制(OptMaxAcceleration_mmds2(API)) 優先於 基於物理特性算出的限制。 進給率的直接限制 包含 腳本指令 OptMinFeedrate_mmdmin(API) OptMaxFeedrate_mmdmin(API) 刀具設定 每刃最小進給 每刃最大進給 基於物理特性算出的進給率限制 包含 腳本指令 OptSpindlePowerSafetyFactor(API) OptSpindleTorqueSafetyFactor(API) OptThermalYieldSafetyFactor(API) OptPreferedForce_N(API) 刀具設定 降伏力安全係數 若同級項目中的限制有衝突,則採取其中的最低進給率。 NC碼中的優化腳本指令 於指定NC行不啟用優化 在執行 Preserve(API)() 的NC行中,不啟用優化。 Tip 指令範例 在 N0140 行不啟用優化。 ... N0130 X-1.965 Y17.053 N0140 G03 X-2.66 Y38.193 I-103.796 J7.172 (;@Preserve();) N0150 G01 X-3.068 Y40.776 ... 於指定NC範圍不啟用優化 使用BeginPreserve(API)()的NC行及EndPreserve(API)()的NC行及包含的NC範圍,不啟用優化。 Tip 指令範例 在 N0140、N0150、N0160 行不啟用優化。 ... N0130 X-1.965 Y17.053 N0140 G03 X-2.66 Y38.193 I-103.796 J7.172 (;@BeginPreserve();) N0150 G01 X-3.068 Y40.776 N0160 X-3.555 Y43.338 (;@EndPreserve();) N0170 X-4.125 Y45.875 ... 優化日誌 優化過程提供兩種日誌功能,方便分析與除錯。 優化過程日誌檔 OptEnableFlatProcLog(API):啟用優化過程日誌檔輸出。預設為真。 啟用後,優化過程會為每個NC檔輸出一個 .flatproc.log 檔案,記錄各步階的優化條件經OptExtendedPreDistance_mm(API)及OptExtendedPostDistance_mm(API)展開後獨立優化計算的資訊(不包含步階間的交互關係,如加減速)。 嵌入式日誌註解 OptEnableEmbeddedLog(API):啟用嵌入式日誌註解。預設為真。 啟用後,優化後的NC檔中會在原始NC行後方加上 (src) 後綴,方便對照原始NC碼與優化後的NC碼。 Note 指令格式 OptEnableFlatProcLog = <布林值>; OptEnableEmbeddedLog = <布林值>; 輸出優化NC檔 使用 OptimizeToFiles(API) 方法輸出優化後的NC檔。 Note 指令格式 OptimizeToFiles(<路徑樣板>); <路徑樣板>支援 檔案路徑樣板。 Tip 指令範例 OptEnableFeedrate = true; OptEnableInterpolation = true; OptRapidFeed_mmdmin = 4000; OptMinFeedrate_mmdmin = 100; OptMaxFeedrate_mmdmin = 4000; OptMaxAcceleration_mmds2 = 10; OptExtendedPreDistance_mm = 3; OptExtendedPostDistance_mm = 2; OptSpindlePowerSafetyFactor = 1.5; OptSpindleTorqueSafetyFactor = 1.5; OptThermalYieldSafetyFactor = 0; OptPreferedForce_N = double.PositiveInfinity; PlayNcFile(\"NC/file1.nc\"); OptRapidFeed_mmdmin = 8000; PlayNcFile(\"NC/file2.nc\"); OptimizeToFiles(\"Cache/Opt-[NcName]\"); 組態設定可以穿插在NC仿真間,將會作用在組態設定後的NC仿真。 Warning 在 MachiningStepBuilt(API) 事件內使用 UpdateNcOptOption(API) 時,不能與NC碼內嵌優化指令併用,否則可能因平行計算產生未定義行為。 以上範例為例,優化後的NC程式file1.nc的無切削區域快速進給為4000,file2.nc則為8000。 Tip NC碼中的優化指令範例 ... N0110 X-3.064 Y6.378 (;@OptMaxAcceleration_mmds2=10;) N0120 X-2.411 Y11.712 N0130 X-1.965 Y17.053 N0140 G03 X-2.66 Y38.193 I-103.796 J7.172 (;@Preserve();) N0150 G01 X-3.068 Y40.776 (;@OptMaxAcceleration_mmds2=100; OptMaxFeedrate_mmdmin=12000;) N0160 X-3.555 Y43.338 N0170 X-4.125 Y45.875 ... N0110至N0150前,優化區加速度設為10 \\(mm/s^2\\); N0140單行不做優化; N0150及以後,優化區加速度設為100 \\(mm/s^2\\); N0150及以後,優化區切削區域最大進給設為12000 \\(mm/min\\);" }, "brief/user-guide/zh-Hant/script/Physics/index.html": { "href": "brief/user-guide/zh-Hant/script/Physics/index.html", diff --git a/App/zh-Hans/HiMech.resources.dll b/App/zh-Hans/HiMech.resources.dll index 553ed73..64f401c 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 6353c68..ac4ed76 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 e96211e..89c188a 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 964035b..8a5e3df 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 997e866..ac4a066 100644 Binary files a/App/zh-Hant/HiNc.resources.dll and b/App/zh-Hant/HiNc.resources.dll differ