From 4556281c0a8400af3a54340706632276074ce986 Mon Sep 17 00:00:00 2001 From: iamboss Date: Mon, 22 Dec 2025 23:35:40 +0800 Subject: [PATCH] tune --- App/Hi.WpfPlus.dll | Bin 0 -> 68096 bytes App/HiCbtr.dll | Bin 113152 -> 113152 bytes App/HiDisp.dll | Bin 11440128 -> 11440128 bytes App/HiGeom.dll | Bin 406528 -> 406528 bytes App/HiLicense.dll | Bin 81408 -> 81408 bytes App/HiMech.dll | Bin 724992 -> 727040 bytes App/HiNC-2025-win-desktop.deps.json | 136 +- App/HiNC-2025-win-desktop.dll | Bin 861696 -> 860672 bytes App/HiNC-2025-win-desktop.exe | Bin 209408 -> 209408 bytes App/HiNC-2025-win-desktop.pdb | Bin 326924 -> 326540 bytes App/HiNc.dll | Bin 362496 -> 356864 bytes App/HiUniNc.dll | Bin 180224 -> 180224 bytes App/en/HiGeom.resources.dll | Bin 4608 -> 4608 bytes App/en/HiMech.resources.dll | Bin 4608 -> 4608 bytes .../Hi.Common.FileLines.FileLineIndex.html | 3 + .../Hi.CutterLocations.ClStrips.ClStrip.html | 100 +- .../HiAPI-docsite/api/Hi.Geom.MathUtil.html | 46 + .../api/Hi.Grpcs.ClStripServiceRunner.html | 8 +- .../api/Hi.Grpcs.PlayerServiceRunner.html | 11 +- .../api/Hi.HiNcKits.HiNcHost.html | 31 + ...ningEquipmentUtils.MachiningEquipment.html | 73 - ....Machining.MachiningVolumeRemovalProc.html | 44 +- ...ocs.DynamicMachiningProjectDisplayee0.html | 48 +- ...Hi.MachiningProcs.LocalProjectService.html | 2103 +++++++++++--- .../Hi.MachiningProcs.MachiningActRunner.html | 221 +- ...chiningProcs.MachiningActRunnerConfig.html | 627 ++++ .../Hi.MachiningProcs.MachiningProject.html | 1534 +--------- ...hiningProcs.MachiningProjectDisplayee.html | 111 +- .../api/Hi.MachiningProcs.RuntimeApi.html | 6 +- .../Hi.MachiningProcs.RuntimeController.html | 42 +- .../Hi.MachiningProcs.SetupController.html | 8 +- .../HiAPI-docsite/api/Hi.MachiningProcs.html | 12 +- .../api/Hi.Mapping.StepTimeShotUtil.html | 8 +- .../api/Hi.Mapping.TimeMapping.html | 152 +- .../Hi.Numerical.FilePlayers.CsvRunner.html | 8 +- .../Hi.Numerical.FilePlayers.NcRunner.html | 75 - .../api/Hi.WpfPlus.Disp.RenderingCanvas.html | 2196 ++++++++++++++ .../api/Hi.WpfPlus.Disp.RenderingWindow.html | 2374 ++++++++++++++++ .../HiAPI-docsite/api/Hi.WpfPlus.Disp.html | 133 + ...HiNc.Grpcs.MachiningProjectGrpcServer.html | 22 +- App/wwwroot/HiAPI-docsite/api/toc.html | 12 +- App/wwwroot/HiAPI-docsite/api/toc.json | 2 +- .../custom-implementation.html | 2 +- .../rendering/rendering-canvas/index.html | 4 +- .../brief/dev-doc/build-hinc/index.html | 2 +- .../brief/dev-doc/build-hinc/main-panel.html | 2 +- .../mech/cutter/milling-cutter-panel.html | 4 +- .../dev-doc/build-hinc/mech/fixture-page.html | 2 +- .../build-hinc/mech/workpiece-page.html | 2 +- .../build-hinc/player/player-tool-bar.html | 59 +- .../player/selected-step-info-panel.html | 4 +- .../step-present-preference-page.html | 12 +- .../session-message-panel/index.html | 8 +- .../dev-doc/general-hinc-workflow/index.html | 4 +- .../brief/dev-doc/getting-started/index.html | 2 +- .../HiAPI-docsite/brief/dev-doc/index.html | 8 +- .../Sample.Common.DemoSessionMessage.html | 10 +- .../brief/sample/Sample.Disp.DemoUtil.html | 2 +- ...ing.DemoBuildGeomOnlyMachiningProject.html | 16 +- ...e.Machining.DemoBuildMachiningProject.html | 12 +- ...Machining.DemoMillingByCutterLocation.html | 46 +- ...gMachiningProcessAndStripPosSelection.html | 12 +- ...ple.Machining.DemoUseMachiningProject.html | 26 +- .../cpu-usage/geom-quick.png | Bin 0 -> 156462 bytes .../cpu-usage/geom-slow.png | Bin 0 -> 259095 bytes .../theory-and-technique/cpu-usage/index.html | 136 + .../brief/user-guide/zh-Hant/toc.html | 3 + .../brief/user-guide/zh-Hant/toc.json | 2 +- App/wwwroot/HiAPI-docsite/docfx.json | 2 +- App/wwwroot/HiAPI-docsite/index.json | 121 +- App/wwwroot/HiAPI-docsite/manifest.json | 80 +- App/wwwroot/HiAPI-docsite/xrefmap.yml | 2515 +++++++++-------- App/zh-Hans/HiMech.resources.dll | Bin 13312 -> 13312 bytes App/zh-Hans/HiNc.resources.dll | Bin 4608 -> 4608 bytes App/zh-Hant/HiGeom.resources.dll | Bin 4608 -> 4608 bytes App/zh-Hant/HiMech.resources.dll | Bin 13312 -> 13312 bytes App/zh-Hant/HiNc.resources.dll | Bin 6656 -> 6656 bytes 77 files changed, 9248 insertions(+), 3996 deletions(-) create mode 100644 App/Hi.WpfPlus.dll create mode 100644 App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.MachiningActRunnerConfig.html create mode 100644 App/wwwroot/HiAPI-docsite/api/Hi.WpfPlus.Disp.RenderingCanvas.html create mode 100644 App/wwwroot/HiAPI-docsite/api/Hi.WpfPlus.Disp.RenderingWindow.html create mode 100644 App/wwwroot/HiAPI-docsite/api/Hi.WpfPlus.Disp.html create mode 100644 App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/theory-and-technique/cpu-usage/geom-quick.png create mode 100644 App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/theory-and-technique/cpu-usage/geom-slow.png create mode 100644 App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/theory-and-technique/cpu-usage/index.html diff --git a/App/Hi.WpfPlus.dll b/App/Hi.WpfPlus.dll new file mode 100644 index 0000000000000000000000000000000000000000..56ac357e7d025de197e68e9de9dcd9097ff93af7 GIT binary patch literal 68096 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%0DnOau3uM~CS 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 a`Q7jXUp!-3>M|h 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 literal 0 HcmV?d00001 diff --git a/App/HiCbtr.dll b/App/HiCbtr.dll index 1a4d771f83c8bf0dafcddd622eecda3a748b44c6..58bffa8dc620a64154f6047ee5bfc7d240ec6e87 100644 GIT binary patch delta 16898 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 delta 16899 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 XDxmVu9oLIIBO9NTzXbnB53l?$YZSd1 diff --git a/App/HiDisp.dll b/App/HiDisp.dll index e0754a8632ba25321615fd0a479ba72ce38751a4..008de6f1c460da907bded3a5e7962e1ff95dffcc 100644 GIT binary patch delta 1655 zcmb7CX>3$g7`=Cv3zc!EZ~ErFH^Wwkc8Wk@P{eTsryENPC@KnyE#Q&u zu(-gp46?X@!)+T0nioNW{J~!u6%wK(k`RBI82_l47`<%l?b z4d9L7VDKhz2zWC%6dVQ)2X6sKfFr?M!BOC7@HVgv90QI8%fZ{habO6%0}O)^umUu| zC|C)aU<|ZC8+5=pm;lFv6Tpe!ByciV1>OlJ!6{%hSOccOT5u|O7dQ=^4$c7Uz?tAI zFb&QI?*{Jy=YaQubHV$-40u2I0QeyI5cn|o2sjU%4?YTJ!FsR(Yy_LYW^e(x5L^T< z23x>Za0$2+Tn0V{J`OGip8%f(p8{8aPlL~ZE5TLZv*2^!YVdim4QvP3fNQ~Z;0qwY z7s2)525=*|3ET`4+yZU|w}IQim%x|7SHM@n9pFyT1z!U@z+GSt+zq}C?g96L`@sF+ z8{nJZTj1N^0q`LB&il+SJ|3X(emb6Sm-4W;@1F$$VNa_r5%t z|F~41a`&IkXJpvDcv`DX?zA%+=yjaQ{~C~AxE*J8a7=HP$u21m7pdioTJWkG+hf9=c|R{z{ZGh@TN3F^$+R~!(isYjHtkf@ zv8pS>2{UPiW403u#}lb3;aJ?Rt~N|7T5BC#VRXv%xoD@Ci*}8jHL4~ROV&nBD_m3S zB(*US4<~DEGi=0d!%WyI!*IW8>l&T9y3dNQ_Fsx9Ns5R_7Q!9ro#|l%zngw|(7Q=> ze#~62uD$C*BJM;CA!1Tgn2~5C?u26XO|i!2M#suVo%&|8(n&;(rnqey4VG2um{B{M zHL`Zh@tTiz)qK_`qhF){C^O!XP2D*u9WTx9jGW_$kcf$T(WL*4qFFCTSRyN;8tXMT tMWv1snj6{^7q(Um(V#t6A!F){t^HZ8W_1)3j(c%Sx1~3z*xLQM{0%elFRK6m delta 1655 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 HBX$2D!=zYc delta 127584 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 HiH83HxLF-i diff --git a/App/HiLicense.dll b/App/HiLicense.dll index cc8b9d8161fdc005e37f250c12aaa867aa3e59c2..9232c727f888ab945ac64fb140e10be9c9db894e 100644 GIT binary patch delta 315 zcmZqp!_x4FWkLswVD7&i8+%S@G5Svq)$U~U-+W*Dq@jR^PQ-EUyWH;G#i#6+x^CID zc}HwCr-h}S0Rw{xBZI!No}r$(rFNP@s%4s)d7@#WQL<60S(2G~nz4COicw;cnSrUX zVVaqdv8AD*g~4R+^g@;(NwtTQ52ObO>}y?jvpK2FW1W)mGB=gK5t9`%+!UaKC-k6# zAk{+i))+W+F1hS;K;`3hMjOTs#?5?LbIx)4GcYnRGcYjtZ{KXe7|zIOxt-gJF_|&g zl0lmxjlqB+mBA87n=zO(Br+HRu@OTu5T^n~lE9*A48}mYB!(2AXd+n5fWZ_fW(d}0 h1Y}tP*@g@j3xpK+oA8vr&ITJ8V< delta 315 zcmZqp!_x4FWkLswRNCKn8+%S@G5Smn)$U~U*?eF7q@h3|hr_ywDdzqw7~@topYW02 zydyT6)51*8fPuk;kwM>B&rr|YOxx7JEZNN5+&Im^B-J>@DA_bEB`w)B)hs17#njT! zEIB#ZG{q>gh`!N32zfe!DgFAF-iGukkAFmC3{nsbiRhk=oSnSp`9XZvOg#&AYPv+dkgjLD3_ zW(?X4rVIuQW(>(dYz~CR3~4~V2}3H7mBL^I6gLHmqyRC9l?qgq0why_Y)b}1u)bul e3`lJvP$X^oL2E`+Rx<`Y1_O`_{xeQAU;_a8e_r4K diff --git a/App/HiMech.dll b/App/HiMech.dll index 86462d8638c59c85d45903b7399c48d971d0437c..2dd45187d32f5c116e0210a9dcfa2791b7fc0944 100644 GIT binary patch delta 308532 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 delta 306399 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 R3A*reVH!H{ykh#pG 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

Si04_b?SkU(n}CCI#9PO5mNAy@#-{`! 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 diff --git a/App/HiNC-2025-win-desktop.deps.json b/App/HiNC-2025-win-desktop.deps.json index 587fa0c..40ddea2 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.80", - "HiNc": "3.1.98", + "Hi.WpfPlus": "3.1.85", + "HiNc": "3.1.100", "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.80": { + "Hi.WpfPlus/3.1.85": { "dependencies": { - "HiDisp": "3.1.83" + "HiDisp": "3.1.87" }, "runtime": { - "lib/net9.0-windows7.0/Hi.Wpf.dll": { - "assemblyVersion": "3.1.80.0", - "fileVersion": "3.1.80.0" + "lib/net9.0-windows7.0/Hi.WpfPlus.dll": { + "assemblyVersion": "3.1.85.0", + "fileVersion": "3.1.85.0" } } }, - "HiCbtr/3.1.82": { + "HiCbtr/3.1.85": { "dependencies": { - "HiDisp": "3.1.83" + "HiDisp": "3.1.87" }, "runtime": { "lib/net9.0/HiCbtr.dll": { - "assemblyVersion": "3.1.82.0", - "fileVersion": "3.1.82.0" + "assemblyVersion": "3.1.85.0", + "fileVersion": "3.1.85.0" } } }, - "HiDisp/3.1.83": { + "HiDisp/3.1.87": { "dependencies": { - "HiGeom": "3.1.76", + "HiGeom": "3.1.79", "System.Configuration.ConfigurationManager": "10.0.1", "System.Drawing.Common": "10.0.1", "System.Resources.Extensions": "10.0.1" }, "runtime": { "lib/net9.0/HiDisp.dll": { - "assemblyVersion": "3.1.83.0", - "fileVersion": "3.1.83.0" + "assemblyVersion": "3.1.87.0", + "fileVersion": "3.1.87.0" } }, "native": { @@ -1650,7 +1650,7 @@ } } }, - "HiGeom/3.1.76": { + "HiGeom/3.1.79": { "dependencies": { "Google.Protobuf": "3.28.3", "Grpc.AspNetCore": "2.66.0", @@ -1661,8 +1661,8 @@ }, "runtime": { "lib/net9.0/HiGeom.dll": { - "assemblyVersion": "3.1.76.0", - "fileVersion": "3.1.76.0" + "assemblyVersion": "3.1.79.0", + "fileVersion": "3.1.79.0" } }, "resources": { @@ -1674,27 +1674,27 @@ } } }, - "HiLicense/3.1.76": { + "HiLicense/3.1.79": { "dependencies": { - "HiGeom": "3.1.76" + "HiGeom": "3.1.79" }, "runtime": { "lib/net9.0/HiLicense.dll": { - "assemblyVersion": "3.1.76.0", - "fileVersion": "3.1.76.0" + "assemblyVersion": "3.1.79.0", + "fileVersion": "3.1.79.0" } } }, - "HiMech/3.1.89": { + "HiMech/3.1.92": { "dependencies": { "CommandLineParser": "2.9.1", - "HiCbtr": "3.1.82", + "HiCbtr": "3.1.85", "Microsoft.CodeAnalysis.CSharp.Scripting": "5.0.0" }, "runtime": { "lib/net9.0/HiMech.dll": { - "assemblyVersion": "3.1.89.0", - "fileVersion": "3.1.89.0" + "assemblyVersion": "3.1.92.0", + "fileVersion": "3.1.92.0" } }, "resources": { @@ -1709,20 +1709,20 @@ } } }, - "HiNc/3.1.98": { + "HiNc/3.1.100": { "dependencies": { "Google.Protobuf": "3.28.3", "Grpc.AspNetCore": "2.66.0", "Grpc.Net.Client": "2.66.0", - "HiLicense": "3.1.76", - "HiMech": "3.1.89", - "HiUniNc": "3.1.86", + "HiLicense": "3.1.79", + "HiMech": "3.1.92", + "HiUniNc": "3.1.89", "System.IO.Pipelines": "10.0.1" }, "runtime": { "lib/net9.0/HiNc.dll": { - "assemblyVersion": "3.1.98.0", - "fileVersion": "3.1.98.0" + "assemblyVersion": "3.1.100.0", + "fileVersion": "3.1.100.0" } }, "resources": { @@ -1734,14 +1734,14 @@ } } }, - "HiUniNc/3.1.86": { + "HiUniNc/3.1.89": { "dependencies": { - "HiMech": "3.1.89" + "HiMech": "3.1.92" }, "runtime": { "lib/net9.0/HiUniNc.dll": { - "assemblyVersion": "3.1.86.0", - "fileVersion": "3.1.86.0" + "assemblyVersion": "3.1.89.0", + "fileVersion": "3.1.89.0" } } }, @@ -2222,61 +2222,61 @@ "path": "grpc.net.common/2.66.0", "hashPath": "grpc.net.common.2.66.0.nupkg.sha512" }, - "Hi.Wpf/3.1.80": { + "Hi.WpfPlus/3.1.85": { "type": "package", "serviceable": true, - "sha512": "sha512-bSnCWI2pi1tgFs08TD7u3PfRsgbrZ5pMIW7U7WOiPkGIt47qBp3aO/kQzI2DGMrMtvwK4kzeXobxeBLaKDdIgA==", - "path": "hi.wpf/3.1.80", - "hashPath": "hi.wpf.3.1.80.nupkg.sha512" + "sha512": "sha512-4UtxDBFWWkGp7eEJEvDGmzuTfqh5+G8fekoRy6x2Tx/u74CvQ9/m9JQR31l1boOj7tMwuKBb7qzAB4oPc6xbgw==", + "path": "hi.wpfplus/3.1.85", + "hashPath": "hi.wpfplus.3.1.85.nupkg.sha512" }, - "HiCbtr/3.1.82": { + "HiCbtr/3.1.85": { "type": "package", "serviceable": true, - "sha512": "sha512-Y6jjgAaOKTYzPTewRMHTxQp9jrVRCy24BFesrhDlIALgmAWqb9uv45zZ/uDPZOgy2Aiopqk0nVgKuN0MNGLBGQ==", - "path": "hicbtr/3.1.82", - "hashPath": "hicbtr.3.1.82.nupkg.sha512" + "sha512": "sha512-lnlggQGN+nAEOaR/IB49twaMUyoJkzVCd2Q/tB/9c2BjD3i+/smefMNJLLJo03apqymv3y2GCjx/n8ALFMghjQ==", + "path": "hicbtr/3.1.85", + "hashPath": "hicbtr.3.1.85.nupkg.sha512" }, - "HiDisp/3.1.83": { + "HiDisp/3.1.87": { "type": "package", "serviceable": true, - "sha512": "sha512-BD0E2wyn5hT7af3yvt+Uea5nVzx17za9jTQnyvU31LbiIradSI2074gbi83ZFxlNJptLSAvGQOQkEFRbwPNRwg==", - "path": "hidisp/3.1.83", - "hashPath": "hidisp.3.1.83.nupkg.sha512" + "sha512": "sha512-TnyzwHq9Gk5vfwTtmSsY1mS4QEnPeuTSNwlAHQgyb0UFzpNG9fDqZN2kc18gITuRiA2kEFsLjx2/wJ62dev/Gw==", + "path": "hidisp/3.1.87", + "hashPath": "hidisp.3.1.87.nupkg.sha512" }, - "HiGeom/3.1.76": { + "HiGeom/3.1.79": { "type": "package", "serviceable": true, - "sha512": "sha512-vj75uMBK+CjjSIoCcmq8+xXpRy+7Q6jzKDD7Qe+sh6dpLwBhJgF8BUzQoNSDQBrwDTNqeYl2ypgzgYwBXIOm4Q==", - "path": "higeom/3.1.76", - "hashPath": "higeom.3.1.76.nupkg.sha512" + "sha512": "sha512-37LUVgA69aHxAIpvchlSNpgLossHyxwDR/ycjzLnsrP4DVq5a6v3oOZRqOxNmweTy81nI9f09qECfSGXjjkLhQ==", + "path": "higeom/3.1.79", + "hashPath": "higeom.3.1.79.nupkg.sha512" }, - "HiLicense/3.1.76": { + "HiLicense/3.1.79": { "type": "package", "serviceable": true, - "sha512": "sha512-BC8mjOxEctAnv8K8h4In33VFO/FSjfVygOAONfNkpq2ltNQyjK9/eKeNQRUaZgdMBIW0D7o5tVE+NnOLEEPkhA==", - "path": "hilicense/3.1.76", - "hashPath": "hilicense.3.1.76.nupkg.sha512" + "sha512": "sha512-WuGefE+PtY45Y4fCAxFBCjK0ARqVlq7giCRLyBIVObWNp3d+wMDUAm+YEQiV1ZO5YUn59KXzMROqijcc5vrGDA==", + "path": "hilicense/3.1.79", + "hashPath": "hilicense.3.1.79.nupkg.sha512" }, - "HiMech/3.1.89": { + "HiMech/3.1.92": { "type": "package", "serviceable": true, - "sha512": "sha512-QeqGLOF4V6HMHt1l/ZCiONUfDvm97NYxFJd3ujGzGG12susy0nw+t9UCLKUHjm+yaFUEDghnitY7rtMpICjKGw==", - "path": "himech/3.1.89", - "hashPath": "himech.3.1.89.nupkg.sha512" + "sha512": "sha512-mmcySxSYExQltMhGM9uOgYwjAq/00AkRfyXK3ICS9UXNCRO88ZCKSFb2CyTifwmR/z3lpzeo4evigS4K5Ifqpw==", + "path": "himech/3.1.92", + "hashPath": "himech.3.1.92.nupkg.sha512" }, - "HiNc/3.1.98": { + "HiNc/3.1.100": { "type": "package", "serviceable": true, - "sha512": "sha512-6WwDmWOHTnfxGZU6jK1Y5omyKJ5TdXHp2hWgXot+7fxSyp2nEbWEB1a2iXA4vt/CDpgXmGjJepWBuGT3fZU2lg==", - "path": "hinc/3.1.98", - "hashPath": "hinc.3.1.98.nupkg.sha512" + "sha512": "sha512-00K/GmJUT4+uR8E2lUOx46Q7/VYXZKVdCUz4aVKmGLMeTlrT0r6Qaw0cd3PaYGKCGDCu6KLyoUHPkjv1qCvYPA==", + "path": "hinc/3.1.100", + "hashPath": "hinc.3.1.100.nupkg.sha512" }, - "HiUniNc/3.1.86": { + "HiUniNc/3.1.89": { "type": "package", "serviceable": true, - "sha512": "sha512-PbDnEUTSElvZgGWZ6CbbU7iboDQaq2lu1xC5WpA16R2toL0FdR0DwetH4FPsM+RiOppRcuKibZ2Kx/CTeh10qg==", - "path": "hiuninc/3.1.86", - "hashPath": "hiuninc.3.1.86.nupkg.sha512" + "sha512": "sha512-MkwJD5YYlcDyYqVErz2Q9v7aIincPpetME9SvgL/Qlj0YP/VQMVF6C8HCAdZHorF6Wv5Qgl1vKoVhctWqMA6fg==", + "path": "hiuninc/3.1.89", + "hashPath": "hiuninc.3.1.89.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 e342e3b7bbe4a391c3161b4ad346d12df4df62ae..d5ab1f38711688407f25104716a44815e6ef5d3d 100644 GIT binary patch delta 233618 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

rq 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�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 delta 101 zcmZp8!qWgmEsQNpTbONh{Zkk$7)%)q84?*%7}6Mw87zS;V+J#ZBp}ZeD3%1qX+Sa= ls4@vCW(g#d7z`MUfU3-ZYEyu0bD*pN5SwrB)@3eb0RUrc6QlqD diff --git a/App/HiNC-2025-win-desktop.pdb b/App/HiNC-2025-win-desktop.pdb index 0019fd820ebb468a7a9d8476b59cbc43e26e60aa..f464a1192dde57ab6c31934269d9d4a454ae893d 100644 GIT binary patch delta 92969 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%0Dguiht$aySz8VSPKJ4 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 ZSehIKj?H6g*dZ~94a{ST=n(?p{{ZB&A5Q=P delta 93591 zcma&P1;7>67xuf)oT9tCySt=bxq-_Z^sLuisj0$LyIiGiOe`FWt=g(mz>Wsn+w%cg7Tb+L-g- z8`Cob?9QV{KJwV0Q3j8OzZ(-lS+q-M(**V;+ReMPY=UwZxJ9OjDcbna$NPb&x6Ae0 zhn0G_ne^n23agJV82^jO_~EQqvZcR;*qEp>YvRTfne~3o@?%2A6oj(^meyFxfh#&N zP%icgQ`nZT&HAfsYSz4jCF}aqp{Wtq!O%h`57aSx$Iw0vbxiJwv@1g$b73;=|DcYk zGmUm9sADR& zb&bOwrP`YnKkWfIlk`Vig(aRF(E%sAImY zMf*I|F+J>lz~A|$E+Pmdk54p^~Tcf1a-`l6KTH$#hOi_y%g%0AD^dv3+k9T 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

tyHTo#Z{f= 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 Ays8a<&L?tGw< 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 literal 362496 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

luujDElRYaEV9|A7bHZPj<7L22BR+V7`QuI z9$DJ1B**&vG}U`FWnvq-%C|`V!qJ@)f1&$P%U_uI3v&U+zf`_h{a~Bv|IRcN<6kKe zs^fG8h2Q;el*7gqNmd4}tPI?bTUoha5&YV+((;n^!~bXTD8|20MAEu`dA@(SLXMs4 z+flh^H1&`^g5Qc7^LL5)dzt6(rs^NC{#pE3p=#p zt+n0ynh&Kj{uQIjc&BH(q|8k!XZ4NVGyhRq2)#heL84%nJ?#D65RK|_;-$qCQcvl|$y-v`R|P$Efyhv6QK zyRAFd8R2&lmrtlpH+IFlbyp)nV>j$RZmsE-yWav?03#XIk6|b!>^Ywr+VgIo%H1t} zd+?1PFosVQVAE;^_~0Xj;AaAV0!_thtdVC8wOYNZj*O9pKahs{6G^A`AD$$hHqtPn ztOjV~fuj$tc|U=jefg-RTf|ED;Dmb!rlu={T@dzU5zj4ge+CxDRKs?iacS6WzZ4i8 zb+1&r9^5NEm2~@k5#g9e2&bI{a0kLH!#%^}Bryf|7sF|<=$=J|!XGVennh8vnrwAN zYtRidS75q&&F>}*PANRvM-b>l4is5=y(P0|)+va$Ves9N(h z`-PN`dhGp$XBWg|mvV&hv|J;OeTIzU{JcZmPs{IRd50Dzk_~xANUU=%ia6)Gvd#4> zxk!ZhE5@&GcOvv~3wYPnNVCZf>Ks-Gmf{a4N?Jxm4!s zJ$VPBr+jj5$>VO#JKon$_XSnu@ySrg zdU7a)IvEOiP7d|SJPMIb4uxzc^Mwp1heFt5>lj~yZ2LO?Y#YVr+FVFkGFHe}@|k9$ zkK@RoZJc@;V4#f&T^TqN# zhho{Dp;#*CP^_6V6eDF0#WE{HvChh&ews(IfXbm*K4rdG?Bq}^Su)fw+fcvCqnN+u zd@+g4eBIrKV#b)Em^S8oF?q~T%n@@a=4%;>`A`nUAd;b&#pF;-K{C{XZ760N8H$NP z&KFaH48^dWLotqKD8|7Yih(dgF+k-|3`-e`;VFlrtItsXZbSVikD6^m{Wp(7H&2e? zqBd8M?~=m2qnLMe$dT)nC2h*PP2_|Wq185eJL0lvTGhX^%~g>r?d~Kx$p|$tBUDIb zPxmnoVt$FJrP6#Vq&de43dZ&8M5Ww0WSJn>@K=^&r`kT&**&if6pI zE!-t??b}MiKwK3dm*zgX(>P0BmBo3W&1H-GR>B9{a6@us-OaF^DbHnj$4K6>T#gpU z6>?=fwrWGJY)6jDnFg?R-m#4w+K(&ht((IAHs4gvG2c`MbLRKyB`eUNp^Oe1%I2V< zOpdjnSm+e6{BsKU88UqS2Z3X1Zl{0+j&oLy1`>C963*SLUOSO$0!TgN`)O6a8K?@Sbv|x#)tz8Xc{z>tm8S5b* zBh%h@6w{C^6Ay*%1g86weL2*Ctz9N^5If|VUJYfrQu7qanrtayEGCT5G9zdxsVs69 zlN~n8P(EvY^kvZm4dpQClA(p;ctYVJa6#i3P`PuB-$ZmmEfSRV2i?Pb-34>~*_pye z^2c;uypnT`9Wfo1Ny9e)RLi;Fa#f{xP2lcAM$>#YnAU{?kp*rER}cdCFr><3?QtK8 z`Dev{z908z=p0=jM}&VOp^r9^(K}31{Q1^PSrm0>-BQ_79!Pe==Z4|;#a9=~>-@fW z8q-)YrK?c1IsPD5ih8je)cS`&p`T8XcoE&|#K`oqO6$sC#>^3WyUV8|va_gvAsvI9 zb5mRux4``q&oQe@{~mc4D)qtn_Zr<6tV8Y&=<1*4<50Q9K|-4R6fKrxwFjxe455ZS zW#@j8+Dh)18J}O7m3CO$j2<0-@Z0@br1w+3`#Xm0f!oc!aP@kSQLxuipj_>^!O_&v zMNCDnWuZIjM)Lf@sQV4f)Rl24xi50PSkh%FLqnz8UJ;HzPZsr{K@Bl-WesAEg1Z}U zo$j}M%XU2YcZ$;qpe=LU@8wiB`P5`##|$wEFv+U_l_b^~s5q1T2L)@#sTrs$F#{AQ zCoPGcE`!t=sw!hcF=G^um!xIlsHt2ax+jhKmXZFFyB8PtE1OE#y=m&UaK&b&`(sMz z?rYiZPi_7@Ga1FX)I#At*0B%pAHlA*ES2#ARi18D#^(=Ru{|(uV|-1!9J*<7L;X;` zUS|AMG2xfi<~n{DPyVf%`vAekM?spnA57h?6Wf9Nn+PSi7lOAGYj?bS{e+i$zWbV09noZMo&i~B6_2*n*Dg2c-n$DA+M|0LZ=_E6k zHcvEjlLtFmv*tr``T0H{o%-=i$MQ(8NP7&*R{raTJcJ&TyOy7P2x! z8Hz*e7q?c49^n2;Hu&DB&NQepaR%ct#iA=)?r(Ad`lRIHWubxgLT`_}u8nQc`( zdL)NNy@7%>GKH8U8_to5i{fc$dl|6A!+=*r6JKKV?gBCW95TnYw2s3v8x1SMD+qFI zMi@sS)EqIEq_Ux*#wIXkc~07Q_u$9+ZpY-W(z>_x57HSpL;i!@8*)qrD>1uA?Bbsu z#caXoPMf;_N#73>D6Ob$V9a>oKQ@XycY^+rcb(>xkVtftYewcDG{$ z0;AH7+c5&!TR=hKWHIKKaM&K+{$efXhq+f%nIwojqXh|!UlO|o2`rKW8ZWhGp;jgL z300XxyMM@G+<%cj@i<|wxxgZ%dhL-6o-O1g>kk!=$8hB^!_Y{|?pV0^hoE?WM&bI_ z;O*u54)C8SwNqv7!RJ=VQ$_7m%7v7d?2)IkG=+NWN#{(e0~OOKt+wivmPuaSwl=YY z&&SZ3ajdMJ>M^@dNNv%8@x%LWp*3vp9dC-B2c_QB?icc=-lOGBX%DSKNxca@$6IUO z&3>kzi>j;Poi=e&R>pNT4PJ>JfE^oGLl`q^m25%z-0S+m;6wX(!9@g93vp4F;%^X-__ip(GOuWd%2spZiryHXc&cUFS+)s26Bh)JL7+40M(NkIG2#E4 zOtp2#_<*f0>WtGo&=WsX#!!4D22HfYx`CyBIQZkcdSL0M=o1VQl3xnT_Qh-@T z+#&*D4i^?)VYx|uZvBPR3k9POTmZHyN_s;|GDQ7P=t9M-gflMlv1n}NI#Vn6CZgSm zLY*Tc6-R5Tjfbu{$BVAQdmq^Fu!lT+1s0AeEh}{5qJ3SaqV{vUfVUurub|>Gx6L9E zIF;n(J%HZiPqAQ`h(EDN$IP&onY+qi|Xd@ z28Dn*%LMoW$K<@?R^ymHolKjJ_Q6^Y0dj<%5Jy~xvYWJpg#&%kG>$5hPn(m;)-&fa zd2WvFEzY?dyT*dGJhCp_Y=P6IeoM1`H2YCNRwK-E@VwxC-iL*@^hq0lI`egyGfJA> zNmzp`P4s@)r_ZrOpMWzjm#nQJ;`(1sHn{SPv|ThOsAorQ!TYJ<1z1~BWV?5;0^$5 z@{hD5$qFoRPZeX|!3<}m61aoscv|LK`5(Ba3rR~)yQUG>%IUxzG6%WbwemD@hY9&( zL^Mg5D_kr00(S(+>6cO;ZOP+X-SdIfPf{;6BaEw(mx{3jj4|1DFNCnJK_50Mx>b!YlyP#tmQ=0BU*$ zFbe=RKm(WsfSREJ%%bw`DBNMCt2N30)%{9q%sJDKIeV)#EABvwVu3N|AOqW2qH(I- z&(m6dgnNeP$COF@p7AKSL)&ol4jTJ*r||K2c!Dby)}{F!y5+4_cp}`VUqb2RD&@&| zsXxyur7#ZRwSO|%JrfKf)v(Ul)QUSYb#d6J;*OSUr~30SW>mRtu-RY01G4Z!tF;=@ z&P{8CSpb}u0?e`@a4*1btk$i?>1kp#II-<$zvC2>iKREC9?YUT71&#~w<-Pg^>}EC zcc6>hbmd&+UW3nOL$LauvQEotgG0JzWuolwi~k?`C%<2)7)stfmgciNMUn6GDM85% zF26;Q$+8u0darB63NOFbJY${2t_#^?f0Pk34n7 zCsP@_Yuk{OEI=zgrOv)$ydMM{Xzb){)c#oGr|?l;LooG2e-oHil-vZ?0@&Y;*uJpS z5q7kwa9+@8662|*p;lOOD zlbTZT;p+n3~N_a|Ea1!$eiVRtSVt}kb5#&7K4+yJd>52~_S*0O&5oug~PYc`^#D{`d^IahI zw}a~`xtC+4+a$VNs`IaFkTL4X#={`)@2K(SSbVswNC@5uIh!j-;KX<)Mmc^K-}p#A z(2?HC)VH@Ri3WG>s&??KVn@6`pq~Z}nl{PI2{Eh$N_Il8hJ5sBmn^Jg(;`wsYk@C>HILojnG7Z&&oO~xNphu`c z4WZ0b!o*S)fHHd-epcVYr{pdnYuAXsx2A=%fdp*)opwpflP~q9=8K^m9}6meHlLuO zdX&%IB2U@pa#w){)nfCtGJWl$5tWkM6%>iiCYib1wYpfe+${}Q`^hp{_0?yxPFh+f z@2R&mlXH?5o`utPPBH_x%f@;O-}_}t9;Diy?fJhBm-QfKp$B=bRao1Xw;lx0)h&?S z%+O(qp8%qNcpV0Nq_feRu+)zut6Z5x8|cmRL2sE4dTTofnf*0D5(&t~)ZhB?aMhjf z99;K47J@UPEeL;Q3qCS^wGvE!)LXcZxr-E?05=*mn)s-sXGs`7kIqpT33H!GF9G5+Nzr;KE(?!^K!HxU zTH7Vs>iCge7fnQ?m7NAsukPH`SB;)c(Mi&99&m0B@g1v7eQ{!T`iBU(W=o$|5?%u&?xHPBzbyfOrVSjwRzCk0n6GehahUhW_DRgk8@0eZC)k$%6w9PU z>&vUjfBoDzZD;09gf=i6eN2H}tytXvU^e=O+}GfCJ@B1*bB^i_8PzvMb*-ovjA}D) zfogbK9NiA^o|dm^0qfU6Go$n-Xym2y&`S5jRhv}=zM;PnPn(}XFJ;d7P2%xpJ`)Fz zc3Y{|--4_DRzBxRmVLc&vfLmG6Vn@0z)iAnP)drd=q&1Q#~pu($p1ggy>}p2@Bhb5 z8`(4Sl93frnMIjVA{tgj5wgl&2?>!%kra{!DyyQX6b(wUQbr3!MM)wm-Pg-Golhs< z-+ljk_x*l&zR&A%Ue})Ia^Co&%sKpFGFN%<%ShRAI;M~{f0GbRio{QW?t)R#=MnxD z4ta;ar&T5wyOiMoSNH?;S2CRNK`<-_0G#(w4j1rmJX}up#pYyR%!M%-S)4hOeevWc zIpULm%;YC|;?q3hlLGNckodHa_#{MpQY1bJ6Q7ibPa?!8yo&@Oh{|w7c>ibT%kx)H zIvMlmusocy|M$vXkCW^5S7pa-eg*@~b>JUS@z3F0fQtVNqdxgi7Cbl}Vdu%q&*_(Q z$;)l@%X#GGcG_j4nc)1L!4O0Q$uKPp!Xq066(lqYUL5MQ$zVw<74m;p2%WT25%|vv zksz&9JpNe!lrv1l;Gc{#&h_v!_zv9O8X(q_?d<}-Ffr>ZeEzS!oy8aV!hn@g!FPqh z=gA*FmvDB4LxM>2;{RcWj3muV{)ZWoM4FfW4>P3c|Fazy;Al*?wZcE52n23)#eXi8 zfcUr3y}{|E8XY79ni3x_hbd(D|04PS7y0&Y64L&E`t1E*f{%;a8?Em!n@qdy3 z)91k7B;@k{>GSjdA}4*~4(AmZ6@7;AuW+b5REL9K@Fg$jEu)IdbefDB{yBZ}@%3NF zKybSt&Q0POE2qym_5kl3D8No+uHw?dtM4E98nMg&_RsDXQIDrF7~(pNXL5K?;v3w^ z!-C&(iEr{MgCE!M4+Yl$F0jZ8&zju7BrJ0#HH$p{RuBBu?)W99lVi~|c;-Yrcaj+a zpZG!hF#Zj1K^n!sWz=yZCVTqHgy4H%ty+)o!IMTD4`3$afwv2p@mUBBj0<^P$5CNr z;#1L{Bc{#dRgOQw0+dfhk@(7$IWn3UjpO9 zLl;SS<3hn=j*J%N7QdQw7N3d^c8uTHIq7*e=WOsio8O9i_8ggI;CVLbc@F2CNzb!6 z@wWl|?fJiLuGw&GEDXO_2R00d{Vpbkk_uwK%Vb&zl+5(WESY=`3`aBZdvN7tgzyji z=lM|H_#h|oNd!LOWePmn#JeNaI1Tt*X9)cET8*#CNfRFqxymu~VQ|ud-$?lYKpYl; z({o_BJqSPKnE7GvW%8<5JuuX#C-CWy>*l{rlehl|wu9}zkUIWGy9{c*Nm>=ynoZPsbL$ucSV(xnzMOY`xG3CM`z=U#F)lUMoiRTgP}F#$2b zzb^|+UKS8j!Oz4dX~M_6NgwmXmJ9z43r@mxL=nmXQW(Dbzldy532C&Vg-N!}PxKJn9m}xd{!p4o>fsHIs(kBmL z<3VuVLkyo?gE~OkcnKRX!o4H|URC~WgKC5Gk`E!Uano#2d9aNiEuLzF8iZ{E$PjE~ z4IsmVYJ_d`kQLa-8b;cnGGUt_+732WT6j>SuuTZ<0vj)3BeNQ+6|N4#Xg{`*HHCBu zRSVxHf@0w|vW}9sLH)wFi6Z=c%m0*+7;&2zIt91Ua|IDLgz~^f&lPdPCXVp?!5GAr z(o!&=u+2wbz@|-0fdsbUs7N3s{A`?Tq+|*tiQ6O*ymtLhp_3_)B5spHTL0ZfnxqMn zG+I8zw16-zKswk&uMILpU@~Y01V*>X5;j@132bCTAVZTQT*@IIY@?TeJaL;m@`u}m zXj!5_*c8xVu+b~+Lc+EXT>zU1?LI}qrig05Mm8WaDoWUfvr-8?!!~+WE+TGQgxcUX zvacbtS(&gYBm6as|CXu>VN*d2_z;H}y(?Nw1h*K?!!~+wONiT+AR)MIAuR<<3ENV% z3T*UVMU}9rB1f=E(C$+sY-$Ma!~a_w)UgexTpi&J$Uo&uW{L)3(m;5x@J}pBlO|!( zM0iv0kBQ6^Eg~>2gf|Bm{)`>uZOe$;mLWXU{u9`8!n7O}{%0aRY7-u{Q4x3~TR7=a zhqz4#;gRf59U@ID2-6C5dx~i#VOoi*rcXwi@Yxjo#$e5Vkc4|3&}5{irDsoGF5HO7s@D zmbh&#!mkYj`!nOtBzheK_ww17LMffj|8N|$K_t_IRd!#fA+hk}q2g2rn@N=Gj ztKT-lwhg&}jg5BScEYwD;a$&vyIDuV=7{jd;J?+@iLf~#ydy<*9Atj(AZ$AjUP1p` zH=PNaGs5%nfAiCYu(_bOU?Zm#q)%7E=8DF_MsHp_3ENJ@G8^0I{j(ckb3=+?qt`Nb zY{M1M9pS@5e`*;SoCk562g0W^{!O|kVe>>TU_-R*^df9t2tTl*>O1Lk7h&6llEFrg z=5E5a8{xfN2C>C7pWcMc8})&WUVJ`;%?IICCw~1gaUa>#eX$KE&lmB``L|E?BX09U zeAx6)Q}-uq{s?G+rQD=OW5`ze8!im zoY9l(7!;1D@z~5IJ*g0WBt+d!5)l*u3gIO*)l)_iJ|YQ%QyPInwwNG?LDI!O$^|H7 z2QJ8VP7+ZR0SZL{LHDtrB0!-NK#(&s(nmB!fI|5|kY!0mG=?B>L_wi)Opx6o3B*zW zD0E{AaDW0pp<5Ur`*G4k90h-iVB48s!2MGX5_N(#3Jg1t_!*T#%g|Nu*N*C=>+*nH3~)f+9en z(?F181xdg;0ix!BLS;aZod-$4egi>(LXUtT#}qOtnFN8e3l!?a1ieJEC;$}d!2nt4 zWEiIi0B08{^bx|Kx3X-4z+r$wKQKXW0;dT8y8wk4S*9d4hax~BJ|M`M8ySr=6afk; zO!aY=B0!;)K#;3w(#JW90EN~ALGPB%Qv@g!3ItijNgufs0Scu8LGQToC;}9^1Oz#$ zB7Njj1Sr%5ggi0kk;Qg_AaIs~LccIUkH$sH1t`Qg7rUUBJUrzf8VV@Hg$XjAWEce$ z019zqfNW}HGz$p;7aJ(V3t`w1(Ikl?iU5Un17SlW;P23g8VU+M0)ng@WHd?$0w)y| z>cs>-KQB`*K%qWxL2pV|C;}9k#fk}f?YT-3ppY;SNkm zC%B-GoHr=~6#57Ry<50N5I7J}h>4BrMafuHQUEB#h5>pFy-fhP_JBfM82D4k$t=G^ z5ung=AXI6YQAH7;5F8Hwvr|R-sHO-|XwP2+8PU50fl~qs#bAQo4(?F^C=`nUdJlM? z0B}k`p+pEnk`~Vg6afld27;_!WGre30>=Urs>B36yJ{&HpiniqpclzQ$^|I&1{35| zgv^UalnYR(2V9UVJ(8%S2vBGiJ0=#;Qu3H0K%s>|Xw!&#iU5V&fY787PbdNuIy;qU zpa@Xt6%h0q+DH+g&?g}1V_y?RfI`zaFhMRV$kaAd1SrG-1bskgp$Je&0tj;Ri1hK4 zB0!-=%olyNDl~l73`x3P{$^|IogbDgE-A@6aklPesfC50F-58(`OP>e;*9}l82qHl?dNLiK zDHotn>=YM+lnYQO30%;NNv5 z8%2OZPkQs z1LL3B6)2>_JtY);^q-u6fkK{B34D;BBtW73sRTZjPZFTeyQu^|1Wpp5(0raL@xVuZ zNdgqw0t9_Xzy~r(0u=HDf^79<1;R(wNCFfJ1cE-Z!G}tKz{LUzC1Qf!UE|Xuqzh0e z6#;_yi3JfI^r5iv!sNLBl9 zH@tvy0SXy{3;IG?h9W>AJ0R$DW?6~=g}i{EkDqcB0SbiyK_A)VDFPHq1%f{5QJ@G= zCL)C>f@ zwJfIyP^f=uDB2VO3c;Ut{SylQwiYtSKp_qw=q0y;B0wQ2An3Wik|IE%EqOA(-u8W8%lNv|0};8=h{AyWb|r(A$S`@jW#RlkmM0SX<$1bqaw zpa4+lC4@VMSw!<^!B)gB0!;IK#(nkOzc*Iz=;Kg&R~Mx9PKF=pin-zpil1|C;}9^ z0tET6oy?AH6afl71A;!O*iI3k&?pcJv`Xwq5ICZskc2Qbiz5SZqFjJN(ir%2XpT(l z4$1{6q=yN5mOE1}Kp`V=p+c*pE))R@1pz_d6mq2qP$&}!O`4CL6afl72ZFx)=|&Nt z&^QqE9CfD%P)I}s6YjM9@*oJDU!c$dOwe1bCk22)i5Q?)b1wqGEfy3?g)r!Y+b)U# zh0Xy%&#&DS0SY|_g5K)ADFPH?6vc!pEx&vy0u)jMg5IWmDFPHS1A<;h{U`zyvIc@a zyY?ptoL`{OHcZe*t^mpfD6}11(D(8JDFPIVno0yw1SoVC2>Q4bOc9_^IS}+NE`%aL zp?V0Sdhbf}UY}C;}8>6vKoZEz`p&0u+)5f?m=0QUoYu4g`5ljcjk>1c9>@ z6!O9ZJsJ^|3s7h`xS$h}6afky0791*(R~yF3OxdXUXP+T0SeUv zK~D3?>T{SNaCU$~J(!@^^JK~eDD-}6AV(+y6dD79UMfc^0u*8qpAyj&iU5U#fS~(G zr3g@HArSQJI7ShmkR}lHEKQ>bP{?>HahxJRAuAy0p`=p;DC7hLeUt12MSw!PfuMJk zCn*9H3IT$?3do=cP$(J*`useTB0!;&Q;95!0EJ3`pr_>&MSwz;K+t>2Y>EJdT7aOZ z&rk#?#0>=5d64stvlIaetptLMDOr)v5d^NtpwLE4 zkS&e`&Qky=WP<^+3nPJC3IK&1rT}>q01CPM2avJMCjdN{gF;>y_@{1Mpa@VXWGZoy zB0!;-sl+9U0ELbKK`)a6iU5T&rV@n|0ScX;N)%B9C{zptz4jDS1SoWCDp5iapwJ^A z$hk9_=a&frml`P4h6!?PB7rLu019$^(L4u$2@63YAWc$8CxLg&qPyRzb4d?hphnSWu`16ZA<(73BgH zY6TbcUZI*IK%qV$=sxaJ1SrHHi3xfyd5clnYQu3tZ51tBxW-A=AGC zA*1n_B0wQqAn3VOPZ6NdZXoCriYF8S3PntfM*~HGLPvn0k8O<<0SaYK4W)@9K%s)E zKAI^46uJ%seH3n?2vF!A5M(tc%k3#a;F1T0nlM2h5Lzh!6l%i&{gK5p3IK&(Vt~G` ze@+0nKXvB? zMSwzFK+tQ(ONs!6WPqS|Uau$u6j}xZeXs8|MSw!4K+yMV-cST6WDf+{P{=ymMG>Ho z=hRTTDFPJQ3k1D;>!Aox=pYdE8v2$ZK%rwmkdL^@c)X(sQ0OKQ^tAL+1Sr%nH6DEw z0SdjC8jtrB0Sfg2K_BTqPy{G61O&Zb_(&0;&rP{;vX(3gk9lnYR37bfTnw{MgSP{pjV9F1c4I*3JpvNgkjpB$1b4IAh@7cU`C1ng?<7-UxG}d z2vA6D0Ve2Gd^$ydLNY**8A>*S8598u82~}=Bxh0tC}a!73fkOj7Da$UCxD=L8?z|_ z6e<9MzHd2)B0!-AAn1!WCW-)s-U2~C*U3x~pwL{IDLz;z0u&Mlf_`{;E=7Ps#z4>q z9#)C~g&csOPu|%m0u%}bf?iA6DFPHq0fIiC<)8>q=spniCd)|?pwR27KDa0X6ylVf z5>sx90EHBQpzrzcPy{Gs4g|f6IZ_pUo1!wpb)PdCg}B4h$28CcxB|DsUq2X2onTu*r1R)Cg{Z?Lb(8i zmVpcUoI;c$Kq2$L0wEiv7)5|W_CV09DWV8aC>99%u8=rIfI`Qn`oOQqC7=9)LX}f} zNKgbQR1X9_wUQJ83iSa&KQ<>t5IDm?AvXDcGfbLt0Sa+p;7{K`=J^831t_#+iVOJC z2;!+fD5MT9$R3+?AxpUch4e5%A6Vol02DI$4TCowZMBWh~$Do@clFYWcnh4z?lvT z>0p9B>wx!R5H3KW72twC{HRa_D6|F$`toiuLEu0@AsbB4d&(u03sA@oT+j#7r4#`Q zIRin@4ONN&g?0f!pMa}T1Sk{%1ig}~Qv@h<0tkAO)Sw7ZsBkKwNfDq>H4yZL7raIU zXDQAOP^bYD^iF>nK}f-g?}*|#{aon z2Ko3pc_>;q`FQzxZ+G&cl!cRnqm#D+^6=U2E6A6are6CL9UvV(ef5jpvf3#S3;G5Fw|)W!MfGnt=jafz8TxZ}@3__OyU zC~1VnE^N@l23LI96Bp#aAU=W1z{ssh8SM-%ZVJui9R840MdY>-q3`?B18buBTliUw^-U z^t1o{w~5i}-`!nJe&mtTDG z#=**pq|$=IoU1YUS8f*HN-izAmQ-4H?b^}v(Z<#*t!+X~P5gC@Jj{$&+OOXlV&Y-9 zcD=5Vqxrhv03l-|>CF!I_WC=_ce%K1cd<8i+Y=hR!qa2#3VT0w%RSEe3t8tfi?Gg{ zy^MA4G-g&7S#}X7O=dRXS%P9>YWP^R`~qPlA;+j7E-$MjF+*NXMn_pqM_z*!sj8|g zPG73>{$=NjM=xGi-KlD+sjVG;_Uc9BoewWN-oNPV{NB|4w5jdKo8AxI?_UnRd;7NO zU3Yum$8QfmjSP)VjI@0385(`FFDm+GVr+hFOiXfka%53d#+j6(>B%WaN~0r_A~R2% z$jmQ{y;O1iV!^Szi#bQmo<4Bp(uJGlStXUXiYrS}%d));>})r&Z(`lOW`m`HuCvLe zjn_nM zin{j#o!wFr%2IL9AJtib_*|0TO(f|!_c)pd)$1&cIk)shx+Xe z@-bo&W1OWtjZsySlSe{Kl9P{(hgX`LYyEoJrPF3EVUy;Np1)9uU0hy#f$%~F5k^&I zf%&Xz%!_2THC30m`D<$~?yrCRxU>Fw&Fl70^HUxH?laZDCw^Z4`R>N>&(X2o-#u@JqaU5fh|j93zI5bhZ2Y0js6)xe zj=j8oJS{ci@ctvuQp0o3-{_5~ymqEAzZ}wkVLapJjq=|I3vU)(J$-hx?27&>Q-js3 zr#YHgnptdEYiPW6PZ&!eyQh`8q4j19XIn#S?;U&G0<5;Jv0vljvQ17`MN(2ycaOc{ zd~Mk^I_8p+3vF!_x7Zc=Um@t{-vUd3t7bx=TBcdcl5>; ztF3N^D~t_H+%_4kaav`fXK5E|zIpWq3p)$lRX)}$jC@u(+63=$+OyKl!N+^;F8cth zfPg^%khR-_!~BB1t%GN?%@SG2$IdugiHUu>1S_`&51$x6{x&BuzQyzSXEG=-NlGg% zkP#Ge6?Y+-m9()-7^=0Dm$d~%A@riHaLv7Yh`q9*^V`+tHC&RP$osG#jQE>iJRQBn-oYL^?r}Iz8Uc7SaWKr(P%a^Z| zmqlGG&Cb@O8+HTNu+GuUC!!yJz)ZSr>|BhXD zGRAIFu7MtYo;rKIL!I|JI;wdGi_M&C%*eP#Rcaa!({x_78T>3f!mJu>Tw-Vj4}LeK zio6a|SSGv>sVGTJ*O?_ZUsZe8F2}u!D$**F>KYop%GEFKv_H6Al~C9ExVrjjRL#>@ zX|I|d);v#saj&zb>3+&sckj=xj~74p=8X3Y_vPRJHqzJsVf@C#ueU`%N4v`_9v(V= zGV#Rz$b;2K!sCy{h9BriJ&4=?t&Gg@sL14&=o^K7X9_F2x+5-LD!zO<`)z)C{fr_0DYhj}_Hi-;{R2NyRlH?JiF z#|*xC9NLPSn)Y*KHB{vkrFTfH%nz2)SfaRCLosv@|C0FuOC=u1chpqBx?R(FJp5gC zb3&^Jk zmBAC42Qp&9BQvWW)jp}oPB?HVGwx*itHhI8`%WHhP2L}Vp)&j2sT(5$;iY+(PWR@X zs;K;)S9$5?ucG|HqEkh~=T;k98LYOOHhrz(N`qOO3^v&^?z9WqvTDPol^nX8Z1kQeH{wr%H}zfc*!s#sQQnS9Xpz0P|$m(7=0thH3U`tJP$1Gj4* z-F;YHQ(fDzzwgBUWHvU5w% zm6W_YTYRy!aAYi_sGzW{viNM}weoMS`le>949)b7OxH8|&Ym|j#Co;qnk`$616JyC zTH0(h_w;m^4YpSZ!}VWj<&Iq*dtG-21nI2u@(B(L4BWNEkY$#@Ocr5XJqh-?D^+-B z&gJ3a6WyX9!ZA&ZciKh{UdH)~nhJ6bjFO5R z!|$Q~FQcz-RW?j~f0KB;COt9oWJF9-{geAoN~01wE~FhvOiGKWZFqhq63>kA`1h&u zQe{r}>1*%GE}qG|_3c_oX~pHTvcc13~!EPazuFj6@eVjday8DK1c5^q~;~EmWC)7s6+(%!XQ&5nZQCohjsH5_@x1=g)27asPwzczywmai_nUXGe|Gf@eSQ0_pkR3P z+s9uYKfL?!bK>2%Z)3yH#-p+lV$#p2g&zt(7@l%8JL6ES$XBPp_`RwM@lZWyo!@if`R!YcF#f_wDw%6u(+iSYG2fDkdm<5FGb@o{o=&m`9m6^qC z&a}C+)~fQbaWKfR@v-uA&C}!;7O~#CX*Q$0#xiGTFPZrY(w^KB(uiMasluYgnnLQ! zwFCKew3Pk6jKn^;({b?8-X@tpC1O^-W(a}8UEJ&<;&f(F}2sjGozE^_DAk}5Rq{t_TaPY=|_@|#YD!o zUd}jjv7r3osf&37#bw!-OM1^0T`s#(RCI0V>redEIfqLsu9o%BhdRZBUt+Uv&#m3Ij-Nt>7y?vnnPA@OTP5$;fgLm%Q6}T*H&)(2Lr?8L^ z6LwY+mbn5mSXo!h;hM(8w|;{Rix9gAyO0R~I$i;Rc@pa4_|U72jHK>2Zzf<$Bs^xai%dWcCmq{s^zuMY6UUav#H$A)4-SaN* z-KXD|M*2^6cc1?<^85F-!NJN`L%%1!{2nTMFrI}+{`$QA5iyT%mmG;Yc<)5)^Rk<- z(vN1Qb~awEXgQK|{?hxx?A(FuqS7~~3UW^kXO`YfC@;EJeE#~aYoj-=ShLs}vY8sQ zZZbD8n6=hqX3+W#>$k465^=CI(A!|a@os#MP&rUrVDdS<60!VKv7zA0h-UpJ70FG zlB|T2wx)u5n9A~n^EI_q{gsz%RX@L7_b{TbuC*$>?!mJb=>K0mYkXSY-rAD&uJz9S z&ljG*{XFvicf-4{JwxYP-v8+O_3`20*Doc%e!ngK^5b<>VohR1M&0p*g9q;v=DfUD zaP(Np%VQabnliE)D>BoL=bSBkpHP17`uXD5=ku=i6kok^W$f6AcfX=Er)O)kLw=>{5+$o`9$v`BZ^2GH|6lD9 z5E`(2tG7?k-k?1ptgDyJVw}E)g_Uy!FVmbk28(rctrY~>xn?tR^Jt3lb4aQ$be)e+ zODF`{Pm`6ELmEoTY8rcGRJ=uXbd=RO_~V|`zIgKZ@yiEQck7mT^>{{89E&)JXqK6HJ1)qZ_^qVMP6Q1|e)_8&hIqAp&jKbdwg>Dd1L z_m3WqKAssLmll_FIQ~V$wY1FelNZisUp}9GVc^{9E2qw!D?2s(ZRBv-;mX+T($gtd zBF`6Dd6_t_wl(!$Z)jm*w#vl8*38;=>l$kj{f)Z1Tdiz(owtQJdWCp7DM;w~`uaJz zd5Wtq)i(1CbPV3>=(KQ2$jq6nh+&q%jOpx5LhMY_4TNm@gqgMq2+!i;;+V;0W9!Hx zzK~f_T>;HsEV)BbPC-#cW2u_day$-d?_R2|A$7mL6PN#ox<^m$-HUF1w7;#T^;t(} zO~(Dsq@QhV&F%HIxdWen41De$d|Pqu&fESGJpcbNi041QCUE<|@@D^|v(e$P`|?gz zM};RxM@JpVe4dsTe>|}%bALu;X4LV*k9jxC^RsW37JWLHmzR^DdHj3c#iGh<*{24t zogF=QO5b3mkum#PtBuq3S6CPt>Kktnuvxdx!fKt7^%g6Bi}kqvd!RMjxBKt(^!0Mx zF6H6vzFXVfCDh*8$w5=i-(Ga}+&O}5Y;!qhtzhGu#y5kFi=Ur$E2l7vB_D^Fkd2hO zA$tT7R>xsmWYVQ%hrgU6C0qJbWCR*RAH|u(8=Dr+ii}H$FO1EIznPSL;>6LEth4(L@85U!;>FSfXS2^I6ebkrWyfF5D85>e zcr&j&`Ep54dG__yTTM-a4Og!6G+C?ft!uX~bd&WKQ#We^!!TVvR~zeDo`J@DUDtYs zZFKkE<+IIpb-=1!{;p=ejt;>-+pL}KLubwul456M5y0Q-GM{NWBjOPhdk!}FFOPX{~4e)RN>e&~BS@@}wkxNG$F@aN{Az0Kb~y?Z+LzN_oq z;Ppc%Pi9`&pP8H(k+v`LeB9BD!HHq6qQs|TseOBa`~~FHrrPlxf__R7jo8hcHuW#wQ-FHi;JO^`4;P)+orGBWVKjp z=WZjzttPJi7Ak9YZC2eByj4EfHB8Ch-b7c)J|NK2mf2Qvi|Pzp_GucDn;2Ei<_hr` znTgKOP*z6s)TLFV#TD4*Ybc@_no|680z^fG=FAaL=3x`m)>y))DXyyC-}LxL?ZDgq z&vo4$pKJQ+n;s1}wcmd={4| za&|(*=?_Wi5m9BgQlcu4C1n+*M4LJ|uXPsk2yzW@*k$bE$FJ*Ux7*ijYe?u;%dPH4 z9<#SvSy?$4S!6iE`{hOpF)33%me+d^K`yxI*W^Pq=R&`MU zEzV$J9mTx?@)AmN+-TZd1zrK6xvZMYMQ3iCp{2&%^Wfp9@Aqmx4A;D^{oOQiY~SOq z`1{R+&4Uk{B75!(bacME+x7g%=X(vM58l5SdRF!2)5H9hzIz3)-c_}Z{~BzH&WMZ3 zO+8R?vAO*E`J}UWesdtRthBKFc=YM28{wDkN1cv4f3UP*BI#;E>5uX7i`NT_ON(w5 zoJlXANIi4D?A#0&{a~BT2Ag*qT5K}YU+KSg%PP06>%5FN>1|(cW3g$am)B~CZAM<( zSGaBu)Y-U0*G^G)<@(iz23F#`4Xr|~LS(p@ZI;cGWoDLRRIyZ=&7#gJ#Kxjr0=7qHIpm%d6*yqI_=PoB*PRcLoipox?2sL!n4YW0L+QsK=yw@U(f4b>57DLNjmb*+Wra7+ku(jKv zzs)Md%fMXKz|CQep{sd7h}YR@%WE-1dt zY@U*c$jh$f@3mj=6#J+~^u3^vxD2X!BNzrVhH z|7q2cs+Nh7#JY}_n8cTf-y=Uf-}j|;pr&G=FXWb1UW+(ioO3$n>M85B!E5mPf7LESOMMG-ON&+OH<=pP8Lu-m)Lp-N zg`RGpqw^l|#g5Cg6*3?B?eh=C8Ou(BD63`b>6hVK!lr*_^Um5==8^ z^N9*;a&mDB3-hb-%oAKBtbo52Lt_3y3F+BVOC=;1@oVWQD=cJCUL>ZnSVKo+xz^)% z4_@H?kKYd(o;+@De*CcI`?HqjmrZTd{`dXfU%jupUiA)s9{Boo;KT6KAFoEgjy3*x z-P1HSJ~kYcSP&i=my?kimk@h0vMBCG^3jtCH;yD_C1<8wj||^mS=k$XtKv=S!BdA$ zT{wOGSY=seQAv61waT0uMW;)mi;VScOhavStyix#*rB(|c*ll~8?4N2-7HpEt+29O zzfNe6OQ^orj%{lk0$e>^ba(CwFy7;5<-aR%W$+${U~i*c^8^@YF(^!DV4ub|Q55f;>x?((`K?>M)?$NQkd39e zz2O#vtv2hty&Rp)oVUALJA3Z(aQ1On;Ts(67qZIJcZa`TP|$XZ&{=FknzI-L)xN!4iLGGEd zqO6M-l1eWY+={zcbm3}I+0m=FD)v=GZ!vN+)YCQ9Gj!juVWWjPv&-6zrkgCRgE!f2 z7BkSZa`p;zb_xk`+U9QO;l9q#WA|P>{_nK*+Z|wU85V-Gf=!2U2Fr3LQC4ZNl7PC;!lL{PfC9l6H!?4uJ;o$ z|M_uq^!oepW5s0^hcEZ$bzRD+yk305fOAf;jftJ(8Y2U1;n_1-jg4(N`T6!**sajl z+qA`o*WJ^@Bh)j{W&X+_@$Gwk9eu+>LxXj^0{z1L_HNVA+=%BtBEoDlr|U}1oH31e zCa0LKCc_qOF;RXo-s$|)MFb_CcCctkBiU^XN(!p;Jq^kbj(*tpRPoKWRHy^v+y&3q__xj_T@7ZOg zLxaD6PW<@Y)pcoXJnCRf!ojE2Rfi7l3y({TPd!u+pOlo=S(K4+EVJZlOA_AmzfoRL zkbQpab4gN{R8 z)z$avdb*?QAMS6ffB2}Qu_mLny{hGDb;pCR#kn7Q-#qLZ9q6Ife?NN1CVG3ne8u~p z!W|iVF)boX#&E zzjXaV*{xf}Whs?su3a8ZGcYhS-03lQm5rg^dc6KI-YT?ilc?7o*I@2-26Op?Y#iO4 zP1h*7`Z?SC`8hke*lYR)cxVUtxP%61D{t7g!-myF~hy#FD)bh(qp64ixT$});BKHS<8T8sSd-t9b4bHA!K z^3#(icWPeuroX)1`Qjn*{3{bb#BA>!===5IVqgE@x3AsjYd_!zKQB5fzkMnhpXllu z`97AISQ8r_Ul(<-`uL$EDR-|{6c)7|PUt)onR+BG=}=3=>4Lua^VydwD`N64=bS0Z z&prLUs0i=;+_+M?FXwuBk(Hy>W}_9lTjmBjy7&gq2!s8N?P5V@E9`VRH?7}f9u(-{ z?5boMLv#j(3S@B0-G&DAJcEp^Bx%IIxy}aPo^$VBIzlqPyKYcYT zeJrmu_v%o|>C&9?;)*R+Tud%&@gmrWVT1APP3vrp*Ua-Vx3Jk9;LT}hV7t*PFl4c! zo=2F!gelbjl~!5-?mN9)U1b*A?Q+__#A@bD_E~ZZ*UaJIWaqXsQsd-hnZv;$K-K@5 z>XPyb%kloVJDU>j1{r1t<1Y(auBoKxjU=_D7bq)7y?gMW_IBUr$mXW{dsWX`)7x7f zb-a9jH@UUuc~w(G%CD}UZwmUm-}hcWb$9sN$Ism1UO-a&u38$S+PUE4yBl zmNisywWvJj#y4XUC+k9j6NUyG%?!nerSBCX)ONWh3K>= z5eHMNBabG=C%tNK$&Ejen2~twSVQE#^p?XHD)W*PFPytpT$Wdu-Fx6-X<2dE_1_0? zoGO|4J#y<*k(G(vij^z*Se?;X4@)M>kux3w=`^Uj{l$g-ScF7u3;+_H1|_&NFKY2$Abnado_p`p9?uifWUxvQ?{5e`RG1mS3=kcry z(fcCt7Rae1CHqqnQV!*1q+Cl)O3O~dyC3_`C7nyiK6~L{WoCA9UUA8h?3)F#6&K11 za}ShVIJ3X9yf|&Ot<{PZt6cT;R<6%PLvW2a|;yPw~>01vOAupPl+{+qo$Y?&klM8w5l|5tL(Om0?Y9zkXX9d=%Me#Yte z`LBks^aAMrn3k!@EmDw>UF4*qDIc_Gk<6Y&s!MhJC6&dazT@K$9WU$dJgcp*i5snL ze*WTDM{`Z*yY}1Pnj4=tOz!{R?rIz8?{EJ4{zL!p&yJBV1K)>#4)qMzc8yhBzL6fD z9#^?P;n=y@xX8PyhtlH`5*l-lW~H9VJbt46a!Jr_;`D za;xmu?A*08*vxN_^TxnnZ{wxY1y+d)W^ zjJLdOO{%JDy?9j&u&p^+>XQidlY}1W`8%#G?a0+|jhrpBbAJ?5bcDikMbye8rxy{qX z-#$z$*j`(IUFf#$@ceH>2(bD+oZ8thMikbR6u}ZJw9OO zBBX@pzZ|NHOO@orr|B$N8lb@=a*h7ugn{Y zxSDajw5Vuph>fAXiJA4Z-3A`UhAUQVVHEJ&v}RS<<}I7ett*Pgj(elaklw)e=)%tijFc!>6vP;>*@k)7#emx)b+-^)`L9iEnLPuis{6JxGj+ z*q<5q_*i7})x+_Jl2cB?^Pel}Cy$;>4aW{K#-(wVq&m*um1XVCVCeB8&=M7-Ll3MkAhxCn>j-9{MXlYufq;|lWl=s5-#?{ z{{L=YPoJP&0ec*My{-Kmri-v@vWm~HyL?wW039kQ-dpm#MebQWa_hZfN+kN$|qc6su zHa_d_Y}z-LK*x_aRiBzZzxiI%gHM7?jE#>}UitX-P0`@D?qB0kk0N5~@7EoT zk3P8neoDmQ!~>~qStnzUW@J1%ow7e;|E;tO73V9j4WypCRGfdV=+w92(UIfjCD%@s z-1w4mt^Bgyn$5Omwg$Ru=CZRf$tlj9EyTpnHba<8gnIrZW9t^W-5~(hzp|1G1N@bF zcyz>b*dn|s<;gAMDK^NWda2v{r<6A=`hEi5JF!YZ#N ztEeicq~zjkY!zxE_SKv$d60VJPF&Kf;_5& z!^dY=@D3NZocm2T8{5jCJ}Z0KaHY1Uq*iXNfV7d4s0shfOBdchYv}8!p6Kl8sPBZ6 zFCEQoojn(>=9O38xOqLNu)to3)t*au4+l>$r%1qD_5f!7-O8rZTx^+aOkVe0OiH;B zee%rlw2YJ!36tqBIFX(d{r%&&_rHJt9O>%+EV;&c{+^X8R)%VZYt(I=UUVEke=5mh ztErKR$*Mi(hK{T73AokPTb$Qh;`48eb2vojHRj&Gc#-Pvd!WW<>Ho^C$Q7sCB)Bb z`?fQ$YR}Z)&aP{?^|YV;N>6F^Lr_!nsAI zC8>vxWq$o~vh{g;)BY28Yw}NBEzCLn;K$ppuV3GsZFzp}H{SocoOQhN)~&1Ut@jcl z_Q$`d%E`V{+x~Ij(Zfpz4kw(rbl^yIddAV>dqhNggQC)SBqPMc_?)f^(elP3qwN>Hsf0501p4K0D zUDx>{DfU>@$>fZUO0%}`shbPT_GA>@DK>YftfZr|>^3>JFd3d(xIL6q{Q6m$o_Y1* zqnf7fw{?%Js&DuAKe&6Z{Yq@YvE-DPBQeJ_)1H;3pShG>P;nD4dM_3nD!m+Wq2l_L z8^?-subs-NyjhlWvs|Brm&sncC`>tf{ZqWrOACEs%6ejke$u*dViWo*JTX2Jf4I@26cK2H8Ex^~98 zdMiveTG=Mof4Fp~Hvis(^YypSv^~FcukXgdZ#=nPC@rd?!=a+A{QO~O-IuC6wND<_ zN1TXBNr?+jOFe9jmTb~eTd%WxojS88Kc5TtTo;wOu8d3Ul_icHe)j%D)33KJBj3LD zjJzJa8oeK$|2=+H-O||l?A5)eEuu~Vg1*80!NEKs0h~KGEL?9a@8%|{yL*AJ{logW z{KAxL=Q1mAl~rENnM}X0fxd~ID680XPEL{8EX-8@*PfT%Tp6j(pdYwrbwHqtyR(zi zMn8v@KKT5{uFxRey)9uA)xy%=Inm5ByoyCJ=Vc2|~BPq=T?{4Gu-`DShQ#nURf45=|qCrqXWM^*=r*b}CiN2*A%8Cl1HK2UeN)@Wt zt556ys@uQszkF)<$v=0zJ-y@RS!mk#9??)PU75RX5Y{+ix)0ga_Zvk3s`eH*anI@#P2ih}br!rg81VBbzoW-K{B}|2oAxc}y5ya`cGGaXmlo>lfZ{U~-LG zRr;i~=o}Q^r7k`H3`-m|W=Q?Y5oYHY{GLx7o*Rnbw+dS{Y1*l(i#Pt>tGRgb20q>% z-qou6K>$Jr{Jag9DTW9V(IC|p5)jy6NI(_KU z_c>EmE?oZWi7SVm=iNGd;{8K>{<-bTFT&e34;O&1>f=8b{BHz(;iGP?y0z=m6*In( z4{#H|bWveEKy-frWmW)GXg6#~p8+XD$s)-nAqf9pp+h^!!L$dZqdLSy;Qu!w9~y^@ z-Ry--|L{u#wvKmpRd>Rl_<}d0E_fZ|+UYw*zu_hP0u1!9;kU-{dm#^z|F8f|#s8<{ z|EZPqpA7}7fxZ(Eg8%hG9*z00W4bG*$%g);@4(}E1d_8kI{td~ACMsuOJjt6;o>Tbkr?L*eLh{{5@6)}ZDwbe@aj5l%l<}0l#5SX= zlYM4?l0U}p46{IwUX-g#(14NHBffr+`!cO>*eDBJNP5}L0%I$YO-xRO?iQF^w^WP; zhSeciy6(sQED&3Fz(^Z(X&yUnCfMh$Z()Ncfpf;$V2LmJwplRceFO{LEzmuY(!X(= zw^jUnq6L1Cbp7u^lun#Q+QB_Z`eKbfa1iVAgBa67cN-iWc(r#h?5~)UT3J{I1Ng)9 zUWdo|LvnADvsp%=w7|~ARKgEU665^gyB_!ESfDtMkyGSjCkq^^{MgAK{!WRWY=dCa z!HM|Y@5#}VEzlY3wLyB-tG#V-G3JX=Hn2Cp+S>xv`;o6!aI0d3=eTO{cTaEhe-HUS zeI>k`^GB0vaAOi(sW*vYph{0q?E6s9%WW|#Fmf!AfwkLU6Sm(UUd*3A(jRtY-p9Y_ zHgCFpybYRG|97+ne&Ig8@9q=r4^DIMPw|II)kto_v<=!czueXzO4p$)Z@ZIxQ1t#3 z92blh8w|s`{GomdSssvAdk4a?EGp->{w>}8!F>eTZ*(P@+wuMsKPZ89`9tIkcdWf6 z*S>yIVq7>>a&VvR55LOFll`H8N@euPYC)EDys2c#-mqbf7I-tAd{QJWbfE>-PJW;6 z2cbBQeoz%l4uq%Ge4_o}GaT_is9ez}+6MnNCx4!u|HY_4=n~=+9SG0MklYzV@^25H zXbaqrrO{c@|FM$|2FM{e2c5ArKd|9Uw1I1L@{)HPX?r(sjDF5z%V%N;j=o2Q5;&S( zXk&xiMI;-}qOtSko=(8N*dUv|^nHt*#ui8lr`Xus-h@7x-aMzVKdem1X>5a|K%>9A z`Ej(LwCp(g;Ww8pWBuWkUyV`z@bdt&^j|>!IX268Jo?sWe>(aqx-pLF)n(CGLbFWD zRlFjN^4ofp%Qo<<$$pTv_;dXBWXAHg{oxwRT7gvN<}UL`2I3Erk~iKqJwCP^ zP=s4x3Xg9nj*&l9Ems0dKE(B=^k|GT?j(B829@jhM9+bs=sW2)__AN)alvral#{vu z{#mv&EE`-oCU^Do9G4CD7?L$-Qj~6YAP@XFGkK~%+>fb&qw~D^!HG7o&b->YugSd! z)qVOk96 zl6L~=`s65TXAZ~D8D2B(xJI>v&uXk3(-JlYtQ=#3TS*nV+hKJ^Ao|Tcr18k+Fe-88 za2tG!qq!8C4Br`MgAFo?xZ;VsaqAN6Q{$Hcg{aAIc3fo)-E4U*%= zmK>N2zXbo-I~jhS^<(e0_!UID-lkm1fnjiMEaiPLmUf3Tb*87zIE7S_xZK_ySjk4b3Z0ZVL-B z#%xd#*D)IuxAzz~#{3$;d5pV{AN6rxOiTB2u%$b|MKi4lZQ&}`+ZJ|DqFi+=QtcJc z8#Y+ZyNP=XJ4R03npESpk7%VD&nre5SMqQ*znQ}=@UNs9)DKtYcqo_fbw)hIqO^c> z4Qg#F@Ad0(KE{I^YwNOh8D6nK2h_%cov+UlUuU$1D-)u~pbwJNa4Q%=L#g?I?za#L`Y$ z4SR(9=?tEyc543x9Kk@?j4}}d7iW)J2}3jfXtD-Ux_D#E{M4Vk*SS57Z~Sx`&1jZy zeJNdM`08;RU|!6dv5D|}Vm6M5OWhvh5~1X@Y@D0LKc=28pHQKDB6#}Il@VhqboYnz zycdtgD8ls$XNL_&VB7qmW{RoFBg;jcp*F}&96Z(nHE?$08jCjm@ZMwo$hVd=_!U`< zSZ>3e=B6f&j-_};52!%>bqz|4>jj-_1bX&@ryr4g6hv|pr%SLbhgbZeqEAp`3-tVm zYCj)HvDB#A7o%Fj!0I8X$xwpVs9EUews4Qf;>ipeg(}TrF}i*XkHwY$^B&~eX^kk_ zQycBa)iMHCR2!JtV=bptp4`{bGYP-94p%Yi!l9mUpPdGw%R7!406F;1-2iaOBH29C zB_IvvnC49!0F&|h0;pPKC%%k!u)GWY)m__C`}i~%Gu+xe4U)Te9FqpylPKM%|DcdG zi0eXfH;}Aef#exZkK=S}Nmm@E4+@#6s;Wl8#6+$2!8UJ(t#bP0G?+PIP{;tN%U31^8i`T?+bGL>_>I$il4V*~d`oDl<{bWghedmWM`1j&Y&YXB7OM=}-D zt*ouOQki8Z(UtA4RKlogR3@k^@pQe)IFhZogj}w@FQ#$LNupT##g9&0QMk)npkpwl z16hvfPA6ygc_feEY0Uyn@XTX@t6_9D+r?+^LAcxES%U5R;8}f}b=oM}-vfirV=VOz z=Dq}x-18C1H=Lfzat+IQe0^hG($=Z#vK;ebnRGYxiJ2tbO$z*f*ub?T&73y*dcaB4 znZXKWz$82%*A-wB&JbUwH>leLZcqWOJz#rSO?NXC!5^BVQd;((l5U1#P#r#$;swD* zDP|}E_1W^{(q!p_QToBMJTxz0=?ig2eP*n!72X+oz%z-T4iGdJpcO}v+;9$C4Rdib^Y5A6(r@dZk$4-*TN z(hw$dzAD_mrZB5OzGkqPb-}EQfTaa=k+7b1d0d|zHWtuD!S(|6HHV#Sd6!FR3kM5W zwu93JEZf6bww%aic7aO;EEDh!=YuD@!kq$rNQ8Tw?@z8F37!D% zG44?o#1_bx4c!amTMWGmZtgDkgF5B|Y!WF+(Jhi7jc|W5vz_ZD}PAv5wXyGqe@QbHy37=bKPqB|1aX^bJ?pxQKMK^>TfCE#ab;MBe{8{w zk@PR?uCiq^5$cZCBi$I`Wg_x)B$_BnF^$K^US`M?WtbvZH%s_1$#Bvw62456S(hU! zFddB~-C9wJX&39(iONjX?4;W+sxv)d-A+-1DUo&Gh?-0xR zawylJ#>h#gV?Ka&jmXkjjxJ#7A}5(B3feSyJFbmzl~dXBI+poPcp!Z!(^Jl7%a`TJ zvWT3^mczoR%;HENEWKnl>$Wr`T?x6QfUcBW%eo)RO~f6~TW%C(nN-xxkWCyYvZ}&-^!zLt z&N>xYb7U(f6)$sT8?*$NIgKpm$#xDO)`BnPX$Oi(Ww}#ccA#-rzTQQII_2x5@;;OD z^>O)tN%{Jue8{AHeMUZJQojC9K4ntA{$Bphqzf>kV*M0&{T^_ z`K+#~4wLd(1Jg%L%4ZEt^_Y~;8ky=dDW8R!8Zs%Lg_%N`$Y-0NG5+QQ^>19i`6G)v z+D%PaM_$?lQKlbQHl-BgN+db<2#DwUFIs^m!R%xgrHW~zY% zkP}AK&s5LxLk;~+jaioxO1c52@B+FKre0i1FCWs4GNlyIO)!lyT4sjHrVO^c*>CH} zVWugjNvu05wfSuMJ6g^*WtkRYs{uahz7JM%?RT7nz4gK$+cU!&(*gVuQV&=$6YmAgYfOi^6crO| zOy6>SExEq6rgL28XfAV|>3o4QH=C|-nN_*WEv6s1%&)M_c=Hz1%>rd^G5yY^^uwnN zX87Fn!sxphwwm6s?qv+=wwc~J(sA?+pBZ*Dc|b>;Wt(8P={@RjuVVT}Q(vY%n%W`Z zjz@&|Dc#IhmYZRp$;Vn0%iQX)b@?VZXzGa{Qk^t6!D@0{Nxm^RL;1|D70Mx&_9!Dg zJA*H*w{*k1nW>K5r57BJ>@6*@+p!tmj|JElVfvZlQk>#F>?<+dz)IKeMbY)4R=Peq z_MY^_GlY}L6Ruj^a1YvGrMkT1H<^NAdul0M@wVBh-lijJV)_oIEifiC2-9VpLmco^ zmaGs=w{;G6h|jQATZHM0P6r)=VL_I!*#eW;=4MtUTm^PJQ#lnDQ8}+TotRA}1iFyy zw47}An}f{3u*F=&Vu8snUMO#y7oql?E6FkzYMXSYa%Nbl9FHQ@o_&@oIPbnHOXd7# zq4r#_7l2o)IEG@nZc>^h7?!xa#?qdf$!4G1Kd4Q$P&pIashnk;{-+da&tVC8Pwq!H zj*ir$mLZFsF~t$|}O%xL(XqZjmdynr$?{5oF$9Q`lg=ScP# zk41a?Z+Jb>N+tJ>q86rD|HLb6VyJ~nt);EO_(LU0R!no=>zwyHPB*nvF5tYw?S0VZ zyJTv^$8m?P__>`EX)PU3;B~GCYrjWL$jpT$>vRP^)AKn>A{rZ;E-eW24 z=zI|6sOh8)b*3w$vMAl3(_e6UE!qS_E34T_fH|7_INeHh&5fl|*lV@n^@Mn;>o;tb zfWJA{H7=o6HkDt>B@Mmml|vChva&cI65|xol?m^>&RRERIo&p!(ta+baWrGmdjh^R)3{u!H^JEgei)zlsVYV+K3#PrZP9S*X_h0k z{8A*1)JexF&H@^8T)lCm_7Akve2KAA%V)Sy`S-cZf1_StnUgs7X2ib6Tsv_MK|jY+ zX+JtqIy{N|P>RRsW-{4qccT)zTBubqwpK0{NTIQVQMUFj0=`bATwmF!goqK8{*m*J z&m^02&ScZqo&4W3YcuBUz-!2&tZjIGDtrD;7UkW`Y5zr(>n+>#%qE+;mcuBo6gh$N zh~*5*-DSIBEpKu4@P)_qF5{Iz$LlC(H)w{jSKFnyn-?T3_jVI-h}YQVF6}V=C#Un= zI=SIfElVf7GReIgrdL`>f_E>xa>0^$sXeVFQwm!h?$x#o`K8-!RK8D6_g_Y_}jeCmMzjY!@r;gq5ii7PB zyyExq-zbmPqwAhr`*<98^eU%iIHf0Z`e-DjcX7HJ*Z73fiT2qZ=x4`=9=;G_eSz{$ z6!pDa_)$+^Smk)iQ^4Iw^3_F*C0~fPllT0%g+V+cwxleC}=YJa%KVX!Hj;Q}4ECQNK1gZ$!&CSzn;M=}aZp%_f^N zF67BlITXD;T&T3E%c-=DxH|~QaG`o{n5o_~u2f?w3wiQix6!zvW?HD6t)AquZ*X4Y zj#l<>cV8H6JyFyb(qqq{TxUIxvSj>Kloy=tVy@arO(1`@$*sPlSbWCprX;gbw#l$! zf7@i7Nj~V{2_cyFg!t4Q#XKPuXSXk`Nj-@+t8G-*7<-%_u8LNY9x)yKg5hV&5%^*PopD1GB-M(=gnj_I}WSUW5Td4cJ}?2~{+?iFx_cOh*`_7*>1sOPe= zh%fY9?q0zcPMEjjl{GF@PA5n5p;tKBFLosRA0kgw2!_{Yhl*Zs)y)azODFG&!7w+; z57U)wl~KB-c%$rK3r0CKH4Nn(8_9ZoTB1B)OGIfJnTqnQjpUb^Bx^elLD@fREXtnF zvr(?j%0{`^c@@fMSybkC&YMv-Tl5H}tIOXg4=;AAWPvs=&i=SEET=JDV)nrFV3*=3 z&zika?sGke<7>0f_2+JMeWZo#KlLQ-W?Wk=u&OM{TYUXgJ+kz2B+JPmWE0~^TE}q8 zHQkZ4ry@za*O9a}?a?TIb&NyV+ujyss5P~s1^$epTqCUg@ya;f*EU(xF$l@My95)xABN`JooS?U42vH@em0wE)gV)_dD4LT~V7UjC1-$1o&$D`NRWRCl zjhfrws3*S7;CK{geWUQwRV=X9u{3Ibilo}FIMSSIfvX3$!Ah|m97SGAL|@@96GQEs zZ>@(VSB#@p9dM%P-4IXF_{xc9_X3<#cq-$y!ZU^DbtfCOWJD_2%;%l4K_9w)*wz8_ z?ifis;CovoY{TnmlsAaijX}I_Bso*d*J0WMOP%XrIlpF6-_N7p1lSi*Up!o>FUJ<2 z!gPBVTFpi+r?xFezX=%Ta=WSpzBk{lD&U~&PndSK{DkR0-Ka04E!3Aap49g*cs*H* zX9Ek|Ut*f$7;TC0LQ`?>Y$%};dd@S8Pm9CqR&0yuc$|8e=e&-KroE5o(k}S zj95B(er~;npYD{8r&e8aB42HGE?OfP>L=B%k-v^@tQ}kWvnx;le4onV0x_cHk4PgzCrnw^Kq1A7m@sf)19(uwW;Fr8(wL<{58s4 zvuNT43tbwad}^MLa+lj`l)Wrpqa5r`R~A{0qP$zgwW$}JvQYUY{HR8OE3+5;TF)D= z2RYV7xu5~b6vqUVjl(}ixxsNT%7>9om9YJeV=&#)P9;>a()w1PSCXFAip_9cilHdY zvIb(havY@(J5h{nil_8jCyKE}Nl`)g#tE+&#ZoAe6KrHNDm4LfW%2dUK3g$;%(e^V zo^)DmgfpeZbV}EAChgFy<0w;brdZ&!tl<&3BRl_wpUnNvGvy-N#4I9hQI`d%J-L|b z?dU=!jOEq%Q!~{&5>MLrUX+=%M_f0fr3bDU7Wm687t`Y`bbY-i$?X;@XG2-4{U-~} zuXFXRk$Au6NVU%h`3Tdk92=u_#j~gd<~XuVB=zyI;{d$=k)14G;4H8}AA34pX~rj_ z*HP4xvDQ!U%H&wG-)5zD2E|kQrW2LiD2e;R{<)Go5YJ}KY-R1ZQn?49oNf6C<;5al zcDxTt?S|zKwKa(r@I`7Hl%LyfSM`Ok5j59s+Ah1`c_4Ew?y9An>4cV$waMfQt(@c0 za&A@v$_YG+ukk5;C(dGD{EHwx@cK*VkE4AdA^SR(P~9aBuXI>G4CNm4c)XtNG9A;u zm=~b@#*NO~ALBaX3uE1v;*}iBrzqc)+Ju&8EVPb2^`rUjz$f-HAzM*f&+&F3o@5#x zz;qgV2~XYObOsKy(+c^IBdwN0>?C8Y9WZWXv}b#KCSWbq9_LQ156azElA-ZcP(E;~ zi!w5aWEopH$~(y|QO4T3p-fAqcpi)M7v~GkUoY5+XLbCv7|-e!c))(1m`Q0rj_l=X34xebX$G(>eWP7VVe^oXO`^7m<9=-b>;WU62d4Kau0@sF}{^pW-Tk(Zwga z%XkNY`xmdYQ{BsVz;_2N%RW(bw(M`Ev-HN8j#$DfE0xwaj^uZE>h=Yf zj+Z<5f}`y^+E@DcKFWHwCn&e3kWAt9)YM-wy~_4C$_E4Ap*(N1#0&UsETvtY-7!65 zI>~07p1^l8_=QXC#n+tP?;_gj26qI8uLa zMN)j8cl@?Z6oo@*wnEo7vsqRSA&5wF@2J4O5igM3phB> z#VhruXQ6E1yaeTltZ&gjY0jrGy*cX|%2m#EPJ5B{4%1ig`3Ami!>24S7xG@w9J;&g z!jU;)IhC`l&awXhJPn3Wd)hkk=!Z|jEAx4dT!^GA#~ddO5DixS;xj5m(C++)Qyyw(>Y4g_c`0eFg?YKl_4#USPM<`Q%*`JsAshUX0o_JnQ1zcV3R^m07D% zX7Q7a$64zz*92?cATP*_{Q>1y)_W-H#XlQlfjdrtgYnFnO|zgJK0ES-GC6heN^h6Y z!MNsgAHN8rK8|o~g&t@b{urKtUPjXM&&O=jjh~Cwvyx4}D6$!3C7a4EXpE*W z53qZ}x6TejYeSPopA5wln# z6)`=)B?{$fa~qW3xV9M{3|{D^V7QjNZlotTTByulFg9w#Fbml)_q;o@Hhg9wxuPt| z>zED(JLgJD^&SM)DTRB7G_S1*ea*tjbr+EdS&y!I;ML zxnoN&yi*P#X~(oLID{`6Q&coD9~n~=63i!2W|&WFNK49sK7w04`D ziIk(M|J<2KtC=QRPnzfAcOo_!vAL$R!!MVR4*(plFxb`w^3$21Y2 zoZIp3p)5Zt1;6#+@hR%AYWjhxbOq8K6FY0TODi;DdWd8PCuqSm5ud#8C_s^(MEoa4 zU?M)PFD0EIL0jg!1|ap;bkZD+lwZpFLZvJ#OQpq@lK(9J54Mlj@NRwA4BpKNsl4MEyH$a)G-{ zYWzGPsxp5U8LtIq!dl-Epr`8!ayd~&QdUsNzH&#ki$eC zJn2vh=#Qx3_nmkKl!g-3h*b3WK%gS)-8SbOd>~lUi#B;kjhU2R%0WDns;_(@zm$hw ztW$pZudc75vqO29%tW=%L|Vb5d{!PdY9gPN2Uq;dTj)WjT-P**@`jh*pm#s$p1BP| zT}fprhFC@+rD%%uoQtP3_3wn4#+D~EUN~WHSLHgsp;vGoRe(X9PxY??+*gDvSfsfE zyk}D0tpL^lDpkd21vtf|yjvNn<0pv}pHt@VHdlkXnwHEzg49S6$6$46#iYDj9g;Os z%K~5|lWI#qp>_tqWY#HP|5rEH(0N+|V4bF1SE7Qw4S+L-r7!C4GO1AsfOkx4R03cS zz5$RQ$yg?SPYrNAqeu>b1Da@50^kPIJ*Q`GX$}F#hz+q6)J1v@Lfw63Dc0kN1wh?e zs)l7{=Q`AYhD@sOfiQqcc|H)*nW&vpEcj+Ulk$9RC|;XNA)Ot+Ggw8D)w%aAuk0(SJo+C|5ul6=G zZ#k}m4KI-gKjp@>8)#?zK&7`~(0$EJdmXi)4_`W&Sr@Vx} z^2VgR6bge4GMPhRmLh9ojKMHis41q3$s7jDHML!M9U8+rP2Con%#Gm-Cgsm2a99&X za#J|Xq}tiEkawHHW!5S0Hig@TEdN!+^RFqCqA!8!{kczoyWEN%gN;p&INk z#;`P@e`hMPI{ROTC|ID$%im;6xmYFX<- zEo%+WSf^Un8eSOmlVfZA<|eg_bWf1nf{CbQGx5)7Rbf)Gi)Ct}*li6t_~9TU zX`0!&PO;v%fV|rZ3szPD!)B4b)^(J!%WB6>$`_g)}A= zj#jHc5)0+1>x;&q}6gfOYt?E;2NU4ABA)#ThL^~LA9OVP6X2E3N4r`A zL^V)eqS@aSS~01Xb%Q}n$}inuB$JA>Zjj5Q{L&q689F=kg6E2?YieFcdZlSsO_RA7 zh=x?3@=I?h$)xH_D&&bIsK`3yiT~ zYF)>_O*dK7tXd}XAegP`yYc571_M4$#DAIAXXEpbR%oh^We$P$n%ZKSLtv|>SS)iW z?9$W|%Nz;^HJLHrFgU5H9OfGa=QS0`9;EAR>A?|Vn{GrL( z_MF2=c%!Le+dL$Prhxy*pLR%xo=hs1(ji?F&9PB1gGr6is6vr73Kp?WMb;=-&7`7d z6zpYE(K8B8X`<*E1)>?%u1=1l3PsNc9YxP5z{l8R$vf;QNYF%cY&7&{QY{+;QxtLZ zjDeL*DtgAiMkWNvdbrC>SgdJ8fSZ^G zpK6*L;4Y`ZMorB}x{2wqT~pVQ?s7VOqliay20UR>qd5a`BgKCY1&!uR@MKaxn^|Zy zXF^%lsnMJXRhiUi&V*)6YBX^V(nO;<6C9$c1~r;93ytOn9gXHpa8Z^#nlm9m6OHC9 z=*^^BHXEiesqvc)vze$ZCmm+P&rE9k=0LL;sy);CqQiKn`Ord>WBe4P_L?^1_$`30 zns(uNVgY=th<&yYCNL?VEre_))t0P6UdqC^zNkLsrT^--7&<#-!BI_g63>F0nrJ7< zg3isk)mZyXq@hg8yIGK-iM*Qy16z=#@@`fk?|#scce5Z}S+aMt;G`z*nKW<_psbXx>uQKqsUX(3vR{Y9__nR>B~r`8T3HHu z&afIj)kM!3*1%^>sz+<#5|bL+wQ!S(T6WsB7MgUW+SS;820tYdsg-XtJkvxg-)4BB ziB`TX@J1+a9k5ap?fpApgC^ShcfvMJwD<3VTurq1?}9^` zXz$O3Q<`Y+&xH$`Xz$+**EG@IzZ-tkM0@`?@Kh7+{olZ!n&=F@2Y(AhjS8Ki_kcqW zMdk2Zuoql3(YatR6xT%Of_+d{6P*k8K@~;3D(;7UOlno!4;PtKoE<1Ma}K~A)~T8E zU)?i9=WY3~4tfIqqkO)o^JY@>=l}#Usd;n&Hfo}IbO5&ZrhIB19e{5&(b{?d9xFjVEx+t>J4s;xPX`&tIIP}$259iSd7^*1-=g|om%cMMi5*9M4wwx;D`BU&I z>y+pJtJ`Sk>~IRsFe&ezf(J~>yQko}Ci3nn=#b2w;M4sn!-M4A4?5a&PC*Z4$$QQz z*rtj0oYRoYq+0zgTxC)o{1)yqDGz=N{Zgnt<-xOXlu3E;dw8IT?}5IDUo_D@(D(3{ zrqwtb&%=97xi}logJY^HlXjU4;KQWal2^!sc~FgY%7g#a)irc>$iw#psZ8a;JQ&2J zJeY@{W|B@lPtJpTir9mBg*^B{M;^?BpLIUEKgxrKeN-vr!Hdw0NwxYCBrz!uUV^?% z%7d3+3zPET6}VvN>~Ib4D`F2`!(WV|8Zxcq!E5kR=OZs&2bVO`srqgd^3n|`$vWkw z|LS}VogHpKeJ16l8_@HZ(El52P4PxvsB~+88j!#Z4Zmu-Hs1^B zFHO(qmqGeh5w0N>T<<{ne$?BE)=1AxxCd1qGu-%|nNFn{H1~u;Y3yu4I{LU}wXxxL{?n4}t8ruhu!lcIb0Zi9K zWBUNYhfqE`w{CNPP-tvF=xA&oK&-OFHDoVZex`}W_91LzQuRH8vsy==;5>p(L%9b2 z1m_X-7(t|Vghwz|6RlZ~UubMW5n9RS! z-7Uri0#o6LWJb*yS9V3~h{ho+KP=ATe1pE_TM7vQU@W@nT61ys{?7wdZo zbu>N4`d&gqP5V&y7c|p!4t0M)tfp5vdp-V!_L|(5oJQ)wM4!?AZhi&nnsQx<=4pDv zx{aEixsmRWrXd!htC}J`iJog(&pIo9Pnn`;Sy|GR*L0P2A)1cXBV8*d6$P&f&6QV> zz&f=?zJlINH14lGUco4)V@}sHO`dOHs?u4Hc{?F}qUnmaJ5si$Z!)*JzlD{W4ri9~ zd9V zT!yC*%N2=`af>~rc&SOia1WFChiMA-VWp=@l$}5|WWw`l>pdL=rRlReT3;*%(Mseb zYAQ?XuB<#yCs9w+p{%P&O*CB@eaF)#qBYSvXcMh9(K=`ootY-%>g^_+MNfm=rL#z5 zQuEzeOjr4MrF9lp6!A*yEN&~pKK$wFEG!w+>P&0ZGMV5e+?Xa>o0XY~RDwyZrf#CV z(qYs=5jPR3b<|rok;bIfB~LMhNv(sP;;|-L2R+4$DS-b}J3WQRR3f_Liz|v$m5D!D z{-C2fK2K3nS>hg-h?WyH(H&nAF^x&pUR12pI$9NrihxX2Ce>b4yqZp=YA-5^%}_+E zVo_0>Nv(=SjkeIL_(4ajVo}jZS@Nn_RIJrRt70*+MU{zT^rUEU@wKL0*WZx#YI!N1e`s3S{t8;Y(G==?qnMWvv#Ew`Ya8Et zNKTqoHho;Igz(UGtm)54B{k7o5hX=AChEiQ#Y&1mCbb8Y7L5&^rMQo1$wa4;BE`#z zcqV!}(jIAwLD@)EKB2bE$4_&K?rJ(|zJ%0%PQH%ll%|vBM@YlwD&0x5)vKI%tSQ%( zsQtWr-7=)<^YiIfq`M39DXfIAc(*X0x|Hw}#TMn$>Jk;iawhWij*=Bb(vp0grBp=` zy;M=IE74shvUDk3Q6#M=9Z|h96-B4d^7G9`TDLKu-XWdZoNxI}*^1)%mVEN@sVFvn zk#8A;^w^-fUX?_Zt@*k=K9$6CgMRR-EV^#X*F8ZxWl)83l|}0>^L6czG7OrA^xUA0 zNL|0mx4ei1U+0rY`O3n&Q&FxfQR`j#x|v8NbMt8dQhg@!#7d-ercBsZ&(pVxxT~q^ z=$F2A#n?TRFB9XXj(4b-Vo(>qP%%$at}E#t8$`OsdsV(SoG;2C(zVv~%&n+>r8B7=C{*laQgiIT`A)KqcEb&r?|V(Tu0%gDQIB>a-7#n{ z(qm1zuKw0g@!Ze_AidV~#(V@V#lC#MoIb9oT2e0Dx$qnN z?}~h&T-TcgbgG6B&UXS=o5!dt?3V$oqyD`wknfor^=OLDNBcDX`p|x=@1c{b&zXt( zUaUf>D5iC)_A-X9H0mm8ooY)BLr1+0);d*Rn4u#NMk&JH`e7*p4GKZZVmjtD#A5Oc z6|0!?TeeYIV#}h@@=L8#E&ImMwME?#ty3-g*3flD-9@caExTdpl2Lb`DL;B@9U#BZ zS{{aN`HYFqFN4tXYfXEYPBE$TOQ>jikn)`XI=^5fE5h^3$_ioPnx;t4^%WY6drWkG z*@9H+5apwN<*N!!L?b5E_XrW8bUZ2%B2Me5?-8Pdp(|Y>LL_P(^*ur)8@f|S12qk? zoJY%%hVBMZh9Vx72yvH5c_Km#KMeR!&7+7yaTXz_u#V!aXvGMz>i@9(+^`%cBg7$t zd@4nVR|Zu>aymlwQJFQ7Tnq|B^465=N>oMD8*>Y!V8gN#QkX&Ak=hygh!Tu^M7<4N zGE!e7-$kz$OYTYxm#$hQP(wn5d9mK&BwkbW@eZY8_8V_5!DDM~ytbkaY% zkawfSb3?bmFIuD@Res5Jtyby3mQ%Ej*0X4F;s3C_S;(^Bsu3+Bj^%rvN;#|P|5x8t z!!q}OT3zgTektAmr=3Us58Zh~msUAiR6mhl%2=c(2JJv9-0FEJ^DVFckM6OddyhRT zoG6IG%`4wE|5#)z+&)QLJqJk~^K+89yx5|v3$7B*LnG0v@Yrfn`N zX&pUTXfA>j;gf{}Rhx^0n&`=eEj}wCw;R*gg)i_c8nkth{@GS+UX$M+>`$MaIGSl12twde6 z%(Uk9-B7KSXsGFF->payn%1DMwTRWU2X(DQ2Tg02UWYcKo2H#hP3ATtS=0Chxz*Z= z0h+QF9C2$aMrzuOx^`lMrsJqX9Y$Hh8{ zZi?`e!q?S0i9t*gv6QmaJBzC~sFa6JCHE)$)sem8d(S+__>^f6ktzfDA^?Mcu@ zMBGt2`i!=VsCZ8i#ZnhBoJrkVbP-dS)cfUK#GoI^@)&$w58n$CtC%uj55BXWAns}s zMQ&A35Vd|H%S@OSNjkVsL~UstkRWPn%5^15GIUW$`wd-GKv!{`N$n5a#6u?a?5Uf0 z&P0*C)1#Z1{(x#w_Z^AiE>ouUM9zkQp5n2lJ2_t>{jP||p_jmiZTL^s(5uia?j<}} zN4v#1*-Ml(=qJZsqNb)?*FOV#7s}ULG%_sBHF}GMOsa<7Vh5AzLvOK{N%f((c*~^v zkR-exQOh!|3mTTJks|yweb&$isk$QWL#pV+r1sQQF^Nglms+T0sbUW6RF6_cb|K4L zCe^Z3afnH^EL9YJ%xwXB^Qez#smNNVL2QkFB3@HWgSJTB6>-b@ixo_&E&U6%rN7w3 zI@Ol`;>$voc}%J;{l!ft)t3IE{u648^3nj&iAi~Bu;`(Qyfj$!QN(Q-B33b}whSrM zmLcME)~U7(5jzT5US?8l86s{nskRIe8Bag7WvD3qjJ;(2q5Q-eBSZyF56e$O3dpAl zb83tfL7INAuox*+5w|m4Br&PcOc$RqsaB^KYIVB!nsutx>0)mo%bQH9)#>6s6SexJ zL%MkN^M_WC7JGhCt&S=Gu*NuXL{qQwKO>#dv?}z^8so)9P5VP%Bi+>WM<@hN5cf5e z3bP>nqNzz31ZIern$l30A>L~m66zW_QCNOewa*AGisY_{JuykNW}^Om9ym$V|BWn_ zCngp0#3T{PI^~J~>RKAQw^&NSeR`7USx7gGDcd@@;c1v8#%Mb6G0`MVhen%gP7+Hs zUB;&>lf*hET3drq7xA3iiFCf!Bys7_d}>#FlE`_PPkU-l7eRmJldLmc>^A7TIx|J; zt9)IRx^qRw>wJo+yFffPXarLEH~G3YK?_B|yL|d4C`%kN$nw!5vHKsT%XQuVQMTyx zKHqX$@M3Y+puI@%3>s2zvDoo%zU2|5lK4F;wUaCiSuFaAd^(Es!k|YXOGOp@Zkn+aud=jTfXio(sNC@uKyy1;BNz|Qes1w ziy&8`Y{(8=iF8a;%-qtA*NQ=&N*6P?S>w%uezyVh@psa;i9ZTa!5G{o-m{KkcXHEh z!h*jlq3%#}klYR0id52|V@Ub;GP$nbAyqPTSCHBmw83wi=&b3D`6lXmYI^4O1ZjX_ z`4(xMrd-#zO}C5LM!vUAzZAB1B8-#x? z{xo#0!*`0ehOS%qE@3LF`u@h;FFaRxXgX=05x(2V_sp$z_#P2$=#GW&HToCnd9&$W zG14eygWp~;R?{;#qG?9H2bgc3L9*Fik)tWsRW{ovRv9|iX8XlPgNh+-H!RB{6}-#Z zFLoK0@BQ{0En9E7+4O@Y*5JRt&`Pvl95(W8z_f*wEcJ1AO@Al zFC``7V4?aBiS>qVgWsY5=(Za==kP<~ltEJ?4vBnSt}E#Z_Ti9lDVbm2XU$M&&??MV z*wR`m-}3$c)IRh7(CspG*Z-%?n}+V$e{_dMgm->@B_a=t!3H^pA1TzbBVu|X-CBb> zMjjFQlH+1j){;S(#=>E5zg=@cRSo&cN!Sn~m z@N@f<=4MD?2E`#oG2wS}r|rOB@9v^?xvrg1*UPZ%h16GB;z?jU(k6rA?8n75Mb>tU zCzLoL?rG}3c$xi#u=!B!4@K&rHTILDyr#75@=+(nyz)vn(X&z1DRGyHcI^_;rwjS> zw8*TO@3S@b|LS%ay5^YgER$O2PmB0UluweO{wq#M*Y=8QT_aF zfXX+r%dnUW;!~zf>koKGdqI4riQb>MAhv1xzTarH%w?ia3Nw%nY8`$0ctM=i)UC`# z(*k2xTU!nPRF;CN*MlmthMUJN8 zp;b}0n(3iaUdrm28)Apn(I>q(#6C@DrqpVFLmXq8Y#m~0h;&vHK8-=TtSQp7Ez&JR z*A3|*(?cixQ{qU!GG$t=(Zi7b(o{5h91_%0ezDj;X?|1qGd*;g-(?|Epw?~ZvIMCf z(`4&<%c|zLL=#2$W`G@Ti7iYMtye8KP`6JJ&dtp&ZixeR)VLqTX9BmxO{PrvrW(

_OLzoxKCI7VzAdU4G(Pr@ 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�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 Ix&sy=2NYkG+W-In diff --git a/App/en/HiGeom.resources.dll b/App/en/HiGeom.resources.dll index cae96bca60ba642d16bac3086da67f6e3e09f075..26b5b26bb0c5b17f125fbecc50bec4e5abc291d7 100644 GIT binary patch delta 231 zcmWNJu}%U(7=&jz2+;r@v9mLwBRO{W?zsJ1Y>b**!4ur=?RC^vgexs5Bosb`3Bhc% zq3{t*cnKR{!N6b4{4?L5OfzamuP^QAr<>1@^(+v%{|Wl7@bEZX4}S0OzQ4Nr&F*-$ z{pFxO>OI+~fFbPTa?D^hi9yj8x7)CMV?b(*a1eATNM($Vf!Hf$h}0cg^8 zbT|-{UdAhNNtnSPKtUt2M)YV=ftb|n3_L7*kB&295+L~;Q^y@*)tq_m^!&#go11-` P6H3T*P@IV*ia+rW3y3zJ diff --git a/App/en/HiMech.resources.dll b/App/en/HiMech.resources.dll index 7b2bee64eae6ff460010fa1cb0d410f1ff18400e..95f39008a63a83d62078d6c9dd8925d8f476f294 100644 GIT binary patch delta 238 zcmWlQy=nqM6ot?1CP;+fT9_xW6E>6iak;HR`V{Fl#mvr%m_D7+!Xg2|fJmMrOrcL< zoIMAwYt7dxoHynyupOP;ee{Uoy>1_@ikn#&VC-_MxL&%_V2= KW-n1>f8rmKi#Of? delta 238 zcmZorX;7Ka!BW9!wPa(D6EkDv=JU*=OakX*UF#cdW;yH-SS>DntfzhR7uF0$OAAXq z0|o{YMh1OjJwrVUOYO8&i?k$@v?OCoLqmfklT=GfGh+)=)3h`rLnBiQV@nH@v=oCx zbK}iZ*?%%|MlvumFf%YPL~fqW^^}R(g28fgJ#Q^zD3HOR&5*{B%3uK`lNe0Eq%ly` z5C{#xBB?;0C4(7*F;I;u5T*g45m43$$hH8AS^`Osz7(MPL>i#_S-I^%x8$ N3ksBNW)%3(2ms}fHH82G diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Common.FileLines.FileLineIndex.html b/App/wwwroot/HiAPI-docsite/api/Hi.Common.FileLines.FileLineIndex.html index 86d1bec..9d162e4 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Common.FileLines.FileLineIndex.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Common.FileLines.FileLineIndex.html @@ -157,6 +157,9 @@ Class FileLineIndex

+ diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.CutterLocations.ClStrips.ClStrip.html b/App/wwwroot/HiAPI-docsite/api/Hi.CutterLocations.ClStrips.ClStrip.html index e35dfa7..c5ac5a5 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.CutterLocations.ClStrips.ClStrip.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.CutterLocations.ClStrips.ClStrip.html @@ -330,6 +330,39 @@ If the display end is set to -1, returns the total number of positions.

+ + +

+ ChartRange + +

+ +

Synchoronized Chart Time Range. +The value is possible to be null for the un-available status.

+
+
+ +
+
public Range<TimeSpan> ChartRange { get; set; }
+
+ + + + + +

Property Value

+
+
Range<TimeSpan>
+
+
+ + + + + + + +

@@ -1045,10 +1078,10 @@ A value of -1 indicates that the display should follow the end of the strip.

- + -

- SetDispRange(int, int, object, int) +

+ SetDispSegment(int, int, object, int)

@@ -1058,7 +1091,7 @@ This method sets both the beginning and ending positions of the display range.
-
public void SetDispRange(int beginIndex, int endIndex, object caller, int lowestLength = 2)
+
public void SetDispSegment(int beginIndex, int endIndex, object caller, int lowestLength = 2)

Parameters

@@ -1237,6 +1270,65 @@ This method sets both the beginning and ending positions of the display range. + +

+ UpdateChartRangeByDispSegment() + +

+ +

Update Chart Time Range By DispSegment. +Internal Use Only.

+
+
+ +
+
public void UpdateChartRangeByDispSegment()
+
+ + + + + + + + + + + + + + + +

+ UpdateDispSegmentByChartRange(object) + +

+ +
+
+ +
+
public void UpdateDispSegmentByChartRange(object caller)
+
+ +

Parameters

+
+
caller object
+
+
+ + + + + + + + + + + +

Events

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Geom.MathUtil.html b/App/wwwroot/HiAPI-docsite/api/Hi.Geom.MathUtil.html index 987dfaf..9fb6e8a 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Geom.MathUtil.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Geom.MathUtil.html @@ -691,6 +691,52 @@ Class MathUtil + + +

+ Clamp<T>(T, T, T) + +

+ +

Clamps a value within an inclusive range of minimum and maximum values.

+
+
+ +
+
public static T Clamp<T>(this T val, T min, T max) where T : IComparable<T>
+
+ +

Parameters

+
+
val T
+
+
min T
+
+
max T
+
+
+ +

Returns

+
+
T
+
+
+ +

Type Parameters

+
+
T
+
+
+ + + + + + + + + +

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.ClStripServiceRunner.html b/App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.ClStripServiceRunner.html index 344d007..ae76bab 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.ClStripServiceRunner.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.ClStripServiceRunner.html @@ -181,8 +181,8 @@ Class ClStripServiceRunner -

- ClStripServiceRunner(Func<MachiningProject>) +

+ ClStripServiceRunner(LocalProjectService)

@@ -191,12 +191,12 @@ Class ClStripServiceRunner
-
public ClStripServiceRunner(Func<MachiningProject> machiningProjectHost)
+
public ClStripServiceRunner(LocalProjectService machiningProjectHost)

Parameters

-
machiningProjectHost Func<MachiningProject>
+
machiningProjectHost LocalProjectService

Function to provide access to the current MachiningProject instance

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.PlayerServiceRunner.html b/App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.PlayerServiceRunner.html index a5c76ee..137d1c5 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.PlayerServiceRunner.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.PlayerServiceRunner.html @@ -181,8 +181,8 @@ Class PlayerServiceRunner -

- PlayerServiceRunner(Func<MachiningProject>) +

+ PlayerServiceRunner(LocalProjectService)

@@ -191,14 +191,13 @@ Class PlayerServiceRunner
-
public PlayerServiceRunner(Func<MachiningProject> machiningProjectHost)
+
public PlayerServiceRunner(LocalProjectService localProjectService)

Parameters

-
machiningProjectHost Func<MachiningProject>
-

Function to create or retrieve a milling course instance.

-
+
localProjectService LocalProjectService
+
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.HiNcKits.HiNcHost.html b/App/wwwroot/HiAPI-docsite/api/Hi.HiNcKits.HiNcHost.html index 5d7cff1..6fbf70f 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.HiNcKits.HiNcHost.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.HiNcKits.HiNcHost.html @@ -450,6 +450,37 @@ Host class for HiNC functionality that provides project management, path resolut + + +

+ LocalProjectService + +

+ +
+
+ +
+
public LocalProjectService LocalProjectService { get; }
+
+ + + + + +

Property Value

+
+
LocalProjectService
+
+
+ + + + + + + +

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html b/App/wwwroot/HiAPI-docsite/api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html index c32f8ad..ae837ed 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html @@ -1238,79 +1238,6 @@ This should be called after collision detection is complete.

-

Events -

- - - -

- MachiningChainChanged - -

- -

Event that is raised when the machining chain is changed. -Provides both the previous and new chain values.

-
-
- -
-
public event Action<SeqPair<IMachiningChain>> MachiningChainChanged
-
- - - - - - -

Event Type

-
-
Action<SeqPair<IMachiningChain>>
-
-
- - - - - - - - -

- WorkpieceChanged - -

- -

Event that is raised when the workpiece is changed.

-
-
- -
-
public event Action<SeqPair<Workpiece>> WorkpieceChanged
-
- - - - - - -

Event Type

-
-
Action<SeqPair<Workpiece>>
-
-
- - - -

Remarks

-

This event is triggered whenever the workpiece property is modified. -Subscribers can use this event to respond to changes in the workpiece configuration, -such as updating visualizations or recalculating machining parameters. -The event provides both the previous and new workpiece values through a SeqPair.

-
- - - - diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Machining.MachiningVolumeRemovalProc.html b/App/wwwroot/HiAPI-docsite/api/Hi.Machining.MachiningVolumeRemovalProc.html index 090e356..7df1fb3 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Machining.MachiningVolumeRemovalProc.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Machining.MachiningVolumeRemovalProc.html @@ -180,8 +180,8 @@ Class MachiningVolumeRemovalProc -

- MachiningVolumeRemovalProc() +

+ MachiningVolumeRemovalProc(Func<MachiningEquipment>)

@@ -190,9 +190,14 @@ Class MachiningVolumeRemovalProc
-
public MachiningVolumeRemovalProc()
+
public MachiningVolumeRemovalProc(Func<MachiningEquipment> machiningEquipmentGetter)
+

Parameters

+
+
machiningEquipmentGetter Func<MachiningEquipment>
+
+
@@ -241,39 +246,6 @@ Class MachiningVolumeRemovalProc - - -

- MachiningEquipment - -

- -

Gets or sets the machining equipment used in the volume removal process. -When changed, clears the internal cache.

-
-
- -
-
public MachiningEquipment MachiningEquipment { get; set; }
-
- - - - - -

Property Value

-
-
MachiningEquipment
-
-
- - - - - - - -

Methods

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.html b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.html index 650fea5..da34cb5 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.html @@ -190,8 +190,8 @@ obsoleted.

-

- DynamicMachiningProjectDisplayee0(Func<MachiningProject>) +

+ DynamicMachiningProjectDisplayee0(LocalProjectService)

@@ -200,12 +200,12 @@ obsoleted.

-
public DynamicMachiningProjectDisplayee0(Func<MachiningProject> machiningProjectHost)
+
public DynamicMachiningProjectDisplayee0(LocalProjectService machiningProjectHost)

Parameters

-
machiningProjectHost Func<MachiningProject>
+
machiningProjectHost LocalProjectService

Function that returns the host milling course

@@ -223,8 +223,8 @@ obsoleted.

-

- DynamicMachiningProjectDisplayee0(Func<MachiningProject>, BitArray, Action<BitArray>) +

+ DynamicMachiningProjectDisplayee0(LocalProjectService, BitArray, Action<BitArray>)

@@ -233,12 +233,12 @@ obsoleted.

-
public DynamicMachiningProjectDisplayee0(Func<MachiningProject> machiningProjectHost, BitArray renderingFlagBitArray, Action<BitArray> setRenderingFlagFunc)
+
public DynamicMachiningProjectDisplayee0(LocalProjectService localProjectService, BitArray renderingFlagBitArray, Action<BitArray> setRenderingFlagFunc)

Parameters

-
machiningProjectHost Func<MachiningProject>
+
localProjectService LocalProjectService

Function that returns the host milling course

renderingFlagBitArray BitArray
@@ -264,6 +264,38 @@ obsoleted.

+ + +

+ LocalProjectService + +

+ +

Function that returns the host milling course.

+
+
+ +
+
public LocalProjectService LocalProjectService { get; set; }
+
+ + + + + +

Property Value

+
+
LocalProjectService
+
+
+ + + + + + + +

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.LocalProjectService.html b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.LocalProjectService.html index b957908..ebc4c65 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.LocalProjectService.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.LocalProjectService.html @@ -103,7 +103,7 @@ Apply absolute file path.

-
public class LocalProjectService : IProjectService, IMachiningProjectGetter
+
public class LocalProjectService : IProjectService, IMachiningProjectGetter, IMachiningStepHost, IGetMachiningEquipment, IDisposable
@@ -122,6 +122,9 @@ Apply absolute file path.

+ + +

@@ -180,6 +183,10 @@ Apply absolute file path.

+

Remarks

+

LocalProjectService handles the runtime data and cache generally not requires configuration IO. +Compare to MachiningProject, LocalProjectService also handles events that does not reset on the MachiningProject been reloaded.

+

Constructors @@ -220,7 +227,7 @@ Apply absolute file path.

-

Initializes a new instance of the LocalProjectService class.

+

Initializes a new instance.

@@ -253,6 +260,359 @@ Apply absolute file path.

+ + +

+ BoundSelectorHost + +

+ +

Gets the bound selector host for managing selection boundaries.

+
+
+ +
+
public BoundSelectorHost BoundSelectorHost { get; }
+
+ + + + + +

Property Value

+
+
BoundSelectorHost
+
+
+ + + + + + + + + + +

+ ClStrip + +

+ +

Gets the cutter location strip containing the machining steps.

+
+
+ +
+
public ClStrip ClStrip { get; }
+
+ + + + + +

Property Value

+
+
ClStrip
+
+
+ + + + + + + + + + +

+ CoordinateEntryDisplayee + +

+ +

Gets the displayee for coordinate entry visualization.

+
+
+ +
+
public CoordinateEntryDisplayee CoordinateEntryDisplayee { get; }
+
+ + + + + +

Property Value

+
+
CoordinateEntryDisplayee
+
+
+ + + + + + + + + + +

+ DictionaryColorGuide + +

+ +

Gets the color guide for dictionary-based coloring.

+
+
+ +
+
public DictionaryColorGuide DictionaryColorGuide { get; }
+
+ + + + + +

Property Value

+
+
DictionaryColorGuide
+
+
+ + + + + + + + + + +

+ EnableCollisionDetection + +

+ +

Gets or sets whether collision detection is enabled. +When set to true, initializes collision detection mechanism.

+
+
+ +
+
public bool EnableCollisionDetection { get; set; }
+
+ + + + + +

Property Value

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

+ EnablePauseOnFailure + +

+ +
+
+ +
+
public bool EnablePauseOnFailure { get; set; }
+
+ + + + + +

Property Value

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

+ EnableStrokeLimitCheck + +

+ +
+
+ +
+
public bool EnableStrokeLimitCheck { get; set; }
+
+ + + + + +

Property Value

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

+ Fixture + +

+ +

Gets or sets the fixture.

+
+
+ +
+
public Fixture Fixture { get; set; }
+
+ + + + + +

Property Value

+
+
Fixture
+
+
+ + + + + + + + + + +

+ Global + +

+ +

global variable for RuntimeApi. +Not save on XML.

+
+
+ +
+
public Dictionary<object, object> Global { get; set; }
+
+ + + + + +

Property Value

+
+
Dictionary<object, object>
+
+
+ + + + + + + + + + +

+ InspectingKey + +

+ +

Gets or sets the current inspecting key for visualization. +When set, updates the inspecting quantity function.

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

Property Value

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

+ InspectingQuantityFunc + +

+ +

Gets the function that retrieves the quantity value for the current inspecting key.

+
+
+ +
+
public Func<MachiningStep, double?> InspectingQuantityFunc { get; }
+
+ + + + + +

Property Value

+
+
Func<MachiningStep, double?>
+
+
+ + + + + + + +

@@ -285,6 +645,136 @@ Apply absolute file path.

+ + +

+ MachiningActRunner + +

+ +

Gets the machining act runner responsible for executing machining operations.

+
+
+ +
+
public MachiningActRunner MachiningActRunner { get; }
+
+ + + + + +

Property Value

+
+
MachiningActRunner
+
+
+ + + + + + + + + + +

+ MachiningChain + +

+ +

Gets or sets the machining chain.

+
+
+ +
+
public IMachiningChain MachiningChain { get; set; }
+
+ + + + + +

Property Value

+
+
IMachiningChain
+
+
+ + + + + + + + + + +

+ MachiningChainFile + +

+ +

Gets or sets the file path of the solid machining chain. +This is used for XML serialization and file management.

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

Property Value

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

+ MachiningEquipment + +

+ +

Gets or sets the machining equipment used for milling. +Updates related components when changed.

+
+
+ +
+
public MachiningEquipment MachiningEquipment { get; set; }
+
+ + + + + +

Property Value

+
+
MachiningEquipment
+
+
+ + + + + + + +

@@ -348,6 +838,293 @@ Apply absolute file path.

+ + +

+ MachiningSession + +

+ +

Gets the current machining session.

+
+
+ +
+
public MachiningSession MachiningSession { get; set; }
+
+ + + + + +

Property Value

+
+
MachiningSession
+
+
+ + + + + + + + + + +

+ MachiningTool + +

+ +

Gets or sets the machining tool.

+
+
+ +
+
public IMachiningTool MachiningTool { get; set; }
+
+ + + + + +

Property Value

+
+
IMachiningTool
+
+
+ + + + + + + + + + +

+ MachiningToolHouse + +

+ +
+
+ +
+
public MachiningToolHouse MachiningToolHouse { get; set; }
+
+ + + + + +

Property Value

+
+
MachiningToolHouse
+
+
+ + + + + + + + + + +

+ MachiningToolHouseFile + +

+ +

Gets or sets the file path to the milling tool house configuration.

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

Property Value

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

+ MillingStepLuggageReader + +

+ +

Gets the reader for accessing milling step luggage data.

+
+
+ +
+
public ParallelBulkReader<MillingStepLuggage> MillingStepLuggageReader { get; }
+
+ + + + + +

Property Value

+
+
ParallelBulkReader<MillingStepLuggage>
+
+
+ + + + + + + + + + +

+ NcOptProc + +

+ +

Gets the NC optimization processor for optimizing NC programs.

+
+
+ +
+
public NcOptProc NcOptProc { get; }
+
+ + + + + +

Property Value

+
+
NcOptProc
+
+
+ + + + + + + + + + +

+ NcRunner + +

+ +

Gets the NC runner responsible for executing NC programs.

+
+
+ +
+
public NcRunner NcRunner { get; }
+
+ + + + + +

Property Value

+
+
NcRunner
+
+
+ + + + + + + + + + +

+ PacePlayer + +

+ +

Gets the pace player for controlling execution pace of milling operations.

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

Property Value

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

+ Progress + +

+ +

Gets the progress reporting mechanism for long-running operations.

+
+
+ +
+
public Progress<IProgressReport> Progress { get; }
+
+ + + + + +

Property Value

+
+
Progress<IProgressReport>
+
+
+ + + + + + + +

@@ -380,6 +1157,134 @@ Apply absolute file path.

+ + +

+ RuntimeApi + +

+ +

Gets the shell API for interacting with this machining process.

+
+
+ +
+
public RuntimeApi RuntimeApi { get; }
+
+ + + + + +

Property Value

+
+
RuntimeApi
+
+
+ + + + + + + + + + +

+ SessionMessageHost + +

+ +

Gets the message host for displaying messages, warnings, and errors.

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

Property Value

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

+ StepPropertyAccessDictionary + +

+ +

Gets the dictionary mapping property keys to their access methods.

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

Property Value

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

+ TimeMapping + +

+ +

Gets or sets the time mapping for synchronizing different time-based data streams.

+
+
+ +
+
public TimeMapping TimeMapping { get; set; }
+
+ + + + + +

Property Value

+
+
TimeMapping
+
+
+ + + + + + + +

@@ -412,10 +1317,110 @@ Apply absolute file path.

+ + +

+ Workpiece + +

+ +

Gets or sets the workpiece to be machined. +Ensures proper initialization of workpiece properties.

+
+
+ +
+
public Workpiece Workpiece { get; set; }
+
+ + + + + +

Property Value

+
+
Workpiece
+
+
+ + + + + + + +

Methods

+ + +

+ Act(IAct, IIndexedFileLine, CancellationToken?) + +

+ +

Executes an act and collects all results.

+
+
+ +
+
public void Act(IAct act, IIndexedFileLine sourceCommand = null, CancellationToken? cancellationToken = null)
+
+ +

Parameters

+
+
act IAct
+

The act to execute.

+
+
sourceCommand IIndexedFileLine
+

The source command that triggered the act.

+
+
cancellationToken CancellationToken?
+

Cancellation token to cancel the operation.

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

+ BeginSession() + +

+ +

Initiate a simulation session. +Clear the state from previous session (if existed).

+
+
+ +
+
public void BeginSession()
+
+ + + + + + + + + + + + +

@@ -443,6 +1448,130 @@ Apply absolute file path.

+ + +

+ Dispose() + +

+ +

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

+
+
+ +
+
public void Dispose()
+
+ + + + + + + + + + + + + + + +

+ Dispose(bool) + +

+ +
+
+ +
+
protected virtual void Dispose(bool disposing)
+
+ +

Parameters

+
+
disposing bool
+
+
+ + + + + + + + + + + + + + +

+ EndSession() + +

+ +

Ends the current machining session and releases associated resources.

+
+
+ +
+
public void EndSession()
+
+ + + + + + + + + + + + + + + +

+ GetInspectingKeyPresentName(StringLocalizer) + +

+ +

Gets the localized presentation name for the current inspecting key.

+
+
+ +
+
public string GetInspectingKeyPresentName(StringLocalizer stringLocalizer)
+
+ +

Parameters

+
+
stringLocalizer StringLocalizer
+

The string localizer to use for localization

+
+
+ +

Returns

+
+
string
+

The localized presentation name

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

@@ -509,6 +1638,39 @@ Apply absolute file path.

+ + +

+ GetMillingEquipment() + +

+ + +
+ +
+
public MachiningEquipment GetMillingEquipment()
+
+ + +

Returns

+
+
MachiningEquipment
+

MachiningEquipment

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

@@ -575,6 +1737,224 @@ Apply absolute file path.

+ + +

+ PlayCsvFile(string, string) + +

+ +

Plays a CSV file from the specified path.

+
+
+ +
+
public void PlayCsvFile(string baseDirectory, string relFilePath)
+
+ +

Parameters

+
+
baseDirectory string
+

Base directory for resolving relative paths.

+
+
relFilePath string
+

Relative path to the CSV file.

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

+ PlayNc(string, string) + +

+ +

Plays NC commands from raw text with pace control.

+
+
+ +
+
public void PlayNc(string ncText, string fileNameAlternative = "--")
+
+ +

Parameters

+
+
ncText string
+

The NC command text to execute

+
+
fileNameAlternative string
+

Alternative name to associate with the NC program

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

+ PlayNcFile(string, string) + +

+ +

Plays an NC file from the specified path with pace control.

+
+
+ +
+
public void PlayNcFile(string baseDirectory, string relFilePath)
+
+ +

Parameters

+
+
baseDirectory string
+

Base directory for resolving relative paths

+
+
relFilePath string
+

Relative path to the NC file

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

+ ProcAct(IAct, IIndexedFileLine, CancellationToken?) + +

+ +

Processes an act and returns the results.

+
+
+ +
+
public IEnumerable<object> ProcAct(IAct act, IIndexedFileLine sourceCommand = null, CancellationToken? cancellationToken = null)
+
+ +

Parameters

+
+
act IAct
+

The act to process.

+
+
sourceCommand IIndexedFileLine
+

The source command that triggered the act.

+
+
cancellationToken CancellationToken?
+

Cancellation token to cancel the operation.

+
+
+ +

Returns

+
+
IEnumerable<object>
+

Enumerable of results from processing the act.

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

+ ReTrainMillingPara(SampleFlag, double, string, CancellationToken) + +

+ +

Train Milling Parameter.

+
+
+ +
+
public void ReTrainMillingPara(SampleFlag sampleFlags, double outlierRatio, string dstRelFile, CancellationToken cancellationToken)
+
+ +

Parameters

+
+
sampleFlags SampleFlag
+
+
outlierRatio double
+
+
dstRelFile string
+
+
cancellationToken CancellationToken
+
+
+ + + + + + + + + + + + + + +

+ RefreshDrawing() + +

+ +

Refreshes the visual display of the milling course.

+
+
+ +
+
public void RefreshDrawing()
+
+ + + + + + + + + + + + +

@@ -608,6 +1988,159 @@ Apply absolute file path.

+ + +

+ ResetRuntime() + +

+ +

Reset the runtime states including: runtime geometry, collision flags, machine tool position, CL strips, message buffer and etc..

+
+
+ +
+
public void ResetRuntime()
+
+ + + + + + + + + + + + + + + +

+ RunCsvFile(string, string) + +

+ +

Runs a CSV file from the specified path.

+
+
+ +
+
public IEnumerable<Action> RunCsvFile(string baseDirectory, string relFilePath)
+
+ +

Parameters

+
+
baseDirectory string
+

Base directory for resolving relative paths.

+
+
relFilePath string
+

Relative path to the CSV file.

+
+
+ +

Returns

+
+
IEnumerable<Action>
+

An enumerable of actions to be executed.

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

+ RunNc(string, string) + +

+ +

Runs NC commands from raw text.

+
+
+ +
+
public IEnumerable<Action> RunNc(string ncText, string fileNameAlternative = "--")
+
+ +

Parameters

+
+
ncText string
+

The NC command text to execute

+
+
fileNameAlternative string
+

Alternative name to associate with the NC program

+
+
+ +

Returns

+
+
IEnumerable<Action>
+

An enumerable of actions to be executed

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

+ RunNcFile(string, string) + +

+ +

Runs an NC file from the specified path.

+
+
+ +
+
public IEnumerable<Action> RunNcFile(string baseDirectory, string relFilePath)
+
+ +

Parameters

+
+
baseDirectory string
+

Base directory for resolving relative paths. If the value is null, BaseDirectory substitutes the value.

+
+
relFilePath string
+

Relative path to the NC file.

+
+
+ +

Returns

+
+
IEnumerable<Action>
+

An enumerable of actions to be executed.

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

@@ -668,228 +2201,206 @@ Apply absolute file path.

+ + +

+ TrainMillingPara(SampleFlag, bool, double, string, CancellationToken, ICuttingPara) + +

+ +

Train Milling Parameter.

+
+
+ +
+
public void TrainMillingPara(SampleFlag sampleFlags, bool enableFzOnlyDuringDrilling, double outlierRatio, string dstRelFile, CancellationToken cancellationToken, ICuttingPara paraTemplate)
+
+ +

Parameters

+
+
sampleFlags SampleFlag
+
+
enableFzOnlyDuringDrilling bool
+
+
outlierRatio double
+
+
dstRelFile string
+
+
cancellationToken CancellationToken
+
+
paraTemplate ICuttingPara
+
+
+ + + + + + + + + + + + + + +

+ UpdateByMachiningChain() + +

+ +

Updates components when the machining chain changes.

+
+
+ +
+
public void UpdateByMachiningChain()
+
+ + + + + + + + + + + + + + + +

+ UpdateByMachiningEquipment() + +

+ +

Call on MachiningEquipment Or MachiningChainChanged. +i.e. Update By MachiningEquipment Or MachiningChain. +The function is called on MachiningEquipment and its delegate property changed. +If the changing is raised outer from THIS service, this updating function should be manual called.

+
+
+ +
+
public void UpdateByMachiningEquipment()
+
+ + + + + + + + + + + + + + + +

+ UpdateIdealMillingToolOffsetTableByToolHouse() + +

+ +

Updates the ideal milling tool offset table based on the current tool house configuration.

+
+
+ +
+
public void UpdateIdealMillingToolOffsetTableByToolHouse()
+
+ + + + + + + + + + + + + + + +

+ WriteShotFile(TimeSpan, string) + +

+ +

Writes time-based shot data to a file with the specified sampling period.

+
+
+ +
+
public void WriteShotFile(TimeSpan samplingPeriod, string relFileTemplate = "Output/[NcName].shot.csv")
+
+ +

Parameters

+
+
samplingPeriod TimeSpan
+

The time period between samples

+
+
relFileTemplate string
+

Template for the output file path, can include [NcName] placeholder

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

+ WriteStepFile(string) + +

+ +

Writes step-based data to a file.

+
+
+ +
+
public void WriteStepFile(string relFileTemplate = "Output/[NcName].step.csv")
+
+ +

Parameters

+
+
relFileTemplate string
+

Template for the output file path, can include [NcName] placeholder

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

Events

-

- ClStrip_AbsDispEndChanged - -

- -

Event raised when the absolute display end position changes for ClStrip.

-
-
- -
-
public event EventHandler ClStrip_AbsDispEndChanged
-
- - - - - - -

Event Type

-
-
EventHandler
-
-
- - - - - - - - -

- ClStrip_DispBeginChanged - -

- -

Event raised when the display begin position changes for ClStrip.

-
-
- -
-
public event EventHandler ClStrip_DispBeginChanged
-
- - - - - - -

Event Type

-
-
EventHandler
-
-
- - - - - - - - -

- ClStrip_DispEndChanged - -

- -

Event raised when the display end position changes for ClStrip.

-
-
- -
-
public event EventHandler ClStrip_DispEndChanged
-
- - - - - - -

Event Type

-
-
EventHandler
-
-
- - - - - - - - -

- ClStrip_MachiningStepSelected - -

- -

The same effecting position as ClStrip_PosSelected but with more convenient arguments for the end-user for ClStrip.

-
-
- -
-
public event Action<MachiningStep> ClStrip_MachiningStepSelected
-
- - - - - - -

Event Type

-
-
Action<MachiningStep>
-
-
- - - - - - - - -

- ClStrip_PosAdded - -

- -

Event raised when a new position is added to the strip for ClStrip.

-
-
- -
-
public event Action<ClStripPos> ClStrip_PosAdded
-
- - - - - - -

Event Type

-
-
Action<ClStripPos>
-
-
- - - - - - - - -

- ClStrip_PosEntered - -

- -

Event raised when the mouse enters a position for ClStrip.

-
-
- -
-
public event EventHandler<ClStripPos> ClStrip_PosEntered
-
- - - - - - -

Event Type

-
-
EventHandler<ClStripPos>
-
-
- - - - - - - - -

- ClStrip_PosSelected - -

- -

Event raised when a position is selected for ClStrip.

-
-
- -
-
public event EventHandler<ClStripPos> ClStrip_PosSelected
-
- - - - - - -

Event Type

-
-
EventHandler<ClStripPos>
-
-
- - - - - - - -

MachiningProjectChanged @@ -954,110 +2465,17 @@ The previous step is null if no previous step exists.

-

- PacePlayer_IsFinishedChangedEvent +

+ OnRanNcBlock

-

Event triggered when the finished state changes.

+

Event triggered after an NC block is executed.

-
public event Action<bool> PacePlayer_IsFinishedChangedEvent
-
- - - - - - -

Event Type

-
-
Action<bool>
-
-
- - - - - - - - -

- PacePlayer_IsLockedChangedEvent - -

- -

Event triggered when the lock state changes.

-
-
- -
-
public event Action<bool> PacePlayer_IsLockedChangedEvent
-
- - - - - - -

Event Type

-
-
Action<bool>
-
-
- - - - - - - - -

- PacePlayer_IsRunningChangedEvent - -

- -

Event triggered when the running state changes.

-
-
- -
-
public event Action<bool> PacePlayer_IsRunningChangedEvent
-
- - - - - - -

Event Type

-
-
Action<bool>
-
-
- - - - - - - - -

- PacePlayer_ResetedEvent - -

- -

Event triggered after the player has been reset.

-
-
- -
-
public event Action PacePlayer_ResetedEvent
+
public event Action OnRanNcBlock
@@ -1078,17 +2496,17 @@ The previous step is null if no previous step exists.

-

- SessionMessageHost_CollectionCleared +

+ OnUpdatedInspectingQuantityFunc

-

Event raised when the collection is cleared.

+

Event triggered when the inspecting quantity function is updated.

-
public event Action SessionMessageHost_CollectionCleared
+
public event Action OnUpdatedInspectingQuantityFunc
@@ -1109,17 +2527,17 @@ The previous step is null if no previous step exists.

-

- SessionMessageHost_CollectionItemAdded +

+ WorkpieceChanged

-

Event raised when a new milling message is added to the collection.

+

Event that is raised when the workpiece is changed.

-
public event Action<SessionMessagePack> SessionMessageHost_CollectionItemAdded
+
public event Action<SeqPair<Workpiece>> WorkpieceChanged
@@ -1129,43 +2547,18 @@ The previous step is null if no previous step exists.

Event Type

-
Action<SessionMessagePack>
+
Action<SeqPair<Workpiece>>
- - - - - -

- SessionMessageHost_CollectionItemChanged - -

- -

Event raised when a collection item is changed.

+

Remarks

+

This event is triggered whenever the workpiece property is modified. +Subscribers can use this event to respond to changes in the workpiece configuration, +such as updating visualizations or recalculating machining parameters. +The event provides both the previous and new workpiece values through a SeqPair.

-
- -
-
public event Action SessionMessageHost_CollectionItemChanged
-
- - - - - - -

Event Type

-
-
Action
-
-
- - - diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.MachiningActRunner.html b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.MachiningActRunner.html index eca84f5..cac81bf 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.MachiningActRunner.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.MachiningActRunner.html @@ -186,17 +186,17 @@ Class MachiningActRunner -

- MachiningActRunner(SessionMessageHost, MongoClient, IMongoCollection<MillingStepLuggage>, IMongoCollection<Slice>, Action, ICsScriptApi, MillingActRunnerConfig) +

+ MachiningActRunner(SessionMessageHost, MongoClient, Func<MachiningToolHouse>, Func<MachiningEquipment>, IMongoCollection<MillingStepLuggage>, IMongoCollection<Slice>, Action, ICsScriptApi, MachiningActRunnerConfig)

-

Initializes a new instance of the MachiningActRunner class.

+

Initializes a new instance.

-
public MachiningActRunner(SessionMessageHost messageHost, MongoClient mongoClient, IMongoCollection<MillingStepLuggage> millingStepLuggageCollection, IMongoCollection<Slice> substractionSplicDbCollection, Action resetMillingStepLuggageDbAction, ICsScriptApi shellApi, MillingActRunnerConfig config = null)
+
public MachiningActRunner(SessionMessageHost messageHost, MongoClient mongoClient, Func<MachiningToolHouse> machiningToolHouseGetter, Func<MachiningEquipment> machiningEquipmentGetter, IMongoCollection<MillingStepLuggage> millingStepLuggageCollection, IMongoCollection<Slice> substractionSplicDbCollection, Action resetMillingStepLuggageDbAction, ICsScriptApi shellApi, MachiningActRunnerConfig config = null)

Parameters

@@ -207,6 +207,10 @@ Class MachiningActRunner
mongoClient MongoClient

The MongoDB client.

+
machiningToolHouseGetter Func<MachiningToolHouse>
+
+
machiningEquipmentGetter Func<MachiningEquipment>
+
millingStepLuggageCollection IMongoCollection<MillingStepLuggage>

The MongoDB collection for milling step luggage.

@@ -219,7 +223,7 @@ Class MachiningActRunner
shellApi ICsScriptApi

The C# script API for the milling session.

-
config MillingActRunnerConfig
+
config MachiningActRunnerConfig

Optional configuration for the milling act runner.

@@ -304,19 +308,19 @@ This property is provided as a member value getter and should not be modified. + -

- EnableCollisionDetection +

+ Config

-

Gets or sets whether collision detection is enabled.

+

Gets or sets the runner configuration.

-
public bool EnableCollisionDetection { get; set; }
+
public MachiningActRunnerConfig Config { get; set; }
@@ -325,40 +329,7 @@ This property is provided as a member value getter and should not be modified.Property Value
-
bool
-
-
- - - - - - - - - - -

- EnablePhysics - -

- -

Gets or sets whether milling force evaluation is enabled. -This is a runtime configuration and is not managed in XML IO.

-
-
- -
-
public bool EnablePhysics { get; set; }
-
- - - - - -

Property Value

-
-
bool
+
MachiningActRunnerConfig
@@ -401,40 +372,6 @@ This is a runtime configuration and is not managed in XML IO.

- - -

- EnableWearEffect - -

- -

Gets or sets whether to enable coating wear effects. -Note: This function is not fully prepared yet. -Only affects further wear by the wear coefficient of inner material.

-
-
- -
-
public bool EnableWearEffect { get; set; }
-
- - - - - -

Property Value

-
-
bool
-
-
- - - - - - - -

@@ -468,38 +405,6 @@ This is for internal use only.

- - -

- MachiningEquipment - -

- -

Gets or sets the machining equipment.

-
-
- -
-
public MachiningEquipment MachiningEquipment { get; set; }
-
- - - - - -

Property Value

-
-
MachiningEquipment
-
-
- - - - - - - -

@@ -544,7 +449,7 @@ This is for internal use only.

-
public MachiningToolHouse MachiningToolHouse { get; set; }
+
public MachiningToolHouse MachiningToolHouse { get; }
@@ -596,38 +501,6 @@ This is for internal use only.

- - -

- MillingActRunnerConfig - -

- -

Gets or sets the runner configuration.

-
-
- -
-
public MillingActRunnerConfig MillingActRunnerConfig { get; set; }
-
- - - - - -

Property Value

-
-
MillingActRunnerConfig
-
-
- - - - - - - -

@@ -789,8 +662,7 @@ This is for internal use only.

-

Disposes of the resources used by the MachiningActRunner.

-
+
@@ -800,8 +672,7 @@ This is for internal use only.

Parameters

disposing bool
-

True to release both managed and unmanaged resources; false to release only unmanaged resources.

-
+
@@ -992,6 +863,62 @@ This is for internal use only.

+ + +

+ UpdateByMachiningChain() + +

+ +

Update By MachiningChain. +Internal Use Only.

+
+
+ +
+
public void UpdateByMachiningChain()
+
+ + + + + + + + + + + + + + + +

+ UpdateByMachiningEquipment() + +

+ +

Update By Hi.MachiningProcs.MachiningActRunner.MachiningEquipment. +Internal Use Only.

+
+
+ +
+
public void UpdateByMachiningEquipment()
+
+ + + + + + + + + + + + +

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.MachiningActRunnerConfig.html b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.MachiningActRunnerConfig.html new file mode 100644 index 0000000..92101a3 --- /dev/null +++ b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.MachiningActRunnerConfig.html @@ -0,0 +1,627 @@ + + + + + Class MachiningActRunnerConfig | HiAPI-C# 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class MachiningActRunnerConfig +

+ +
+
Namespace
Hi.MachiningProcs
+
Assembly
HiMech.dll
+
+ +

Represents the configuration for a milling act runner. +Provides settings for physics simulation, evaluation, and temperature control.

+
+
+ +
+
public class MachiningActRunnerConfig : IMakeXmlSource
+
+ + + + +
+
Inheritance
+
+ +
MachiningActRunnerConfig
+
+
+ +
+
Implements
+
+ +
+
+ + +
+
Inherited Members
+
+ + + + + + + +
+ +
+
Extension Methods
+
+ + + + + + + +
+ + + + + +

Constructors +

+ + + + +

+ MachiningActRunnerConfig() + +

+ +

Initializes a new instance.

+
+
+ +
+
public MachiningActRunnerConfig()
+
+ + + + + + + + + + + + + + + +

+ MachiningActRunnerConfig(XElement, string) + +

+ +

Initializes a new instance of the MachiningActRunnerConfig class from XML.

+
+
+ +
+
public MachiningActRunnerConfig(XElement src, string baseDirectory)
+
+ +

Parameters

+
+
src XElement
+

The source XML element.

+
+
baseDirectory string
+

The base directory for resolving relative paths.

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

Properties +

+ + + + +

+ EnableCollisionDetection + +

+ +

Gets or sets whether collision detection is enabled.

+
+
+ +
+
public bool EnableCollisionDetection { get; set; }
+
+ + + + + +

Property Value

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

+ EnableDeflectionTransformation + +

+ +

Gets or sets whether deflection transformation is enabled. +Note: This feature is pending testing.

+
+
+ +
+
public bool EnableDeflectionTransformation { get; set; }
+
+ + + + + +

Property Value

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

+ EnablePauseOnFailure + +

+ +

Enable Pause On Failure Detected. +Only take effect if the EnableStrokeLimitCheck or EnableCollisionDetection is enabled.

+
+
+ +
+
public bool EnablePauseOnFailure { get; set; }
+
+ + + + + +

Property Value

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

+ EnablePhysics + +

+ +

Gets or sets whether milling force evaluation is enabled.

+
+
+ +
+
public bool EnablePhysics { get; set; }
+
+ + + + + +

Property Value

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

+ EnableStrokeLimitCheck + +

+ +

Gets or sets whether stroke limit checking is enabled.

+
+
+ +
+
public bool EnableStrokeLimitCheck { get; set; }
+
+ + + + + +

Property Value

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

+ EnableWearEffect + +

+ +

Gets or sets whether to enable coating wear effects. +Note: This function is not fully prepared yet. +Only affects further wear by the wear coefficient of inner material.

+
+
+ +
+
public bool EnableWearEffect { get; set; }
+
+ + + + + +

Property Value

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

+ InitSpindleTemperature_C + +

+ +

Gets or sets the initial spindle temperature in Celsius.

+
+
+ +
+
public double InitSpindleTemperature_C { get; set; }
+
+ + + + + +

Property Value

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

+ InitSpindleTemperature_K + +

+ +

Gets or sets the initial spindle temperature in Kelvin. +The temperature is initialized when a working session is restarted or a new session is started.

+
+
+ +
+
public double InitSpindleTemperature_K { get; set; }
+
+ + + + + +

Property Value

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

+ XName + +

+ +

Gets the XML element name for serialization.

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

+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+ +
+ + + + diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.MachiningProject.html b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.MachiningProject.html index b040b42..a10f9d6 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.MachiningProject.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.MachiningProject.html @@ -102,7 +102,7 @@ Class MachiningProject
-
public class MachiningProject : IDisposable, IMachiningStepHost, IGetMachiningEquipment, IMakeXmlSource, IMachiningProjectGetter
+
public class MachiningProject : IDisposable, IMakeXmlSource, IMachiningProjectGetter
@@ -120,8 +120,6 @@ Class MachiningProject
Implements
- -
@@ -195,8 +193,7 @@ Class MachiningProject

-

Initializes a new instance of the MachiningProject class with the specified directory. -Uses the default MongoDB connection.

+

Initializes a new instance with the specified directory.

@@ -222,42 +219,6 @@ Uses the default MongoDB connection.

- - -

- MachiningProject(string, MongoClient) - -

- -

Initializes a new instance of the MachiningProject class with the specified directory and MongoDB client.

-
-
- -
-
public MachiningProject(string baseDirectory, MongoClient mongoClient)
-
- -

Parameters

-
-
baseDirectory string
-

Base directory for file operations

-
-
mongoClient MongoClient
-

MongoDB client instance

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

@@ -265,7 +226,7 @@ Uses the default MongoDB connection.

-

Initializes a new instance of the MachiningProject class from XML data using MongoDB.

+

Initializes a new instance from XML data.

@@ -294,45 +255,6 @@ Uses the default MongoDB connection.

- - -

- MachiningProject(XElement, string, MongoClient) - -

- -

Initializes a new instance of the MachiningProject class from XML data.

-
-
- -
-
public MachiningProject(XElement src, string baseDirectory, MongoClient mongoClient)
-
- -

Parameters

-
-
src XElement
-

XML element containing configuration data

-
-
baseDirectory string
-

Base directory for resolving relative paths

-
-
mongoClient MongoClient
-

MongoDB client instance

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

Properties

@@ -401,102 +323,6 @@ Uses the default MongoDB connection.

- - -

- BoundSelectorHost - -

- -

Gets the bound selector host for managing selection boundaries.

-
-
- -
-
public BoundSelectorHost BoundSelectorHost { get; }
-
- - - - - -

Property Value

-
-
BoundSelectorHost
-
-
- - - - - - - - - - -

- ClStrip - -

- -

Gets the cutter location strip.

-
-
- -
-
public ClStrip ClStrip { get; }
-
- - - - - -

Property Value

-
-
ClStrip
-
-
- - - - - - - - - - -

- CoordinateEntryDisplayee - -

- -

Gets the displayee for coordinate entry visualization.

-
-
- -
-
public CoordinateEntryDisplayee CoordinateEntryDisplayee { get; }
-
- - - - - -

Property Value

-
-
CoordinateEntryDisplayee
-
-
- - - - - - - -

@@ -504,8 +330,7 @@ Uses the default MongoDB connection.

-

Gets the color guide for dictionary-based coloring.

-
+
@@ -529,20 +354,19 @@ Uses the default MongoDB connection.

- + -

- EnableCollisionDetection +

+ MachiningActRunnerConfig

-

Gets or sets whether collision detection is enabled. -When set to true, initializes collision detection mechanism.

+

Gets or sets the configuration for the milling act runner.

-
public bool EnableCollisionDetection { get; set; }
+
public MachiningActRunnerConfig MachiningActRunnerConfig { get; set; }
@@ -551,267 +375,7 @@ When set to true, initializes collision detection mechanism.

Property Value

-
bool
-
-
- - - - - - - - - - -

- EnablePauseOnFailure - -

- -

Enable Pause On Failure Detected. -Only take effect if the EnableCollisionDetection or EnableStrokeLimitCheck is enabled.

-
-
- -
-
public bool EnablePauseOnFailure { get; set; }
-
- - - - - -

Property Value

-
-
bool
-
-
- - - - - - - - - - -

- EnableStrokeLimitCheck - -

- -

Gets or sets whether stroke limit checking is enabled.

-
-
- -
-
public bool EnableStrokeLimitCheck { get; set; }
-
- - - - - -

Property Value

-
-
bool
-
-
- - - - - - - - - - -

- Global - -

- -

global variable for RuntimeApi. -Not save on XML.

-
-
- -
-
public Dictionary<object, object> Global { get; set; }
-
- - - - - -

Property Value

-
-
Dictionary<object, object>
-
-
- - - - - - - - - - -

- InspectingKey - -

- -

Gets or sets the current inspecting key for visualization. -When set, updates the inspecting quantity function.

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

Property Value

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

- InspectingQuantityFunc - -

- -

Gets the function that retrieves the quantity value for the current inspecting key.

-
-
- -
-
public Func<MachiningStep, double?> InspectingQuantityFunc { get; }
-
- - - - - -

Property Value

-
-
Func<MachiningStep, double?>
-
-
- - - - - - - - - - -

- MachiningActRunner - -

- -

Gets the machining act runner responsible for executing machining operations.

-
-
- -
-
public MachiningActRunner MachiningActRunner { get; }
-
- - - - - -

Property Value

-
-
MachiningActRunner
-
-
- - - - - - - - - - -

- MachiningEquipment - -

- -

Gets or sets the machining equipment used for milling. -Updates related components when changed.

-
-
- -
-
public MachiningEquipment MachiningEquipment { get; set; }
-
- - - - - -

Property Value

-
-
MachiningEquipment
-
-
- - - - - - - - - - -

- MachiningSession - -

- -

Gets or sets the current machining session.

-
-
- -
-
public MachiningSession MachiningSession { get; set; }
-
- - - - - -

Property Value

-
-
MachiningSession
+
MachiningActRunnerConfig
@@ -829,8 +393,7 @@ Updates related components when changed.

-

Gets or sets the milling tool house containing available tools.

-
+
@@ -886,38 +449,6 @@ Updates related components when changed.

- - -

- MillingActRunnerConfig - -

- -

Gets or sets the configuration for the milling act runner.

-
-
- -
-
public MillingActRunnerConfig MillingActRunnerConfig { get; set; }
-
- - - - - -

Property Value

-
-
MillingActRunnerConfig
-
-
- - - - - - - -

@@ -950,38 +481,6 @@ Updates related components when changed.

- - -

- MillingStepLuggageReader - -

- -

Gets the reader for accessing milling step luggage data.

-
-
- -
-
public ParallelBulkReader<MillingStepLuggage> MillingStepLuggageReader { get; }
-
- - - - - -

Property Value

-
-
ParallelBulkReader<MillingStepLuggage>
-
-
- - - - - - - -

@@ -989,12 +488,11 @@ Updates related components when changed.

-

Gets the NC environment from the NC runner.

-
+
-
public NcEnv NcEnv { get; }
+
public NcEnv NcEnv { get; set; }
@@ -1014,134 +512,6 @@ Updates related components when changed.

- - -

- NcOptOptionDictionary - -

- -

Gets or sets the dictionary of NC optimization options.

-
-
- -
-
public Dictionary<string, NcOptOption> NcOptOptionDictionary { get; set; }
-
- - - - - -

Property Value

-
-
Dictionary<string, NcOptOption>
-
-
- - - - - - - - - - -

- NcOptProc - -

- -

Gets the NC optimization processor for optimizing NC programs.

-
-
- -
-
public NcOptProc NcOptProc { get; }
-
- - - - - -

Property Value

-
-
NcOptProc
-
-
- - - - - - - - - - -

- NcRunner - -

- -

Gets the NC runner responsible for executing NC programs.

-
-
- -
-
public NcRunner NcRunner { get; }
-
- - - - - -

Property Value

-
-
NcRunner
-
-
- - - - - - - - - - -

- PacePlayer - -

- -

Gets the pace player for controlling execution pace of milling operations.

-
-
- -
-
public PacePlayer PacePlayer { get; }
-
- - - - - -

Property Value

-
-
PacePlayer
-
-
- - - - - - - -

@@ -1174,134 +544,6 @@ Updates related components when changed.

- - -

- Progress - -

- -

Gets the progress reporting mechanism for long-running operations.

-
-
- -
-
public Progress<IProgressReport> Progress { get; }
-
- - - - - -

Property Value

-
-
Progress<IProgressReport>
-
-
- - - - - - - - - - -

- RuntimeApi - -

- -

Gets the shell API for interacting with this machining process.

-
-
- -
-
public RuntimeApi RuntimeApi { get; }
-
- - - - - -

Property Value

-
-
RuntimeApi
-
-
- - - - - - - - - - -

- SessionMessageHost - -

- -

Gets the message host for displaying messages, warnings, and errors.

-
-
- -
-
public SessionMessageHost SessionMessageHost { get; }
-
- - - - - -

Property Value

-
-
SessionMessageHost
-
-
- - - - - - - - - - -

- StepPropertyAccessDictionary - -

- -

Gets the dictionary mapping property keys to their access methods.

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

Property Value

-
-
ConcurrentDictionary<string, PropertyAccess<MachiningStep>>
-
-
- - - - - - - -

@@ -1309,8 +551,7 @@ Updates related components when changed.

-

Gets or sets the time mapping for synchronizing different time-based data streams. -Creates a new time mapping if one doesn't exist.

+

Gets or sets the time mapping for synchronizing different time-based data streams.

@@ -1335,39 +576,6 @@ Creates a new time mapping if one doesn't exist.

- - -

- Workpiece - -

- -

Gets or sets the workpiece to be machined. -Ensures proper initialization of workpiece properties.

-
-
- -
-
public Workpiece Workpiece { get; set; }
-
- - - - - -

Property Value

-
-
Workpiece
-
-
- - - - - - - -

@@ -1404,73 +612,6 @@ Ensures proper initialization of workpiece properties.

- - -

- Act(IAct, IIndexedFileLine, CancellationToken?) - -

- -

Executes an act and collects all results.

-
-
- -
-
public void Act(IAct act, IIndexedFileLine sourceCommand = null, CancellationToken? cancellationToken = null)
-
- -

Parameters

-
-
act IAct
-

The act to execute.

-
-
sourceCommand IIndexedFileLine
-

The source command that triggered the act.

-
-
cancellationToken CancellationToken?
-

Cancellation token to cancel the operation.

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

- BeginSession() - -

- -

Initiate a simulation session. -Clear the state from previous session (if existed).

-
-
- -
-
public void BeginSession()
-
- - - - - - - - - - - - -

@@ -1529,72 +670,6 @@ Clear the state from previous session (if existed).

- - -

- EndSession() - -

- -

Ends the current machining session and releases associated resources.

-
-
- -
-
public void EndSession()
-
- - - - - - - - - - - - - - - -

- GetInspectingKeyPresentName(StringLocalizer) - -

- -

Gets the localized presentation name for the current inspecting key.

-
-
- -
-
public string GetInspectingKeyPresentName(StringLocalizer stringLocalizer)
-
- -

Parameters

-
-
stringLocalizer StringLocalizer
-

The string localizer to use for localization

-
-
- -

Returns

-
-
string
-

The localized presentation name

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

@@ -1635,8 +710,7 @@ Clear the state from previous session (if existed).

- +
@@ -1647,8 +721,7 @@ Clear the state from previous session (if existed).

Returns

MachiningEquipment
-

MachiningEquipment

-
+
@@ -1751,581 +824,6 @@ Since the folder can be moving with the configuration file.

- - -

- PlayCsvFile(string, string) - -

- -

Plays a CSV file from the specified path.

-
-
- -
-
public void PlayCsvFile(string baseDirectory, string relFilePath)
-
- -

Parameters

-
-
baseDirectory string
-

Base directory for resolving relative paths.

-
-
relFilePath string
-

Relative path to the CSV file.

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

- PlayNc(string, string) - -

- -

Plays NC commands from raw text with pace control.

-
-
- -
-
public void PlayNc(string ncText, string fileNameAlternative = "--")
-
- -

Parameters

-
-
ncText string
-

The NC command text to execute

-
-
fileNameAlternative string
-

Alternative name to associate with the NC program

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

- PlayNcFile(string, string) - -

- -

Plays an NC file from the specified path with pace control.

-
-
- -
-
public void PlayNcFile(string baseDirectory, string relFilePath)
-
- -

Parameters

-
-
baseDirectory string
-

Base directory for resolving relative paths

-
-
relFilePath string
-

Relative path to the NC file

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

- ProcAct(IAct, IIndexedFileLine, CancellationToken?) - -

- -

Processes an act and returns the results.

-
-
- -
-
public IEnumerable<object> ProcAct(IAct act, IIndexedFileLine sourceCommand = null, CancellationToken? cancellationToken = null)
-
- -

Parameters

-
-
act IAct
-

The act to process.

-
-
sourceCommand IIndexedFileLine
-

The source command that triggered the act.

-
-
cancellationToken CancellationToken?
-

Cancellation token to cancel the operation.

-
-
- -

Returns

-
-
IEnumerable<object>
-

Enumerable of results from processing the act.

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

- ReTrainMillingPara(SampleFlag, double, string, CancellationToken) - -

- -

Train Milling Parameter.

-
-
- -
-
public void ReTrainMillingPara(SampleFlag sampleFlags, double outlierRatio, string dstRelFile, CancellationToken cancellationToken)
-
- -

Parameters

-
-
sampleFlags SampleFlag
-
-
outlierRatio double
-
-
dstRelFile string
-
-
cancellationToken CancellationToken
-
-
- - - - - - - - - - - - - - -

- RefreshDrawing() - -

- -

Refreshes the visual display of the milling course.

-
-
- -
-
public void RefreshDrawing()
-
- - - - - - - - - - - - - - - -

- ResetRuntime() - -

- -

Reset the runtime states including: runtime geometry, collision flags, machine tool position, CL strips, message buffer and etc..

-
-
- -
-
public void ResetRuntime()
-
- - - - - - - - - - - - - - - -

- RunCsvFile(string, string) - -

- -

Runs a CSV file from the specified path.

-
-
- -
-
public IEnumerable<Action> RunCsvFile(string baseDirectory, string relFilePath)
-
- -

Parameters

-
-
baseDirectory string
-

Base directory for resolving relative paths.

-
-
relFilePath string
-

Relative path to the CSV file.

-
-
- -

Returns

-
-
IEnumerable<Action>
-

An enumerable of actions to be executed.

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

- RunNc(string, string) - -

- -

Runs NC commands from raw text.

-
-
- -
-
public IEnumerable<Action> RunNc(string ncText, string fileNameAlternative = "--")
-
- -

Parameters

-
-
ncText string
-

The NC command text to execute

-
-
fileNameAlternative string
-

Alternative name to associate with the NC program

-
-
- -

Returns

-
-
IEnumerable<Action>
-

An enumerable of actions to be executed

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

- RunNcFile(string, string) - -

- -

Runs an NC file from the specified path.

-
-
- -
-
public IEnumerable<Action> RunNcFile(string baseDirectory, string relFilePath)
-
- -

Parameters

-
-
baseDirectory string
-

Base directory for resolving relative paths. If the value is null, BaseDirectory substitutes the value.

-
-
relFilePath string
-

Relative path to the NC file.

-
-
- -

Returns

-
-
IEnumerable<Action>
-

An enumerable of actions to be executed.

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

- TrainMillingPara(SampleFlag, bool, double, string, CancellationToken, ICuttingPara) - -

- -

Train Milling Parameter.

-
-
- -
-
public void TrainMillingPara(SampleFlag sampleFlags, bool enableFzOnlyDuringDrilling, double outlierRatio, string dstRelFile, CancellationToken cancellationToken, ICuttingPara paraTemplate)
-
- -

Parameters

-
-
sampleFlags SampleFlag
-
-
enableFzOnlyDuringDrilling bool
-
-
outlierRatio double
-
-
dstRelFile string
-
-
cancellationToken CancellationToken
-
-
paraTemplate ICuttingPara
-
-
- - - - - - - - - - - - - - -

- UpdateIdealMillingToolOffsetTableByToolHouse() - -

- -

Updates the ideal milling tool offset table based on the current tool house configuration.

-
-
- -
-
public void UpdateIdealMillingToolOffsetTableByToolHouse()
-
- - - - - - - - - - - - - - - -

- WriteShotFile(TimeSpan, string) - -

- -

Writes time-based shot data to a file with the specified sampling period.

-
-
- -
-
public void WriteShotFile(TimeSpan samplingPeriod, string relFileTemplate = "Output/[NcName].shot.csv")
-
- -

Parameters

-
-
samplingPeriod TimeSpan
-

The time period between samples

-
-
relFileTemplate string
-

Template for the output file path, can include [NcName] placeholder

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

- WriteStepFile(string) - -

- -

Writes step-based data to a file.

-
-
- -
-
public void WriteStepFile(string relFileTemplate = "Output/[NcName].step.csv")
-
- -

Parameters

-
-
relFileTemplate string
-

Template for the output file path, can include [NcName] placeholder

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

Events -

- - - -

- OnRanNcBlock - -

- -

Event triggered after an NC block is executed.

-
-
- -
-
public event Action OnRanNcBlock
-
- - - - - - -

Event Type

-
-
Action
-
-
- - - - - - - - -

- OnUpdatedInspectingQuantityFunc - -

- -

Event triggered when the inspecting quantity function is updated.

-
-
- -
-
public event Action OnUpdatedInspectingQuantityFunc
-
- - - - - - -

Event Type

-
-
Action
-
-
- - - - - - - diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.MachiningProjectDisplayee.html b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.MachiningProjectDisplayee.html index 0f0fa28..821e475 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.MachiningProjectDisplayee.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.MachiningProjectDisplayee.html @@ -189,44 +189,8 @@ Class MachiningProjectDisplayee -

- MachiningProjectDisplayee(MachiningProject, BitArray) - -

- -

Initializes a new instance of the MachiningProjectDisplayee class.

-
-
- -
-
public MachiningProjectDisplayee(MachiningProject machiningProject, BitArray renderingFlagBitArray)
-
- -

Parameters

-
-
machiningProject MachiningProject
-

The machining project to display.

-
-
renderingFlagBitArray BitArray
-

The bit array controlling rendering flags.

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

- MachiningProjectDisplayee(Func<MachiningProject>) +

+ MachiningProjectDisplayee(LocalProjectService)

@@ -235,14 +199,13 @@ Class MachiningProjectDisplayee
-
public MachiningProjectDisplayee(Func<MachiningProject> machiningProjectGetter)
+
public MachiningProjectDisplayee(LocalProjectService localProjectService)

Parameters

-
machiningProjectGetter Func<MachiningProject>
-

The function that provides the machining project.

-
+
localProjectService LocalProjectService
+
@@ -324,6 +287,38 @@ Class MachiningProjectDisplayee + + +

+ LocalProjectService + +

+ +

Gets or sets the function that provides the machining project.

+
+
+ +
+
public LocalProjectService LocalProjectService { get; set; }
+
+ + + + + +

Property Value

+
+
LocalProjectService
+
+
+ + + + + + + +

@@ -356,38 +351,6 @@ Class MachiningProjectDisplayee - - -

- MachiningProjectGetter - -

- -

Gets or sets the function that provides the machining project.

-
-
- -
-
public Func<MachiningProject> MachiningProjectGetter { get; set; }
-
- - - - - -

Property Value

-
-
Func<MachiningProject>
-
-
- - - - - - - -

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.RuntimeApi.html b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.RuntimeApi.html index e71d71a..0b1ec30 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.RuntimeApi.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.RuntimeApi.html @@ -455,14 +455,14 @@ public static bool EnableIndividualStepAdjustmentLog { get; set; }

-

Obsoleted.

-

Gets or sets whether to pause execution when a collision is detected. +

Gets or sets whether to pause execution when a collision is detected. This property only has an effect if collision detection is enabled.

-
public bool EnablePauseOnCollision { get; set; }
+
[Obsolete]
+public bool EnablePauseOnCollision { get; set; }
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.RuntimeController.html b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.RuntimeController.html index b46255c..93efc48 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.RuntimeController.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.RuntimeController.html @@ -709,8 +709,8 @@ public class RuntimeController : ControllerBase -

- RuntimeController(IProjectService) +

+ RuntimeController(LocalProjectService)

@@ -719,12 +719,12 @@ public class RuntimeController : ControllerBase
-
public RuntimeController(IProjectService projectService)
+
public RuntimeController(LocalProjectService projectService)

Parameters

-
projectService IProjectService
+
projectService LocalProjectService
@@ -908,40 +908,6 @@ public bool EnableCollisionDetection { get; set; } - - -

- EnablePauseOnCollision - -

- -

Obsoleted.

-

Gets or sets whether to pause execution when a collision is detected. -This property only has an effect if collision detection is enabled.

-
-
- -
-
public bool EnablePauseOnCollision { get; set; }
-
- - - - - -

Property Value

-
-
bool
-
-
- - - - - - - -

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.SetupController.html b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.SetupController.html index f4310a5..148a653 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.SetupController.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.SetupController.html @@ -708,8 +708,8 @@ public class SetupController : ControllerBase -

- SetupController(IProjectService) +

+ SetupController(LocalProjectService)

@@ -718,12 +718,12 @@ public class SetupController : ControllerBase
-
public SetupController(IProjectService projectService)
+
public SetupController(LocalProjectService projectService)

Parameters

-
projectService IProjectService
+
projectService LocalProjectService

The project service.

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.html b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.html index 750f47b..570dbcc 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.html @@ -109,6 +109,12 @@ Apply absolute file path.

MachiningActRunner

Represents a runner for machining actions that manages milling steps, tool paths, and collision detection.

+
+
+
+
MachiningActRunnerConfig
+

Represents the configuration for a milling act runner. +Provides settings for physics simulation, evaluation, and temperature control.

@@ -142,12 +148,6 @@ such as sweeping, subtraction, force calculation, and physics simulation.

Represents a machining session that manages the execution and optimization of machining operations. Provides functionality for controlling the machining process, handling optimization options, and managing session state.

-
-
-
-
MillingActRunnerConfig
-

Represents the configuration for a milling act runner. -Provides settings for physics simulation, evaluation, and temperature control.

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Mapping.StepTimeShotUtil.html b/App/wwwroot/HiAPI-docsite/api/Hi.Mapping.StepTimeShotUtil.html index 16e5898..2e9449f 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Mapping.StepTimeShotUtil.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Mapping.StepTimeShotUtil.html @@ -155,8 +155,8 @@ Class StepTimeShotUtil -

- GetStepToShotsDictionaryByActualTime(ClStrip, CycleSamplingMode, string, GetTimeShotByFileDelegate, IDictionary<int, List<ITimeShot>>, SessionMessageHost, CancellationToken?) +

+ GetStepToShotsDictionaryByActualTime(ClStrip, CycleSamplingMode, string, GetTimeShotByFileDelegate, IDictionary<int, List<ITimeShot>>, IMessageHost, CancellationToken?)

@@ -165,7 +165,7 @@ Class StepTimeShotUtil
-
public static void GetStepToShotsDictionaryByActualTime(ClStrip clStrip, StepTimeShotUtil.CycleSamplingMode cycleSamplingMode, string timeShotRelFile, StepTimeShotUtil.GetTimeShotByFileDelegate getTimeShotByRelFileFunc, IDictionary<int, List<ITimeShot>> dstStepToShotsDictionary, SessionMessageHost sessionMessageHost, CancellationToken? cancellationToken)
+
public static void GetStepToShotsDictionaryByActualTime(ClStrip clStrip, StepTimeShotUtil.CycleSamplingMode cycleSamplingMode, string timeShotRelFile, StepTimeShotUtil.GetTimeShotByFileDelegate getTimeShotByRelFileFunc, IDictionary<int, List<ITimeShot>> dstStepToShotsDictionary, IMessageHost sessionMessageHost, CancellationToken? cancellationToken)

Parameters

@@ -185,7 +185,7 @@ Class StepTimeShotUtil
dstStepToShotsDictionary IDictionary<int, List<ITimeShot>>

The destination dictionary to store the mapping.

-
sessionMessageHost SessionMessageHost
+
sessionMessageHost IMessageHost

The session message host for logging.

cancellationToken CancellationToken?
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Mapping.TimeMapping.html b/App/wwwroot/HiAPI-docsite/api/Hi.Mapping.TimeMapping.html index 3fceaac..bb1b3e9 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Mapping.TimeMapping.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Mapping.TimeMapping.html @@ -187,8 +187,8 @@ Class TimeMapping -

- TimeMapping(ClStrip, MachiningToolHouse, Func<string>) +

+ TimeMapping(Func<string>)

@@ -197,17 +197,11 @@ Class TimeMapping
-
public TimeMapping(ClStrip clStrip, MachiningToolHouse millingToolHouse, Func<string> baseDirectoryGetter)
+
public TimeMapping(Func<string> baseDirectoryGetter)

Parameters

-
clStrip ClStrip
-

The cutter location strip containing the machining steps.

-
-
millingToolHouse MachiningToolHouse
-

The machining tool house containing available tools.

-
baseDirectoryGetter Func<string>

The function to get the base directory for file paths.

@@ -337,39 +331,6 @@ All relative file paths in the mapping are resolved against this directory.

- - -

- ClStrip - -

- -

Gets or sets the cutter location strip containing the machining steps. -This is used as a reference for mapping time shots to machining steps.

-
-
- -
-
public ClStrip ClStrip { get; set; }
-
- - - - - -

Property Value

-
-
ClStrip
-
-
- - - - - - - -

@@ -404,75 +365,6 @@ which portion of a measurement file corresponds to a particular machining operat - - -

- LineReaded - -

- -

Gets or sets the callback action that is invoked when a line is read from a measurement file. -This can be used to track progress during file loading operations.

-
-
- -
-
public Action<int> LineReaded { get; set; }
-
- - - - - -

Property Value

-
-
Action<int>
-
-
- - - - -

Remarks

-

The parameter passed to the action is the current line number being read.

-
- - - - - - -

- MillingToolHouse - -

- -

Gets or sets the machining tool house containing available tools. -This is used to determine tool-specific parameters during mapping.

-
-
- -
-
public MachiningToolHouse MillingToolHouse { get; set; }
-
- - - - - -

Property Value

-
-
MachiningToolHouse
-
-
- - - - - - - -

@@ -582,8 +474,8 @@ It matches the class name to maintain consistency between code and XML represent -

- CallTimeShotByRelFile(string, CancellationToken?) +

+ CallTimeShotByRelFile(string, IMessageHost, CancellationToken?)

@@ -592,7 +484,7 @@ It matches the class name to maintain consistency between code and XML represent
-
public List<ITimeShot> CallTimeShotByRelFile(string relFile, CancellationToken? cancellationToken = null)
+
public List<ITimeShot> CallTimeShotByRelFile(string relFile, IMessageHost messageHost, CancellationToken? cancellationToken = null)

Parameters

@@ -600,6 +492,8 @@ It matches the class name to maintain consistency between code and XML represent
relFile string

The relative path to the file containing time shots.

+
messageHost IMessageHost
+
cancellationToken CancellationToken?

Optional token to cancel the loading operation.

@@ -619,7 +513,7 @@ If the file is already being loaded by another thread, waits for that operation -

Remarks

+

Remarks

This method is thread-safe and ensures each file is only read once, even with concurrent access. Any exceptions during file reading are captured and can be inspected through the task's exception property.

@@ -780,8 +674,8 @@ Any exceptions during file reading are captured and can be inspected through the -

- LoadTimeShotFiles(CancellationToken?) +

+ LoadTimeShotFiles(IMessageHost, CancellationToken?)

@@ -790,11 +684,13 @@ Any exceptions during file reading are captured and can be inspected through the
-
public void LoadTimeShotFiles(CancellationToken? cancellationToken = null)
+
public void LoadTimeShotFiles(IMessageHost messageHost, CancellationToken? cancellationToken = null)

Parameters

+
messageHost IMessageHost
+
cancellationToken CancellationToken?

Optional cancellation token to cancel the operation.

@@ -867,8 +763,8 @@ Any exceptions during file reading are captured and can be inspected through the -

- Map(Range<int>, FileTimeSection, CycleSamplingMode, CancellationToken?) +

+ Map(Range<int>, FileTimeSection, CycleSamplingMode, ClStrip, IMessageHost, CancellationToken?)

@@ -878,7 +774,7 @@ This method is thread-safe and can be called concurrently.

-
public void Map(Range<int> stepSection, FileTimeSection relFileTimeSection, StepTimeShotUtil.CycleSamplingMode cycleSamplingMode, CancellationToken? cancellationToken = null)
+
public void Map(Range<int> stepSection, FileTimeSection relFileTimeSection, StepTimeShotUtil.CycleSamplingMode cycleSamplingMode, ClStrip clStrip, IMessageHost messageHost, CancellationToken? cancellationToken = null)

Parameters

@@ -892,6 +788,10 @@ This method is thread-safe and can be called concurrently.

cycleSamplingMode StepTimeShotUtil.CycleSamplingMode

The cycle sampling mode to use.

+
clStrip ClStrip
+
+
messageHost IMessageHost
+
cancellationToken CancellationToken?

Optional cancellation token to cancel the operation.

@@ -910,8 +810,8 @@ This method is thread-safe and can be called concurrently.

-

- MapByActualTime(string, CycleSamplingMode, SessionMessageHost, CancellationToken?) +

+ MapByActualTime(string, CycleSamplingMode, ClStrip, IMessageHost, CancellationToken?)

@@ -920,7 +820,7 @@ This method is thread-safe and can be called concurrently.

-
public void MapByActualTime(string timeShotRelFile, StepTimeShotUtil.CycleSamplingMode cycleSamplingMode, SessionMessageHost sessionMessageHost, CancellationToken? cancellationToken = null)
+
public void MapByActualTime(string timeShotRelFile, StepTimeShotUtil.CycleSamplingMode cycleSamplingMode, ClStrip clStrip, IMessageHost messageHost, CancellationToken? cancellationToken = null)

Parameters

@@ -931,7 +831,9 @@ This method is thread-safe and can be called concurrently.

cycleSamplingMode StepTimeShotUtil.CycleSamplingMode

The cycle sampling mode.

-
sessionMessageHost SessionMessageHost
+
clStrip ClStrip
+
+
messageHost IMessageHost

The session message host for logging.

cancellationToken CancellationToken?
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.FilePlayers.CsvRunner.html b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.FilePlayers.CsvRunner.html index 0e5fbbb..0cf6364 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.FilePlayers.CsvRunner.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.FilePlayers.CsvRunner.html @@ -186,8 +186,8 @@ Class CsvRunner -

- CsvRunner(PacePlayer, SessionMessageHost) +

+ CsvRunner(PacePlayer, LocalProjectService, SessionMessageHost)

@@ -196,7 +196,7 @@ Class CsvRunner
-
public CsvRunner(PacePlayer pacePlayer, SessionMessageHost sessionMessageHost)
+
public CsvRunner(PacePlayer pacePlayer, LocalProjectService localProjectService, SessionMessageHost sessionMessageHost)

Parameters

@@ -204,6 +204,8 @@ Class CsvRunner
pacePlayer PacePlayer

The pace player for controlling playback.

+
localProjectService LocalProjectService
+
sessionMessageHost SessionMessageHost

The session message host for logging.

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.FilePlayers.NcRunner.html b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.FilePlayers.NcRunner.html index bfd5733..c562fa8 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.FilePlayers.NcRunner.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.FilePlayers.NcRunner.html @@ -180,49 +180,6 @@ Class NcRunner -

Constructors -

- - - - -

- NcRunner(PacePlayer, NcEnv, SessionMessageHost) - -

- -

Initializes a new instance.

-
-
- -
-
public NcRunner(PacePlayer pacePlayer, NcEnv ncEnv, SessionMessageHost millingProcessMessage)
-
- -

Parameters

-
-
pacePlayer PacePlayer
-

The pace player for controlling playback.

-
-
ncEnv NcEnv
-

The NC environment settings.

-
-
millingProcessMessage SessionMessageHost
-

The milling process message host.

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

Properties

@@ -259,38 +216,6 @@ Class NcRunner - - -

- NcEnv - -

- -

Gets the NC environment settings.

-
-
- -
-
public NcEnv NcEnv { get; set; }
-
- - - - - -

Property Value

-
-
NcEnv
-
-
- - - - - - - -

diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.WpfPlus.Disp.RenderingCanvas.html b/App/wwwroot/HiAPI-docsite/api/Hi.WpfPlus.Disp.RenderingCanvas.html new file mode 100644 index 0000000..40f2d80 --- /dev/null +++ b/App/wwwroot/HiAPI-docsite/api/Hi.WpfPlus.Disp.RenderingCanvas.html @@ -0,0 +1,2196 @@ + + + + + Class RenderingCanvas | HiAPI-C# 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class RenderingCanvas +

+ +
+
Namespace
Hi.WpfPlus.Disp
+
Assembly
Hi.WpfPlus.dll
+
+ +

Provides a WPF rendering canvas for 3D visualization of HiAPI components. +Handles user interactions, rendering, and integration with the DispEngine system.

+
+
+ +
+
public class RenderingCanvas : UserControl, IAnimatable, ISupportInitialize, IFrameworkInputElement, IInputElement, IQueryAmbient, IAddChild, IDisposable
+
+ + + + +
+
Inheritance
+
+ + + + + + + + + +
RenderingCanvas
+
+
+ +
+
Implements
+
+ + + + + + + +
+
+ + +
+
Inherited Members
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
Extension Methods
+
+ + + + + + + +
+ + + +

Remarks

+

This canvas provides the core rendering capabilities for WPF applications using HiAPI. +It manages mouse, keyboard, and touch events, and transforms them into appropriate +actions in the 3D environment.

+
+ + +

Constructors +

+ + + + +

+ RenderingCanvas() + +

+ +

Initializes a new instance of the RenderingCanvas

+
+
+ +
+
public RenderingCanvas()
+
+ + + + + + + + + + + + + +

Properties +

+ + + + +

+ DispEngine + +

+ +

The DispEngine instance that handles rendering and user interactions

+
+
+ +
+
public DispEngine DispEngine { get; }
+
+ + + + + +

Property Value

+
+
DispEngine
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ Dispose() + +

+ +

Public dispose method to free resources

+
+
+ +
+
public void Dispose()
+
+ + + + + + + + + + + + + + + +

+ Dispose(bool) + +

+ +

Disposes managed resources

+
+
+ +
+
protected virtual void Dispose(bool disposing)
+
+ +

Parameters

+
+
disposing bool
+
+
+ + + + + + + + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+ +
+ + + + diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.WpfPlus.Disp.RenderingWindow.html b/App/wwwroot/HiAPI-docsite/api/Hi.WpfPlus.Disp.RenderingWindow.html new file mode 100644 index 0000000..0bb571d --- /dev/null +++ b/App/wwwroot/HiAPI-docsite/api/Hi.WpfPlus.Disp.RenderingWindow.html @@ -0,0 +1,2374 @@ + + + + + Class RenderingWindow | HiAPI-C# 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class RenderingWindow +

+ +
+
Namespace
Hi.WpfPlus.Disp
+
Assembly
Hi.WpfPlus.dll
+
+ +

Window for 3D rendering.

+
+
+ +
+
public class RenderingWindow : Window, IAnimatable, ISupportInitialize, IFrameworkInputElement, IInputElement, IQueryAmbient, IAddChild, IGetDispEngine
+
+ + + + +
+
Inheritance
+
+ + + + + + + + + +
RenderingWindow
+
+
+ +
+
Implements
+
+ + + + + + + +
+
+ + +
+
Inherited Members
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
Extension Methods
+
+ + + + + + + +
+ + + + + +

Constructors +

+ + + + +

+ RenderingWindow() + +

+ +

Ctor.

+
+
+ +
+
public RenderingWindow()
+
+ + + + + + + + + + + + + +

Properties +

+ + + + +

+ Displayee + +

+ +

Gets or sets the current displayable 3D object. +When setting a new displayee, the view will be reset to home position if no previous displayee was set.

+
+
+ +
+
public IDisplayee Displayee { get; set; }
+
+ + + + + +

Property Value

+
+
IDisplayee
+
+
+ + + + + + + + + + +

+ RenderingCanvas + +

+ +

Gets the rendering canvas control used for displaying 3D content.

+
+
+ +
+
public RenderingCanvas RenderingCanvas { get; }
+
+ + + + + +

Property Value

+
+
RenderingCanvas
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ GetDispEngine() + +

+ +

Get DispEngine.

+
+
+ +
+
public DispEngine GetDispEngine()
+
+ + +

Returns

+
+
DispEngine
+

DispEngine

+
+
+ + + + + + + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+ +
+ + + + diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.WpfPlus.Disp.html b/App/wwwroot/HiAPI-docsite/api/Hi.WpfPlus.Disp.html new file mode 100644 index 0000000..0b728ef --- /dev/null +++ b/App/wwwroot/HiAPI-docsite/api/Hi.WpfPlus.Disp.html @@ -0,0 +1,133 @@ + + + + + Namespace Hi.WpfPlus.Disp | HiAPI-C# 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ +

Namespace Hi.WpfPlus.Disp

+
+
+
+ +

+Classes +

+
+
RenderingCanvas
+

Provides a WPF rendering canvas for 3D visualization of HiAPI components. +Handles user interactions, rendering, and integration with the DispEngine system.

+
+
+
+
RenderingWindow
+

Window for 3D rendering.

+
+
+ + +
+ +
+
+ + +
+ +
+ +
+
+ +
+ + + + diff --git a/App/wwwroot/HiAPI-docsite/api/HiNc.Grpcs.MachiningProjectGrpcServer.html b/App/wwwroot/HiAPI-docsite/api/HiNc.Grpcs.MachiningProjectGrpcServer.html index aba3003..f2e3587 100644 --- a/App/wwwroot/HiAPI-docsite/api/HiNc.Grpcs.MachiningProjectGrpcServer.html +++ b/App/wwwroot/HiAPI-docsite/api/HiNc.Grpcs.MachiningProjectGrpcServer.html @@ -187,8 +187,8 @@ Class MachiningProjectGrpcServer -

- MachiningProjectGrpcServer(MachiningProject) +

+ MachiningProjectGrpcServer(LocalProjectService)

@@ -197,14 +197,13 @@ Class MachiningProjectGrpcServer
-
public MachiningProjectGrpcServer(MachiningProject millingCourse)
+
public MachiningProjectGrpcServer(LocalProjectService localProjectService)

Parameters

-
millingCourse MachiningProject
-

The machining project to expose via gRPC

-
+
localProjectService LocalProjectService
+
@@ -220,8 +219,8 @@ Class MachiningProjectGrpcServer -

- MachiningProjectGrpcServer(XElement, MachiningProject) +

+ MachiningProjectGrpcServer(XElement, LocalProjectService)

@@ -230,7 +229,7 @@ Class MachiningProjectGrpcServer
-
public MachiningProjectGrpcServer(XElement src, MachiningProject millingCourse)
+
public MachiningProjectGrpcServer(XElement src, LocalProjectService localProjectService)

Parameters

@@ -238,9 +237,8 @@ Class MachiningProjectGrpcServer
src XElement

XML source element

-
millingCourse MachiningProject
-

The machining project to expose via gRPC

-
+
localProjectService LocalProjectService
+
diff --git a/App/wwwroot/HiAPI-docsite/api/toc.html b/App/wwwroot/HiAPI-docsite/api/toc.html index 531b05b..8b6af87 100644 --- a/App/wwwroot/HiAPI-docsite/api/toc.html +++ b/App/wwwroot/HiAPI-docsite/api/toc.html @@ -1281,6 +1281,9 @@
  • MachiningActRunner.MachiningStepBuiltDelegate
  • +
  • + MachiningActRunnerConfig +
  • MachiningParallelProc
  • @@ -1299,9 +1302,6 @@
  • MachiningSession
  • -
  • - MillingActRunnerConfig -
  • MillingUtil
  • @@ -3091,14 +3091,14 @@
  • - Hi.Wpf.Disp + Hi.WpfPlus.Disp
  • diff --git a/App/wwwroot/HiAPI-docsite/api/toc.json b/App/wwwroot/HiAPI-docsite/api/toc.json index 8990552..7a9a035 100644 --- a/App/wwwroot/HiAPI-docsite/api/toc.json +++ b/App/wwwroot/HiAPI-docsite/api/toc.json @@ -1,2 +1,2 @@ -{"items":[{"name":"Hi.Cbtr","href":"Hi.Cbtr.html","topicHref":"Hi.Cbtr.html","topicUid":"Hi.Cbtr","type":"Namespace","items":[{"name":"CachedTris","href":"Hi.Cbtr.CachedTris.html","topicHref":"Hi.Cbtr.CachedTris.html","topicUid":"Hi.Cbtr.CachedTris","type":"Class"},{"name":"CachedTris.SweepingMode","href":"Hi.Cbtr.CachedTris.SweepingMode.html","topicHref":"Hi.Cbtr.CachedTris.SweepingMode.html","topicUid":"Hi.Cbtr.CachedTris.SweepingMode","type":"Enum"},{"name":"CbtrPickable","href":"Hi.Cbtr.CbtrPickable.html","topicHref":"Hi.Cbtr.CbtrPickable.html","topicUid":"Hi.Cbtr.CbtrPickable","type":"Class"},{"name":"CubeTree","href":"Hi.Cbtr.CubeTree.html","topicHref":"Hi.Cbtr.CubeTree.html","topicUid":"Hi.Cbtr.CubeTree","type":"Class"},{"name":"CubeTree.diff_response_func_t","href":"Hi.Cbtr.CubeTree.diff_response_func_t.html","topicHref":"Hi.Cbtr.CubeTree.diff_response_func_t.html","topicUid":"Hi.Cbtr.CubeTree.diff_response_func_t","type":"Delegate"},{"name":"CubeTreeFile","href":"Hi.Cbtr.CubeTreeFile.html","topicHref":"Hi.Cbtr.CubeTreeFile.html","topicUid":"Hi.Cbtr.CubeTreeFile","type":"Class"},{"name":"DiffAttachment","href":"Hi.Cbtr.DiffAttachment.html","topicHref":"Hi.Cbtr.DiffAttachment.html","topicUid":"Hi.Cbtr.DiffAttachment","type":"Class"},{"name":"GeomBoolCache","href":"Hi.Cbtr.GeomBoolCache.html","topicHref":"Hi.Cbtr.GeomBoolCache.html","topicUid":"Hi.Cbtr.GeomBoolCache","type":"Class"},{"name":"GeomBoolCacheEnum","href":"Hi.Cbtr.GeomBoolCacheEnum.html","topicHref":"Hi.Cbtr.GeomBoolCacheEnum.html","topicUid":"Hi.Cbtr.GeomBoolCacheEnum","type":"Enum"},{"name":"IGetInitStickConvex","href":"Hi.Cbtr.IGetInitStickConvex.html","topicHref":"Hi.Cbtr.IGetInitStickConvex.html","topicUid":"Hi.Cbtr.IGetInitStickConvex","type":"Interface"},{"name":"InitStickConvex","href":"Hi.Cbtr.InitStickConvex.html","topicHref":"Hi.Cbtr.InitStickConvex.html","topicUid":"Hi.Cbtr.InitStickConvex","type":"Class"},{"name":"LsStl","href":"Hi.Cbtr.LsStl.html","topicHref":"Hi.Cbtr.LsStl.html","topicUid":"Hi.Cbtr.LsStl","type":"Class"},{"name":"Substraction","href":"Hi.Cbtr.Substraction.html","topicHref":"Hi.Cbtr.Substraction.html","topicUid":"Hi.Cbtr.Substraction","type":"Class"},{"name":"UnhighlightablePickable","href":"Hi.Cbtr.UnhighlightablePickable.html","topicHref":"Hi.Cbtr.UnhighlightablePickable.html","topicUid":"Hi.Cbtr.UnhighlightablePickable","type":"Class"},{"name":"UnmanagedSubstraction","href":"Hi.Cbtr.UnmanagedSubstraction.html","topicHref":"Hi.Cbtr.UnmanagedSubstraction.html","topicUid":"Hi.Cbtr.UnmanagedSubstraction","type":"Class"},{"name":"node_diff_t","href":"Hi.Cbtr.node_diff_t.html","topicHref":"Hi.Cbtr.node_diff_t.html","topicUid":"Hi.Cbtr.node_diff_t","type":"Struct"}]},{"name":"Hi.Collision","href":"Hi.Collision.html","topicHref":"Hi.Collision.html","topicUid":"Hi.Collision","type":"Namespace","items":[{"name":"AnchoredCollidableLeaf","href":"Hi.Collision.AnchoredCollidableLeaf.html","topicHref":"Hi.Collision.AnchoredCollidableLeaf.html","topicUid":"Hi.Collision.AnchoredCollidableLeaf","type":"Class"},{"name":"AnchoredCollidablePair","href":"Hi.Collision.AnchoredCollidablePair.html","topicHref":"Hi.Collision.AnchoredCollidablePair.html","topicUid":"Hi.Collision.AnchoredCollidablePair","type":"Class"},{"name":"CollidableStl","href":"Hi.Collision.CollidableStl.html","topicHref":"Hi.Collision.CollidableStl.html","topicUid":"Hi.Collision.CollidableStl","type":"Class"},{"name":"CollisionFlag","href":"Hi.Collision.CollisionFlag.html","topicHref":"Hi.Collision.CollisionFlag.html","topicUid":"Hi.Collision.CollisionFlag","type":"Enum"},{"name":"CollisionIndexPair","href":"Hi.Collision.CollisionIndexPair.html","topicHref":"Hi.Collision.CollisionIndexPair.html","topicUid":"Hi.Collision.CollisionIndexPair","type":"Class"},{"name":"CollisionUtil","href":"Hi.Collision.CollisionUtil.html","topicHref":"Hi.Collision.CollisionUtil.html","topicUid":"Hi.Collision.CollisionUtil","type":"Class"},{"name":"FuncAnchoredCollidable","href":"Hi.Collision.FuncAnchoredCollidable.html","topicHref":"Hi.Collision.FuncAnchoredCollidable.html","topicUid":"Hi.Collision.FuncAnchoredCollidable","type":"Class"},{"name":"IAnchoredCollidableBased","href":"Hi.Collision.IAnchoredCollidableBased.html","topicHref":"Hi.Collision.IAnchoredCollidableBased.html","topicUid":"Hi.Collision.IAnchoredCollidableBased","type":"Interface"},{"name":"IAnchoredCollidableLeaf","href":"Hi.Collision.IAnchoredCollidableLeaf.html","topicHref":"Hi.Collision.IAnchoredCollidableLeaf.html","topicUid":"Hi.Collision.IAnchoredCollidableLeaf","type":"Interface"},{"name":"IAnchoredCollidableNode","href":"Hi.Collision.IAnchoredCollidableNode.html","topicHref":"Hi.Collision.IAnchoredCollidableNode.html","topicUid":"Hi.Collision.IAnchoredCollidableNode","type":"Interface"},{"name":"IAnchoredCollidableStem","href":"Hi.Collision.IAnchoredCollidableStem.html","topicHref":"Hi.Collision.IAnchoredCollidableStem.html","topicUid":"Hi.Collision.IAnchoredCollidableStem","type":"Interface"},{"name":"ICollidable","href":"Hi.Collision.ICollidable.html","topicHref":"Hi.Collision.ICollidable.html","topicUid":"Hi.Collision.ICollidable","type":"Interface"},{"name":"ICollidee","href":"Hi.Collision.ICollidee.html","topicHref":"Hi.Collision.ICollidee.html","topicUid":"Hi.Collision.ICollidee","type":"Interface"},{"name":"ICollisionArena","href":"Hi.Collision.ICollisionArena.html","topicHref":"Hi.Collision.ICollisionArena.html","topicUid":"Hi.Collision.ICollisionArena","type":"Interface"},{"name":"ICollisionIndex","href":"Hi.Collision.ICollisionIndex.html","topicHref":"Hi.Collision.ICollisionIndex.html","topicUid":"Hi.Collision.ICollisionIndex","type":"Interface"},{"name":"IGetAnchoredCollidablePairs","href":"Hi.Collision.IGetAnchoredCollidablePairs.html","topicHref":"Hi.Collision.IGetAnchoredCollidablePairs.html","topicUid":"Hi.Collision.IGetAnchoredCollidablePairs","type":"Interface"},{"name":"IGetCollidable","href":"Hi.Collision.IGetCollidable.html","topicHref":"Hi.Collision.IGetCollidable.html","topicUid":"Hi.Collision.IGetCollidable","type":"Interface"},{"name":"IGetCollisionIndexPairs","href":"Hi.Collision.IGetCollisionIndexPairs.html","topicHref":"Hi.Collision.IGetCollisionIndexPairs.html","topicUid":"Hi.Collision.IGetCollisionIndexPairs","type":"Interface"},{"name":"IGetDefaultCollidablePairs","href":"Hi.Collision.IGetDefaultCollidablePairs.html","topicHref":"Hi.Collision.IGetDefaultCollidablePairs.html","topicUid":"Hi.Collision.IGetDefaultCollidablePairs","type":"Interface"},{"name":"IGetTriTree","href":"Hi.Collision.IGetTriTree.html","topicHref":"Hi.Collision.IGetTriTree.html","topicUid":"Hi.Collision.IGetTriTree","type":"Interface"},{"name":"MechCollisionResult","href":"Hi.Collision.MechCollisionResult.html","topicHref":"Hi.Collision.MechCollisionResult.html","topicUid":"Hi.Collision.MechCollisionResult","type":"Class"},{"name":"MechCollisionUtil","href":"Hi.Collision.MechCollisionUtil.html","topicHref":"Hi.Collision.MechCollisionUtil.html","topicUid":"Hi.Collision.MechCollisionUtil","type":"Class"},{"name":"TriTree","href":"Hi.Collision.TriTree.html","topicHref":"Hi.Collision.TriTree.html","topicUid":"Hi.Collision.TriTree","type":"Class"}]},{"name":"Hi.Collisions","href":"Hi.Collisions.html","topicHref":"Hi.Collisions.html","topicUid":"Hi.Collisions","type":"Namespace","items":[{"name":"AnchoredCollidabled","href":"Hi.Collisions.AnchoredCollidabled.html","topicHref":"Hi.Collisions.AnchoredCollidabled.html","topicUid":"Hi.Collisions.AnchoredCollidabled","type":"Class"},{"name":"IAnchoredCollidabled","href":"Hi.Collisions.IAnchoredCollidabled.html","topicHref":"Hi.Collisions.IAnchoredCollidabled.html","topicUid":"Hi.Collisions.IAnchoredCollidabled","type":"Interface"}]},{"name":"Hi.Coloring","href":"Hi.Coloring.html","topicHref":"Hi.Coloring.html","topicUid":"Hi.Coloring","type":"Namespace","items":[{"name":"ColorUtil","href":"Hi.Coloring.ColorUtil.html","topicHref":"Hi.Coloring.ColorUtil.html","topicUid":"Hi.Coloring.ColorUtil","type":"Class"},{"name":"DictionaryColorGuide","href":"Hi.Coloring.DictionaryColorGuide.html","topicHref":"Hi.Coloring.DictionaryColorGuide.html","topicUid":"Hi.Coloring.DictionaryColorGuide","type":"Class"},{"name":"DiscreteQuantityColorGuide","href":"Hi.Coloring.DiscreteQuantityColorGuide.html","topicHref":"Hi.Coloring.DiscreteQuantityColorGuide.html","topicUid":"Hi.Coloring.DiscreteQuantityColorGuide","type":"Class"},{"name":"FilteredColorGuide","href":"Hi.Coloring.FilteredColorGuide.html","topicHref":"Hi.Coloring.FilteredColorGuide.html","topicUid":"Hi.Coloring.FilteredColorGuide","type":"Class"},{"name":"FuncRangeColorGuide","href":"Hi.Coloring.FuncRangeColorGuide.html","topicHref":"Hi.Coloring.FuncRangeColorGuide.html","topicUid":"Hi.Coloring.FuncRangeColorGuide","type":"Class"},{"name":"IColorGuide","href":"Hi.Coloring.IColorGuide.html","topicHref":"Hi.Coloring.IColorGuide.html","topicUid":"Hi.Coloring.IColorGuide","type":"Interface"},{"name":"IColorGuideProperty","href":"Hi.Coloring.IColorGuideProperty.html","topicHref":"Hi.Coloring.IColorGuideProperty.html","topicUid":"Hi.Coloring.IColorGuideProperty","type":"Interface"},{"name":"IGetColorGuide","href":"Hi.Coloring.IGetColorGuide.html","topicHref":"Hi.Coloring.IGetColorGuide.html","topicUid":"Hi.Coloring.IGetColorGuide","type":"Interface"},{"name":"IGetRangeColorRule","href":"Hi.Coloring.IGetRangeColorRule.html","topicHref":"Hi.Coloring.IGetRangeColorRule.html","topicUid":"Hi.Coloring.IGetRangeColorRule","type":"Interface"},{"name":"IGetRgb","href":"Hi.Coloring.IGetRgb.html","topicHref":"Hi.Coloring.IGetRgb.html","topicUid":"Hi.Coloring.IGetRgb","type":"Interface"},{"name":"IGetRgbWithPriority","href":"Hi.Coloring.IGetRgbWithPriority.html","topicHref":"Hi.Coloring.IGetRgbWithPriority.html","topicUid":"Hi.Coloring.IGetRgbWithPriority","type":"Interface"},{"name":"PlainColorGuide","href":"Hi.Coloring.PlainColorGuide.html","topicHref":"Hi.Coloring.PlainColorGuide.html","topicUid":"Hi.Coloring.PlainColorGuide","type":"Class"},{"name":"QuantityColorGuide","href":"Hi.Coloring.QuantityColorGuide.html","topicHref":"Hi.Coloring.QuantityColorGuide.html","topicUid":"Hi.Coloring.QuantityColorGuide","type":"Class"},{"name":"RangeColorRule","href":"Hi.Coloring.RangeColorRule.html","topicHref":"Hi.Coloring.RangeColorRule.html","topicUid":"Hi.Coloring.RangeColorRule","type":"Class"},{"name":"RatioRgbFuncEnum","href":"Hi.Coloring.RatioRgbFuncEnum.html","topicHref":"Hi.Coloring.RatioRgbFuncEnum.html","topicUid":"Hi.Coloring.RatioRgbFuncEnum","type":"Enum"},{"name":"RgbSeed","href":"Hi.Coloring.RgbSeed.html","topicHref":"Hi.Coloring.RgbSeed.html","topicUid":"Hi.Coloring.RgbSeed","type":"Class"}]},{"name":"Hi.Common","href":"Hi.Common.html","topicHref":"Hi.Common.html","topicUid":"Hi.Common","type":"Namespace","items":[{"name":"BinIoUtil","href":"Hi.Common.BinIoUtil.html","topicHref":"Hi.Common.BinIoUtil.html","topicUid":"Hi.Common.BinIoUtil","type":"Class"},{"name":"BinarySearchResult","href":"Hi.Common.BinarySearchResult.html","topicHref":"Hi.Common.BinarySearchResult.html","topicUid":"Hi.Common.BinarySearchResult","type":"Enum"},{"name":"BitUtil","href":"Hi.Common.BitUtil.html","topicHref":"Hi.Common.BitUtil.html","topicUid":"Hi.Common.BitUtil","type":"Class"},{"name":"BlockingTimer","href":"Hi.Common.BlockingTimer.html","topicHref":"Hi.Common.BlockingTimer.html","topicUid":"Hi.Common.BlockingTimer","type":"Class"},{"name":"BytesUtil","href":"Hi.Common.BytesUtil.html","topicHref":"Hi.Common.BytesUtil.html","topicUid":"Hi.Common.BytesUtil","type":"Class"},{"name":"ConcurrentTimeCounter","href":"Hi.Common.ConcurrentTimeCounter.html","topicHref":"Hi.Common.ConcurrentTimeCounter.html","topicUid":"Hi.Common.ConcurrentTimeCounter","type":"Class"},{"name":"ConsoleUtil","href":"Hi.Common.ConsoleUtil.html","topicHref":"Hi.Common.ConsoleUtil.html","topicUid":"Hi.Common.ConsoleUtil","type":"Class"},{"name":"CppLogUtil","href":"Hi.Common.CppLogUtil.html","topicHref":"Hi.Common.CppLogUtil.html","topicUid":"Hi.Common.CppLogUtil","type":"Class"},{"name":"CppLogUtil.LogDelegate","href":"Hi.Common.CppLogUtil.LogDelegate.html","topicHref":"Hi.Common.CppLogUtil.LogDelegate.html","topicUid":"Hi.Common.CppLogUtil.LogDelegate","type":"Delegate"},{"name":"CultureUtil","href":"Hi.Common.CultureUtil.html","topicHref":"Hi.Common.CultureUtil.html","topicUid":"Hi.Common.CultureUtil","type":"Class"},{"name":"DebugUtil","href":"Hi.Common.DebugUtil.html","topicHref":"Hi.Common.DebugUtil.html","topicUid":"Hi.Common.DebugUtil","type":"Class"},{"name":"DuplicateUtil","href":"Hi.Common.DuplicateUtil.html","topicHref":"Hi.Common.DuplicateUtil.html","topicUid":"Hi.Common.DuplicateUtil","type":"Class"},{"name":"EnumUtil","href":"Hi.Common.EnumUtil.html","topicHref":"Hi.Common.EnumUtil.html","topicUid":"Hi.Common.EnumUtil","type":"Class"},{"name":"EnumerablePlayer","href":"Hi.Common.EnumerablePlayer.html","topicHref":"Hi.Common.EnumerablePlayer.html","topicUid":"Hi.Common.EnumerablePlayer","type":"Class"},{"name":"ExceptionUtil","href":"Hi.Common.ExceptionUtil.html","topicHref":"Hi.Common.ExceptionUtil.html","topicUid":"Hi.Common.ExceptionUtil","type":"Class"},{"name":"IAbstractNote","href":"Hi.Common.IAbstractNote.html","topicHref":"Hi.Common.IAbstractNote.html","topicUid":"Hi.Common.IAbstractNote","type":"Interface"},{"name":"IBinaryIo","href":"Hi.Common.IBinaryIo.html","topicHref":"Hi.Common.IBinaryIo.html","topicUid":"Hi.Common.IBinaryIo","type":"Interface"},{"name":"IClearCache","href":"Hi.Common.IClearCache.html","topicHref":"Hi.Common.IClearCache.html","topicUid":"Hi.Common.IClearCache","type":"Interface"},{"name":"IDuplicate","href":"Hi.Common.IDuplicate.html","topicHref":"Hi.Common.IDuplicate.html","topicUid":"Hi.Common.IDuplicate","type":"Interface"},{"name":"IGetQuantityByKey","href":"Hi.Common.IGetQuantityByKey.html","topicHref":"Hi.Common.IGetQuantityByKey.html","topicUid":"Hi.Common.IGetQuantityByKey","type":"Interface"},{"name":"IGetSelectionName","href":"Hi.Common.IGetSelectionName.html","topicHref":"Hi.Common.IGetSelectionName.html","topicUid":"Hi.Common.IGetSelectionName","type":"Interface"},{"name":"INameNote","href":"Hi.Common.INameNote.html","topicHref":"Hi.Common.INameNote.html","topicUid":"Hi.Common.INameNote","type":"Interface"},{"name":"IPreferredFileName","href":"Hi.Common.IPreferredFileName.html","topicHref":"Hi.Common.IPreferredFileName.html","topicUid":"Hi.Common.IPreferredFileName","type":"Interface"},{"name":"ISourceFile","href":"Hi.Common.ISourceFile.html","topicHref":"Hi.Common.ISourceFile.html","topicUid":"Hi.Common.ISourceFile","type":"Interface"},{"name":"IUpdateByContent","href":"Hi.Common.IUpdateByContent.html","topicHref":"Hi.Common.IUpdateByContent.html","topicUid":"Hi.Common.IUpdateByContent","type":"Interface"},{"name":"IUriGetter","href":"Hi.Common.IUriGetter.html","topicHref":"Hi.Common.IUriGetter.html","topicUid":"Hi.Common.IUriGetter","type":"Interface"},{"name":"IWriteBin","href":"Hi.Common.IWriteBin.html","topicHref":"Hi.Common.IWriteBin.html","topicUid":"Hi.Common.IWriteBin","type":"Interface"},{"name":"IndexSegment","href":"Hi.Common.IndexSegment.html","topicHref":"Hi.Common.IndexSegment.html","topicUid":"Hi.Common.IndexSegment","type":"Class"},{"name":"IntegerKeyDictionaryConverter","href":"Hi.Common.IntegerKeyDictionaryConverter.html","topicHref":"Hi.Common.IntegerKeyDictionaryConverter.html","topicUid":"Hi.Common.IntegerKeyDictionaryConverter","type":"Class"},{"name":"IntegerKeyDictionaryConverter","href":"Hi.Common.IntegerKeyDictionaryConverter-1.html","topicHref":"Hi.Common.IntegerKeyDictionaryConverter-1.html","topicUid":"Hi.Common.IntegerKeyDictionaryConverter`1","type":"Class"},{"name":"InternalException","href":"Hi.Common.InternalException.html","topicHref":"Hi.Common.InternalException.html","topicUid":"Hi.Common.InternalException","type":"Class"},{"name":"InvokeUtil","href":"Hi.Common.InvokeUtil.html","topicHref":"Hi.Common.InvokeUtil.html","topicUid":"Hi.Common.InvokeUtil","type":"Class"},{"name":"JsonUtil","href":"Hi.Common.JsonUtil.html","topicHref":"Hi.Common.JsonUtil.html","topicUid":"Hi.Common.JsonUtil","type":"Class"},{"name":"LooseRunner","href":"Hi.Common.LooseRunner.html","topicHref":"Hi.Common.LooseRunner.html","topicUid":"Hi.Common.LooseRunner","type":"Class"},{"name":"LooseRunner.MergedCancellationTokenRun","href":"Hi.Common.LooseRunner.MergedCancellationTokenRun.html","topicHref":"Hi.Common.LooseRunner.MergedCancellationTokenRun.html","topicUid":"Hi.Common.LooseRunner.MergedCancellationTokenRun","type":"Delegate"},{"name":"ManualUtil","href":"Hi.Common.ManualUtil.html","topicHref":"Hi.Common.ManualUtil.html","topicUid":"Hi.Common.ManualUtil","type":"Class"},{"name":"MaskUtil","href":"Hi.Common.MaskUtil.html","topicHref":"Hi.Common.MaskUtil.html","topicUid":"Hi.Common.MaskUtil","type":"Class"},{"name":"NameUtil","href":"Hi.Common.NameUtil.html","topicHref":"Hi.Common.NameUtil.html","topicUid":"Hi.Common.NameUtil","type":"Class"},{"name":"PacePlayee","href":"Hi.Common.PacePlayee.html","topicHref":"Hi.Common.PacePlayee.html","topicUid":"Hi.Common.PacePlayee","type":"Class"},{"name":"PacePlayer","href":"Hi.Common.PacePlayer.html","topicHref":"Hi.Common.PacePlayer.html","topicUid":"Hi.Common.PacePlayer","type":"Class"},{"name":"Pair","href":"Hi.Common.Pair-2.html","topicHref":"Hi.Common.Pair-2.html","topicUid":"Hi.Common.Pair`2","type":"Class"},{"name":"Range","href":"Hi.Common.Range-1.html","topicHref":"Hi.Common.Range-1.html","topicUid":"Hi.Common.Range`1","type":"Class"},{"name":"ResourceUtil","href":"Hi.Common.ResourceUtil.html","topicHref":"Hi.Common.ResourceUtil.html","topicUid":"Hi.Common.ResourceUtil","type":"Class"},{"name":"RoutineBlocker","href":"Hi.Common.RoutineBlocker.html","topicHref":"Hi.Common.RoutineBlocker.html","topicUid":"Hi.Common.RoutineBlocker","type":"Class"},{"name":"RoutineBlocker0","href":"Hi.Common.RoutineBlocker0.html","topicHref":"Hi.Common.RoutineBlocker0.html","topicUid":"Hi.Common.RoutineBlocker0","type":"Class"},{"name":"SeqPairUtil","href":"Hi.Common.SeqPairUtil.html","topicHref":"Hi.Common.SeqPairUtil.html","topicUid":"Hi.Common.SeqPairUtil","type":"Class"},{"name":"SeqPair","href":"Hi.Common.SeqPair-1.html","topicHref":"Hi.Common.SeqPair-1.html","topicUid":"Hi.Common.SeqPair`1","type":"Class"},{"name":"ServerFileExplorerConfig","href":"Hi.Common.ServerFileExplorerConfig.html","topicHref":"Hi.Common.ServerFileExplorerConfig.html","topicUid":"Hi.Common.ServerFileExplorerConfig","type":"Class"},{"name":"Slice","href":"Hi.Common.Slice.html","topicHref":"Hi.Common.Slice.html","topicUid":"Hi.Common.Slice","type":"Class"},{"name":"StringLocalizer","href":"Hi.Common.StringLocalizer.html","topicHref":"Hi.Common.StringLocalizer.html","topicUid":"Hi.Common.StringLocalizer","type":"Class"},{"name":"StringUtil","href":"Hi.Common.StringUtil.html","topicHref":"Hi.Common.StringUtil.html","topicUid":"Hi.Common.StringUtil","type":"Class"},{"name":"TaskUtil","href":"Hi.Common.TaskUtil.html","topicHref":"Hi.Common.TaskUtil.html","topicUid":"Hi.Common.TaskUtil","type":"Class"},{"name":"TimeCounter","href":"Hi.Common.TimeCounter.html","topicHref":"Hi.Common.TimeCounter.html","topicUid":"Hi.Common.TimeCounter","type":"Class"}]},{"name":"Hi.Common.Collections","href":"Hi.Common.Collections.html","topicHref":"Hi.Common.Collections.html","topicUid":"Hi.Common.Collections","type":"Namespace","items":[{"name":"DictionaryUtil","href":"Hi.Common.Collections.DictionaryUtil.html","topicHref":"Hi.Common.Collections.DictionaryUtil.html","topicUid":"Hi.Common.Collections.DictionaryUtil","type":"Class"},{"name":"EnumerableUtil","href":"Hi.Common.Collections.EnumerableUtil.html","topicHref":"Hi.Common.Collections.EnumerableUtil.html","topicUid":"Hi.Common.Collections.EnumerableUtil","type":"Class"},{"name":"FixedSizeConcurrentLinkedListUtil","href":"Hi.Common.Collections.FixedSizeConcurrentLinkedListUtil.html","topicHref":"Hi.Common.Collections.FixedSizeConcurrentLinkedListUtil.html","topicUid":"Hi.Common.Collections.FixedSizeConcurrentLinkedListUtil","type":"Class"},{"name":"ListIndexBasedEnumerable","href":"Hi.Common.Collections.ListIndexBasedEnumerable-1.html","topicHref":"Hi.Common.Collections.ListIndexBasedEnumerable-1.html","topicUid":"Hi.Common.Collections.ListIndexBasedEnumerable`1","type":"Class"},{"name":"ListIndexBasedIEnumerator","href":"Hi.Common.Collections.ListIndexBasedIEnumerator-1.html","topicHref":"Hi.Common.Collections.ListIndexBasedIEnumerator-1.html","topicUid":"Hi.Common.Collections.ListIndexBasedIEnumerator`1","type":"Class"},{"name":"ListUtil","href":"Hi.Common.Collections.ListUtil.html","topicHref":"Hi.Common.Collections.ListUtil.html","topicUid":"Hi.Common.Collections.ListUtil","type":"Class"},{"name":"ListUtil.OuterPolationMode","href":"Hi.Common.Collections.ListUtil.OuterPolationMode.html","topicHref":"Hi.Common.Collections.ListUtil.OuterPolationMode.html","topicUid":"Hi.Common.Collections.ListUtil.OuterPolationMode","type":"Enum"},{"name":"SortedListUtil","href":"Hi.Common.Collections.SortedListUtil.html","topicHref":"Hi.Common.Collections.SortedListUtil.html","topicUid":"Hi.Common.Collections.SortedListUtil","type":"Class"},{"name":"SortedListUtil.SearchMethod","href":"Hi.Common.Collections.SortedListUtil.SearchMethod.html","topicHref":"Hi.Common.Collections.SortedListUtil.SearchMethod.html","topicUid":"Hi.Common.Collections.SortedListUtil.SearchMethod","type":"Enum"},{"name":"SortedListUtil.SeekDirection","href":"Hi.Common.Collections.SortedListUtil.SeekDirection.html","topicHref":"Hi.Common.Collections.SortedListUtil.SeekDirection.html","topicUid":"Hi.Common.Collections.SortedListUtil.SeekDirection","type":"Enum"},{"name":"SynList","href":"Hi.Common.Collections.SynList-1.html","topicHref":"Hi.Common.Collections.SynList-1.html","topicUid":"Hi.Common.Collections.SynList`1","type":"Class"}]},{"name":"Hi.Common.CsvUtils","href":"Hi.Common.CsvUtils.html","topicHref":"Hi.Common.CsvUtils.html","topicUid":"Hi.Common.CsvUtils","type":"Namespace","items":[{"name":"CsvInputKit","href":"Hi.Common.CsvUtils.CsvInputKit.html","topicHref":"Hi.Common.CsvUtils.CsvInputKit.html","topicUid":"Hi.Common.CsvUtils.CsvInputKit","type":"Class"},{"name":"CsvOutputKit","href":"Hi.Common.CsvUtils.CsvOutputKit.html","topicHref":"Hi.Common.CsvUtils.CsvOutputKit.html","topicUid":"Hi.Common.CsvUtils.CsvOutputKit","type":"Class"},{"name":"CsvUtil","href":"Hi.Common.CsvUtils.CsvUtil.html","topicHref":"Hi.Common.CsvUtils.CsvUtil.html","topicUid":"Hi.Common.CsvUtils.CsvUtil","type":"Class"},{"name":"ICsvRowIo","href":"Hi.Common.CsvUtils.ICsvRowIo.html","topicHref":"Hi.Common.CsvUtils.ICsvRowIo.html","topicUid":"Hi.Common.CsvUtils.ICsvRowIo","type":"Interface"},{"name":"IGetCsvDictionary","href":"Hi.Common.CsvUtils.IGetCsvDictionary.html","topicHref":"Hi.Common.CsvUtils.IGetCsvDictionary.html","topicUid":"Hi.Common.CsvUtils.IGetCsvDictionary","type":"Interface"}]},{"name":"Hi.Common.FileLines","href":"Hi.Common.FileLines.html","topicHref":"Hi.Common.FileLines.html","topicUid":"Hi.Common.FileLines","type":"Namespace","items":[{"name":"FileBeginEventArgs","href":"Hi.Common.FileLines.FileBeginEventArgs.html","topicHref":"Hi.Common.FileLines.FileBeginEventArgs.html","topicUid":"Hi.Common.FileLines.FileBeginEventArgs","type":"Class"},{"name":"FileEndEventArgs","href":"Hi.Common.FileLines.FileEndEventArgs.html","topicHref":"Hi.Common.FileLines.FileEndEventArgs.html","topicUid":"Hi.Common.FileLines.FileEndEventArgs","type":"Class"},{"name":"FileLineIndex","href":"Hi.Common.FileLines.FileLineIndex.html","topicHref":"Hi.Common.FileLines.FileLineIndex.html","topicUid":"Hi.Common.FileLines.FileLineIndex","type":"Class"},{"name":"FileLinePipingKit","href":"Hi.Common.FileLines.FileLinePipingKit.html","topicHref":"Hi.Common.FileLines.FileLinePipingKit.html","topicUid":"Hi.Common.FileLines.FileLinePipingKit","type":"Class"},{"name":"FileLineUtil","href":"Hi.Common.FileLines.FileLineUtil.html","topicHref":"Hi.Common.FileLines.FileLineUtil.html","topicUid":"Hi.Common.FileLines.FileLineUtil","type":"Class"},{"name":"FileUtil","href":"Hi.Common.FileLines.FileUtil.html","topicHref":"Hi.Common.FileLines.FileUtil.html","topicUid":"Hi.Common.FileLines.FileUtil","type":"Class"},{"name":"IFileChangedEventSupport","href":"Hi.Common.FileLines.IFileChangedEventSupport.html","topicHref":"Hi.Common.FileLines.IFileChangedEventSupport.html","topicUid":"Hi.Common.FileLines.IFileChangedEventSupport","type":"Interface"},{"name":"IFileLine","href":"Hi.Common.FileLines.IFileLine.html","topicHref":"Hi.Common.FileLines.IFileLine.html","topicUid":"Hi.Common.FileLines.IFileLine","type":"Interface"},{"name":"IFileLineIndex","href":"Hi.Common.FileLines.IFileLineIndex.html","topicHref":"Hi.Common.FileLines.IFileLineIndex.html","topicUid":"Hi.Common.FileLines.IFileLineIndex","type":"Interface"},{"name":"IGetFileLineIndex","href":"Hi.Common.FileLines.IGetFileLineIndex.html","topicHref":"Hi.Common.FileLines.IGetFileLineIndex.html","topicUid":"Hi.Common.FileLines.IGetFileLineIndex","type":"Interface"},{"name":"IGetIndexedFileLine","href":"Hi.Common.FileLines.IGetIndexedFileLine.html","topicHref":"Hi.Common.FileLines.IGetIndexedFileLine.html","topicUid":"Hi.Common.FileLines.IGetIndexedFileLine","type":"Interface"},{"name":"IIndexedFileLine","href":"Hi.Common.FileLines.IIndexedFileLine.html","topicHref":"Hi.Common.FileLines.IIndexedFileLine.html","topicUid":"Hi.Common.FileLines.IIndexedFileLine","type":"Interface"},{"name":"ILineChangedEventSupport","href":"Hi.Common.FileLines.ILineChangedEventSupport.html","topicHref":"Hi.Common.FileLines.ILineChangedEventSupport.html","topicUid":"Hi.Common.FileLines.ILineChangedEventSupport","type":"Interface"},{"name":"IndexedFile","href":"Hi.Common.FileLines.IndexedFile.html","topicHref":"Hi.Common.FileLines.IndexedFile.html","topicUid":"Hi.Common.FileLines.IndexedFile","type":"Class"},{"name":"IndexedFileLine","href":"Hi.Common.FileLines.IndexedFileLine.html","topicHref":"Hi.Common.FileLines.IndexedFileLine.html","topicUid":"Hi.Common.FileLines.IndexedFileLine","type":"Class"},{"name":"LineBeginEventArgs","href":"Hi.Common.FileLines.LineBeginEventArgs.html","topicHref":"Hi.Common.FileLines.LineBeginEventArgs.html","topicUid":"Hi.Common.FileLines.LineBeginEventArgs","type":"Class"},{"name":"LineEndEventArgs","href":"Hi.Common.FileLines.LineEndEventArgs.html","topicHref":"Hi.Common.FileLines.LineEndEventArgs.html","topicUid":"Hi.Common.FileLines.LineEndEventArgs","type":"Class"}]},{"name":"Hi.Common.Messages","href":"Hi.Common.Messages.html","topicHref":"Hi.Common.Messages.html","topicUid":"Hi.Common.Messages","type":"Namespace","items":[{"name":"BootstrapTheme","href":"Hi.Common.Messages.BootstrapTheme.html","topicHref":"Hi.Common.Messages.BootstrapTheme.html","topicUid":"Hi.Common.Messages.BootstrapTheme","type":"Enum"},{"name":"IMessageHost","href":"Hi.Common.Messages.IMessageHost.html","topicHref":"Hi.Common.Messages.IMessageHost.html","topicUid":"Hi.Common.Messages.IMessageHost","type":"Interface"},{"name":"MessageBoardUtil","href":"Hi.Common.Messages.MessageBoardUtil.html","topicHref":"Hi.Common.Messages.MessageBoardUtil.html","topicUid":"Hi.Common.Messages.MessageBoardUtil","type":"Class"},{"name":"MessageFlag","href":"Hi.Common.Messages.MessageFlag.html","topicHref":"Hi.Common.Messages.MessageFlag.html","topicUid":"Hi.Common.Messages.MessageFlag","type":"Enum"},{"name":"MessageHost","href":"Hi.Common.Messages.MessageHost.html","topicHref":"Hi.Common.Messages.MessageHost.html","topicUid":"Hi.Common.Messages.MessageHost","type":"Class"},{"name":"MessageHostUtil","href":"Hi.Common.Messages.MessageHostUtil.html","topicHref":"Hi.Common.Messages.MessageHostUtil.html","topicUid":"Hi.Common.Messages.MessageHostUtil","type":"Class"},{"name":"MultiTagMessage","href":"Hi.Common.Messages.MultiTagMessage.html","topicHref":"Hi.Common.Messages.MultiTagMessage.html","topicUid":"Hi.Common.Messages.MultiTagMessage","type":"Class"},{"name":"ShowMessageBoardDelegate","href":"Hi.Common.Messages.ShowMessageBoardDelegate.html","topicHref":"Hi.Common.Messages.ShowMessageBoardDelegate.html","topicUid":"Hi.Common.Messages.ShowMessageBoardDelegate","type":"Delegate"}]},{"name":"Hi.Common.MinMaxUtils","href":"Hi.Common.MinMaxUtils.html","topicHref":"Hi.Common.MinMaxUtils.html","topicUid":"Hi.Common.MinMaxUtils","type":"Namespace","items":[{"name":"IndexedMinMaxPos","href":"Hi.Common.MinMaxUtils.IndexedMinMaxPos-2.html","topicHref":"Hi.Common.MinMaxUtils.IndexedMinMaxPos-2.html","topicUid":"Hi.Common.MinMaxUtils.IndexedMinMaxPos`2","type":"Class"},{"name":"MinMaxUtil","href":"Hi.Common.MinMaxUtils.MinMaxUtil.html","topicHref":"Hi.Common.MinMaxUtils.MinMaxUtil.html","topicUid":"Hi.Common.MinMaxUtils.MinMaxUtil","type":"Class"}]},{"name":"Hi.Common.NativeProgresses","href":"Hi.Common.NativeProgresses.html","topicHref":"Hi.Common.NativeProgresses.html","topicUid":"Hi.Common.NativeProgresses","type":"Namespace","items":[{"name":"IProgressReport","href":"Hi.Common.NativeProgresses.IProgressReport.html","topicHref":"Hi.Common.NativeProgresses.IProgressReport.html","topicUid":"Hi.Common.NativeProgresses.IProgressReport","type":"Interface"},{"name":"NativeProgressReport","href":"Hi.Common.NativeProgresses.NativeProgressReport.html","topicHref":"Hi.Common.NativeProgresses.NativeProgressReport.html","topicUid":"Hi.Common.NativeProgresses.NativeProgressReport","type":"Class"},{"name":"ProgressReport","href":"Hi.Common.NativeProgresses.ProgressReport.html","topicHref":"Hi.Common.NativeProgresses.ProgressReport.html","topicUid":"Hi.Common.NativeProgresses.ProgressReport","type":"Class"},{"name":"progress_monitor_t","href":"Hi.Common.NativeProgresses.progress_monitor_t.html","topicHref":"Hi.Common.NativeProgresses.progress_monitor_t.html","topicUid":"Hi.Common.NativeProgresses.progress_monitor_t","type":"Struct"},{"name":"report_progress_func_t","href":"Hi.Common.NativeProgresses.report_progress_func_t.html","topicHref":"Hi.Common.NativeProgresses.report_progress_func_t.html","topicUid":"Hi.Common.NativeProgresses.report_progress_func_t","type":"Delegate"}]},{"name":"Hi.Common.ParallelBulkUtils","href":"Hi.Common.ParallelBulkUtils.html","topicHref":"Hi.Common.ParallelBulkUtils.html","topicUid":"Hi.Common.ParallelBulkUtils","type":"Namespace","items":[{"name":"ParallelBulkReader","href":"Hi.Common.ParallelBulkUtils.ParallelBulkReader-1.html","topicHref":"Hi.Common.ParallelBulkUtils.ParallelBulkReader-1.html","topicUid":"Hi.Common.ParallelBulkUtils.ParallelBulkReader`1","type":"Class"},{"name":"ParallelBulkWriter","href":"Hi.Common.ParallelBulkUtils.ParallelBulkWriter-1.html","topicHref":"Hi.Common.ParallelBulkUtils.ParallelBulkWriter-1.html","topicUid":"Hi.Common.ParallelBulkUtils.ParallelBulkWriter`1","type":"Class"},{"name":"ReadBulkDelegate","href":"Hi.Common.ParallelBulkUtils.ReadBulkDelegate-1.html","topicHref":"Hi.Common.ParallelBulkUtils.ReadBulkDelegate-1.html","topicUid":"Hi.Common.ParallelBulkUtils.ReadBulkDelegate`1","type":"Delegate"},{"name":"SequentialBulkReader","href":"Hi.Common.ParallelBulkUtils.SequentialBulkReader-1.html","topicHref":"Hi.Common.ParallelBulkUtils.SequentialBulkReader-1.html","topicUid":"Hi.Common.ParallelBulkUtils.SequentialBulkReader`1","type":"Class"}]},{"name":"Hi.Common.PathUtils","href":"Hi.Common.PathUtils.html","topicHref":"Hi.Common.PathUtils.html","topicUid":"Hi.Common.PathUtils","type":"Namespace","items":[{"name":"ExtendedNamedPath","href":"Hi.Common.PathUtils.ExtendedNamedPath.html","topicHref":"Hi.Common.PathUtils.ExtendedNamedPath.html","topicUid":"Hi.Common.PathUtils.ExtendedNamedPath","type":"Class"},{"name":"HttpUtil","href":"Hi.Common.PathUtils.HttpUtil.html","topicHref":"Hi.Common.PathUtils.HttpUtil.html","topicUid":"Hi.Common.PathUtils.HttpUtil","type":"Class"},{"name":"Lang","href":"Hi.Common.PathUtils.Lang.html","topicHref":"Hi.Common.PathUtils.Lang.html","topicUid":"Hi.Common.PathUtils.Lang","type":"Class"},{"name":"NamedPath","href":"Hi.Common.PathUtils.NamedPath.html","topicHref":"Hi.Common.PathUtils.NamedPath.html","topicUid":"Hi.Common.PathUtils.NamedPath","type":"Class"},{"name":"PathUtil","href":"Hi.Common.PathUtils.PathUtil.html","topicHref":"Hi.Common.PathUtils.PathUtil.html","topicUid":"Hi.Common.PathUtils.PathUtil","type":"Class"}]},{"name":"Hi.Common.QueueCacheUtils","href":"Hi.Common.QueueCacheUtils.html","topicHref":"Hi.Common.QueueCacheUtils.html","topicUid":"Hi.Common.QueueCacheUtils","type":"Namespace","items":[{"name":"QueueCacherHost","href":"Hi.Common.QueueCacheUtils.QueueCacherHost-1.html","topicHref":"Hi.Common.QueueCacheUtils.QueueCacherHost-1.html","topicUid":"Hi.Common.QueueCacheUtils.QueueCacherHost`1","type":"Class"},{"name":"QueueCacher","href":"Hi.Common.QueueCacheUtils.QueueCacher-1.html","topicHref":"Hi.Common.QueueCacheUtils.QueueCacher-1.html","topicUid":"Hi.Common.QueueCacheUtils.QueueCacher`1","type":"Class"}]},{"name":"Hi.Common.XmlUtils","href":"Hi.Common.XmlUtils.html","topicHref":"Hi.Common.XmlUtils.html","topicUid":"Hi.Common.XmlUtils","type":"Namespace","items":[{"name":"GenMode","href":"Hi.Common.XmlUtils.GenMode.html","topicHref":"Hi.Common.XmlUtils.GenMode.html","topicUid":"Hi.Common.XmlUtils.GenMode","type":"Enum"},{"name":"IMakeXmlSource","href":"Hi.Common.XmlUtils.IMakeXmlSource.html","topicHref":"Hi.Common.XmlUtils.IMakeXmlSource.html","topicUid":"Hi.Common.XmlUtils.IMakeXmlSource","type":"Interface"},{"name":"IToXElement","href":"Hi.Common.XmlUtils.IToXElement.html","topicHref":"Hi.Common.XmlUtils.IToXElement.html","topicUid":"Hi.Common.XmlUtils.IToXElement","type":"Interface"},{"name":"SetFileDelegate","href":"Hi.Common.XmlUtils.SetFileDelegate.html","topicHref":"Hi.Common.XmlUtils.SetFileDelegate.html","topicUid":"Hi.Common.XmlUtils.SetFileDelegate","type":"Delegate"},{"name":"XFactory","href":"Hi.Common.XmlUtils.XFactory.html","topicHref":"Hi.Common.XmlUtils.XFactory.html","topicUid":"Hi.Common.XmlUtils.XFactory","type":"Class"},{"name":"XFactory.GenByXElementDelegate","href":"Hi.Common.XmlUtils.XFactory.GenByXElementDelegate.html","topicHref":"Hi.Common.XmlUtils.XFactory.GenByXElementDelegate.html","topicUid":"Hi.Common.XmlUtils.XFactory.GenByXElementDelegate","type":"Delegate"},{"name":"XFactory.XmlExceptionDelegate","href":"Hi.Common.XmlUtils.XFactory.XmlExceptionDelegate.html","topicHref":"Hi.Common.XmlUtils.XFactory.XmlExceptionDelegate.html","topicUid":"Hi.Common.XmlUtils.XFactory.XmlExceptionDelegate","type":"Delegate"},{"name":"XmlSourceAndFile","href":"Hi.Common.XmlUtils.XmlSourceAndFile-1.html","topicHref":"Hi.Common.XmlUtils.XmlSourceAndFile-1.html","topicUid":"Hi.Common.XmlUtils.XmlSourceAndFile`1","type":"Class"},{"name":"XmlUtil","href":"Hi.Common.XmlUtils.XmlUtil.html","topicHref":"Hi.Common.XmlUtils.XmlUtil.html","topicUid":"Hi.Common.XmlUtils.XmlUtil","type":"Class"}]},{"name":"Hi.CutterLocations","href":"Hi.CutterLocations.html","topicHref":"Hi.CutterLocations.html","topicUid":"Hi.CutterLocations","type":"Namespace","items":[{"name":"IGetProgramCl","href":"Hi.CutterLocations.IGetProgramCl.html","topicHref":"Hi.CutterLocations.IGetProgramCl.html","topicUid":"Hi.CutterLocations.IGetProgramCl","type":"Interface"},{"name":"SimpleCl","href":"Hi.CutterLocations.SimpleCl.html","topicHref":"Hi.CutterLocations.SimpleCl.html","topicUid":"Hi.CutterLocations.SimpleCl","type":"Class"}]},{"name":"Hi.CutterLocations.ClPath","href":"Hi.CutterLocations.ClPath.html","topicHref":"Hi.CutterLocations.ClPath.html","topicUid":"Hi.CutterLocations.ClPath","type":"Namespace","items":[{"name":"ClCircleArc","href":"Hi.CutterLocations.ClPath.ClCircleArc.html","topicHref":"Hi.CutterLocations.ClPath.ClCircleArc.html","topicUid":"Hi.CutterLocations.ClPath.ClCircleArc","type":"Class"},{"name":"ClLinear","href":"Hi.CutterLocations.ClPath.ClLinear.html","topicHref":"Hi.CutterLocations.ClPath.ClLinear.html","topicUid":"Hi.CutterLocations.ClPath.ClLinear","type":"Class"},{"name":"IClPath","href":"Hi.CutterLocations.ClPath.IClPath.html","topicHref":"Hi.CutterLocations.ClPath.IClPath.html","topicUid":"Hi.CutterLocations.ClPath.IClPath","type":"Interface"}]},{"name":"Hi.CutterLocations.ClStrips","href":"Hi.CutterLocations.ClStrips.html","topicHref":"Hi.CutterLocations.ClStrips.html","topicUid":"Hi.CutterLocations.ClStrips","type":"Namespace","items":[{"name":"ClStrip","href":"Hi.CutterLocations.ClStrips.ClStrip.html","topicHref":"Hi.CutterLocations.ClStrips.ClStrip.html","topicUid":"Hi.CutterLocations.ClStrips.ClStrip","type":"Class"},{"name":"ClStripPos","href":"Hi.CutterLocations.ClStrips.ClStripPos.html","topicHref":"Hi.CutterLocations.ClStrips.ClStripPos.html","topicUid":"Hi.CutterLocations.ClStrips.ClStripPos","type":"Class"},{"name":"RgbFunc","href":"Hi.CutterLocations.ClStrips.RgbFunc.html","topicHref":"Hi.CutterLocations.ClStrips.RgbFunc.html","topicUid":"Hi.CutterLocations.ClStrips.RgbFunc","type":"Delegate"}]},{"name":"Hi.Disp","href":"Hi.Disp.html","topicHref":"Hi.Disp.html","topicUid":"Hi.Disp","type":"Namespace","items":[{"name":"Bind","href":"Hi.Disp.Bind.html","topicHref":"Hi.Disp.Bind.html","topicUid":"Hi.Disp.Bind","type":"Class"},{"name":"Box3dDispUtil","href":"Hi.Disp.Box3dDispUtil.html","topicHref":"Hi.Disp.Box3dDispUtil.html","topicUid":"Hi.Disp.Box3dDispUtil","type":"Class"},{"name":"Box3dDispUtil.BoxableExpandToBox3dDel","href":"Hi.Disp.Box3dDispUtil.BoxableExpandToBox3dDel.html","topicHref":"Hi.Disp.Box3dDispUtil.BoxableExpandToBox3dDel.html","topicUid":"Hi.Disp.Box3dDispUtil.BoxableExpandToBox3dDel","type":"Delegate"},{"name":"DelegateFuncDisplayee","href":"Hi.Disp.DelegateFuncDisplayee.html","topicHref":"Hi.Disp.DelegateFuncDisplayee.html","topicUid":"Hi.Disp.DelegateFuncDisplayee","type":"Class"},{"name":"DispEngine","href":"Hi.Disp.DispEngine.html","topicHref":"Hi.Disp.DispEngine.html","topicUid":"Hi.Disp.DispEngine","type":"Class"},{"name":"DispEngine.ImageRequestedDelegate","href":"Hi.Disp.DispEngine.ImageRequestedDelegate.html","topicHref":"Hi.Disp.DispEngine.ImageRequestedDelegate.html","topicUid":"Hi.Disp.DispEngine.ImageRequestedDelegate","type":"Delegate"},{"name":"DispEngineConfig","href":"Hi.Disp.DispEngineConfig.html","topicHref":"Hi.Disp.DispEngineConfig.html","topicUid":"Hi.Disp.DispEngineConfig","type":"Class"},{"name":"DispFrameUtil","href":"Hi.Disp.DispFrameUtil.html","topicHref":"Hi.Disp.DispFrameUtil.html","topicUid":"Hi.Disp.DispFrameUtil","type":"Class"},{"name":"DispList","href":"Hi.Disp.DispList.html","topicHref":"Hi.Disp.DispList.html","topicUid":"Hi.Disp.DispList","type":"Class"},{"name":"DispUtil","href":"Hi.Disp.DispUtil.html","topicHref":"Hi.Disp.DispUtil.html","topicUid":"Hi.Disp.DispUtil","type":"Class"},{"name":"Drawing","href":"Hi.Disp.Drawing.html","topicHref":"Hi.Disp.Drawing.html","topicUid":"Hi.Disp.Drawing","type":"Class"},{"name":"FuncDisplayee","href":"Hi.Disp.FuncDisplayee.html","topicHref":"Hi.Disp.FuncDisplayee.html","topicUid":"Hi.Disp.FuncDisplayee","type":"Class"},{"name":"GL","href":"Hi.Disp.GL.html","topicHref":"Hi.Disp.GL.html","topicUid":"Hi.Disp.GL","type":"Class"},{"name":"IDisplayee","href":"Hi.Disp.IDisplayee.html","topicHref":"Hi.Disp.IDisplayee.html","topicUid":"Hi.Disp.IDisplayee","type":"Interface"},{"name":"IGetDispEngine","href":"Hi.Disp.IGetDispEngine.html","topicHref":"Hi.Disp.IGetDispEngine.html","topicUid":"Hi.Disp.IGetDispEngine","type":"Interface"},{"name":"IGetPickable","href":"Hi.Disp.IGetPickable.html","topicHref":"Hi.Disp.IGetPickable.html","topicUid":"Hi.Disp.IGetPickable","type":"Interface"},{"name":"IGlContextDirver","href":"Hi.Disp.IGlContextDirver.html","topicHref":"Hi.Disp.IGlContextDirver.html","topicUid":"Hi.Disp.IGlContextDirver","type":"Interface"},{"name":"MatStack","href":"Hi.Disp.MatStack.html","topicHref":"Hi.Disp.MatStack.html","topicUid":"Hi.Disp.MatStack","type":"Class"},{"name":"MatStack.ItemDisposable","href":"Hi.Disp.MatStack.ItemDisposable.html","topicHref":"Hi.Disp.MatStack.ItemDisposable.html","topicUid":"Hi.Disp.MatStack.ItemDisposable","type":"Class"},{"name":"MvpBoxRelation","href":"Hi.Disp.MvpBoxRelation.html","topicHref":"Hi.Disp.MvpBoxRelation.html","topicUid":"Hi.Disp.MvpBoxRelation","type":"Enum"},{"name":"Pickable","href":"Hi.Disp.Pickable.html","topicHref":"Hi.Disp.Pickable.html","topicUid":"Hi.Disp.Pickable","type":"Class"},{"name":"PopModelMat","href":"Hi.Disp.PopModelMat.html","topicHref":"Hi.Disp.PopModelMat.html","topicUid":"Hi.Disp.PopModelMat","type":"Class"},{"name":"PushModelMat","href":"Hi.Disp.PushModelMat.html","topicHref":"Hi.Disp.PushModelMat.html","topicUid":"Hi.Disp.PushModelMat","type":"Class"},{"name":"Segment3dDispUtil","href":"Hi.Disp.Segment3dDispUtil.html","topicHref":"Hi.Disp.Segment3dDispUtil.html","topicUid":"Hi.Disp.Segment3dDispUtil","type":"Class"},{"name":"ShowEventPickable","href":"Hi.Disp.ShowEventPickable.html","topicHref":"Hi.Disp.ShowEventPickable.html","topicUid":"Hi.Disp.ShowEventPickable","type":"Class"},{"name":"Stamp","href":"Hi.Disp.Stamp.html","topicHref":"Hi.Disp.Stamp.html","topicUid":"Hi.Disp.Stamp","type":"Enum"},{"name":"StringDrawing","href":"Hi.Disp.StringDrawing.html","topicHref":"Hi.Disp.StringDrawing.html","topicUid":"Hi.Disp.StringDrawing","type":"Class"},{"name":"Tri3dDispUtil","href":"Hi.Disp.Tri3dDispUtil.html","topicHref":"Hi.Disp.Tri3dDispUtil.html","topicUid":"Hi.Disp.Tri3dDispUtil","type":"Class"},{"name":"WrappedDisplayee","href":"Hi.Disp.WrappedDisplayee.html","topicHref":"Hi.Disp.WrappedDisplayee.html","topicUid":"Hi.Disp.WrappedDisplayee","type":"Class"}]},{"name":"Hi.Disp.Flag","href":"Hi.Disp.Flag.html","topicHref":"Hi.Disp.Flag.html","topicUid":"Hi.Disp.Flag","type":"Namespace","items":[{"name":"ColorScaleBar","href":"Hi.Disp.Flag.ColorScaleBar.html","topicHref":"Hi.Disp.Flag.ColorScaleBar.html","topicUid":"Hi.Disp.Flag.ColorScaleBar","type":"Class"},{"name":"CoordinateDrawing","href":"Hi.Disp.Flag.CoordinateDrawing.html","topicHref":"Hi.Disp.Flag.CoordinateDrawing.html","topicUid":"Hi.Disp.Flag.CoordinateDrawing","type":"Class"},{"name":"CubicalFlagDrawing","href":"Hi.Disp.Flag.CubicalFlagDrawing.html","topicHref":"Hi.Disp.Flag.CubicalFlagDrawing.html","topicUid":"Hi.Disp.Flag.CubicalFlagDrawing","type":"Class"},{"name":"DimensionBar","href":"Hi.Disp.Flag.DimensionBar.html","topicHref":"Hi.Disp.Flag.DimensionBar.html","topicUid":"Hi.Disp.Flag.DimensionBar","type":"Class"},{"name":"DispCoverUtil","href":"Hi.Disp.Flag.DispCoverUtil.html","topicHref":"Hi.Disp.Flag.DispCoverUtil.html","topicUid":"Hi.Disp.Flag.DispCoverUtil","type":"Class"}]},{"name":"Hi.Disp.Treat","href":"Hi.Disp.Treat.html","topicHref":"Hi.Disp.Treat.html","topicUid":"Hi.Disp.Treat","type":"Namespace","items":[{"name":"LineWidthSwap","href":"Hi.Disp.Treat.LineWidthSwap.html","topicHref":"Hi.Disp.Treat.LineWidthSwap.html","topicUid":"Hi.Disp.Treat.LineWidthSwap","type":"Class"},{"name":"LineWidthTreat","href":"Hi.Disp.Treat.LineWidthTreat.html","topicHref":"Hi.Disp.Treat.LineWidthTreat.html","topicUid":"Hi.Disp.Treat.LineWidthTreat","type":"Class"},{"name":"PointSizeSwap","href":"Hi.Disp.Treat.PointSizeSwap.html","topicHref":"Hi.Disp.Treat.PointSizeSwap.html","topicUid":"Hi.Disp.Treat.PointSizeSwap","type":"Class"},{"name":"PointSizeTreat","href":"Hi.Disp.Treat.PointSizeTreat.html","topicHref":"Hi.Disp.Treat.PointSizeTreat.html","topicUid":"Hi.Disp.Treat.PointSizeTreat","type":"Class"},{"name":"RgbSwap","href":"Hi.Disp.Treat.RgbSwap.html","topicHref":"Hi.Disp.Treat.RgbSwap.html","topicUid":"Hi.Disp.Treat.RgbSwap","type":"Class"},{"name":"RgbTreat","href":"Hi.Disp.Treat.RgbTreat.html","topicHref":"Hi.Disp.Treat.RgbTreat.html","topicUid":"Hi.Disp.Treat.RgbTreat","type":"Class"},{"name":"RgbWrapper","href":"Hi.Disp.Treat.RgbWrapper.html","topicHref":"Hi.Disp.Treat.RgbWrapper.html","topicUid":"Hi.Disp.Treat.RgbWrapper","type":"Class"},{"name":"TransformationWrapper","href":"Hi.Disp.Treat.TransformationWrapper.html","topicHref":"Hi.Disp.Treat.TransformationWrapper.html","topicUid":"Hi.Disp.Treat.TransformationWrapper","type":"Class"}]},{"name":"Hi.Fanuc","href":"Hi.Fanuc.html","topicHref":"Hi.Fanuc.html","topicUid":"Hi.Fanuc","type":"Namespace","items":[{"name":"FanucVarTable","href":"Hi.Fanuc.FanucVarTable.html","topicHref":"Hi.Fanuc.FanucVarTable.html","topicUid":"Hi.Fanuc.FanucVarTable","type":"Class"},{"name":"FanucVarValue","href":"Hi.Fanuc.FanucVarValue.html","topicHref":"Hi.Fanuc.FanucVarValue.html","topicUid":"Hi.Fanuc.FanucVarValue","type":"Struct"}]},{"name":"Hi.Geom","href":"Hi.Geom.html","topicHref":"Hi.Geom.html","topicUid":"Hi.Geom","type":"Namespace","items":[{"name":"ArrayUtil","href":"Hi.Geom.ArrayUtil.html","topicHref":"Hi.Geom.ArrayUtil.html","topicUid":"Hi.Geom.ArrayUtil","type":"Class"},{"name":"AxisAngle4d","href":"Hi.Geom.AxisAngle4d.html","topicHref":"Hi.Geom.AxisAngle4d.html","topicUid":"Hi.Geom.AxisAngle4d","type":"Class"},{"name":"Box2d","href":"Hi.Geom.Box2d.html","topicHref":"Hi.Geom.Box2d.html","topicUid":"Hi.Geom.Box2d","type":"Class"},{"name":"Box2d.NoInit","href":"Hi.Geom.Box2d.NoInit.html","topicHref":"Hi.Geom.Box2d.NoInit.html","topicUid":"Hi.Geom.Box2d.NoInit","type":"Class"},{"name":"Box3d","href":"Hi.Geom.Box3d.html","topicHref":"Hi.Geom.Box3d.html","topicUid":"Hi.Geom.Box3d","type":"Class"},{"name":"Box3d.NoInit","href":"Hi.Geom.Box3d.NoInit.html","topicHref":"Hi.Geom.Box3d.NoInit.html","topicUid":"Hi.Geom.Box3d.NoInit","type":"Class"},{"name":"Cylindroid","href":"Hi.Geom.Cylindroid.html","topicHref":"Hi.Geom.Cylindroid.html","topicUid":"Hi.Geom.Cylindroid","type":"Class"},{"name":"DVec3d","href":"Hi.Geom.DVec3d.html","topicHref":"Hi.Geom.DVec3d.html","topicUid":"Hi.Geom.DVec3d","type":"Class"},{"name":"Dir","href":"Hi.Geom.Dir.html","topicHref":"Hi.Geom.Dir.html","topicUid":"Hi.Geom.Dir","type":"Enum"},{"name":"ExtendedCylinder","href":"Hi.Geom.ExtendedCylinder.html","topicHref":"Hi.Geom.ExtendedCylinder.html","topicUid":"Hi.Geom.ExtendedCylinder","type":"Class"},{"name":"Flat3d","href":"Hi.Geom.Flat3d.html","topicHref":"Hi.Geom.Flat3d.html","topicUid":"Hi.Geom.Flat3d","type":"Class"},{"name":"GeomCombination","href":"Hi.Geom.GeomCombination.html","topicHref":"Hi.Geom.GeomCombination.html","topicUid":"Hi.Geom.GeomCombination","type":"Class"},{"name":"GeomUtil","href":"Hi.Geom.GeomUtil.html","topicHref":"Hi.Geom.GeomUtil.html","topicUid":"Hi.Geom.GeomUtil","type":"Class"},{"name":"IExpandToBox2d","href":"Hi.Geom.IExpandToBox2d.html","topicHref":"Hi.Geom.IExpandToBox2d.html","topicUid":"Hi.Geom.IExpandToBox2d","type":"Interface"},{"name":"IExpandToBox3d","href":"Hi.Geom.IExpandToBox3d.html","topicHref":"Hi.Geom.IExpandToBox3d.html","topicUid":"Hi.Geom.IExpandToBox3d","type":"Interface"},{"name":"IFlat3d","href":"Hi.Geom.IFlat3d.html","topicHref":"Hi.Geom.IFlat3d.html","topicUid":"Hi.Geom.IFlat3d","type":"Interface"},{"name":"IGenStl","href":"Hi.Geom.IGenStl.html","topicHref":"Hi.Geom.IGenStl.html","topicUid":"Hi.Geom.IGenStl","type":"Interface"},{"name":"IGeomProperty","href":"Hi.Geom.IGeomProperty.html","topicHref":"Hi.Geom.IGeomProperty.html","topicUid":"Hi.Geom.IGeomProperty","type":"Interface"},{"name":"IGetStl","href":"Hi.Geom.IGetStl.html","topicHref":"Hi.Geom.IGetStl.html","topicUid":"Hi.Geom.IGetStl","type":"Interface"},{"name":"IGetZrContour","href":"Hi.Geom.IGetZrContour.html","topicHref":"Hi.Geom.IGetZrContour.html","topicUid":"Hi.Geom.IGetZrContour","type":"Interface"},{"name":"IGetZrList","href":"Hi.Geom.IGetZrList.html","topicHref":"Hi.Geom.IGetZrList.html","topicUid":"Hi.Geom.IGetZrList","type":"Interface"},{"name":"IStlSource","href":"Hi.Geom.IStlSource.html","topicHref":"Hi.Geom.IStlSource.html","topicUid":"Hi.Geom.IStlSource","type":"Interface"},{"name":"ITri3d","href":"Hi.Geom.ITri3d.html","topicHref":"Hi.Geom.ITri3d.html","topicUid":"Hi.Geom.ITri3d","type":"Interface"},{"name":"IVec","href":"Hi.Geom.IVec-1.html","topicHref":"Hi.Geom.IVec-1.html","topicUid":"Hi.Geom.IVec`1","type":"Interface"},{"name":"IZrListSourceProperty","href":"Hi.Geom.IZrListSourceProperty.html","topicHref":"Hi.Geom.IZrListSourceProperty.html","topicUid":"Hi.Geom.IZrListSourceProperty","type":"Interface"},{"name":"Mat4d","href":"Hi.Geom.Mat4d.html","topicHref":"Hi.Geom.Mat4d.html","topicUid":"Hi.Geom.Mat4d","type":"Class"},{"name":"Mat4d.IndexFlag","href":"Hi.Geom.Mat4d.IndexFlag.html","topicHref":"Hi.Geom.Mat4d.IndexFlag.html","topicUid":"Hi.Geom.Mat4d.IndexFlag","type":"Enum"},{"name":"MathNetUtil","href":"Hi.Geom.MathNetUtil.html","topicHref":"Hi.Geom.MathNetUtil.html","topicUid":"Hi.Geom.MathNetUtil","type":"Class"},{"name":"MathUtil","href":"Hi.Geom.MathUtil.html","topicHref":"Hi.Geom.MathUtil.html","topicUid":"Hi.Geom.MathUtil","type":"Class"},{"name":"NativeStl","href":"Hi.Geom.NativeStl.html","topicHref":"Hi.Geom.NativeStl.html","topicUid":"Hi.Geom.NativeStl","type":"Class"},{"name":"NativeTopoStld","href":"Hi.Geom.NativeTopoStld.html","topicHref":"Hi.Geom.NativeTopoStld.html","topicUid":"Hi.Geom.NativeTopoStld","type":"Class"},{"name":"NativeTopoStlfr","href":"Hi.Geom.NativeTopoStlfr.html","topicHref":"Hi.Geom.NativeTopoStlfr.html","topicUid":"Hi.Geom.NativeTopoStlfr","type":"Class"},{"name":"PairZr","href":"Hi.Geom.PairZr.html","topicHref":"Hi.Geom.PairZr.html","topicUid":"Hi.Geom.PairZr","type":"Class"},{"name":"PairZrUtil","href":"Hi.Geom.PairZrUtil.html","topicHref":"Hi.Geom.PairZrUtil.html","topicUid":"Hi.Geom.PairZrUtil","type":"Class"},{"name":"Polar3d","href":"Hi.Geom.Polar3d.html","topicHref":"Hi.Geom.Polar3d.html","topicUid":"Hi.Geom.Polar3d","type":"Class"},{"name":"Segment3d","href":"Hi.Geom.Segment3d.html","topicHref":"Hi.Geom.Segment3d.html","topicUid":"Hi.Geom.Segment3d","type":"Class"},{"name":"Stl","href":"Hi.Geom.Stl.html","topicHref":"Hi.Geom.Stl.html","topicUid":"Hi.Geom.Stl","type":"Class"},{"name":"Stl.StlType","href":"Hi.Geom.Stl.StlType.html","topicHref":"Hi.Geom.Stl.StlType.html","topicUid":"Hi.Geom.Stl.StlType","type":"Enum"},{"name":"StlFile","href":"Hi.Geom.StlFile.html","topicHref":"Hi.Geom.StlFile.html","topicUid":"Hi.Geom.StlFile","type":"Class"},{"name":"StlFuncHost","href":"Hi.Geom.StlFuncHost.html","topicHref":"Hi.Geom.StlFuncHost.html","topicUid":"Hi.Geom.StlFuncHost","type":"Class"},{"name":"StlUtil","href":"Hi.Geom.StlUtil.html","topicHref":"Hi.Geom.StlUtil.html","topicUid":"Hi.Geom.StlUtil","type":"Class"},{"name":"TransformationGeom","href":"Hi.Geom.TransformationGeom.html","topicHref":"Hi.Geom.TransformationGeom.html","topicUid":"Hi.Geom.TransformationGeom","type":"Class"},{"name":"Tri3d","href":"Hi.Geom.Tri3d.html","topicHref":"Hi.Geom.Tri3d.html","topicUid":"Hi.Geom.Tri3d","type":"Class"},{"name":"Tri3dUtil","href":"Hi.Geom.Tri3dUtil.html","topicHref":"Hi.Geom.Tri3dUtil.html","topicUid":"Hi.Geom.Tri3dUtil","type":"Class"},{"name":"UnnullableDVec3d","href":"Hi.Geom.UnnullableDVec3d.html","topicHref":"Hi.Geom.UnnullableDVec3d.html","topicUid":"Hi.Geom.UnnullableDVec3d","type":"Class"},{"name":"Vec2d","href":"Hi.Geom.Vec2d.html","topicHref":"Hi.Geom.Vec2d.html","topicUid":"Hi.Geom.Vec2d","type":"Class"},{"name":"Vec2i","href":"Hi.Geom.Vec2i.html","topicHref":"Hi.Geom.Vec2i.html","topicUid":"Hi.Geom.Vec2i","type":"Class"},{"name":"Vec3d","href":"Hi.Geom.Vec3d.html","topicHref":"Hi.Geom.Vec3d.html","topicUid":"Hi.Geom.Vec3d","type":"Class"},{"name":"Vec3dUtil","href":"Hi.Geom.Vec3dUtil.html","topicHref":"Hi.Geom.Vec3dUtil.html","topicUid":"Hi.Geom.Vec3dUtil","type":"Class"}]},{"name":"Hi.Geom.Resolution","href":"Hi.Geom.Resolution.html","topicHref":"Hi.Geom.Resolution.html","topicUid":"Hi.Geom.Resolution","type":"Namespace","items":[{"name":"IPolarResolution2d","href":"Hi.Geom.Resolution.IPolarResolution2d.html","topicHref":"Hi.Geom.Resolution.IPolarResolution2d.html","topicUid":"Hi.Geom.Resolution.IPolarResolution2d","type":"Interface"},{"name":"IPolarResolution2dSourceProperty","href":"Hi.Geom.Resolution.IPolarResolution2dSourceProperty.html","topicHref":"Hi.Geom.Resolution.IPolarResolution2dSourceProperty.html","topicUid":"Hi.Geom.Resolution.IPolarResolution2dSourceProperty","type":"Interface"},{"name":"PolarResolution2d","href":"Hi.Geom.Resolution.PolarResolution2d.html","topicHref":"Hi.Geom.Resolution.PolarResolution2d.html","topicUid":"Hi.Geom.Resolution.PolarResolution2d","type":"Class"}]},{"name":"Hi.Geom.Solvers","href":"Hi.Geom.Solvers.html","topicHref":"Hi.Geom.Solvers.html","topicUid":"Hi.Geom.Solvers","type":"Namespace","items":[{"name":"BinarySolverUtil","href":"Hi.Geom.Solvers.BinarySolverUtil.html","topicHref":"Hi.Geom.Solvers.BinarySolverUtil.html","topicUid":"Hi.Geom.Solvers.BinarySolverUtil","type":"Class"},{"name":"BinarySolvingEntry","href":"Hi.Geom.Solvers.BinarySolvingEntry.html","topicHref":"Hi.Geom.Solvers.BinarySolvingEntry.html","topicUid":"Hi.Geom.Solvers.BinarySolvingEntry","type":"Class"},{"name":"DeepSolvingStatus","href":"Hi.Geom.Solvers.DeepSolvingStatus.html","topicHref":"Hi.Geom.Solvers.DeepSolvingStatus.html","topicUid":"Hi.Geom.Solvers.DeepSolvingStatus","type":"Class"},{"name":"NumericalSolver","href":"Hi.Geom.Solvers.NumericalSolver.html","topicHref":"Hi.Geom.Solvers.NumericalSolver.html","topicUid":"Hi.Geom.Solvers.NumericalSolver","type":"Class"},{"name":"NumericalSolver.GetRepondsDelegate","href":"Hi.Geom.Solvers.NumericalSolver.GetRepondsDelegate.html","topicHref":"Hi.Geom.Solvers.NumericalSolver.GetRepondsDelegate.html","topicUid":"Hi.Geom.Solvers.NumericalSolver.GetRepondsDelegate","type":"Delegate"},{"name":"NumericalSolver.SetParasDelegate","href":"Hi.Geom.Solvers.NumericalSolver.SetParasDelegate.html","topicHref":"Hi.Geom.Solvers.NumericalSolver.SetParasDelegate.html","topicUid":"Hi.Geom.Solvers.NumericalSolver.SetParasDelegate","type":"Delegate"},{"name":"SolverUtil","href":"Hi.Geom.Solvers.SolverUtil.html","topicHref":"Hi.Geom.Solvers.SolverUtil.html","topicUid":"Hi.Geom.Solvers.SolverUtil","type":"Class"},{"name":"SolvingResult","href":"Hi.Geom.Solvers.SolvingResult.html","topicHref":"Hi.Geom.Solvers.SolvingResult.html","topicUid":"Hi.Geom.Solvers.SolvingResult","type":"Class"},{"name":"SolvingStatus","href":"Hi.Geom.Solvers.SolvingStatus.html","topicHref":"Hi.Geom.Solvers.SolvingStatus.html","topicUid":"Hi.Geom.Solvers.SolvingStatus","type":"Enum"},{"name":"SolvingTerm","href":"Hi.Geom.Solvers.SolvingTerm.html","topicHref":"Hi.Geom.Solvers.SolvingTerm.html","topicUid":"Hi.Geom.Solvers.SolvingTerm","type":"Enum"}]},{"name":"Hi.Geom.UnitUtils","href":"Hi.Geom.UnitUtils.html","topicHref":"Hi.Geom.UnitUtils.html","topicUid":"Hi.Geom.UnitUtils","type":"Namespace","items":[{"name":"PhysicsUnit","href":"Hi.Geom.UnitUtils.PhysicsUnit.html","topicHref":"Hi.Geom.UnitUtils.PhysicsUnit.html","topicUid":"Hi.Geom.UnitUtils.PhysicsUnit","type":"Enum"},{"name":"StringValueAttribute","href":"Hi.Geom.UnitUtils.StringValueAttribute.html","topicHref":"Hi.Geom.UnitUtils.StringValueAttribute.html","topicUid":"Hi.Geom.UnitUtils.StringValueAttribute","type":"Class"},{"name":"UnitConvertUtil","href":"Hi.Geom.UnitUtils.UnitConvertUtil.html","topicHref":"Hi.Geom.UnitUtils.UnitConvertUtil.html","topicUid":"Hi.Geom.UnitUtils.UnitConvertUtil","type":"Class"}]},{"name":"Hi.Grpcs","href":"Hi.Grpcs.html","topicHref":"Hi.Grpcs.html","topicUid":"Hi.Grpcs","type":"Namespace","items":[{"name":"ClStripService","href":"Hi.Grpcs.ClStripService.html","topicHref":"Hi.Grpcs.ClStripService.html","topicUid":"Hi.Grpcs.ClStripService","type":"Class"},{"name":"ClStripService.ClStripServiceBase","href":"Hi.Grpcs.ClStripService.ClStripServiceBase.html","topicHref":"Hi.Grpcs.ClStripService.ClStripServiceBase.html","topicUid":"Hi.Grpcs.ClStripService.ClStripServiceBase","type":"Class"},{"name":"ClStripService.ClStripServiceClient","href":"Hi.Grpcs.ClStripService.ClStripServiceClient.html","topicHref":"Hi.Grpcs.ClStripService.ClStripServiceClient.html","topicUid":"Hi.Grpcs.ClStripService.ClStripServiceClient","type":"Class"},{"name":"ClStripServiceReflection","href":"Hi.Grpcs.ClStripServiceReflection.html","topicHref":"Hi.Grpcs.ClStripServiceReflection.html","topicUid":"Hi.Grpcs.ClStripServiceReflection","type":"Class"},{"name":"ClStripServiceRunner","href":"Hi.Grpcs.ClStripServiceRunner.html","topicHref":"Hi.Grpcs.ClStripServiceRunner.html","topicUid":"Hi.Grpcs.ClStripServiceRunner","type":"Class"},{"name":"DictionaryStep","href":"Hi.Grpcs.DictionaryStep.html","topicHref":"Hi.Grpcs.DictionaryStep.html","topicUid":"Hi.Grpcs.DictionaryStep","type":"Class"},{"name":"PlayerService","href":"Hi.Grpcs.PlayerService.html","topicHref":"Hi.Grpcs.PlayerService.html","topicUid":"Hi.Grpcs.PlayerService","type":"Class"},{"name":"PlayerService.PlayerServiceBase","href":"Hi.Grpcs.PlayerService.PlayerServiceBase.html","topicHref":"Hi.Grpcs.PlayerService.PlayerServiceBase.html","topicUid":"Hi.Grpcs.PlayerService.PlayerServiceBase","type":"Class"},{"name":"PlayerService.PlayerServiceClient","href":"Hi.Grpcs.PlayerService.PlayerServiceClient.html","topicHref":"Hi.Grpcs.PlayerService.PlayerServiceClient.html","topicUid":"Hi.Grpcs.PlayerService.PlayerServiceClient","type":"Class"},{"name":"PlayerServiceReflection","href":"Hi.Grpcs.PlayerServiceReflection.html","topicHref":"Hi.Grpcs.PlayerServiceReflection.html","topicUid":"Hi.Grpcs.PlayerServiceReflection","type":"Class"},{"name":"PlayerServiceRunner","href":"Hi.Grpcs.PlayerServiceRunner.html","topicHref":"Hi.Grpcs.PlayerServiceRunner.html","topicUid":"Hi.Grpcs.PlayerServiceRunner","type":"Class"}]},{"name":"Hi.HiNcKits","href":"Hi.HiNcKits.html","topicHref":"Hi.HiNcKits.html","topicUid":"Hi.HiNcKits","type":"Namespace","items":[{"name":"BasePathEnum","href":"Hi.HiNcKits.BasePathEnum.html","topicHref":"Hi.HiNcKits.BasePathEnum.html","topicUid":"Hi.HiNcKits.BasePathEnum","type":"Enum"},{"name":"HiNcHost","href":"Hi.HiNcKits.HiNcHost.html","topicHref":"Hi.HiNcKits.HiNcHost.html","topicUid":"Hi.HiNcKits.HiNcHost","type":"Class"},{"name":"LocalApp","href":"Hi.HiNcKits.LocalApp.html","topicHref":"Hi.HiNcKits.LocalApp.html","topicUid":"Hi.HiNcKits.LocalApp","type":"Class"},{"name":"LocalAppConfig","href":"Hi.HiNcKits.LocalAppConfig.html","topicHref":"Hi.HiNcKits.LocalAppConfig.html","topicUid":"Hi.HiNcKits.LocalAppConfig","type":"Class"},{"name":"ProxyConfig","href":"Hi.HiNcKits.ProxyConfig.html","topicHref":"Hi.HiNcKits.ProxyConfig.html","topicUid":"Hi.HiNcKits.ProxyConfig","type":"Class"},{"name":"UserConfig","href":"Hi.HiNcKits.UserConfig.html","topicHref":"Hi.HiNcKits.UserConfig.html","topicUid":"Hi.HiNcKits.UserConfig","type":"Class"},{"name":"UserService","href":"Hi.HiNcKits.UserService.html","topicHref":"Hi.HiNcKits.UserService.html","topicUid":"Hi.HiNcKits.UserService","type":"Class"}]},{"name":"Hi.Licenses","href":"Hi.Licenses.html","topicHref":"Hi.Licenses.html","topicUid":"Hi.Licenses","type":"Namespace","items":[{"name":"AuthFeature","href":"Hi.Licenses.AuthFeature.html","topicHref":"Hi.Licenses.AuthFeature.html","topicUid":"Hi.Licenses.AuthFeature","type":"Enum"},{"name":"AuthorizationFailedEventArgs","href":"Hi.Licenses.AuthorizationFailedEventArgs.html","topicHref":"Hi.Licenses.AuthorizationFailedEventArgs.html","topicUid":"Hi.Licenses.AuthorizationFailedEventArgs","type":"Class"},{"name":"BlockType","href":"Hi.Licenses.BlockType.html","topicHref":"Hi.Licenses.BlockType.html","topicUid":"Hi.Licenses.BlockType","type":"Enum"},{"name":"License","href":"Hi.Licenses.License.html","topicHref":"Hi.Licenses.License.html","topicUid":"Hi.Licenses.License","type":"Class"},{"name":"LicenseType","href":"Hi.Licenses.LicenseType.html","topicHref":"Hi.Licenses.LicenseType.html","topicUid":"Hi.Licenses.LicenseType","type":"Enum"}]},{"name":"Hi.Machining","href":"Hi.Machining.html","topicHref":"Hi.Machining.html","topicUid":"Hi.Machining","type":"Namespace","items":[{"name":"FreeformRemover","href":"Hi.Machining.FreeformRemover.html","topicHref":"Hi.Machining.FreeformRemover.html","topicUid":"Hi.Machining.FreeformRemover","type":"Class"},{"name":"ICutter","href":"Hi.Machining.ICutter.html","topicHref":"Hi.Machining.ICutter.html","topicUid":"Hi.Machining.ICutter","type":"Interface"},{"name":"ICutterAnchorable","href":"Hi.Machining.ICutterAnchorable.html","topicHref":"Hi.Machining.ICutterAnchorable.html","topicUid":"Hi.Machining.ICutterAnchorable","type":"Interface"},{"name":"IGetSweptable","href":"Hi.Machining.IGetSweptable.html","topicHref":"Hi.Machining.IGetSweptable.html","topicUid":"Hi.Machining.IGetSweptable","type":"Interface"},{"name":"IMachiningTool","href":"Hi.Machining.IMachiningTool.html","topicHref":"Hi.Machining.IMachiningTool.html","topicUid":"Hi.Machining.IMachiningTool","type":"Interface"},{"name":"IVolumeRemover","href":"Hi.Machining.IVolumeRemover.html","topicHref":"Hi.Machining.IVolumeRemover.html","topicUid":"Hi.Machining.IVolumeRemover","type":"Interface"},{"name":"MachiningToolHouse","href":"Hi.Machining.MachiningToolHouse.html","topicHref":"Hi.Machining.MachiningToolHouse.html","topicUid":"Hi.Machining.MachiningToolHouse","type":"Class"},{"name":"MachiningVolumeRemovalProc","href":"Hi.Machining.MachiningVolumeRemovalProc.html","topicHref":"Hi.Machining.MachiningVolumeRemovalProc.html","topicUid":"Hi.Machining.MachiningVolumeRemovalProc","type":"Class"},{"name":"MachiningVolumeRemovalProc.StepMotionSnapshot","href":"Hi.Machining.MachiningVolumeRemovalProc.StepMotionSnapshot.html","topicHref":"Hi.Machining.MachiningVolumeRemovalProc.StepMotionSnapshot.html","topicUid":"Hi.Machining.MachiningVolumeRemovalProc.StepMotionSnapshot","type":"Class"},{"name":"MatInterpolationKit","href":"Hi.Machining.MatInterpolationKit.html","topicHref":"Hi.Machining.MatInterpolationKit.html","topicUid":"Hi.Machining.MatInterpolationKit","type":"Class"},{"name":"MatRelation","href":"Hi.Machining.MatRelation.html","topicHref":"Hi.Machining.MatRelation.html","topicUid":"Hi.Machining.MatRelation","type":"Enum"},{"name":"MatRelationUtil","href":"Hi.Machining.MatRelationUtil.html","topicHref":"Hi.Machining.MatRelationUtil.html","topicUid":"Hi.Machining.MatRelationUtil","type":"Class"},{"name":"MotionUtil","href":"Hi.Machining.MotionUtil.html","topicHref":"Hi.Machining.MotionUtil.html","topicUid":"Hi.Machining.MotionUtil","type":"Class"},{"name":"Sweptable","href":"Hi.Machining.Sweptable.html","topicHref":"Hi.Machining.Sweptable.html","topicUid":"Hi.Machining.Sweptable","type":"Class"},{"name":"SweptableUtil","href":"Hi.Machining.SweptableUtil.html","topicHref":"Hi.Machining.SweptableUtil.html","topicUid":"Hi.Machining.SweptableUtil","type":"Class"},{"name":"ToolNotFoundException","href":"Hi.Machining.ToolNotFoundException.html","topicHref":"Hi.Machining.ToolNotFoundException.html","topicUid":"Hi.Machining.ToolNotFoundException","type":"Class"}]},{"name":"Hi.Machining.MachiningEquipmentUtils","href":"Hi.Machining.MachiningEquipmentUtils.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.html","topicUid":"Hi.Machining.MachiningEquipmentUtils","type":"Namespace","items":[{"name":"CollidableComponentEnum","href":"Hi.Machining.MachiningEquipmentUtils.CollidableComponentEnum.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.CollidableComponentEnum.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.CollidableComponentEnum","type":"Enum"},{"name":"IGetMachiningEquipment","href":"Hi.Machining.MachiningEquipmentUtils.IGetMachiningEquipment.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.IGetMachiningEquipment.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.IGetMachiningEquipment","type":"Interface"},{"name":"IMachiningEquipment","href":"Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment","type":"Interface"},{"name":"MachiningEquipment","href":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipment","type":"Class"},{"name":"MachiningEquipmentCollisionIndex","href":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndex.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndex.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndex","type":"Class"},{"name":"MachiningEquipmentCollisionIndexPairsSource","href":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndexPairsSource.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndexPairsSource.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndexPairsSource","type":"Class"},{"name":"MachiningEquipmentUtil","href":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil","type":"Class"}]},{"name":"Hi.MachiningProcs","href":"Hi.MachiningProcs.html","topicHref":"Hi.MachiningProcs.html","topicUid":"Hi.MachiningProcs","type":"Namespace","items":[{"name":"ConfigStepFunc","href":"Hi.MachiningProcs.ConfigStepFunc.html","topicHref":"Hi.MachiningProcs.ConfigStepFunc.html","topicUid":"Hi.MachiningProcs.ConfigStepFunc","type":"Delegate"},{"name":"DynamicMachiningProjectDisplayee0","href":"Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.html","topicHref":"Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.html","topicUid":"Hi.MachiningProcs.DynamicMachiningProjectDisplayee0","type":"Class"},{"name":"IMachiningProjectGetter","href":"Hi.MachiningProcs.IMachiningProjectGetter.html","topicHref":"Hi.MachiningProcs.IMachiningProjectGetter.html","topicUid":"Hi.MachiningProcs.IMachiningProjectGetter","type":"Interface"},{"name":"IProjectService","href":"Hi.MachiningProcs.IProjectService.html","topicHref":"Hi.MachiningProcs.IProjectService.html","topicUid":"Hi.MachiningProcs.IProjectService","type":"Interface"},{"name":"LocalProjectService","href":"Hi.MachiningProcs.LocalProjectService.html","topicHref":"Hi.MachiningProcs.LocalProjectService.html","topicUid":"Hi.MachiningProcs.LocalProjectService","type":"Class"},{"name":"LocalProjectService.MachiningProjectChangedDelegate","href":"Hi.MachiningProcs.LocalProjectService.MachiningProjectChangedDelegate.html","topicHref":"Hi.MachiningProcs.LocalProjectService.MachiningProjectChangedDelegate.html","topicUid":"Hi.MachiningProcs.LocalProjectService.MachiningProjectChangedDelegate","type":"Delegate"},{"name":"MachiningActRunner","href":"Hi.MachiningProcs.MachiningActRunner.html","topicHref":"Hi.MachiningProcs.MachiningActRunner.html","topicUid":"Hi.MachiningProcs.MachiningActRunner","type":"Class"},{"name":"MachiningActRunner.MachiningStepBuiltDelegate","href":"Hi.MachiningProcs.MachiningActRunner.MachiningStepBuiltDelegate.html","topicHref":"Hi.MachiningProcs.MachiningActRunner.MachiningStepBuiltDelegate.html","topicUid":"Hi.MachiningProcs.MachiningActRunner.MachiningStepBuiltDelegate","type":"Delegate"},{"name":"MachiningParallelProc","href":"Hi.MachiningProcs.MachiningParallelProc.html","topicHref":"Hi.MachiningProcs.MachiningParallelProc.html","topicUid":"Hi.MachiningProcs.MachiningParallelProc","type":"Class"},{"name":"MachiningParallelProc.StepTaskBundle","href":"Hi.MachiningProcs.MachiningParallelProc.StepTaskBundle.html","topicHref":"Hi.MachiningProcs.MachiningParallelProc.StepTaskBundle.html","topicUid":"Hi.MachiningProcs.MachiningParallelProc.StepTaskBundle","type":"Class"},{"name":"MachiningParallelProc.SubstractionResult","href":"Hi.MachiningProcs.MachiningParallelProc.SubstractionResult.html","topicHref":"Hi.MachiningProcs.MachiningParallelProc.SubstractionResult.html","topicUid":"Hi.MachiningProcs.MachiningParallelProc.SubstractionResult","type":"Class"},{"name":"MachiningProject","href":"Hi.MachiningProcs.MachiningProject.html","topicHref":"Hi.MachiningProcs.MachiningProject.html","topicUid":"Hi.MachiningProcs.MachiningProject","type":"Class"},{"name":"MachiningProjectDisplayee","href":"Hi.MachiningProcs.MachiningProjectDisplayee.html","topicHref":"Hi.MachiningProcs.MachiningProjectDisplayee.html","topicUid":"Hi.MachiningProcs.MachiningProjectDisplayee","type":"Class"},{"name":"MachiningSession","href":"Hi.MachiningProcs.MachiningSession.html","topicHref":"Hi.MachiningProcs.MachiningSession.html","topicUid":"Hi.MachiningProcs.MachiningSession","type":"Class"},{"name":"MillingActRunnerConfig","href":"Hi.MachiningProcs.MillingActRunnerConfig.html","topicHref":"Hi.MachiningProcs.MillingActRunnerConfig.html","topicUid":"Hi.MachiningProcs.MillingActRunnerConfig","type":"Class"},{"name":"MillingUtil","href":"Hi.MachiningProcs.MillingUtil.html","topicHref":"Hi.MachiningProcs.MillingUtil.html","topicUid":"Hi.MachiningProcs.MillingUtil","type":"Class"},{"name":"ProxyProjectService","href":"Hi.MachiningProcs.ProxyProjectService.html","topicHref":"Hi.MachiningProcs.ProxyProjectService.html","topicUid":"Hi.MachiningProcs.ProxyProjectService","type":"Class"},{"name":"RenderingFlag","href":"Hi.MachiningProcs.RenderingFlag.html","topicHref":"Hi.MachiningProcs.RenderingFlag.html","topicUid":"Hi.MachiningProcs.RenderingFlag","type":"Enum"},{"name":"RuntimeApi","href":"Hi.MachiningProcs.RuntimeApi.html","topicHref":"Hi.MachiningProcs.RuntimeApi.html","topicUid":"Hi.MachiningProcs.RuntimeApi","type":"Class"},{"name":"RuntimeController","href":"Hi.MachiningProcs.RuntimeController.html","topicHref":"Hi.MachiningProcs.RuntimeController.html","topicUid":"Hi.MachiningProcs.RuntimeController","type":"Class"},{"name":"SessionMessage","href":"Hi.MachiningProcs.SessionMessage.html","topicHref":"Hi.MachiningProcs.SessionMessage.html","topicUid":"Hi.MachiningProcs.SessionMessage","type":"Class"},{"name":"SessionMessageHost","href":"Hi.MachiningProcs.SessionMessageHost.html","topicHref":"Hi.MachiningProcs.SessionMessageHost.html","topicUid":"Hi.MachiningProcs.SessionMessageHost","type":"Class"},{"name":"SessionMessageHost.FilterFlag","href":"Hi.MachiningProcs.SessionMessageHost.FilterFlag.html","topicHref":"Hi.MachiningProcs.SessionMessageHost.FilterFlag.html","topicUid":"Hi.MachiningProcs.SessionMessageHost.FilterFlag","type":"Enum"},{"name":"SessionMessagePack","href":"Hi.MachiningProcs.SessionMessagePack.html","topicHref":"Hi.MachiningProcs.SessionMessagePack.html","topicUid":"Hi.MachiningProcs.SessionMessagePack","type":"Class"},{"name":"SetupController","href":"Hi.MachiningProcs.SetupController.html","topicHref":"Hi.MachiningProcs.SetupController.html","topicUid":"Hi.MachiningProcs.SetupController","type":"Class"},{"name":"SpindleSpeedCache","href":"Hi.MachiningProcs.SpindleSpeedCache.html","topicHref":"Hi.MachiningProcs.SpindleSpeedCache.html","topicUid":"Hi.MachiningProcs.SpindleSpeedCache","type":"Class"}]},{"name":"Hi.MachiningSteps","href":"Hi.MachiningSteps.html","topicHref":"Hi.MachiningSteps.html","topicUid":"Hi.MachiningSteps","type":"Namespace","items":[{"name":"IFlagText","href":"Hi.MachiningSteps.IFlagText.html","topicHref":"Hi.MachiningSteps.IFlagText.html","topicUid":"Hi.MachiningSteps.IFlagText","type":"Interface"},{"name":"IMachiningStepHost","href":"Hi.MachiningSteps.IMachiningStepHost.html","topicHref":"Hi.MachiningSteps.IMachiningStepHost.html","topicUid":"Hi.MachiningSteps.IMachiningStepHost","type":"Interface"},{"name":"MachineMotionStep","href":"Hi.MachiningSteps.MachineMotionStep.html","topicHref":"Hi.MachiningSteps.MachineMotionStep.html","topicUid":"Hi.MachiningSteps.MachineMotionStep","type":"Class"},{"name":"MachiningStep","href":"Hi.MachiningSteps.MachiningStep.html","topicHref":"Hi.MachiningSteps.MachiningStep.html","topicUid":"Hi.MachiningSteps.MachiningStep","type":"Class"},{"name":"MachiningStep.CollidedKeyPair","href":"Hi.MachiningSteps.MachiningStep.CollidedKeyPair.html","topicHref":"Hi.MachiningSteps.MachiningStep.CollidedKeyPair.html","topicUid":"Hi.MachiningSteps.MachiningStep.CollidedKeyPair","type":"Class"},{"name":"MachiningStepUtil","href":"Hi.MachiningSteps.MachiningStepUtil.html","topicHref":"Hi.MachiningSteps.MachiningStepUtil.html","topicUid":"Hi.MachiningSteps.MachiningStepUtil","type":"Class"},{"name":"PresentAccess","href":"Hi.MachiningSteps.PresentAccess.html","topicHref":"Hi.MachiningSteps.PresentAccess.html","topicUid":"Hi.MachiningSteps.PresentAccess","type":"Class"},{"name":"PresentAttribute","href":"Hi.MachiningSteps.PresentAttribute.html","topicHref":"Hi.MachiningSteps.PresentAttribute.html","topicUid":"Hi.MachiningSteps.PresentAttribute","type":"Class"},{"name":"PropertyAccess","href":"Hi.MachiningSteps.PropertyAccess-1.html","topicHref":"Hi.MachiningSteps.PropertyAccess-1.html","topicUid":"Hi.MachiningSteps.PropertyAccess`1","type":"Class"}]},{"name":"Hi.Mapping","href":"Hi.Mapping.html","topicHref":"Hi.Mapping.html","topicUid":"Hi.Mapping","type":"Namespace","items":[{"name":"CsvNcStep","href":"Hi.Mapping.CsvNcStep.html","topicHref":"Hi.Mapping.CsvNcStep.html","topicUid":"Hi.Mapping.CsvNcStep","type":"Class"},{"name":"CsvNcStep.StepInterpoationMode","href":"Hi.Mapping.CsvNcStep.StepInterpoationMode.html","topicHref":"Hi.Mapping.CsvNcStep.StepInterpoationMode.html","topicUid":"Hi.Mapping.CsvNcStep.StepInterpoationMode","type":"Enum"},{"name":"FileToTimeShotMapping","href":"Hi.Mapping.FileToTimeShotMapping.html","topicHref":"Hi.Mapping.FileToTimeShotMapping.html","topicUid":"Hi.Mapping.FileToTimeShotMapping","type":"Class"},{"name":"IAccelerationShot","href":"Hi.Mapping.IAccelerationShot.html","topicHref":"Hi.Mapping.IAccelerationShot.html","topicUid":"Hi.Mapping.IAccelerationShot","type":"Interface"},{"name":"IForceShot","href":"Hi.Mapping.IForceShot.html","topicHref":"Hi.Mapping.IForceShot.html","topicUid":"Hi.Mapping.IForceShot","type":"Interface"},{"name":"IMomentShot","href":"Hi.Mapping.IMomentShot.html","topicHref":"Hi.Mapping.IMomentShot.html","topicUid":"Hi.Mapping.IMomentShot","type":"Interface"},{"name":"ITimeShot","href":"Hi.Mapping.ITimeShot.html","topicHref":"Hi.Mapping.ITimeShot.html","topicUid":"Hi.Mapping.ITimeShot","type":"Interface"},{"name":"StepTimeShotUtil","href":"Hi.Mapping.StepTimeShotUtil.html","topicHref":"Hi.Mapping.StepTimeShotUtil.html","topicUid":"Hi.Mapping.StepTimeShotUtil","type":"Class"},{"name":"StepTimeShotUtil.CycleSamplingMode","href":"Hi.Mapping.StepTimeShotUtil.CycleSamplingMode.html","topicHref":"Hi.Mapping.StepTimeShotUtil.CycleSamplingMode.html","topicUid":"Hi.Mapping.StepTimeShotUtil.CycleSamplingMode","type":"Enum"},{"name":"StepTimeShotUtil.GetTimeShotByFileDelegate","href":"Hi.Mapping.StepTimeShotUtil.GetTimeShotByFileDelegate.html","topicHref":"Hi.Mapping.StepTimeShotUtil.GetTimeShotByFileDelegate.html","topicUid":"Hi.Mapping.StepTimeShotUtil.GetTimeShotByFileDelegate","type":"Delegate"},{"name":"TimeMapping","href":"Hi.Mapping.TimeMapping.html","topicHref":"Hi.Mapping.TimeMapping.html","topicUid":"Hi.Mapping.TimeMapping","type":"Class"}]},{"name":"Hi.Mappings","href":"Hi.Mappings.html","topicHref":"Hi.Mappings.html","topicUid":"Hi.Mappings","type":"Namespace","items":[{"name":"FileTimeSection","href":"Hi.Mappings.FileTimeSection.html","topicHref":"Hi.Mappings.FileTimeSection.html","topicUid":"Hi.Mappings.FileTimeSection","type":"Class"},{"name":"FileTimeSection.TimeOption","href":"Hi.Mappings.FileTimeSection.TimeOption.html","topicHref":"Hi.Mappings.FileTimeSection.TimeOption.html","topicUid":"Hi.Mappings.FileTimeSection.TimeOption","type":"Enum"}]},{"name":"Hi.Mech","href":"Hi.Mech.html","topicHref":"Hi.Mech.html","topicUid":"Hi.Mech","type":"Namespace","items":[{"name":"GeneralMechanism","href":"Hi.Mech.GeneralMechanism.html","topicHref":"Hi.Mech.GeneralMechanism.html","topicUid":"Hi.Mech.GeneralMechanism","type":"Class"},{"name":"IGetAnchorToSolidDictionary","href":"Hi.Mech.IGetAnchorToSolidDictionary.html","topicHref":"Hi.Mech.IGetAnchorToSolidDictionary.html","topicUid":"Hi.Mech.IGetAnchorToSolidDictionary","type":"Interface"},{"name":"IGetMachiningChain","href":"Hi.Mech.IGetMachiningChain.html","topicHref":"Hi.Mech.IGetMachiningChain.html","topicUid":"Hi.Mech.IGetMachiningChain","type":"Interface"},{"name":"IMachiningChain","href":"Hi.Mech.IMachiningChain.html","topicHref":"Hi.Mech.IMachiningChain.html","topicUid":"Hi.Mech.IMachiningChain","type":"Interface"},{"name":"IMachiningChainSource","href":"Hi.Mech.IMachiningChainSource.html","topicHref":"Hi.Mech.IMachiningChainSource.html","topicUid":"Hi.Mech.IMachiningChainSource","type":"Interface"},{"name":"MachiningChainUtil","href":"Hi.Mech.MachiningChainUtil.html","topicHref":"Hi.Mech.MachiningChainUtil.html","topicUid":"Hi.Mech.MachiningChainUtil","type":"Class"}]},{"name":"Hi.Mech.Topo","href":"Hi.Mech.Topo.html","topicHref":"Hi.Mech.Topo.html","topicUid":"Hi.Mech.Topo","type":"Namespace","items":[{"name":"Anchor","href":"Hi.Mech.Topo.Anchor.html","topicHref":"Hi.Mech.Topo.Anchor.html","topicUid":"Hi.Mech.Topo.Anchor","type":"Class"},{"name":"AnchorFuncSource","href":"Hi.Mech.Topo.AnchorFuncSource.html","topicHref":"Hi.Mech.Topo.AnchorFuncSource.html","topicUid":"Hi.Mech.Topo.AnchorFuncSource","type":"Class"},{"name":"AnchoredBoxable","href":"Hi.Mech.Topo.AnchoredBoxable.html","topicHref":"Hi.Mech.Topo.AnchoredBoxable.html","topicUid":"Hi.Mech.Topo.AnchoredBoxable","type":"Class"},{"name":"AnchoredDisplayee","href":"Hi.Mech.Topo.AnchoredDisplayee.html","topicHref":"Hi.Mech.Topo.AnchoredDisplayee.html","topicUid":"Hi.Mech.Topo.AnchoredDisplayee","type":"Class"},{"name":"Asmb","href":"Hi.Mech.Topo.Asmb.html","topicHref":"Hi.Mech.Topo.Asmb.html","topicUid":"Hi.Mech.Topo.Asmb","type":"Class"},{"name":"AsmbDraw","href":"Hi.Mech.Topo.AsmbDraw.html","topicHref":"Hi.Mech.Topo.AsmbDraw.html","topicUid":"Hi.Mech.Topo.AsmbDraw","type":"Class"},{"name":"Branch","href":"Hi.Mech.Topo.Branch.html","topicHref":"Hi.Mech.Topo.Branch.html","topicUid":"Hi.Mech.Topo.Branch","type":"Class"},{"name":"DirectionBranchPack","href":"Hi.Mech.Topo.DirectionBranchPack.html","topicHref":"Hi.Mech.Topo.DirectionBranchPack.html","topicUid":"Hi.Mech.Topo.DirectionBranchPack","type":"Class"},{"name":"DirectionBranchPackUtil","href":"Hi.Mech.Topo.DirectionBranchPackUtil.html","topicHref":"Hi.Mech.Topo.DirectionBranchPackUtil.html","topicUid":"Hi.Mech.Topo.DirectionBranchPackUtil","type":"Class"},{"name":"DynamicFreeform","href":"Hi.Mech.Topo.DynamicFreeform.html","topicHref":"Hi.Mech.Topo.DynamicFreeform.html","topicUid":"Hi.Mech.Topo.DynamicFreeform","type":"Class"},{"name":"DynamicRotation","href":"Hi.Mech.Topo.DynamicRotation.html","topicHref":"Hi.Mech.Topo.DynamicRotation.html","topicUid":"Hi.Mech.Topo.DynamicRotation","type":"Class"},{"name":"DynamicTranslation","href":"Hi.Mech.Topo.DynamicTranslation.html","topicHref":"Hi.Mech.Topo.DynamicTranslation.html","topicUid":"Hi.Mech.Topo.DynamicTranslation","type":"Class"},{"name":"GeneralTransform","href":"Hi.Mech.Topo.GeneralTransform.html","topicHref":"Hi.Mech.Topo.GeneralTransform.html","topicUid":"Hi.Mech.Topo.GeneralTransform","type":"Class"},{"name":"IAnchoredDisplayee","href":"Hi.Mech.Topo.IAnchoredDisplayee.html","topicHref":"Hi.Mech.Topo.IAnchoredDisplayee.html","topicUid":"Hi.Mech.Topo.IAnchoredDisplayee","type":"Interface"},{"name":"IDynamicRegular","href":"Hi.Mech.Topo.IDynamicRegular.html","topicHref":"Hi.Mech.Topo.IDynamicRegular.html","topicUid":"Hi.Mech.Topo.IDynamicRegular","type":"Interface"},{"name":"IDynamicTransformer","href":"Hi.Mech.Topo.IDynamicTransformer.html","topicHref":"Hi.Mech.Topo.IDynamicTransformer.html","topicUid":"Hi.Mech.Topo.IDynamicTransformer","type":"Interface"},{"name":"IGetAnchor","href":"Hi.Mech.Topo.IGetAnchor.html","topicHref":"Hi.Mech.Topo.IGetAnchor.html","topicUid":"Hi.Mech.Topo.IGetAnchor","type":"Interface"},{"name":"IGetAnchoredDisplayeeList","href":"Hi.Mech.Topo.IGetAnchoredDisplayeeList.html","topicHref":"Hi.Mech.Topo.IGetAnchoredDisplayeeList.html","topicUid":"Hi.Mech.Topo.IGetAnchoredDisplayeeList","type":"Interface"},{"name":"IGetAsmb","href":"Hi.Mech.Topo.IGetAsmb.html","topicHref":"Hi.Mech.Topo.IGetAsmb.html","topicUid":"Hi.Mech.Topo.IGetAsmb","type":"Interface"},{"name":"IGetFletchBuckle","href":"Hi.Mech.Topo.IGetFletchBuckle.html","topicHref":"Hi.Mech.Topo.IGetFletchBuckle.html","topicUid":"Hi.Mech.Topo.IGetFletchBuckle","type":"Interface"},{"name":"IGetInverseTransformer","href":"Hi.Mech.Topo.IGetInverseTransformer.html","topicHref":"Hi.Mech.Topo.IGetInverseTransformer.html","topicUid":"Hi.Mech.Topo.IGetInverseTransformer","type":"Interface"},{"name":"IGetTopoIndex","href":"Hi.Mech.Topo.IGetTopoIndex.html","topicHref":"Hi.Mech.Topo.IGetTopoIndex.html","topicUid":"Hi.Mech.Topo.IGetTopoIndex","type":"Interface"},{"name":"IStaticTransformer","href":"Hi.Mech.Topo.IStaticTransformer.html","topicHref":"Hi.Mech.Topo.IStaticTransformer.html","topicUid":"Hi.Mech.Topo.IStaticTransformer","type":"Interface"},{"name":"ITopo","href":"Hi.Mech.Topo.ITopo.html","topicHref":"Hi.Mech.Topo.ITopo.html","topicUid":"Hi.Mech.Topo.ITopo","type":"Interface"},{"name":"ITopoDisplayee","href":"Hi.Mech.Topo.ITopoDisplayee.html","topicHref":"Hi.Mech.Topo.ITopoDisplayee.html","topicUid":"Hi.Mech.Topo.ITopoDisplayee","type":"Interface"},{"name":"ITransformer","href":"Hi.Mech.Topo.ITransformer.html","topicHref":"Hi.Mech.Topo.ITransformer.html","topicUid":"Hi.Mech.Topo.ITransformer","type":"Interface"},{"name":"ITransformerProperty","href":"Hi.Mech.Topo.ITransformerProperty.html","topicHref":"Hi.Mech.Topo.ITransformerProperty.html","topicUid":"Hi.Mech.Topo.ITransformerProperty","type":"Interface"},{"name":"NoTransform","href":"Hi.Mech.Topo.NoTransform.html","topicHref":"Hi.Mech.Topo.NoTransform.html","topicUid":"Hi.Mech.Topo.NoTransform","type":"Class"},{"name":"StackTransformer","href":"Hi.Mech.Topo.StackTransformer.html","topicHref":"Hi.Mech.Topo.StackTransformer.html","topicUid":"Hi.Mech.Topo.StackTransformer","type":"Class"},{"name":"StaticFreeform","href":"Hi.Mech.Topo.StaticFreeform.html","topicHref":"Hi.Mech.Topo.StaticFreeform.html","topicUid":"Hi.Mech.Topo.StaticFreeform","type":"Class"},{"name":"StaticRotation","href":"Hi.Mech.Topo.StaticRotation.html","topicHref":"Hi.Mech.Topo.StaticRotation.html","topicUid":"Hi.Mech.Topo.StaticRotation","type":"Class"},{"name":"StaticTranslation","href":"Hi.Mech.Topo.StaticTranslation.html","topicHref":"Hi.Mech.Topo.StaticTranslation.html","topicUid":"Hi.Mech.Topo.StaticTranslation","type":"Class"},{"name":"TopoDisplayee","href":"Hi.Mech.Topo.TopoDisplayee.html","topicHref":"Hi.Mech.Topo.TopoDisplayee.html","topicUid":"Hi.Mech.Topo.TopoDisplayee","type":"Class"},{"name":"TopoDisplayeeUtil","href":"Hi.Mech.Topo.TopoDisplayeeUtil.html","topicHref":"Hi.Mech.Topo.TopoDisplayeeUtil.html","topicUid":"Hi.Mech.Topo.TopoDisplayeeUtil","type":"Class"},{"name":"TopoReflection","href":"Hi.Mech.Topo.TopoReflection.html","topicHref":"Hi.Mech.Topo.TopoReflection.html","topicUid":"Hi.Mech.Topo.TopoReflection","type":"Class"},{"name":"TopoUtil","href":"Hi.Mech.Topo.TopoUtil.html","topicHref":"Hi.Mech.Topo.TopoUtil.html","topicUid":"Hi.Mech.Topo.TopoUtil","type":"Class"},{"name":"TransformerUtil","href":"Hi.Mech.Topo.TransformerUtil.html","topicHref":"Hi.Mech.Topo.TransformerUtil.html","topicUid":"Hi.Mech.Topo.TransformerUtil","type":"Class"}]},{"name":"Hi.Milling","href":"Hi.Milling.html","topicHref":"Hi.Milling.html","topicUid":"Hi.Milling","type":"Namespace","items":[{"name":"IGetDiameter","href":"Hi.Milling.IGetDiameter.html","topicHref":"Hi.Milling.IGetDiameter.html","topicUid":"Hi.Milling.IGetDiameter","type":"Interface"},{"name":"IGetFluteHeight","href":"Hi.Milling.IGetFluteHeight.html","topicHref":"Hi.Milling.IGetFluteHeight.html","topicUid":"Hi.Milling.IGetFluteHeight","type":"Interface"},{"name":"IGetMillingGeomBrief","href":"Hi.Milling.IGetMillingGeomBrief.html","topicHref":"Hi.Milling.IGetMillingGeomBrief.html","topicUid":"Hi.Milling.IGetMillingGeomBrief","type":"Interface"},{"name":"IGetRadialReliefAngle","href":"Hi.Milling.IGetRadialReliefAngle.html","topicHref":"Hi.Milling.IGetRadialReliefAngle.html","topicUid":"Hi.Milling.IGetRadialReliefAngle","type":"Interface"},{"name":"IMillingGeomBriefAccessor","href":"Hi.Milling.IMillingGeomBriefAccessor.html","topicHref":"Hi.Milling.IMillingGeomBriefAccessor.html","topicUid":"Hi.Milling.IMillingGeomBriefAccessor","type":"Interface"},{"name":"MillingGeomBrief","href":"Hi.Milling.MillingGeomBrief.html","topicHref":"Hi.Milling.MillingGeomBrief.html","topicUid":"Hi.Milling.MillingGeomBrief","type":"Class"},{"name":"MillingRemovalUtil","href":"Hi.Milling.MillingRemovalUtil.html","topicHref":"Hi.Milling.MillingRemovalUtil.html","topicUid":"Hi.Milling.MillingRemovalUtil","type":"Class"},{"name":"SpindleCapability","href":"Hi.Milling.SpindleCapability.html","topicHref":"Hi.Milling.SpindleCapability.html","topicUid":"Hi.Milling.SpindleCapability","type":"Class"}]},{"name":"Hi.Milling.Apts","href":"Hi.Milling.Apts.html","topicHref":"Hi.Milling.Apts.html","topicUid":"Hi.Milling.Apts","type":"Namespace","items":[{"name":"AptDerivative","href":"Hi.Milling.Apts.AptDerivative.html","topicHref":"Hi.Milling.Apts.AptDerivative.html","topicUid":"Hi.Milling.Apts.AptDerivative","type":"Class"},{"name":"BallApt","href":"Hi.Milling.Apts.BallApt.html","topicHref":"Hi.Milling.Apts.BallApt.html","topicUid":"Hi.Milling.Apts.BallApt","type":"Class"},{"name":"BullNoseApt","href":"Hi.Milling.Apts.BullNoseApt.html","topicHref":"Hi.Milling.Apts.BullNoseApt.html","topicUid":"Hi.Milling.Apts.BullNoseApt","type":"Class"},{"name":"ColumnApt","href":"Hi.Milling.Apts.ColumnApt.html","topicHref":"Hi.Milling.Apts.ColumnApt.html","topicUid":"Hi.Milling.Apts.ColumnApt","type":"Class"},{"name":"ConeApt","href":"Hi.Milling.Apts.ConeApt.html","topicHref":"Hi.Milling.Apts.ConeApt.html","topicUid":"Hi.Milling.Apts.ConeApt","type":"Class"},{"name":"ExactColumnApt","href":"Hi.Milling.Apts.ExactColumnApt.html","topicHref":"Hi.Milling.Apts.ExactColumnApt.html","topicUid":"Hi.Milling.Apts.ExactColumnApt","type":"Class"},{"name":"GeneralApt","href":"Hi.Milling.Apts.GeneralApt.html","topicHref":"Hi.Milling.Apts.GeneralApt.html","topicUid":"Hi.Milling.Apts.GeneralApt","type":"Class"},{"name":"IAptAlpha","href":"Hi.Milling.Apts.IAptAlpha.html","topicHref":"Hi.Milling.Apts.IAptAlpha.html","topicUid":"Hi.Milling.Apts.IAptAlpha","type":"Interface"},{"name":"IAptBased","href":"Hi.Milling.Apts.IAptBased.html","topicHref":"Hi.Milling.Apts.IAptBased.html","topicUid":"Hi.Milling.Apts.IAptBased","type":"Interface"},{"name":"IAptBeta","href":"Hi.Milling.Apts.IAptBeta.html","topicHref":"Hi.Milling.Apts.IAptBeta.html","topicUid":"Hi.Milling.Apts.IAptBeta","type":"Interface"},{"name":"IAptRc","href":"Hi.Milling.Apts.IAptRc.html","topicHref":"Hi.Milling.Apts.IAptRc.html","topicUid":"Hi.Milling.Apts.IAptRc","type":"Interface"},{"name":"IAptRr","href":"Hi.Milling.Apts.IAptRr.html","topicHref":"Hi.Milling.Apts.IAptRr.html","topicUid":"Hi.Milling.Apts.IAptRr","type":"Interface"},{"name":"IAptRz","href":"Hi.Milling.Apts.IAptRz.html","topicHref":"Hi.Milling.Apts.IAptRz.html","topicUid":"Hi.Milling.Apts.IAptRz","type":"Interface"},{"name":"IGetApt","href":"Hi.Milling.Apts.IGetApt.html","topicHref":"Hi.Milling.Apts.IGetApt.html","topicUid":"Hi.Milling.Apts.IGetApt","type":"Interface"},{"name":"IGetGeneralApt","href":"Hi.Milling.Apts.IGetGeneralApt.html","topicHref":"Hi.Milling.Apts.IGetGeneralApt.html","topicUid":"Hi.Milling.Apts.IGetGeneralApt","type":"Interface"},{"name":"TaperApt","href":"Hi.Milling.Apts.TaperApt.html","topicHref":"Hi.Milling.Apts.TaperApt.html","topicUid":"Hi.Milling.Apts.TaperApt","type":"Class"},{"name":"apt_t","href":"Hi.Milling.Apts.apt_t.html","topicHref":"Hi.Milling.Apts.apt_t.html","topicUid":"Hi.Milling.Apts.apt_t","type":"Struct"}]},{"name":"Hi.Milling.Cutters","href":"Hi.Milling.Cutters.html","topicHref":"Hi.Milling.Cutters.html","topicUid":"Hi.Milling.Cutters","type":"Namespace","items":[{"name":"AptProfile","href":"Hi.Milling.Cutters.AptProfile.html","topicHref":"Hi.Milling.Cutters.AptProfile.html","topicUid":"Hi.Milling.Cutters.AptProfile","type":"Class"},{"name":"ConstRatioProfile","href":"Hi.Milling.Cutters.ConstRatioProfile.html","topicHref":"Hi.Milling.Cutters.ConstRatioProfile.html","topicUid":"Hi.Milling.Cutters.ConstRatioProfile","type":"Class"},{"name":"CustomSpinningProfile","href":"Hi.Milling.Cutters.CustomSpinningProfile.html","topicHref":"Hi.Milling.Cutters.CustomSpinningProfile.html","topicUid":"Hi.Milling.Cutters.CustomSpinningProfile","type":"Class"},{"name":"CutterUtil","href":"Hi.Milling.Cutters.CutterUtil.html","topicHref":"Hi.Milling.Cutters.CutterUtil.html","topicUid":"Hi.Milling.Cutters.CutterUtil","type":"Class"},{"name":"FluteContourDisplayee","href":"Hi.Milling.Cutters.FluteContourDisplayee.html","topicHref":"Hi.Milling.Cutters.FluteContourDisplayee.html","topicUid":"Hi.Milling.Cutters.FluteContourDisplayee","type":"Class"},{"name":"FluteDependentRatioProfile","href":"Hi.Milling.Cutters.FluteDependentRatioProfile.html","topicHref":"Hi.Milling.Cutters.FluteDependentRatioProfile.html","topicUid":"Hi.Milling.Cutters.FluteDependentRatioProfile","type":"Class"},{"name":"IShaperProfile","href":"Hi.Milling.Cutters.IShaperProfile.html","topicHref":"Hi.Milling.Cutters.IShaperProfile.html","topicUid":"Hi.Milling.Cutters.IShaperProfile","type":"Interface"},{"name":"MillingCutter","href":"Hi.Milling.Cutters.MillingCutter.html","topicHref":"Hi.Milling.Cutters.MillingCutter.html","topicUid":"Hi.Milling.Cutters.MillingCutter","type":"Class"},{"name":"MillingCutter.IntegralModeEnum","href":"Hi.Milling.Cutters.MillingCutter.IntegralModeEnum.html","topicHref":"Hi.Milling.Cutters.MillingCutter.IntegralModeEnum.html","topicUid":"Hi.Milling.Cutters.MillingCutter.IntegralModeEnum","type":"Enum"},{"name":"MillingCutter.MassAssignmentMode","href":"Hi.Milling.Cutters.MillingCutter.MassAssignmentMode.html","topicHref":"Hi.Milling.Cutters.MillingCutter.MassAssignmentMode.html","topicUid":"Hi.Milling.Cutters.MillingCutter.MassAssignmentMode","type":"Enum"},{"name":"MillingCutterEditorDisplayee","href":"Hi.Milling.Cutters.MillingCutterEditorDisplayee.html","topicHref":"Hi.Milling.Cutters.MillingCutterEditorDisplayee.html","topicUid":"Hi.Milling.Cutters.MillingCutterEditorDisplayee","type":"Class"},{"name":"MillingCutterEditorDisplayee.ShapeModeEnum","href":"Hi.Milling.Cutters.MillingCutterEditorDisplayee.ShapeModeEnum.html","topicHref":"Hi.Milling.Cutters.MillingCutterEditorDisplayee.ShapeModeEnum.html","topicUid":"Hi.Milling.Cutters.MillingCutterEditorDisplayee.ShapeModeEnum","type":"Enum"}]},{"name":"Hi.Milling.Engagements","href":"Hi.Milling.Engagements.html","topicHref":"Hi.Milling.Engagements.html","topicUid":"Hi.Milling.Engagements","type":"Namespace","items":[{"name":"BitwiseMillingEngagement","href":"Hi.Milling.Engagements.BitwiseMillingEngagement.html","topicHref":"Hi.Milling.Engagements.BitwiseMillingEngagement.html","topicUid":"Hi.Milling.Engagements.BitwiseMillingEngagement","type":"Class"},{"name":"EngagementLayer","href":"Hi.Milling.Engagements.EngagementLayer.html","topicHref":"Hi.Milling.Engagements.EngagementLayer.html","topicUid":"Hi.Milling.Engagements.EngagementLayer","type":"Class"},{"name":"EngagementSlice","href":"Hi.Milling.Engagements.EngagementSlice.html","topicHref":"Hi.Milling.Engagements.EngagementSlice.html","topicUid":"Hi.Milling.Engagements.EngagementSlice","type":"Class"},{"name":"IBitwiseMillingEngagementSupport","href":"Hi.Milling.Engagements.IBitwiseMillingEngagementSupport.html","topicHref":"Hi.Milling.Engagements.IBitwiseMillingEngagementSupport.html","topicUid":"Hi.Milling.Engagements.IBitwiseMillingEngagementSupport","type":"Interface"},{"name":"IGetLayerMillingEngagement","href":"Hi.Milling.Engagements.IGetLayerMillingEngagement.html","topicHref":"Hi.Milling.Engagements.IGetLayerMillingEngagement.html","topicUid":"Hi.Milling.Engagements.IGetLayerMillingEngagement","type":"Interface"},{"name":"LayerMillingEngagement","href":"Hi.Milling.Engagements.LayerMillingEngagement.html","topicHref":"Hi.Milling.Engagements.LayerMillingEngagement.html","topicUid":"Hi.Milling.Engagements.LayerMillingEngagement","type":"Class"},{"name":"MillingEngagementUtil","href":"Hi.Milling.Engagements.MillingEngagementUtil.html","topicHref":"Hi.Milling.Engagements.MillingEngagementUtil.html","topicUid":"Hi.Milling.Engagements.MillingEngagementUtil","type":"Class"}]},{"name":"Hi.Milling.FluteContours","href":"Hi.Milling.FluteContours.html","topicHref":"Hi.Milling.FluteContours.html","topicUid":"Hi.Milling.FluteContours","type":"Namespace","items":[{"name":"ConstHelixSideContour","href":"Hi.Milling.FluteContours.ConstHelixSideContour.html","topicHref":"Hi.Milling.FluteContours.ConstHelixSideContour.html","topicUid":"Hi.Milling.FluteContours.ConstHelixSideContour","type":"Class"},{"name":"FluteContour","href":"Hi.Milling.FluteContours.FluteContour.html","topicHref":"Hi.Milling.FluteContours.FluteContour.html","topicUid":"Hi.Milling.FluteContours.FluteContour","type":"Class"},{"name":"FluteContourUtil","href":"Hi.Milling.FluteContours.FluteContourUtil.html","topicHref":"Hi.Milling.FluteContours.FluteContourUtil.html","topicUid":"Hi.Milling.FluteContours.FluteContourUtil","type":"Class"},{"name":"FreeContourTray","href":"Hi.Milling.FluteContours.FreeContourTray.html","topicHref":"Hi.Milling.FluteContours.FreeContourTray.html","topicUid":"Hi.Milling.FluteContours.FreeContourTray","type":"Class"},{"name":"FreeformSideContour","href":"Hi.Milling.FluteContours.FreeformSideContour.html","topicHref":"Hi.Milling.FluteContours.FreeformSideContour.html","topicUid":"Hi.Milling.FluteContours.FreeformSideContour","type":"Class"},{"name":"IBottomContour","href":"Hi.Milling.FluteContours.IBottomContour.html","topicHref":"Hi.Milling.FluteContours.IBottomContour.html","topicUid":"Hi.Milling.FluteContours.IBottomContour","type":"Interface"},{"name":"IContourTray","href":"Hi.Milling.FluteContours.IContourTray.html","topicHref":"Hi.Milling.FluteContours.IContourTray.html","topicUid":"Hi.Milling.FluteContours.IContourTray","type":"Interface"},{"name":"IFluteNumSourceProperty","href":"Hi.Milling.FluteContours.IFluteNumSourceProperty.html","topicHref":"Hi.Milling.FluteContours.IFluteNumSourceProperty.html","topicUid":"Hi.Milling.FluteContours.IFluteNumSourceProperty","type":"Interface"},{"name":"IGetFluteNum","href":"Hi.Milling.FluteContours.IGetFluteNum.html","topicHref":"Hi.Milling.FluteContours.IGetFluteNum.html","topicUid":"Hi.Milling.FluteContours.IGetFluteNum","type":"Interface"},{"name":"ISideContour","href":"Hi.Milling.FluteContours.ISideContour.html","topicHref":"Hi.Milling.FluteContours.ISideContour.html","topicUid":"Hi.Milling.FluteContours.ISideContour","type":"Interface"},{"name":"IWorkingContour","href":"Hi.Milling.FluteContours.IWorkingContour.html","topicHref":"Hi.Milling.FluteContours.IWorkingContour.html","topicUid":"Hi.Milling.FluteContours.IWorkingContour","type":"Interface"},{"name":"ShiftedWorkingContour","href":"Hi.Milling.FluteContours.ShiftedWorkingContour.html","topicHref":"Hi.Milling.FluteContours.ShiftedWorkingContour.html","topicUid":"Hi.Milling.FluteContours.ShiftedWorkingContour","type":"Class"},{"name":"SideContourDisplayee","href":"Hi.Milling.FluteContours.SideContourDisplayee.html","topicHref":"Hi.Milling.FluteContours.SideContourDisplayee.html","topicUid":"Hi.Milling.FluteContours.SideContourDisplayee","type":"Class"},{"name":"SlideBottomContour","href":"Hi.Milling.FluteContours.SlideBottomContour.html","topicHref":"Hi.Milling.FluteContours.SlideBottomContour.html","topicUid":"Hi.Milling.FluteContours.SlideBottomContour","type":"Class"},{"name":"SpanContourPos4d","href":"Hi.Milling.FluteContours.SpanContourPos4d.html","topicHref":"Hi.Milling.FluteContours.SpanContourPos4d.html","topicUid":"Hi.Milling.FluteContours.SpanContourPos4d","type":"Class"},{"name":"UniformContourTray","href":"Hi.Milling.FluteContours.UniformContourTray.html","topicHref":"Hi.Milling.FluteContours.UniformContourTray.html","topicUid":"Hi.Milling.FluteContours.UniformContourTray","type":"Class"}]},{"name":"Hi.Milling.MillingTools","href":"Hi.Milling.MillingTools.html","topicHref":"Hi.Milling.MillingTools.html","topicUid":"Hi.Milling.MillingTools","type":"Namespace","items":[{"name":"MillingTool","href":"Hi.Milling.MillingTools.MillingTool.html","topicHref":"Hi.Milling.MillingTools.MillingTool.html","topicUid":"Hi.Milling.MillingTools.MillingTool","type":"Class"},{"name":"MillingToolAnchorReference","href":"Hi.Milling.MillingTools.MillingToolAnchorReference.html","topicHref":"Hi.Milling.MillingTools.MillingToolAnchorReference.html","topicUid":"Hi.Milling.MillingTools.MillingToolAnchorReference","type":"Enum"},{"name":"MillingToolEditorDisplayee","href":"Hi.Milling.MillingTools.MillingToolEditorDisplayee.html","topicHref":"Hi.Milling.MillingTools.MillingToolEditorDisplayee.html","topicUid":"Hi.Milling.MillingTools.MillingToolEditorDisplayee","type":"Class"},{"name":"MillingToolUtil","href":"Hi.Milling.MillingTools.MillingToolUtil.html","topicHref":"Hi.Milling.MillingTools.MillingToolUtil.html","topicUid":"Hi.Milling.MillingTools.MillingToolUtil","type":"Class"}]},{"name":"Hi.MillingForces","href":"Hi.MillingForces.html","topicHref":"Hi.MillingForces.html","topicUid":"Hi.MillingForces","type":"Namespace","items":[{"name":"FluteZData","href":"Hi.MillingForces.FluteZData.html","topicHref":"Hi.MillingForces.FluteZData.html","topicUid":"Hi.MillingForces.FluteZData","type":"Class"},{"name":"IGetMillingForce","href":"Hi.MillingForces.IGetMillingForce.html","topicHref":"Hi.MillingForces.IGetMillingForce.html","topicUid":"Hi.MillingForces.IGetMillingForce","type":"Interface"},{"name":"IMillingForceAccessor","href":"Hi.MillingForces.IMillingForceAccessor.html","topicHref":"Hi.MillingForces.IMillingForceAccessor.html","topicUid":"Hi.MillingForces.IMillingForceAccessor","type":"Interface"},{"name":"MillingForce","href":"Hi.MillingForces.MillingForce.html","topicHref":"Hi.MillingForces.MillingForce.html","topicUid":"Hi.MillingForces.MillingForce","type":"Class"},{"name":"MillingForceLicense","href":"Hi.MillingForces.MillingForceLicense.html","topicHref":"Hi.MillingForces.MillingForceLicense.html","topicUid":"Hi.MillingForces.MillingForceLicense","type":"Class"},{"name":"MillingForceLuggage","href":"Hi.MillingForces.MillingForceLuggage.html","topicHref":"Hi.MillingForces.MillingForceLuggage.html","topicUid":"Hi.MillingForces.MillingForceLuggage","type":"Class"},{"name":"MillingForceUtil","href":"Hi.MillingForces.MillingForceUtil.html","topicHref":"Hi.MillingForces.MillingForceUtil.html","topicUid":"Hi.MillingForces.MillingForceUtil","type":"Class"},{"name":"MillingForceUtil.AnglePack","href":"Hi.MillingForces.MillingForceUtil.AnglePack.html","topicHref":"Hi.MillingForces.MillingForceUtil.AnglePack.html","topicUid":"Hi.MillingForces.MillingForceUtil.AnglePack","type":"Class"},{"name":"MillingPhysicsBrief","href":"Hi.MillingForces.MillingPhysicsBrief.html","topicHref":"Hi.MillingForces.MillingPhysicsBrief.html","topicUid":"Hi.MillingForces.MillingPhysicsBrief","type":"Class"},{"name":"PhysicsUtil","href":"Hi.MillingForces.PhysicsUtil.html","topicHref":"Hi.MillingForces.PhysicsUtil.html","topicUid":"Hi.MillingForces.PhysicsUtil","type":"Class"},{"name":"ToolObservationReference","href":"Hi.MillingForces.ToolObservationReference.html","topicHref":"Hi.MillingForces.ToolObservationReference.html","topicUid":"Hi.MillingForces.ToolObservationReference","type":"Enum"}]},{"name":"Hi.MillingForces.Fittings","href":"Hi.MillingForces.Fittings.html","topicHref":"Hi.MillingForces.Fittings.html","topicUid":"Hi.MillingForces.Fittings","type":"Namespace","items":[{"name":"CuttingParaUtil","href":"Hi.MillingForces.Fittings.CuttingParaUtil.html","topicHref":"Hi.MillingForces.Fittings.CuttingParaUtil.html","topicUid":"Hi.MillingForces.Fittings.CuttingParaUtil","type":"Class"},{"name":"ICuttingPara","href":"Hi.MillingForces.Fittings.ICuttingPara.html","topicHref":"Hi.MillingForces.Fittings.ICuttingPara.html","topicUid":"Hi.MillingForces.Fittings.ICuttingPara","type":"Interface"},{"name":"IGetCuttingPara","href":"Hi.MillingForces.Fittings.IGetCuttingPara.html","topicHref":"Hi.MillingForces.Fittings.IGetCuttingPara.html","topicUid":"Hi.MillingForces.Fittings.IGetCuttingPara","type":"Interface"},{"name":"SampleCategory","href":"Hi.MillingForces.Fittings.SampleCategory.html","topicHref":"Hi.MillingForces.Fittings.SampleCategory.html","topicUid":"Hi.MillingForces.Fittings.SampleCategory","type":"Class"},{"name":"SampleFlag","href":"Hi.MillingForces.Fittings.SampleFlag.html","topicHref":"Hi.MillingForces.Fittings.SampleFlag.html","topicUid":"Hi.MillingForces.Fittings.SampleFlag","type":"Enum"},{"name":"SampleFlagUtil","href":"Hi.MillingForces.Fittings.SampleFlagUtil.html","topicHref":"Hi.MillingForces.Fittings.SampleFlagUtil.html","topicUid":"Hi.MillingForces.Fittings.SampleFlagUtil","type":"Class"},{"name":"SampleInstance","href":"Hi.MillingForces.Fittings.SampleInstance.html","topicHref":"Hi.MillingForces.Fittings.SampleInstance.html","topicUid":"Hi.MillingForces.Fittings.SampleInstance","type":"Class"},{"name":"TimeForce","href":"Hi.MillingForces.Fittings.TimeForce.html","topicHref":"Hi.MillingForces.Fittings.TimeForce.html","topicUid":"Hi.MillingForces.Fittings.TimeForce","type":"Class"},{"name":"TimeForceFrequencyDomain","href":"Hi.MillingForces.Fittings.TimeForceFrequencyDomain.html","topicHref":"Hi.MillingForces.Fittings.TimeForceFrequencyDomain.html","topicUid":"Hi.MillingForces.Fittings.TimeForceFrequencyDomain","type":"Class"},{"name":"TimeForceSeries","href":"Hi.MillingForces.Fittings.TimeForceSeries.html","topicHref":"Hi.MillingForces.Fittings.TimeForceSeries.html","topicUid":"Hi.MillingForces.Fittings.TimeForceSeries","type":"Class"},{"name":"TimeForceUtil","href":"Hi.MillingForces.Fittings.TimeForceUtil.html","topicHref":"Hi.MillingForces.Fittings.TimeForceUtil.html","topicUid":"Hi.MillingForces.Fittings.TimeForceUtil","type":"Class"},{"name":"TimeVsForceSeries","href":"Hi.MillingForces.Fittings.TimeVsForceSeries.html","topicHref":"Hi.MillingForces.Fittings.TimeVsForceSeries.html","topicUid":"Hi.MillingForces.Fittings.TimeVsForceSeries","type":"Class"},{"name":"TimeVsTorqueSeries","href":"Hi.MillingForces.Fittings.TimeVsTorqueSeries.html","topicHref":"Hi.MillingForces.Fittings.TimeVsTorqueSeries.html","topicUid":"Hi.MillingForces.Fittings.TimeVsTorqueSeries","type":"Class"},{"name":"TrainingSample","href":"Hi.MillingForces.Fittings.TrainingSample.html","topicHref":"Hi.MillingForces.Fittings.TrainingSample.html","topicUid":"Hi.MillingForces.Fittings.TrainingSample","type":"Class"}]},{"name":"Hi.MillingForces.ProfileMillingParas","href":"Hi.MillingForces.ProfileMillingParas.html","topicHref":"Hi.MillingForces.ProfileMillingParas.html","topicUid":"Hi.MillingForces.ProfileMillingParas","type":"Namespace","items":[{"name":"IGetLocalProfileMillingPara","href":"Hi.MillingForces.ProfileMillingParas.IGetLocalProfileMillingPara.html","topicHref":"Hi.MillingForces.ProfileMillingParas.IGetLocalProfileMillingPara.html","topicUid":"Hi.MillingForces.ProfileMillingParas.IGetLocalProfileMillingPara","type":"Interface"},{"name":"LocalProfileMillingPara","href":"Hi.MillingForces.ProfileMillingParas.LocalProfileMillingPara.html","topicHref":"Hi.MillingForces.ProfileMillingParas.LocalProfileMillingPara.html","topicUid":"Hi.MillingForces.ProfileMillingParas.LocalProfileMillingPara","type":"Class"},{"name":"ProfileMillingParaMap","href":"Hi.MillingForces.ProfileMillingParas.ProfileMillingParaMap.html","topicHref":"Hi.MillingForces.ProfileMillingParas.ProfileMillingParaMap.html","topicUid":"Hi.MillingForces.ProfileMillingParas.ProfileMillingParaMap","type":"Class"},{"name":"RtaMillingParaKey","href":"Hi.MillingForces.ProfileMillingParas.RtaMillingParaKey.html","topicHref":"Hi.MillingForces.ProfileMillingParas.RtaMillingParaKey.html","topicUid":"Hi.MillingForces.ProfileMillingParas.RtaMillingParaKey","type":"Enum"}]},{"name":"Hi.MillingForces.RakeFaceCuttingParas","href":"Hi.MillingForces.RakeFaceCuttingParas.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas","type":"Namespace","items":[{"name":"IRakeFaceCuttingPara","href":"Hi.MillingForces.RakeFaceCuttingParas.IRakeFaceCuttingPara.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.IRakeFaceCuttingPara.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.IRakeFaceCuttingPara","type":"Interface"},{"name":"MillingPhysicsUtil","href":"Hi.MillingForces.RakeFaceCuttingParas.MillingPhysicsUtil.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.MillingPhysicsUtil.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.MillingPhysicsUtil","type":"Class"},{"name":"MultiFormRakeFaceCuttingPara","href":"Hi.MillingForces.RakeFaceCuttingParas.MultiFormRakeFaceCuttingPara.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.MultiFormRakeFaceCuttingPara.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.MultiFormRakeFaceCuttingPara","type":"Class"},{"name":"RakeFaceCuttingPara2d","href":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara2d.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara2d.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara2d","type":"Class"},{"name":"RakeFaceCuttingPara3d","href":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara3d.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara3d.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara3d","type":"Class"},{"name":"RakeFaceCuttingParaMap","href":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingParaMap.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingParaMap.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingParaMap","type":"Class"}]},{"name":"Hi.MillingForces.Training","href":"Hi.MillingForces.Training.html","topicHref":"Hi.MillingForces.Training.html","topicUid":"Hi.MillingForces.Training","type":"Namespace","items":[{"name":"MillingTraining","href":"Hi.MillingForces.Training.MillingTraining.html","topicHref":"Hi.MillingForces.Training.MillingTraining.html","topicUid":"Hi.MillingForces.Training.MillingTraining","type":"Class"}]},{"name":"Hi.MillingProcs","href":"Hi.MillingProcs.html","topicHref":"Hi.MillingProcs.html","topicUid":"Hi.MillingProcs","type":"Namespace","items":[{"name":"MillingGuide","href":"Hi.MillingProcs.MillingGuide.html","topicHref":"Hi.MillingProcs.MillingGuide.html","topicUid":"Hi.MillingProcs.MillingGuide","type":"Class"}]},{"name":"Hi.MillingStepUtils","href":"Hi.MillingStepUtils.html","topicHref":"Hi.MillingStepUtils.html","topicUid":"Hi.MillingStepUtils","type":"Namespace","items":[{"name":"ClStripChartConfig","href":"Hi.MillingStepUtils.ClStripChartConfig.html","topicHref":"Hi.MillingStepUtils.ClStripChartConfig.html","topicUid":"Hi.MillingStepUtils.ClStripChartConfig","type":"Class"},{"name":"ClStripChartItemConfig","href":"Hi.MillingStepUtils.ClStripChartItemConfig.html","topicHref":"Hi.MillingStepUtils.ClStripChartItemConfig.html","topicUid":"Hi.MillingStepUtils.ClStripChartItemConfig","type":"Class"},{"name":"ForceCycleFlag","href":"Hi.MillingStepUtils.ForceCycleFlag.html","topicHref":"Hi.MillingStepUtils.ForceCycleFlag.html","topicUid":"Hi.MillingStepUtils.ForceCycleFlag","type":"Enum"},{"name":"ForceCycleLineDivConfig","href":"Hi.MillingStepUtils.ForceCycleLineDivConfig.html","topicHref":"Hi.MillingStepUtils.ForceCycleLineDivConfig.html","topicUid":"Hi.MillingStepUtils.ForceCycleLineDivConfig","type":"Class"},{"name":"LineChartVRangeMode","href":"Hi.MillingStepUtils.LineChartVRangeMode.html","topicHref":"Hi.MillingStepUtils.LineChartVRangeMode.html","topicUid":"Hi.MillingStepUtils.LineChartVRangeMode","type":"Enum"},{"name":"SpindleMomentCycleLineDivConfig","href":"Hi.MillingStepUtils.SpindleMomentCycleLineDivConfig.html","topicHref":"Hi.MillingStepUtils.SpindleMomentCycleLineDivConfig.html","topicUid":"Hi.MillingStepUtils.SpindleMomentCycleLineDivConfig","type":"Class"},{"name":"TimeChartYConfig","href":"Hi.MillingStepUtils.TimeChartYConfig.html","topicHref":"Hi.MillingStepUtils.TimeChartYConfig.html","topicUid":"Hi.MillingStepUtils.TimeChartYConfig","type":"Class"}]},{"name":"Hi.MillingSteps","href":"Hi.MillingSteps.html","topicHref":"Hi.MillingSteps.html","topicUid":"Hi.MillingSteps","type":"Namespace","items":[{"name":"MillingInstance","href":"Hi.MillingSteps.MillingInstance.html","topicHref":"Hi.MillingSteps.MillingInstance.html","topicUid":"Hi.MillingSteps.MillingInstance","type":"Class"},{"name":"MillingStepLuggage","href":"Hi.MillingSteps.MillingStepLuggage.html","topicHref":"Hi.MillingSteps.MillingStepLuggage.html","topicUid":"Hi.MillingSteps.MillingStepLuggage","type":"Class"}]},{"name":"Hi.MongoUtils","href":"Hi.MongoUtils.html","topicHref":"Hi.MongoUtils.html","topicUid":"Hi.MongoUtils","type":"Namespace","items":[{"name":"IMongoRunner","href":"Hi.MongoUtils.IMongoRunner.html","topicHref":"Hi.MongoUtils.IMongoRunner.html","topicUid":"Hi.MongoUtils.IMongoRunner","type":"Interface"},{"name":"MongoRunnerOptions","href":"Hi.MongoUtils.MongoRunnerOptions.html","topicHref":"Hi.MongoUtils.MongoRunnerOptions.html","topicUid":"Hi.MongoUtils.MongoRunnerOptions","type":"Class"},{"name":"MongoServer","href":"Hi.MongoUtils.MongoServer.html","topicHref":"Hi.MongoUtils.MongoServer.html","topicUid":"Hi.MongoUtils.MongoServer","type":"Class"}]},{"name":"Hi.Motion.MatValves","href":"Hi.Motion.MatValves.html","topicHref":"Hi.Motion.MatValves.html","topicUid":"Hi.Motion.MatValves","type":"Namespace","items":[{"name":"ClMachiningValve","href":"Hi.Motion.MatValves.ClMachiningValve.html","topicHref":"Hi.Motion.MatValves.ClMachiningValve.html","topicUid":"Hi.Motion.MatValves.ClMachiningValve","type":"Class"},{"name":"IMotionValve","href":"Hi.Motion.MatValves.IMotionValve.html","topicHref":"Hi.Motion.MatValves.IMotionValve.html","topicUid":"Hi.Motion.MatValves.IMotionValve","type":"Interface"},{"name":"MacroMotionValve","href":"Hi.Motion.MatValves.MacroMotionValve.html","topicHref":"Hi.Motion.MatValves.MacroMotionValve.html","topicUid":"Hi.Motion.MatValves.MacroMotionValve","type":"Class"},{"name":"StepMotionValve","href":"Hi.Motion.MatValves.StepMotionValve.html","topicHref":"Hi.Motion.MatValves.StepMotionValve.html","topicUid":"Hi.Motion.MatValves.StepMotionValve","type":"Class"}]},{"name":"Hi.Native","href":"Hi.Native.html","topicHref":"Hi.Native.html","topicUid":"Hi.Native","type":"Namespace","items":[{"name":"StopSource","href":"Hi.Native.StopSource.html","topicHref":"Hi.Native.StopSource.html","topicUid":"Hi.Native.StopSource","type":"Class"},{"name":"StopToken","href":"Hi.Native.StopToken.html","topicHref":"Hi.Native.StopToken.html","topicUid":"Hi.Native.StopToken","type":"Class"},{"name":"StopTokenKit","href":"Hi.Native.StopTokenKit.html","topicHref":"Hi.Native.StopTokenKit.html","topicUid":"Hi.Native.StopTokenKit","type":"Class"},{"name":"StopTokenUtil","href":"Hi.Native.StopTokenUtil.html","topicHref":"Hi.Native.StopTokenUtil.html","topicUid":"Hi.Native.StopTokenUtil","type":"Class"},{"name":"bind_t","href":"Hi.Native.bind_t.html","topicHref":"Hi.Native.bind_t.html","topicUid":"Hi.Native.bind_t","type":"Struct"},{"name":"box2d","href":"Hi.Native.box2d.html","topicHref":"Hi.Native.box2d.html","topicUid":"Hi.Native.box2d","type":"Struct"},{"name":"box3d","href":"Hi.Native.box3d.html","topicHref":"Hi.Native.box3d.html","topicUid":"Hi.Native.box3d","type":"Struct"},{"name":"expand_to_box3d_func_t","href":"Hi.Native.expand_to_box3d_func_t.html","topicHref":"Hi.Native.expand_to_box3d_func_t.html","topicUid":"Hi.Native.expand_to_box3d_func_t","type":"Delegate"},{"name":"key_event_t","href":"Hi.Native.key_event_t.html","topicHref":"Hi.Native.key_event_t.html","topicUid":"Hi.Native.key_event_t","type":"Struct"},{"name":"key_table__transform_view_by_key_pressing_t","href":"Hi.Native.key_table__transform_view_by_key_pressing_t.html","topicHref":"Hi.Native.key_table__transform_view_by_key_pressing_t.html","topicUid":"Hi.Native.key_table__transform_view_by_key_pressing_t","type":"Struct"},{"name":"mat4d","href":"Hi.Native.mat4d.html","topicHref":"Hi.Native.mat4d.html","topicUid":"Hi.Native.mat4d","type":"Struct"},{"name":"mat_stack_t","href":"Hi.Native.mat_stack_t.html","topicHref":"Hi.Native.mat_stack_t.html","topicUid":"Hi.Native.mat_stack_t","type":"Struct"},{"name":"mouse_button_event_t","href":"Hi.Native.mouse_button_event_t.html","topicHref":"Hi.Native.mouse_button_event_t.html","topicUid":"Hi.Native.mouse_button_event_t","type":"Struct"},{"name":"mouse_button_table__transform_view_by_mouse_drag_t","href":"Hi.Native.mouse_button_table__transform_view_by_mouse_drag_t.html","topicHref":"Hi.Native.mouse_button_table__transform_view_by_mouse_drag_t.html","topicUid":"Hi.Native.mouse_button_table__transform_view_by_mouse_drag_t","type":"Struct"},{"name":"mouse_move_event_t","href":"Hi.Native.mouse_move_event_t.html","topicHref":"Hi.Native.mouse_move_event_t.html","topicUid":"Hi.Native.mouse_move_event_t","type":"Struct"},{"name":"mouse_wheel_event_t","href":"Hi.Native.mouse_wheel_event_t.html","topicHref":"Hi.Native.mouse_wheel_event_t.html","topicUid":"Hi.Native.mouse_wheel_event_t","type":"Struct"},{"name":"panel_state_t","href":"Hi.Native.panel_state_t.html","topicHref":"Hi.Native.panel_state_t.html","topicUid":"Hi.Native.panel_state_t","type":"Struct"},{"name":"picking_event_t","href":"Hi.Native.picking_event_t.html","topicHref":"Hi.Native.picking_event_t.html","topicUid":"Hi.Native.picking_event_t","type":"Struct"},{"name":"picking_func_t","href":"Hi.Native.picking_func_t.html","topicHref":"Hi.Native.picking_func_t.html","topicUid":"Hi.Native.picking_func_t","type":"Delegate"},{"name":"picking_mark_t","href":"Hi.Native.picking_mark_t.html","topicHref":"Hi.Native.picking_mark_t.html","topicUid":"Hi.Native.picking_mark_t","type":"Struct"},{"name":"tri3d","href":"Hi.Native.tri3d.html","topicHref":"Hi.Native.tri3d.html","topicUid":"Hi.Native.tri3d","type":"Struct"},{"name":"ui_event_type","href":"Hi.Native.ui_event_type.html","topicHref":"Hi.Native.ui_event_type.html","topicUid":"Hi.Native.ui_event_type","type":"Enum"},{"name":"vec2d","href":"Hi.Native.vec2d.html","topicHref":"Hi.Native.vec2d.html","topicUid":"Hi.Native.vec2d","type":"Struct"},{"name":"vec3d","href":"Hi.Native.vec3d.html","topicHref":"Hi.Native.vec3d.html","topicUid":"Hi.Native.vec3d","type":"Struct"},{"name":"vec3f","href":"Hi.Native.vec3f.html","topicHref":"Hi.Native.vec3f.html","topicUid":"Hi.Native.vec3f","type":"Struct"}]},{"name":"Hi.NcMech","href":"Hi.NcMech.html","topicHref":"Hi.NcMech.html","topicUid":"Hi.NcMech","type":"Namespace","items":[{"name":"ICollisionIndexPairsSource","href":"Hi.NcMech.ICollisionIndexPairsSource.html","topicHref":"Hi.NcMech.ICollisionIndexPairsSource.html","topicUid":"Hi.NcMech.ICollisionIndexPairsSource","type":"Interface"}]},{"name":"Hi.NcMech.Fixtures","href":"Hi.NcMech.Fixtures.html","topicHref":"Hi.NcMech.Fixtures.html","topicUid":"Hi.NcMech.Fixtures","type":"Namespace","items":[{"name":"Fixture","href":"Hi.NcMech.Fixtures.Fixture.html","topicHref":"Hi.NcMech.Fixtures.Fixture.html","topicUid":"Hi.NcMech.Fixtures.Fixture","type":"Class"},{"name":"FixtureEditorDisplayee","href":"Hi.NcMech.Fixtures.FixtureEditorDisplayee.html","topicHref":"Hi.NcMech.Fixtures.FixtureEditorDisplayee.html","topicUid":"Hi.NcMech.Fixtures.FixtureEditorDisplayee","type":"Class"},{"name":"FixtureEditorDisplayeeConfig","href":"Hi.NcMech.Fixtures.FixtureEditorDisplayeeConfig.html","topicHref":"Hi.NcMech.Fixtures.FixtureEditorDisplayeeConfig.html","topicUid":"Hi.NcMech.Fixtures.FixtureEditorDisplayeeConfig","type":"Class"}]},{"name":"Hi.NcMech.Holders","href":"Hi.NcMech.Holders.html","topicHref":"Hi.NcMech.Holders.html","topicUid":"Hi.NcMech.Holders","type":"Namespace","items":[{"name":"CylindroidHolder","href":"Hi.NcMech.Holders.CylindroidHolder.html","topicHref":"Hi.NcMech.Holders.CylindroidHolder.html","topicUid":"Hi.NcMech.Holders.CylindroidHolder","type":"Class"},{"name":"FreeformHolder","href":"Hi.NcMech.Holders.FreeformHolder.html","topicHref":"Hi.NcMech.Holders.FreeformHolder.html","topicUid":"Hi.NcMech.Holders.FreeformHolder","type":"Class"},{"name":"HolderEditorDisplayee","href":"Hi.NcMech.Holders.HolderEditorDisplayee.html","topicHref":"Hi.NcMech.Holders.HolderEditorDisplayee.html","topicUid":"Hi.NcMech.Holders.HolderEditorDisplayee","type":"Class"},{"name":"IHolder","href":"Hi.NcMech.Holders.IHolder.html","topicHref":"Hi.NcMech.Holders.IHolder.html","topicUid":"Hi.NcMech.Holders.IHolder","type":"Interface"}]},{"name":"Hi.NcMech.Solids","href":"Hi.NcMech.Solids.html","topicHref":"Hi.NcMech.Solids.html","topicUid":"Hi.NcMech.Solids","type":"Namespace","items":[{"name":"IGetSolid","href":"Hi.NcMech.Solids.IGetSolid.html","topicHref":"Hi.NcMech.Solids.IGetSolid.html","topicUid":"Hi.NcMech.Solids.IGetSolid","type":"Interface"},{"name":"Solid","href":"Hi.NcMech.Solids.Solid.html","topicHref":"Hi.NcMech.Solids.Solid.html","topicUid":"Hi.NcMech.Solids.Solid","type":"Class"},{"name":"Solid.RenderingModeEnum","href":"Hi.NcMech.Solids.Solid.RenderingModeEnum.html","topicHref":"Hi.NcMech.Solids.Solid.RenderingModeEnum.html","topicUid":"Hi.NcMech.Solids.Solid.RenderingModeEnum","type":"Enum"},{"name":"SolidFuncSource","href":"Hi.NcMech.Solids.SolidFuncSource.html","topicHref":"Hi.NcMech.Solids.SolidFuncSource.html","topicUid":"Hi.NcMech.Solids.SolidFuncSource","type":"Class"}]},{"name":"Hi.NcMech.Topo","href":"Hi.NcMech.Topo.html","topicHref":"Hi.NcMech.Topo.html","topicUid":"Hi.NcMech.Topo","type":"Namespace","items":[{"name":"INcStroke","href":"Hi.NcMech.Topo.INcStroke.html","topicHref":"Hi.NcMech.Topo.INcStroke.html","topicUid":"Hi.NcMech.Topo.INcStroke","type":"Interface"},{"name":"INcTransformer","href":"Hi.NcMech.Topo.INcTransformer.html","topicHref":"Hi.NcMech.Topo.INcTransformer.html","topicUid":"Hi.NcMech.Topo.INcTransformer","type":"Interface"},{"name":"ITopoBrick","href":"Hi.NcMech.Topo.ITopoBrick.html","topicHref":"Hi.NcMech.Topo.ITopoBrick.html","topicUid":"Hi.NcMech.Topo.ITopoBrick","type":"Interface"},{"name":"NcRotation","href":"Hi.NcMech.Topo.NcRotation.html","topicHref":"Hi.NcMech.Topo.NcRotation.html","topicUid":"Hi.NcMech.Topo.NcRotation","type":"Class"},{"name":"NcTranslation","href":"Hi.NcMech.Topo.NcTranslation.html","topicHref":"Hi.NcMech.Topo.NcTranslation.html","topicUid":"Hi.NcMech.Topo.NcTranslation","type":"Class"},{"name":"SolidSourceTopoBrick","href":"Hi.NcMech.Topo.SolidSourceTopoBrick.html","topicHref":"Hi.NcMech.Topo.SolidSourceTopoBrick.html","topicUid":"Hi.NcMech.Topo.SolidSourceTopoBrick","type":"Class"},{"name":"StlSourceTopoBrick","href":"Hi.NcMech.Topo.StlSourceTopoBrick.html","topicHref":"Hi.NcMech.Topo.StlSourceTopoBrick.html","topicUid":"Hi.NcMech.Topo.StlSourceTopoBrick","type":"Class"}]},{"name":"Hi.NcMech.Workpieces","href":"Hi.NcMech.Workpieces.html","topicHref":"Hi.NcMech.Workpieces.html","topicUid":"Hi.NcMech.Workpieces","type":"Namespace","items":[{"name":"Workpiece","href":"Hi.NcMech.Workpieces.Workpiece.html","topicHref":"Hi.NcMech.Workpieces.Workpiece.html","topicUid":"Hi.NcMech.Workpieces.Workpiece","type":"Class"},{"name":"WorkpieceEditorDisplayee","href":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayee.html","topicHref":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayee.html","topicUid":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayee","type":"Class"},{"name":"WorkpieceEditorDisplayeeConfig","href":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayeeConfig.html","topicHref":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayeeConfig.html","topicUid":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayeeConfig","type":"Class"}]},{"name":"Hi.NcMech.Xyzabc","href":"Hi.NcMech.Xyzabc.html","topicHref":"Hi.NcMech.Xyzabc.html","topicUid":"Hi.NcMech.Xyzabc","type":"Namespace","items":[{"name":"CodeXyzabcMachineTool","href":"Hi.NcMech.Xyzabc.CodeXyzabcMachineTool.html","topicHref":"Hi.NcMech.Xyzabc.CodeXyzabcMachineTool.html","topicUid":"Hi.NcMech.Xyzabc.CodeXyzabcMachineTool","type":"Class"},{"name":"CodeXyzabcMachineToolUri","href":"Hi.NcMech.Xyzabc.CodeXyzabcMachineToolUri.html","topicHref":"Hi.NcMech.Xyzabc.CodeXyzabcMachineToolUri.html","topicUid":"Hi.NcMech.Xyzabc.CodeXyzabcMachineToolUri","type":"Class"},{"name":"GeneralXyzabcMachineTool","href":"Hi.NcMech.Xyzabc.GeneralXyzabcMachineTool.html","topicHref":"Hi.NcMech.Xyzabc.GeneralXyzabcMachineTool.html","topicUid":"Hi.NcMech.Xyzabc.GeneralXyzabcMachineTool","type":"Class"},{"name":"IGetCodeXyzabcMachineTool","href":"Hi.NcMech.Xyzabc.IGetCodeXyzabcMachineTool.html","topicHref":"Hi.NcMech.Xyzabc.IGetCodeXyzabcMachineTool.html","topicUid":"Hi.NcMech.Xyzabc.IGetCodeXyzabcMachineTool","type":"Interface"},{"name":"IXyzabcMachineTool","href":"Hi.NcMech.Xyzabc.IXyzabcMachineTool.html","topicHref":"Hi.NcMech.Xyzabc.IXyzabcMachineTool.html","topicUid":"Hi.NcMech.Xyzabc.IXyzabcMachineTool","type":"Interface"}]},{"name":"Hi.NcOpt","href":"Hi.NcOpt.html","topicHref":"Hi.NcOpt.html","topicUid":"Hi.NcOpt","type":"Namespace","items":[{"name":"CuttingVelocityOptLimit","href":"Hi.NcOpt.CuttingVelocityOptLimit.html","topicHref":"Hi.NcOpt.CuttingVelocityOptLimit.html","topicUid":"Hi.NcOpt.CuttingVelocityOptLimit","type":"Class"},{"name":"FixedFeedPerCycleOptLimit","href":"Hi.NcOpt.FixedFeedPerCycleOptLimit.html","topicHref":"Hi.NcOpt.FixedFeedPerCycleOptLimit.html","topicUid":"Hi.NcOpt.FixedFeedPerCycleOptLimit","type":"Class"},{"name":"FixedFeedPerToothOptLimit","href":"Hi.NcOpt.FixedFeedPerToothOptLimit.html","topicHref":"Hi.NcOpt.FixedFeedPerToothOptLimit.html","topicUid":"Hi.NcOpt.FixedFeedPerToothOptLimit","type":"Class"},{"name":"ICutterOptLimitHost","href":"Hi.NcOpt.ICutterOptLimitHost.html","topicHref":"Hi.NcOpt.ICutterOptLimitHost.html","topicUid":"Hi.NcOpt.ICutterOptLimitHost","type":"Interface"},{"name":"ICutterOptOption","href":"Hi.NcOpt.ICutterOptOption.html","topicHref":"Hi.NcOpt.ICutterOptOption.html","topicUid":"Hi.NcOpt.ICutterOptOption","type":"Interface"},{"name":"ICuttingVelocityOptLimit","href":"Hi.NcOpt.ICuttingVelocityOptLimit.html","topicHref":"Hi.NcOpt.ICuttingVelocityOptLimit.html","topicUid":"Hi.NcOpt.ICuttingVelocityOptLimit","type":"Interface"},{"name":"IFeedPerToothOptLimit","href":"Hi.NcOpt.IFeedPerToothOptLimit.html","topicHref":"Hi.NcOpt.IFeedPerToothOptLimit.html","topicUid":"Hi.NcOpt.IFeedPerToothOptLimit","type":"Interface"},{"name":"MillingCutterOptOption","href":"Hi.NcOpt.MillingCutterOptOption.html","topicHref":"Hi.NcOpt.MillingCutterOptOption.html","topicUid":"Hi.NcOpt.MillingCutterOptOption","type":"Class"},{"name":"NcOptOption","href":"Hi.NcOpt.NcOptOption.html","topicHref":"Hi.NcOpt.NcOptOption.html","topicUid":"Hi.NcOpt.NcOptOption","type":"Class"},{"name":"NcOptProc","href":"Hi.NcOpt.NcOptProc.html","topicHref":"Hi.NcOpt.NcOptProc.html","topicUid":"Hi.NcOpt.NcOptProc","type":"Class"},{"name":"NcOptimizationEmbeddedLogMode","href":"Hi.NcOpt.NcOptimizationEmbeddedLogMode.html","topicHref":"Hi.NcOpt.NcOptimizationEmbeddedLogMode.html","topicUid":"Hi.NcOpt.NcOptimizationEmbeddedLogMode","type":"Enum"},{"name":"ShapeBasedCutterOptLimit","href":"Hi.NcOpt.ShapeBasedCutterOptLimit.html","topicHref":"Hi.NcOpt.ShapeBasedCutterOptLimit.html","topicUid":"Hi.NcOpt.ShapeBasedCutterOptLimit","type":"Class"}]},{"name":"Hi.NcStepUtils","href":"Hi.NcStepUtils.html","topicHref":"Hi.NcStepUtils.html","topicUid":"Hi.NcStepUtils","type":"Namespace","items":[{"name":"IGetNcStep0","href":"Hi.NcStepUtils.IGetNcStep0.html","topicHref":"Hi.NcStepUtils.IGetNcStep0.html","topicUid":"Hi.NcStepUtils.IGetNcStep0","type":"Interface"},{"name":"INcStep0","href":"Hi.NcStepUtils.INcStep0.html","topicHref":"Hi.NcStepUtils.INcStep0.html","topicUid":"Hi.NcStepUtils.INcStep0","type":"Interface"},{"name":"INcStepMonitee","href":"Hi.NcStepUtils.INcStepMonitee.html","topicHref":"Hi.NcStepUtils.INcStepMonitee.html","topicUid":"Hi.NcStepUtils.INcStepMonitee","type":"Interface"},{"name":"NcStepUtil","href":"Hi.NcStepUtils.NcStepUtil.html","topicHref":"Hi.NcStepUtils.NcStepUtil.html","topicUid":"Hi.NcStepUtils.NcStepUtil","type":"Class"}]},{"name":"Hi.Numerical","href":"Hi.Numerical.html","topicHref":"Hi.Numerical.html","topicUid":"Hi.Numerical","type":"Namespace","items":[{"name":"CncBrand","href":"Hi.Numerical.CncBrand.html","topicHref":"Hi.Numerical.CncBrand.html","topicUid":"Hi.Numerical.CncBrand","type":"Enum"},{"name":"CommentMark","href":"Hi.Numerical.CommentMark.html","topicHref":"Hi.Numerical.CommentMark.html","topicUid":"Hi.Numerical.CommentMark","type":"Enum"},{"name":"CoordinateEntryDisplayee","href":"Hi.Numerical.CoordinateEntryDisplayee.html","topicHref":"Hi.Numerical.CoordinateEntryDisplayee.html","topicUid":"Hi.Numerical.CoordinateEntryDisplayee","type":"Class"},{"name":"CoordinateEntryRenderingFlag","href":"Hi.Numerical.CoordinateEntryRenderingFlag.html","topicHref":"Hi.Numerical.CoordinateEntryRenderingFlag.html","topicUid":"Hi.Numerical.CoordinateEntryRenderingFlag","type":"Enum"},{"name":"CoordinateInterpolationMode","href":"Hi.Numerical.CoordinateInterpolationMode.html","topicHref":"Hi.Numerical.CoordinateInterpolationMode.html","topicUid":"Hi.Numerical.CoordinateInterpolationMode","type":"Enum"},{"name":"FlexDictionaryUtil","href":"Hi.Numerical.FlexDictionaryUtil.html","topicHref":"Hi.Numerical.FlexDictionaryUtil.html","topicUid":"Hi.Numerical.FlexDictionaryUtil","type":"Class"},{"name":"HeidenhainCoordinateEntryDisplayee","href":"Hi.Numerical.HeidenhainCoordinateEntryDisplayee.html","topicHref":"Hi.Numerical.HeidenhainCoordinateEntryDisplayee.html","topicUid":"Hi.Numerical.HeidenhainCoordinateEntryDisplayee","type":"Class"},{"name":"IFlexDictionaryHost","href":"Hi.Numerical.IFlexDictionaryHost-1.html","topicHref":"Hi.Numerical.IFlexDictionaryHost-1.html","topicUid":"Hi.Numerical.IFlexDictionaryHost`1","type":"Interface"},{"name":"IGetFeedrate","href":"Hi.Numerical.IGetFeedrate.html","topicHref":"Hi.Numerical.IGetFeedrate.html","topicUid":"Hi.Numerical.IGetFeedrate","type":"Interface"},{"name":"IGetSpindleSpeed","href":"Hi.Numerical.IGetSpindleSpeed.html","topicHref":"Hi.Numerical.IGetSpindleSpeed.html","topicUid":"Hi.Numerical.IGetSpindleSpeed","type":"Interface"},{"name":"ISetFeedrate","href":"Hi.Numerical.ISetFeedrate.html","topicHref":"Hi.Numerical.ISetFeedrate.html","topicUid":"Hi.Numerical.ISetFeedrate","type":"Interface"},{"name":"ISetSpindleSpeed","href":"Hi.Numerical.ISetSpindleSpeed.html","topicHref":"Hi.Numerical.ISetSpindleSpeed.html","topicUid":"Hi.Numerical.ISetSpindleSpeed","type":"Interface"},{"name":"IsoCoordinateEntryDisplayee","href":"Hi.Numerical.IsoCoordinateEntryDisplayee.html","topicHref":"Hi.Numerical.IsoCoordinateEntryDisplayee.html","topicUid":"Hi.Numerical.IsoCoordinateEntryDisplayee","type":"Class"},{"name":"IsoCoordinateTable","href":"Hi.Numerical.IsoCoordinateTable.html","topicHref":"Hi.Numerical.IsoCoordinateTable.html","topicUid":"Hi.Numerical.IsoCoordinateTable","type":"Class"},{"name":"MechNcUtil","href":"Hi.Numerical.MechNcUtil.html","topicHref":"Hi.Numerical.MechNcUtil.html","topicUid":"Hi.Numerical.MechNcUtil","type":"Class"},{"name":"MillingToolOffsetTable","href":"Hi.Numerical.MillingToolOffsetTable.html","topicHref":"Hi.Numerical.MillingToolOffsetTable.html","topicUid":"Hi.Numerical.MillingToolOffsetTable","type":"Class"},{"name":"MillingToolOffsetTableRow","href":"Hi.Numerical.MillingToolOffsetTableRow.html","topicHref":"Hi.Numerical.MillingToolOffsetTableRow.html","topicUid":"Hi.Numerical.MillingToolOffsetTableRow","type":"Class"},{"name":"NcComment","href":"Hi.Numerical.NcComment.html","topicHref":"Hi.Numerical.NcComment.html","topicUid":"Hi.Numerical.NcComment","type":"Class"},{"name":"NcEnv","href":"Hi.Numerical.NcEnv.html","topicHref":"Hi.Numerical.NcEnv.html","topicUid":"Hi.Numerical.NcEnv","type":"Class"},{"name":"NcFlag","href":"Hi.Numerical.NcFlag.html","topicHref":"Hi.Numerical.NcFlag.html","topicUid":"Hi.Numerical.NcFlag","type":"Enum"},{"name":"NcFlagUtil","href":"Hi.Numerical.NcFlagUtil.html","topicHref":"Hi.Numerical.NcFlagUtil.html","topicUid":"Hi.Numerical.NcFlagUtil","type":"Class"},{"name":"NcGroup00","href":"Hi.Numerical.NcGroup00.html","topicHref":"Hi.Numerical.NcGroup00.html","topicUid":"Hi.Numerical.NcGroup00","type":"Enum"},{"name":"NcGroup01","href":"Hi.Numerical.NcGroup01.html","topicHref":"Hi.Numerical.NcGroup01.html","topicUid":"Hi.Numerical.NcGroup01","type":"Enum"},{"name":"NcGroup02","href":"Hi.Numerical.NcGroup02.html","topicHref":"Hi.Numerical.NcGroup02.html","topicUid":"Hi.Numerical.NcGroup02","type":"Enum"},{"name":"NcGroup03","href":"Hi.Numerical.NcGroup03.html","topicHref":"Hi.Numerical.NcGroup03.html","topicUid":"Hi.Numerical.NcGroup03","type":"Enum"},{"name":"NcGroup05","href":"Hi.Numerical.NcGroup05.html","topicHref":"Hi.Numerical.NcGroup05.html","topicUid":"Hi.Numerical.NcGroup05","type":"Enum"},{"name":"NcGroup06","href":"Hi.Numerical.NcGroup06.html","topicHref":"Hi.Numerical.NcGroup06.html","topicUid":"Hi.Numerical.NcGroup06","type":"Enum"},{"name":"NcGroup07","href":"Hi.Numerical.NcGroup07.html","topicHref":"Hi.Numerical.NcGroup07.html","topicUid":"Hi.Numerical.NcGroup07","type":"Enum"},{"name":"NcGroup08","href":"Hi.Numerical.NcGroup08.html","topicHref":"Hi.Numerical.NcGroup08.html","topicUid":"Hi.Numerical.NcGroup08","type":"Enum"},{"name":"NcGroup09","href":"Hi.Numerical.NcGroup09.html","topicHref":"Hi.Numerical.NcGroup09.html","topicUid":"Hi.Numerical.NcGroup09","type":"Enum"},{"name":"NcGroup10","href":"Hi.Numerical.NcGroup10.html","topicHref":"Hi.Numerical.NcGroup10.html","topicUid":"Hi.Numerical.NcGroup10","type":"Enum"},{"name":"NcGroup13","href":"Hi.Numerical.NcGroup13.html","topicHref":"Hi.Numerical.NcGroup13.html","topicUid":"Hi.Numerical.NcGroup13","type":"Enum"},{"name":"NcGroup14","href":"Hi.Numerical.NcGroup14.html","topicHref":"Hi.Numerical.NcGroup14.html","topicUid":"Hi.Numerical.NcGroup14","type":"Enum"},{"name":"NcGroup15","href":"Hi.Numerical.NcGroup15.html","topicHref":"Hi.Numerical.NcGroup15.html","topicUid":"Hi.Numerical.NcGroup15","type":"Enum"},{"name":"NcGroup16","href":"Hi.Numerical.NcGroup16.html","topicHref":"Hi.Numerical.NcGroup16.html","topicUid":"Hi.Numerical.NcGroup16","type":"Enum"},{"name":"NcGroup21","href":"Hi.Numerical.NcGroup21.html","topicHref":"Hi.Numerical.NcGroup21.html","topicUid":"Hi.Numerical.NcGroup21","type":"Enum"},{"name":"NcGroupAttribute","href":"Hi.Numerical.NcGroupAttribute.html","topicHref":"Hi.Numerical.NcGroupAttribute.html","topicUid":"Hi.Numerical.NcGroupAttribute","type":"Class"},{"name":"NcGroupHeidenhainM107M108","href":"Hi.Numerical.NcGroupHeidenhainM107M108.html","topicHref":"Hi.Numerical.NcGroupHeidenhainM107M108.html","topicUid":"Hi.Numerical.NcGroupHeidenhainM107M108","type":"Enum"},{"name":"NcGroupHeidenhainPlane","href":"Hi.Numerical.NcGroupHeidenhainPlane.html","topicHref":"Hi.Numerical.NcGroupHeidenhainPlane.html","topicUid":"Hi.Numerical.NcGroupHeidenhainPlane","type":"Enum"},{"name":"NcGroupHeidenhainShortestRotaryPath","href":"Hi.Numerical.NcGroupHeidenhainShortestRotaryPath.html","topicHref":"Hi.Numerical.NcGroupHeidenhainShortestRotaryPath.html","topicUid":"Hi.Numerical.NcGroupHeidenhainShortestRotaryPath","type":"Enum"},{"name":"NcGroupSpindleRotation","href":"Hi.Numerical.NcGroupSpindleRotation.html","topicHref":"Hi.Numerical.NcGroupSpindleRotation.html","topicUid":"Hi.Numerical.NcGroupSpindleRotation","type":"Enum"},{"name":"NcLifeCycleAttribute","href":"Hi.Numerical.NcLifeCycleAttribute.html","topicHref":"Hi.Numerical.NcLifeCycleAttribute.html","topicUid":"Hi.Numerical.NcLifeCycleAttribute","type":"Class"},{"name":"NcLifeCycleMode","href":"Hi.Numerical.NcLifeCycleMode.html","topicHref":"Hi.Numerical.NcLifeCycleMode.html","topicUid":"Hi.Numerical.NcLifeCycleMode","type":"Enum"},{"name":"NcLine","href":"Hi.Numerical.NcLine.html","topicHref":"Hi.Numerical.NcLine.html","topicUid":"Hi.Numerical.NcLine","type":"Class"},{"name":"NcNameAttribute","href":"Hi.Numerical.NcNameAttribute.html","topicHref":"Hi.Numerical.NcNameAttribute.html","topicUid":"Hi.Numerical.NcNameAttribute","type":"Class"},{"name":"NcNoteCache","href":"Hi.Numerical.NcNoteCache.html","topicHref":"Hi.Numerical.NcNoteCache.html","topicUid":"Hi.Numerical.NcNoteCache","type":"Class"},{"name":"NcProc","href":"Hi.Numerical.NcProc.html","topicHref":"Hi.Numerical.NcProc.html","topicUid":"Hi.Numerical.NcProc","type":"Class"},{"name":"NcStepFileOutputKit","href":"Hi.Numerical.NcStepFileOutputKit.html","topicHref":"Hi.Numerical.NcStepFileOutputKit.html","topicUid":"Hi.Numerical.NcStepFileOutputKit","type":"Class"},{"name":"NcStepMonitor","href":"Hi.Numerical.NcStepMonitor.html","topicHref":"Hi.Numerical.NcStepMonitor.html","topicUid":"Hi.Numerical.NcStepMonitor","type":"Class"},{"name":"NcUtil","href":"Hi.Numerical.NcUtil.html","topicHref":"Hi.Numerical.NcUtil.html","topicUid":"Hi.Numerical.NcUtil","type":"Class"},{"name":"NcWarningSceneEnum","href":"Hi.Numerical.NcWarningSceneEnum.html","topicHref":"Hi.Numerical.NcWarningSceneEnum.html","topicUid":"Hi.Numerical.NcWarningSceneEnum","type":"Enum"},{"name":"NumericUtil","href":"Hi.Numerical.NumericUtil.html","topicHref":"Hi.Numerical.NumericUtil.html","topicUid":"Hi.Numerical.NumericUtil","type":"Class"},{"name":"PolarEntry","href":"Hi.Numerical.PolarEntry.html","topicHref":"Hi.Numerical.PolarEntry.html","topicUid":"Hi.Numerical.PolarEntry","type":"Class"},{"name":"PolarEntry.PolarModeDirEnum","href":"Hi.Numerical.PolarEntry.PolarModeDirEnum.html","topicHref":"Hi.Numerical.PolarEntry.PolarModeDirEnum.html","topicUid":"Hi.Numerical.PolarEntry.PolarModeDirEnum","type":"Enum"},{"name":"RadiusCompensationBuf","href":"Hi.Numerical.RadiusCompensationBuf.html","topicHref":"Hi.Numerical.RadiusCompensationBuf.html","topicUid":"Hi.Numerical.RadiusCompensationBuf","type":"Class"},{"name":"SpindleDirection","href":"Hi.Numerical.SpindleDirection.html","topicHref":"Hi.Numerical.SpindleDirection.html","topicUid":"Hi.Numerical.SpindleDirection","type":"Enum"},{"name":"SubStringKit","href":"Hi.Numerical.SubStringKit.html","topicHref":"Hi.Numerical.SubStringKit.html","topicUid":"Hi.Numerical.SubStringKit","type":"Class"},{"name":"SubStringKit.ActivationMode","href":"Hi.Numerical.SubStringKit.ActivationMode.html","topicHref":"Hi.Numerical.SubStringKit.ActivationMode.html","topicUid":"Hi.Numerical.SubStringKit.ActivationMode","type":"Enum"},{"name":"ToolConfigNotFoundException","href":"Hi.Numerical.ToolConfigNotFoundException.html","topicHref":"Hi.Numerical.ToolConfigNotFoundException.html","topicUid":"Hi.Numerical.ToolConfigNotFoundException","type":"Class"}]},{"name":"Hi.Numerical.Acts","href":"Hi.Numerical.Acts.html","topicHref":"Hi.Numerical.Acts.html","topicUid":"Hi.Numerical.Acts","type":"Namespace","items":[{"name":"ActActualTime","href":"Hi.Numerical.Acts.ActActualTime.html","topicHref":"Hi.Numerical.Acts.ActActualTime.html","topicUid":"Hi.Numerical.Acts.ActActualTime","type":"Class"},{"name":"ActClArc","href":"Hi.Numerical.Acts.ActClArc.html","topicHref":"Hi.Numerical.Acts.ActClArc.html","topicUid":"Hi.Numerical.Acts.ActClArc","type":"Class"},{"name":"ActClLinear","href":"Hi.Numerical.Acts.ActClLinear.html","topicHref":"Hi.Numerical.Acts.ActClLinear.html","topicUid":"Hi.Numerical.Acts.ActClLinear","type":"Class"},{"name":"ActClStep","href":"Hi.Numerical.Acts.ActClStep.html","topicHref":"Hi.Numerical.Acts.ActClStep.html","topicUid":"Hi.Numerical.Acts.ActClStep","type":"Class"},{"name":"ActClTeleport","href":"Hi.Numerical.Acts.ActClTeleport.html","topicHref":"Hi.Numerical.Acts.ActClTeleport.html","topicUid":"Hi.Numerical.Acts.ActClTeleport","type":"Class"},{"name":"ActCooling","href":"Hi.Numerical.Acts.ActCooling.html","topicHref":"Hi.Numerical.Acts.ActCooling.html","topicUid":"Hi.Numerical.Acts.ActCooling","type":"Class"},{"name":"ActData","href":"Hi.Numerical.Acts.ActData.html","topicHref":"Hi.Numerical.Acts.ActData.html","topicUid":"Hi.Numerical.Acts.ActData","type":"Class"},{"name":"ActDelay","href":"Hi.Numerical.Acts.ActDelay.html","topicHref":"Hi.Numerical.Acts.ActDelay.html","topicUid":"Hi.Numerical.Acts.ActDelay","type":"Class"},{"name":"ActFeedrate","href":"Hi.Numerical.Acts.ActFeedrate.html","topicHref":"Hi.Numerical.Acts.ActFeedrate.html","topicUid":"Hi.Numerical.Acts.ActFeedrate","type":"Class"},{"name":"ActHiddenStateChanged","href":"Hi.Numerical.Acts.ActHiddenStateChanged.html","topicHref":"Hi.Numerical.Acts.ActHiddenStateChanged.html","topicUid":"Hi.Numerical.Acts.ActHiddenStateChanged","type":"Class"},{"name":"ActIntentionalSkip","href":"Hi.Numerical.Acts.ActIntentionalSkip.html","topicHref":"Hi.Numerical.Acts.ActIntentionalSkip.html","topicUid":"Hi.Numerical.Acts.ActIntentionalSkip","type":"Class"},{"name":"ActLineBegin","href":"Hi.Numerical.Acts.ActLineBegin.html","topicHref":"Hi.Numerical.Acts.ActLineBegin.html","topicUid":"Hi.Numerical.Acts.ActLineBegin","type":"Class"},{"name":"ActLineCsScript","href":"Hi.Numerical.Acts.ActLineCsScript.html","topicHref":"Hi.Numerical.Acts.ActLineCsScript.html","topicUid":"Hi.Numerical.Acts.ActLineCsScript","type":"Class"},{"name":"ActLineEnd","href":"Hi.Numerical.Acts.ActLineEnd.html","topicHref":"Hi.Numerical.Acts.ActLineEnd.html","topicUid":"Hi.Numerical.Acts.ActLineEnd","type":"Class"},{"name":"ActLinearClAndLinearMcAbcMcXyzabcContour","href":"Hi.Numerical.Acts.ActLinearClAndLinearMcAbcMcXyzabcContour.html","topicHref":"Hi.Numerical.Acts.ActLinearClAndLinearMcAbcMcXyzabcContour.html","topicUid":"Hi.Numerical.Acts.ActLinearClAndLinearMcAbcMcXyzabcContour","type":"Class"},{"name":"ActMcPolarLinearContour","href":"Hi.Numerical.Acts.ActMcPolarLinearContour.html","topicHref":"Hi.Numerical.Acts.ActMcPolarLinearContour.html","topicUid":"Hi.Numerical.Acts.ActMcPolarLinearContour","type":"Class"},{"name":"ActMcXyzLinearContour","href":"Hi.Numerical.Acts.ActMcXyzLinearContour.html","topicHref":"Hi.Numerical.Acts.ActMcXyzLinearContour.html","topicUid":"Hi.Numerical.Acts.ActMcXyzLinearContour","type":"Class"},{"name":"ActMcXyzStep","href":"Hi.Numerical.Acts.ActMcXyzStep.html","topicHref":"Hi.Numerical.Acts.ActMcXyzStep.html","topicUid":"Hi.Numerical.Acts.ActMcXyzStep","type":"Class"},{"name":"ActMcXyzabcOrientableLinearContour","href":"Hi.Numerical.Acts.ActMcXyzabcOrientableLinearContour.html","topicHref":"Hi.Numerical.Acts.ActMcXyzabcOrientableLinearContour.html","topicUid":"Hi.Numerical.Acts.ActMcXyzabcOrientableLinearContour","type":"Class"},{"name":"ActMcXyzabcStep","href":"Hi.Numerical.Acts.ActMcXyzabcStep.html","topicHref":"Hi.Numerical.Acts.ActMcXyzabcStep.html","topicUid":"Hi.Numerical.Acts.ActMcXyzabcStep","type":"Class"},{"name":"ActRapid","href":"Hi.Numerical.Acts.ActRapid.html","topicHref":"Hi.Numerical.Acts.ActRapid.html","topicUid":"Hi.Numerical.Acts.ActRapid","type":"Class"},{"name":"ActSpindleDirection","href":"Hi.Numerical.Acts.ActSpindleDirection.html","topicHref":"Hi.Numerical.Acts.ActSpindleDirection.html","topicUid":"Hi.Numerical.Acts.ActSpindleDirection","type":"Class"},{"name":"ActSpindleSpeed","href":"Hi.Numerical.Acts.ActSpindleSpeed.html","topicHref":"Hi.Numerical.Acts.ActSpindleSpeed.html","topicUid":"Hi.Numerical.Acts.ActSpindleSpeed","type":"Class"},{"name":"ActSpiralMcXyzContour","href":"Hi.Numerical.Acts.ActSpiralMcXyzContour.html","topicHref":"Hi.Numerical.Acts.ActSpiralMcXyzContour.html","topicUid":"Hi.Numerical.Acts.ActSpiralMcXyzContour","type":"Class"},{"name":"ActStateRunner","href":"Hi.Numerical.Acts.ActStateRunner.html","topicHref":"Hi.Numerical.Acts.ActStateRunner.html","topicUid":"Hi.Numerical.Acts.ActStateRunner","type":"Class"},{"name":"ActToolingStep","href":"Hi.Numerical.Acts.ActToolingStep.html","topicHref":"Hi.Numerical.Acts.ActToolingStep.html","topicUid":"Hi.Numerical.Acts.ActToolingStep","type":"Class"},{"name":"ActToolingTeleport","href":"Hi.Numerical.Acts.ActToolingTeleport.html","topicHref":"Hi.Numerical.Acts.ActToolingTeleport.html","topicUid":"Hi.Numerical.Acts.ActToolingTeleport","type":"Class"},{"name":"ActUnknownSkip","href":"Hi.Numerical.Acts.ActUnknownSkip.html","topicHref":"Hi.Numerical.Acts.ActUnknownSkip.html","topicUid":"Hi.Numerical.Acts.ActUnknownSkip","type":"Class"},{"name":"ActUtil","href":"Hi.Numerical.Acts.ActUtil.html","topicHref":"Hi.Numerical.Acts.ActUtil.html","topicUid":"Hi.Numerical.Acts.ActUtil","type":"Class"},{"name":"IAct","href":"Hi.Numerical.Acts.IAct.html","topicHref":"Hi.Numerical.Acts.IAct.html","topicUid":"Hi.Numerical.Acts.IAct","type":"Interface"},{"name":"IActClMove","href":"Hi.Numerical.Acts.IActClMove.html","topicHref":"Hi.Numerical.Acts.IActClMove.html","topicUid":"Hi.Numerical.Acts.IActClMove","type":"Interface"},{"name":"IActDuration","href":"Hi.Numerical.Acts.IActDuration.html","topicHref":"Hi.Numerical.Acts.IActDuration.html","topicUid":"Hi.Numerical.Acts.IActDuration","type":"Interface"},{"name":"IActMachineStep","href":"Hi.Numerical.Acts.IActMachineStep.html","topicHref":"Hi.Numerical.Acts.IActMachineStep.html","topicUid":"Hi.Numerical.Acts.IActMachineStep","type":"Interface"},{"name":"IActMcXyzContour","href":"Hi.Numerical.Acts.IActMcXyzContour.html","topicHref":"Hi.Numerical.Acts.IActMcXyzContour.html","topicUid":"Hi.Numerical.Acts.IActMcXyzContour","type":"Interface"},{"name":"IActMcXyzabcContour","href":"Hi.Numerical.Acts.IActMcXyzabcContour.html","topicHref":"Hi.Numerical.Acts.IActMcXyzabcContour.html","topicUid":"Hi.Numerical.Acts.IActMcXyzabcContour","type":"Interface"},{"name":"IActSkip","href":"Hi.Numerical.Acts.IActSkip.html","topicHref":"Hi.Numerical.Acts.IActSkip.html","topicUid":"Hi.Numerical.Acts.IActSkip","type":"Interface"},{"name":"IActTooling","href":"Hi.Numerical.Acts.IActTooling.html","topicHref":"Hi.Numerical.Acts.IActTooling.html","topicUid":"Hi.Numerical.Acts.IActTooling","type":"Interface"},{"name":"IWorkTimeAttrib","href":"Hi.Numerical.Acts.IWorkTimeAttrib.html","topicHref":"Hi.Numerical.Acts.IWorkTimeAttrib.html","topicUid":"Hi.Numerical.Acts.IWorkTimeAttrib","type":"Interface"},{"name":"IWorkTimeGetter","href":"Hi.Numerical.Acts.IWorkTimeGetter.html","topicHref":"Hi.Numerical.Acts.IWorkTimeGetter.html","topicUid":"Hi.Numerical.Acts.IWorkTimeGetter","type":"Interface"},{"name":"IWorkTimeSetter","href":"Hi.Numerical.Acts.IWorkTimeSetter.html","topicHref":"Hi.Numerical.Acts.IWorkTimeSetter.html","topicUid":"Hi.Numerical.Acts.IWorkTimeSetter","type":"Interface"}]},{"name":"Hi.Numerical.FilePlayers","href":"Hi.Numerical.FilePlayers.html","topicHref":"Hi.Numerical.FilePlayers.html","topicUid":"Hi.Numerical.FilePlayers","type":"Namespace","items":[{"name":"CsvRunner","href":"Hi.Numerical.FilePlayers.CsvRunner.html","topicHref":"Hi.Numerical.FilePlayers.CsvRunner.html","topicUid":"Hi.Numerical.FilePlayers.CsvRunner","type":"Class"},{"name":"CsvRunnerConfig","href":"Hi.Numerical.FilePlayers.CsvRunnerConfig.html","topicHref":"Hi.Numerical.FilePlayers.CsvRunnerConfig.html","topicUid":"Hi.Numerical.FilePlayers.CsvRunnerConfig","type":"Class"},{"name":"IControlRunner","href":"Hi.Numerical.FilePlayers.IControlRunner.html","topicHref":"Hi.Numerical.FilePlayers.IControlRunner.html","topicUid":"Hi.Numerical.FilePlayers.IControlRunner","type":"Interface"},{"name":"NcRunner","href":"Hi.Numerical.FilePlayers.NcRunner.html","topicHref":"Hi.Numerical.FilePlayers.NcRunner.html","topicUid":"Hi.Numerical.FilePlayers.NcRunner","type":"Class"},{"name":"SourceCommandActEntry","href":"Hi.Numerical.FilePlayers.SourceCommandActEntry.html","topicHref":"Hi.Numerical.FilePlayers.SourceCommandActEntry.html","topicUid":"Hi.Numerical.FilePlayers.SourceCommandActEntry","type":"Class"}]},{"name":"Hi.Numerical.MachiningMotionResolutionUtils","href":"Hi.Numerical.MachiningMotionResolutionUtils.html","topicHref":"Hi.Numerical.MachiningMotionResolutionUtils.html","topicUid":"Hi.Numerical.MachiningMotionResolutionUtils","type":"Namespace","items":[{"name":"FeedPerCycleMachiningMotionResolution","href":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerCycleMachiningMotionResolution.html","topicHref":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerCycleMachiningMotionResolution.html","topicUid":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerCycleMachiningMotionResolution","type":"Class"},{"name":"FeedPerToothMachiningMotionResolution","href":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerToothMachiningMotionResolution.html","topicHref":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerToothMachiningMotionResolution.html","topicUid":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerToothMachiningMotionResolution","type":"Class"},{"name":"FeedPerToothNcResolution0","href":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerToothNcResolution0.html","topicHref":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerToothNcResolution0.html","topicUid":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerToothNcResolution0","type":"Class"},{"name":"FixedMachiningMotionResolution","href":"Hi.Numerical.MachiningMotionResolutionUtils.FixedMachiningMotionResolution.html","topicHref":"Hi.Numerical.MachiningMotionResolutionUtils.FixedMachiningMotionResolution.html","topicUid":"Hi.Numerical.MachiningMotionResolutionUtils.FixedMachiningMotionResolution","type":"Class"},{"name":"IMachiningMotionResolution","href":"Hi.Numerical.MachiningMotionResolutionUtils.IMachiningMotionResolution.html","topicHref":"Hi.Numerical.MachiningMotionResolutionUtils.IMachiningMotionResolution.html","topicUid":"Hi.Numerical.MachiningMotionResolutionUtils.IMachiningMotionResolution","type":"Interface"}]},{"name":"Hi.Numerical.NcArgs","href":"Hi.Numerical.NcArgs.html","topicHref":"Hi.Numerical.NcArgs.html","topicUid":"Hi.Numerical.NcArgs","type":"Namespace","items":[{"name":"ArcNcArg","href":"Hi.Numerical.NcArgs.ArcNcArg.html","topicHref":"Hi.Numerical.NcArgs.ArcNcArg.html","topicUid":"Hi.Numerical.NcArgs.ArcNcArg","type":"Class"},{"name":"G28Arg","href":"Hi.Numerical.NcArgs.G28Arg.html","topicHref":"Hi.Numerical.NcArgs.G28Arg.html","topicUid":"Hi.Numerical.NcArgs.G28Arg","type":"Class"},{"name":"Group07NcArg","href":"Hi.Numerical.NcArgs.Group07NcArg.html","topicHref":"Hi.Numerical.NcArgs.Group07NcArg.html","topicUid":"Hi.Numerical.NcArgs.Group07NcArg","type":"Class"},{"name":"Group09NcArg","href":"Hi.Numerical.NcArgs.Group09NcArg.html","topicHref":"Hi.Numerical.NcArgs.Group09NcArg.html","topicUid":"Hi.Numerical.NcArgs.Group09NcArg","type":"Class"},{"name":"HeidenhainCycleDef7Arg","href":"Hi.Numerical.NcArgs.HeidenhainCycleDef7Arg.html","topicHref":"Hi.Numerical.NcArgs.HeidenhainCycleDef7Arg.html","topicUid":"Hi.Numerical.NcArgs.HeidenhainCycleDef7Arg","type":"Class"},{"name":"HeidenhainPlaneSpatialArg","href":"Hi.Numerical.NcArgs.HeidenhainPlaneSpatialArg.html","topicHref":"Hi.Numerical.NcArgs.HeidenhainPlaneSpatialArg.html","topicUid":"Hi.Numerical.NcArgs.HeidenhainPlaneSpatialArg","type":"Class"},{"name":"IHeidenhainBlockCacheArg","href":"Hi.Numerical.NcArgs.IHeidenhainBlockCacheArg.html","topicHref":"Hi.Numerical.NcArgs.IHeidenhainBlockCacheArg.html","topicUid":"Hi.Numerical.NcArgs.IHeidenhainBlockCacheArg","type":"Interface"},{"name":"IHeidenhainPlaneArg","href":"Hi.Numerical.NcArgs.IHeidenhainPlaneArg.html","topicHref":"Hi.Numerical.NcArgs.IHeidenhainPlaneArg.html","topicUid":"Hi.Numerical.NcArgs.IHeidenhainPlaneArg","type":"Interface"},{"name":"ITiltPlaneNcArg","href":"Hi.Numerical.NcArgs.ITiltPlaneNcArg.html","topicHref":"Hi.Numerical.NcArgs.ITiltPlaneNcArg.html","topicUid":"Hi.Numerical.NcArgs.ITiltPlaneNcArg","type":"Interface"},{"name":"NcArgCycle800","href":"Hi.Numerical.NcArgs.NcArgCycle800.html","topicHref":"Hi.Numerical.NcArgs.NcArgCycle800.html","topicUid":"Hi.Numerical.NcArgs.NcArgCycle800","type":"Class"},{"name":"NcArgG68","href":"Hi.Numerical.NcArgs.NcArgG68.html","topicHref":"Hi.Numerical.NcArgs.NcArgG68.html","topicUid":"Hi.Numerical.NcArgs.NcArgG68","type":"Class"},{"name":"NcArgG68p2","href":"Hi.Numerical.NcArgs.NcArgG68p2.html","topicHref":"Hi.Numerical.NcArgs.NcArgG68p2.html","topicUid":"Hi.Numerical.NcArgs.NcArgG68p2","type":"Class"},{"name":"PausingNcArg","href":"Hi.Numerical.NcArgs.PausingNcArg.html","topicHref":"Hi.Numerical.NcArgs.PausingNcArg.html","topicUid":"Hi.Numerical.NcArgs.PausingNcArg","type":"Class"}]},{"name":"Hi.Numerical.StepSelectionUtils","href":"Hi.Numerical.StepSelectionUtils.html","topicHref":"Hi.Numerical.StepSelectionUtils.html","topicUid":"Hi.Numerical.StepSelectionUtils","type":"Namespace","items":[{"name":"AnchorMode","href":"Hi.Numerical.StepSelectionUtils.AnchorMode.html","topicHref":"Hi.Numerical.StepSelectionUtils.AnchorMode.html","topicUid":"Hi.Numerical.StepSelectionUtils.AnchorMode","type":"Enum"},{"name":"BoundSelector","href":"Hi.Numerical.StepSelectionUtils.BoundSelector.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelector.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelector","type":"Class"},{"name":"BoundSelectorHost","href":"Hi.Numerical.StepSelectionUtils.BoundSelectorHost.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelectorHost.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelectorHost","type":"Class"},{"name":"BoundSelectorPair","href":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair","type":"Class"},{"name":"BoundSelectorPair.BoundLocale","href":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair.BoundLocale.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair.BoundLocale.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair.BoundLocale","type":"Enum"},{"name":"BoundSelectorStepSectionBundle","href":"Hi.Numerical.StepSelectionUtils.BoundSelectorStepSectionBundle.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelectorStepSectionBundle.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelectorStepSectionBundle","type":"Class"},{"name":"BoundSelectorUtil","href":"Hi.Numerical.StepSelectionUtils.BoundSelectorUtil.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelectorUtil.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelectorUtil","type":"Class"},{"name":"DistanceShift","href":"Hi.Numerical.StepSelectionUtils.DistanceShift.html","topicHref":"Hi.Numerical.StepSelectionUtils.DistanceShift.html","topicUid":"Hi.Numerical.StepSelectionUtils.DistanceShift","type":"Class"},{"name":"IStepShift","href":"Hi.Numerical.StepSelectionUtils.IStepShift.html","topicHref":"Hi.Numerical.StepSelectionUtils.IStepShift.html","topicUid":"Hi.Numerical.StepSelectionUtils.IStepShift","type":"Interface"},{"name":"TimeShift","href":"Hi.Numerical.StepSelectionUtils.TimeShift.html","topicHref":"Hi.Numerical.StepSelectionUtils.TimeShift.html","topicUid":"Hi.Numerical.StepSelectionUtils.TimeShift","type":"Class"}]},{"name":"Hi.Numerical.Xyzabc","href":"Hi.Numerical.Xyzabc.html","topicHref":"Hi.Numerical.Xyzabc.html","topicUid":"Hi.Numerical.Xyzabc","type":"Namespace","items":[{"name":"Abc","href":"Hi.Numerical.Xyzabc.Abc.html","topicHref":"Hi.Numerical.Xyzabc.Abc.html","topicUid":"Hi.Numerical.Xyzabc.Abc","type":"Struct"},{"name":"CodeXyzabcChain","href":"Hi.Numerical.Xyzabc.CodeXyzabcChain.html","topicHref":"Hi.Numerical.Xyzabc.CodeXyzabcChain.html","topicUid":"Hi.Numerical.Xyzabc.CodeXyzabcChain","type":"Class"},{"name":"GeneralXyzabcChain","href":"Hi.Numerical.Xyzabc.GeneralXyzabcChain.html","topicHref":"Hi.Numerical.Xyzabc.GeneralXyzabcChain.html","topicUid":"Hi.Numerical.Xyzabc.GeneralXyzabcChain","type":"Class"},{"name":"ICoordinateConverter","href":"Hi.Numerical.Xyzabc.ICoordinateConverter.html","topicHref":"Hi.Numerical.Xyzabc.ICoordinateConverter.html","topicUid":"Hi.Numerical.Xyzabc.ICoordinateConverter","type":"Interface"},{"name":"IGetMcXyzabc","href":"Hi.Numerical.Xyzabc.IGetMcXyzabc.html","topicHref":"Hi.Numerical.Xyzabc.IGetMcXyzabc.html","topicUid":"Hi.Numerical.Xyzabc.IGetMcXyzabc","type":"Interface"},{"name":"IGetXyzabcChain","href":"Hi.Numerical.Xyzabc.IGetXyzabcChain.html","topicHref":"Hi.Numerical.Xyzabc.IGetXyzabcChain.html","topicUid":"Hi.Numerical.Xyzabc.IGetXyzabcChain","type":"Interface"},{"name":"IXyzabcChain","href":"Hi.Numerical.Xyzabc.IXyzabcChain.html","topicHref":"Hi.Numerical.Xyzabc.IXyzabcChain.html","topicUid":"Hi.Numerical.Xyzabc.IXyzabcChain","type":"Interface"},{"name":"ReflectedXyzabcChain","href":"Hi.Numerical.Xyzabc.ReflectedXyzabcChain.html","topicHref":"Hi.Numerical.Xyzabc.ReflectedXyzabcChain.html","topicUid":"Hi.Numerical.Xyzabc.ReflectedXyzabcChain","type":"Class"},{"name":"SimpleChainCoordinateConverter","href":"Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.html","topicHref":"Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.html","topicUid":"Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter","type":"Class"},{"name":"XyzabcChainMillingCoordinateConverter","href":"Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter.html","topicHref":"Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter.html","topicUid":"Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter","type":"Class"},{"name":"XyzabcSolver","href":"Hi.Numerical.Xyzabc.XyzabcSolver.html","topicHref":"Hi.Numerical.Xyzabc.XyzabcSolver.html","topicUid":"Hi.Numerical.Xyzabc.XyzabcSolver","type":"Class"},{"name":"XyzabcUtil","href":"Hi.Numerical.Xyzabc.XyzabcUtil.html","topicHref":"Hi.Numerical.Xyzabc.XyzabcUtil.html","topicUid":"Hi.Numerical.Xyzabc.XyzabcUtil","type":"Class"}]},{"name":"Hi.PanelModels","href":"Hi.PanelModels.html","topicHref":"Hi.PanelModels.html","topicUid":"Hi.PanelModels","type":"Namespace","items":[{"name":"HiKey","href":"Hi.PanelModels.HiKey.html","topicHref":"Hi.PanelModels.HiKey.html","topicUid":"Hi.PanelModels.HiKey","type":"Enum"},{"name":"HiKeyEvent","href":"Hi.PanelModels.HiKeyEvent.html","topicHref":"Hi.PanelModels.HiKeyEvent.html","topicUid":"Hi.PanelModels.HiKeyEvent","type":"Class"},{"name":"HiModifierKeys","href":"Hi.PanelModels.HiModifierKeys.html","topicHref":"Hi.PanelModels.HiModifierKeys.html","topicUid":"Hi.PanelModels.HiModifierKeys","type":"Enum"},{"name":"HiMouseButton","href":"Hi.PanelModels.HiMouseButton.html","topicHref":"Hi.PanelModels.HiMouseButton.html","topicUid":"Hi.PanelModels.HiMouseButton","type":"Enum"},{"name":"HiMouseButtonEvent","href":"Hi.PanelModels.HiMouseButtonEvent.html","topicHref":"Hi.PanelModels.HiMouseButtonEvent.html","topicUid":"Hi.PanelModels.HiMouseButtonEvent","type":"Class"},{"name":"HiMouseButtonMask","href":"Hi.PanelModels.HiMouseButtonMask.html","topicHref":"Hi.PanelModels.HiMouseButtonMask.html","topicUid":"Hi.PanelModels.HiMouseButtonMask","type":"Enum"},{"name":"HiMouseButtonMaskUtil","href":"Hi.PanelModels.HiMouseButtonMaskUtil.html","topicHref":"Hi.PanelModels.HiMouseButtonMaskUtil.html","topicUid":"Hi.PanelModels.HiMouseButtonMaskUtil","type":"Class"},{"name":"HiMouseMoveEvent","href":"Hi.PanelModels.HiMouseMoveEvent.html","topicHref":"Hi.PanelModels.HiMouseMoveEvent.html","topicUid":"Hi.PanelModels.HiMouseMoveEvent","type":"Class"},{"name":"HiMouseWheelEvent","href":"Hi.PanelModels.HiMouseWheelEvent.html","topicHref":"Hi.PanelModels.HiMouseWheelEvent.html","topicUid":"Hi.PanelModels.HiMouseWheelEvent","type":"Class"},{"name":"PanelModel","href":"Hi.PanelModels.PanelModel.html","topicHref":"Hi.PanelModels.PanelModel.html","topicUid":"Hi.PanelModels.PanelModel","type":"Class"}]},{"name":"Hi.Parallels","href":"Hi.Parallels.html","topicHref":"Hi.Parallels.html","topicUid":"Hi.Parallels","type":"Namespace","items":[{"name":"CurrentThreadTaskScheduler","href":"Hi.Parallels.CurrentThreadTaskScheduler.html","topicHref":"Hi.Parallels.CurrentThreadTaskScheduler.html","topicUid":"Hi.Parallels.CurrentThreadTaskScheduler","type":"Class"},{"name":"DistributedQueueTaskScheduler","href":"Hi.Parallels.DistributedQueueTaskScheduler.html","topicHref":"Hi.Parallels.DistributedQueueTaskScheduler.html","topicUid":"Hi.Parallels.DistributedQueueTaskScheduler","type":"Class"},{"name":"DistributedQueueTaskStarter","href":"Hi.Parallels.DistributedQueueTaskStarter.html","topicHref":"Hi.Parallels.DistributedQueueTaskStarter.html","topicUid":"Hi.Parallels.DistributedQueueTaskStarter","type":"Class"},{"name":"LockUtil","href":"Hi.Parallels.LockUtil.html","topicHref":"Hi.Parallels.LockUtil.html","topicUid":"Hi.Parallels.LockUtil","type":"Class"},{"name":"PriorityBasedTaskScheduler","href":"Hi.Parallels.PriorityBasedTaskScheduler.html","topicHref":"Hi.Parallels.PriorityBasedTaskScheduler.html","topicUid":"Hi.Parallels.PriorityBasedTaskScheduler","type":"Class"},{"name":"QueueTaskScheduler","href":"Hi.Parallels.QueueTaskScheduler.html","topicHref":"Hi.Parallels.QueueTaskScheduler.html","topicUid":"Hi.Parallels.QueueTaskScheduler","type":"Class"},{"name":"ReaderWriterLockUtil","href":"Hi.Parallels.ReaderWriterLockUtil.html","topicHref":"Hi.Parallels.ReaderWriterLockUtil.html","topicUid":"Hi.Parallels.ReaderWriterLockUtil","type":"Class"},{"name":"SemaphoreUtil","href":"Hi.Parallels.SemaphoreUtil.html","topicHref":"Hi.Parallels.SemaphoreUtil.html","topicUid":"Hi.Parallels.SemaphoreUtil","type":"Class"},{"name":"ThreadSafeSet","href":"Hi.Parallels.ThreadSafeSet-1.html","topicHref":"Hi.Parallels.ThreadSafeSet-1.html","topicUid":"Hi.Parallels.ThreadSafeSet`1","type":"Class"}]},{"name":"Hi.Physics","href":"Hi.Physics.html","topicHref":"Hi.Physics.html","topicUid":"Hi.Physics","type":"Namespace","items":[{"name":"AmpPhase","href":"Hi.Physics.AmpPhase.html","topicHref":"Hi.Physics.AmpPhase.html","topicUid":"Hi.Physics.AmpPhase","type":"Class"},{"name":"CoatingMaterial","href":"Hi.Physics.CoatingMaterial.html","topicHref":"Hi.Physics.CoatingMaterial.html","topicUid":"Hi.Physics.CoatingMaterial","type":"Class"},{"name":"CoolantHeatCondition","href":"Hi.Physics.CoolantHeatCondition.html","topicHref":"Hi.Physics.CoolantHeatCondition.html","topicUid":"Hi.Physics.CoolantHeatCondition","type":"Class"},{"name":"CutterMaterial","href":"Hi.Physics.CutterMaterial.html","topicHref":"Hi.Physics.CutterMaterial.html","topicUid":"Hi.Physics.CutterMaterial","type":"Class"},{"name":"IGetThermalLayerList","href":"Hi.Physics.IGetThermalLayerList.html","topicHref":"Hi.Physics.IGetThermalLayerList.html","topicUid":"Hi.Physics.IGetThermalLayerList","type":"Interface"},{"name":"IStructureMaterial","href":"Hi.Physics.IStructureMaterial.html","topicHref":"Hi.Physics.IStructureMaterial.html","topicUid":"Hi.Physics.IStructureMaterial","type":"Interface"},{"name":"ISuccessivePhysicsBriefAccessor","href":"Hi.Physics.ISuccessivePhysicsBriefAccessor.html","topicHref":"Hi.Physics.ISuccessivePhysicsBriefAccessor.html","topicUid":"Hi.Physics.ISuccessivePhysicsBriefAccessor","type":"Interface"},{"name":"ISurfaceMaterial","href":"Hi.Physics.ISurfaceMaterial.html","topicHref":"Hi.Physics.ISurfaceMaterial.html","topicUid":"Hi.Physics.ISurfaceMaterial","type":"Interface"},{"name":"ITimeGetter","href":"Hi.Physics.ITimeGetter.html","topicHref":"Hi.Physics.ITimeGetter.html","topicUid":"Hi.Physics.ITimeGetter","type":"Interface"},{"name":"MillingTemperatureUtil","href":"Hi.Physics.MillingTemperatureUtil.html","topicHref":"Hi.Physics.MillingTemperatureUtil.html","topicUid":"Hi.Physics.MillingTemperatureUtil","type":"Class"},{"name":"SeqPhysicsBrief","href":"Hi.Physics.SeqPhysicsBrief.html","topicHref":"Hi.Physics.SeqPhysicsBrief.html","topicUid":"Hi.Physics.SeqPhysicsBrief","type":"Class"},{"name":"StructureMaterial","href":"Hi.Physics.StructureMaterial.html","topicHref":"Hi.Physics.StructureMaterial.html","topicUid":"Hi.Physics.StructureMaterial","type":"Class"},{"name":"TemperatureUtil","href":"Hi.Physics.TemperatureUtil.html","topicHref":"Hi.Physics.TemperatureUtil.html","topicUid":"Hi.Physics.TemperatureUtil","type":"Class"},{"name":"TemperatureVsHardness","href":"Hi.Physics.TemperatureVsHardness.html","topicHref":"Hi.Physics.TemperatureVsHardness.html","topicUid":"Hi.Physics.TemperatureVsHardness","type":"Class"},{"name":"ThermalLayer1D","href":"Hi.Physics.ThermalLayer1D.html","topicHref":"Hi.Physics.ThermalLayer1D.html","topicUid":"Hi.Physics.ThermalLayer1D","type":"Class"},{"name":"TimeSeriesUtil","href":"Hi.Physics.TimeSeriesUtil.html","topicHref":"Hi.Physics.TimeSeriesUtil.html","topicUid":"Hi.Physics.TimeSeriesUtil","type":"Class"},{"name":"TimeValue","href":"Hi.Physics.TimeValue.html","topicHref":"Hi.Physics.TimeValue.html","topicUid":"Hi.Physics.TimeValue","type":"Class"},{"name":"WorkpieceMaterial","href":"Hi.Physics.WorkpieceMaterial.html","topicHref":"Hi.Physics.WorkpieceMaterial.html","topicUid":"Hi.Physics.WorkpieceMaterial","type":"Class"}]},{"name":"Hi.ScriptApiUtils","href":"Hi.ScriptApiUtils.html","topicHref":"Hi.ScriptApiUtils.html","topicUid":"Hi.ScriptApiUtils","type":"Namespace","items":[{"name":"ICsScriptApi","href":"Hi.ScriptApiUtils.ICsScriptApi.html","topicHref":"Hi.ScriptApiUtils.ICsScriptApi.html","topicUid":"Hi.ScriptApiUtils.ICsScriptApi","type":"Interface"},{"name":"JsAceAttribute","href":"Hi.ScriptApiUtils.JsAceAttribute.html","topicHref":"Hi.ScriptApiUtils.JsAceAttribute.html","topicUid":"Hi.ScriptApiUtils.JsAceAttribute","type":"Class"}]},{"name":"Hi.ShellCommands","href":"Hi.ShellCommands.html","topicHref":"Hi.ShellCommands.html","topicUid":"Hi.ShellCommands","type":"Namespace","items":[{"name":"EnablingWrapper","href":"Hi.ShellCommands.EnablingWrapper.html","topicHref":"Hi.ShellCommands.EnablingWrapper.html","topicUid":"Hi.ShellCommands.EnablingWrapper","type":"Class"},{"name":"GeomDiffCommand","href":"Hi.ShellCommands.GeomDiffCommand.html","topicHref":"Hi.ShellCommands.GeomDiffCommand.html","topicUid":"Hi.ShellCommands.GeomDiffCommand","type":"Class"},{"name":"IShellCommand","href":"Hi.ShellCommands.IShellCommand.html","topicHref":"Hi.ShellCommands.IShellCommand.html","topicUid":"Hi.ShellCommands.IShellCommand","type":"Interface"},{"name":"ITitleCommand","href":"Hi.ShellCommands.ITitleCommand.html","topicHref":"Hi.ShellCommands.ITitleCommand.html","topicUid":"Hi.ShellCommands.ITitleCommand","type":"Interface"},{"name":"Lang","href":"Hi.ShellCommands.Lang.html","topicHref":"Hi.ShellCommands.Lang.html","topicUid":"Hi.ShellCommands.Lang","type":"Class"},{"name":"ListCommand","href":"Hi.ShellCommands.ListCommand.html","topicHref":"Hi.ShellCommands.ListCommand.html","topicUid":"Hi.ShellCommands.ListCommand","type":"Class"},{"name":"MachiningMotionResolutionCommand","href":"Hi.ShellCommands.MachiningMotionResolutionCommand.html","topicHref":"Hi.ShellCommands.MachiningMotionResolutionCommand.html","topicUid":"Hi.ShellCommands.MachiningMotionResolutionCommand","type":"Class"},{"name":"NcCodeCommand","href":"Hi.ShellCommands.NcCodeCommand.html","topicHref":"Hi.ShellCommands.NcCodeCommand.html","topicUid":"Hi.ShellCommands.NcCodeCommand","type":"Class"},{"name":"NcFileCommand","href":"Hi.ShellCommands.NcFileCommand.html","topicHref":"Hi.ShellCommands.NcFileCommand.html","topicUid":"Hi.ShellCommands.NcFileCommand","type":"Class"},{"name":"NcFileListCommand","href":"Hi.ShellCommands.NcFileListCommand.html","topicHref":"Hi.ShellCommands.NcFileListCommand.html","topicUid":"Hi.ShellCommands.NcFileListCommand","type":"Class"},{"name":"NcOptOptionCommand","href":"Hi.ShellCommands.NcOptOptionCommand.html","topicHref":"Hi.ShellCommands.NcOptOptionCommand.html","topicUid":"Hi.ShellCommands.NcOptOptionCommand","type":"Class"},{"name":"OptimizeToFilesCommand","href":"Hi.ShellCommands.OptimizeToFilesCommand.html","topicHref":"Hi.ShellCommands.OptimizeToFilesCommand.html","topicUid":"Hi.ShellCommands.OptimizeToFilesCommand","type":"Class"},{"name":"PostExecutionCommand","href":"Hi.ShellCommands.PostExecutionCommand.html","topicHref":"Hi.ShellCommands.PostExecutionCommand.html","topicUid":"Hi.ShellCommands.PostExecutionCommand","type":"Class"},{"name":"PreSettingCommand","href":"Hi.ShellCommands.PreSettingCommand.html","topicHref":"Hi.ShellCommands.PreSettingCommand.html","topicUid":"Hi.ShellCommands.PreSettingCommand","type":"Class"},{"name":"RecordRuntimeGeomActionEnum","href":"Hi.ShellCommands.RecordRuntimeGeomActionEnum.html","topicHref":"Hi.ShellCommands.RecordRuntimeGeomActionEnum.html","topicUid":"Hi.ShellCommands.RecordRuntimeGeomActionEnum","type":"Enum"},{"name":"RecordRuntimeGeomCommand","href":"Hi.ShellCommands.RecordRuntimeGeomCommand.html","topicHref":"Hi.ShellCommands.RecordRuntimeGeomCommand.html","topicUid":"Hi.ShellCommands.RecordRuntimeGeomCommand","type":"Class"},{"name":"ScriptCommand","href":"Hi.ShellCommands.ScriptCommand.html","topicHref":"Hi.ShellCommands.ScriptCommand.html","topicUid":"Hi.ShellCommands.ScriptCommand","type":"Class"},{"name":"SimpleSessionCommand","href":"Hi.ShellCommands.SimpleSessionCommand.html","topicHref":"Hi.ShellCommands.SimpleSessionCommand.html","topicUid":"Hi.ShellCommands.SimpleSessionCommand","type":"Class"},{"name":"WriteRuntimeGeomToStlCommand","href":"Hi.ShellCommands.WriteRuntimeGeomToStlCommand.html","topicHref":"Hi.ShellCommands.WriteRuntimeGeomToStlCommand.html","topicUid":"Hi.ShellCommands.WriteRuntimeGeomToStlCommand","type":"Class"},{"name":"WriteShotFilesCommand","href":"Hi.ShellCommands.WriteShotFilesCommand.html","topicHref":"Hi.ShellCommands.WriteShotFilesCommand.html","topicUid":"Hi.ShellCommands.WriteShotFilesCommand","type":"Class"},{"name":"WriteStepFilesCommand","href":"Hi.ShellCommands.WriteStepFilesCommand.html","topicHref":"Hi.ShellCommands.WriteStepFilesCommand.html","topicUid":"Hi.ShellCommands.WriteStepFilesCommand","type":"Class"}]},{"name":"Hi.Test","href":"Hi.Test.html","topicHref":"Hi.Test.html","topicUid":"Hi.Test","type":"Namespace","items":[{"name":"TestCollision","href":"Hi.Test.TestCollision.html","topicHref":"Hi.Test.TestCollision.html","topicUid":"Hi.Test.TestCollision","type":"Class"}]},{"name":"Hi.UiExtensions","href":"Hi.UiExtensions.html","topicHref":"Hi.UiExtensions.html","topicUid":"Hi.UiExtensions","type":"Namespace","items":[{"name":"ChartBoundary","href":"Hi.UiExtensions.ChartBoundary.html","topicHref":"Hi.UiExtensions.ChartBoundary.html","topicUid":"Hi.UiExtensions.ChartBoundary","type":"Class"},{"name":"ChartBoundaryEnum","href":"Hi.UiExtensions.ChartBoundaryEnum.html","topicHref":"Hi.UiExtensions.ChartBoundaryEnum.html","topicUid":"Hi.UiExtensions.ChartBoundaryEnum","type":"Enum"},{"name":"NativeVisibility","href":"Hi.UiExtensions.NativeVisibility.html","topicHref":"Hi.UiExtensions.NativeVisibility.html","topicUid":"Hi.UiExtensions.NativeVisibility","type":"Enum"},{"name":"UiUtil","href":"Hi.UiExtensions.UiUtil.html","topicHref":"Hi.UiExtensions.UiUtil.html","topicUid":"Hi.UiExtensions.UiUtil","type":"Class"},{"name":"UiUtil.InvokeFunc","href":"Hi.UiExtensions.UiUtil.InvokeFunc.html","topicHref":"Hi.UiExtensions.UiUtil.InvokeFunc.html","topicUid":"Hi.UiExtensions.UiUtil.InvokeFunc","type":"Delegate"}]},{"name":"Hi.UniversalNc","href":"Hi.UniversalNc.html","topicHref":"Hi.UniversalNc.html","topicUid":"Hi.UniversalNc","type":"Namespace","items":[{"name":"Lang","href":"Hi.UniversalNc.Lang.html","topicHref":"Hi.UniversalNc.Lang.html","topicUid":"Hi.UniversalNc.Lang","type":"Class"}]},{"name":"Hi.Vibrations","href":"Hi.Vibrations.html","topicHref":"Hi.Vibrations.html","topicUid":"Hi.Vibrations","type":"Namespace","items":[{"name":"AngularVelocityUtil","href":"Hi.Vibrations.AngularVelocityUtil.html","topicHref":"Hi.Vibrations.AngularVelocityUtil.html","topicUid":"Hi.Vibrations.AngularVelocityUtil","type":"Class"},{"name":"ForceAccelAmpPhase","href":"Hi.Vibrations.ForceAccelAmpPhase.html","topicHref":"Hi.Vibrations.ForceAccelAmpPhase.html","topicUid":"Hi.Vibrations.ForceAccelAmpPhase","type":"Class"},{"name":"ForceAccelFourierSeries","href":"Hi.Vibrations.ForceAccelFourierSeries.html","topicHref":"Hi.Vibrations.ForceAccelFourierSeries.html","topicUid":"Hi.Vibrations.ForceAccelFourierSeries","type":"Class"},{"name":"ForceAccelShot","href":"Hi.Vibrations.ForceAccelShot.html","topicHref":"Hi.Vibrations.ForceAccelShot.html","topicUid":"Hi.Vibrations.ForceAccelShot","type":"Class"},{"name":"ForceAccelUtil","href":"Hi.Vibrations.ForceAccelUtil.html","topicHref":"Hi.Vibrations.ForceAccelUtil.html","topicUid":"Hi.Vibrations.ForceAccelUtil","type":"Class"},{"name":"IAngularVelocityOwner","href":"Hi.Vibrations.IAngularVelocityOwner.html","topicHref":"Hi.Vibrations.IAngularVelocityOwner.html","topicUid":"Hi.Vibrations.IAngularVelocityOwner","type":"Interface"},{"name":"VibrationUtil","href":"Hi.Vibrations.VibrationUtil.html","topicHref":"Hi.Vibrations.VibrationUtil.html","topicUid":"Hi.Vibrations.VibrationUtil","type":"Class"},{"name":"WAmpPhase","href":"Hi.Vibrations.WAmpPhase.html","topicHref":"Hi.Vibrations.WAmpPhase.html","topicUid":"Hi.Vibrations.WAmpPhase","type":"Class"},{"name":"WAmpPhaseXyzTransformation","href":"Hi.Vibrations.WAmpPhaseXyzTransformation.html","topicHref":"Hi.Vibrations.WAmpPhaseXyzTransformation.html","topicUid":"Hi.Vibrations.WAmpPhaseXyzTransformation","type":"Class"}]},{"name":"Hi.WinForm.Disp","href":"Hi.WinForm.Disp.html","topicHref":"Hi.WinForm.Disp.html","topicUid":"Hi.WinForm.Disp","type":"Namespace","items":[{"name":"RenderingCanvas","href":"Hi.WinForm.Disp.RenderingCanvas.html","topicHref":"Hi.WinForm.Disp.RenderingCanvas.html","topicUid":"Hi.WinForm.Disp.RenderingCanvas","type":"Class"},{"name":"RenderingForm","href":"Hi.WinForm.Disp.RenderingForm.html","topicHref":"Hi.WinForm.Disp.RenderingForm.html","topicUid":"Hi.WinForm.Disp.RenderingForm","type":"Class"}]},{"name":"Hi.Wpf.Disp","href":"Hi.Wpf.Disp.html","topicHref":"Hi.Wpf.Disp.html","topicUid":"Hi.Wpf.Disp","type":"Namespace","items":[{"name":"RenderingCanvas","href":"Hi.Wpf.Disp.RenderingCanvas.html","topicHref":"Hi.Wpf.Disp.RenderingCanvas.html","topicUid":"Hi.Wpf.Disp.RenderingCanvas","type":"Class"},{"name":"RenderingWindow","href":"Hi.Wpf.Disp.RenderingWindow.html","topicHref":"Hi.Wpf.Disp.RenderingWindow.html","topicUid":"Hi.Wpf.Disp.RenderingWindow","type":"Class"}]},{"name":"HiMachining.Milling","href":"HiMachining.Milling.html","topicHref":"HiMachining.Milling.html","topicUid":"HiMachining.Milling","type":"Namespace","items":[{"name":"ClMillingDevice","href":"HiMachining.Milling.ClMillingDevice.html","topicHref":"HiMachining.Milling.ClMillingDevice.html","topicUid":"HiMachining.Milling.ClMillingDevice","type":"Class"}]},{"name":"HiNc.Grpcs","href":"HiNc.Grpcs.html","topicHref":"HiNc.Grpcs.html","topicUid":"HiNc.Grpcs","type":"Namespace","items":[{"name":"MachiningProjectGrpcServer","href":"HiNc.Grpcs.MachiningProjectGrpcServer.html","topicHref":"HiNc.Grpcs.MachiningProjectGrpcServer.html","topicUid":"HiNc.Grpcs.MachiningProjectGrpcServer","type":"Class"}]},{"name":"numerical","href":"numerical.html","topicHref":"numerical.html","topicUid":"numerical","type":"Namespace","items":[{"name":"Empty","href":"numerical.Empty.html","topicHref":"numerical.Empty.html","topicUid":"numerical.Empty","type":"Class"},{"name":"GrpcCsvRowDictionary","href":"numerical.GrpcCsvRowDictionary.html","topicHref":"numerical.GrpcCsvRowDictionary.html","topicUid":"numerical.GrpcCsvRowDictionary","type":"Class"},{"name":"GrpcNcStep","href":"numerical.GrpcNcStep.html","topicHref":"numerical.GrpcNcStep.html","topicUid":"numerical.GrpcNcStep","type":"Class"},{"name":"NumericalReflection","href":"numerical.NumericalReflection.html","topicHref":"numerical.NumericalReflection.html","topicUid":"numerical.NumericalReflection","type":"Class"},{"name":"NumericalService","href":"numerical.NumericalService.html","topicHref":"numerical.NumericalService.html","topicUid":"numerical.NumericalService","type":"Class"},{"name":"NumericalService.NumericalServiceBase","href":"numerical.NumericalService.NumericalServiceBase.html","topicHref":"numerical.NumericalService.NumericalServiceBase.html","topicUid":"numerical.NumericalService.NumericalServiceBase","type":"Class"},{"name":"NumericalService.NumericalServiceClient","href":"numerical.NumericalService.NumericalServiceClient.html","topicHref":"numerical.NumericalService.NumericalServiceClient.html","topicUid":"numerical.NumericalService.NumericalServiceClient","type":"Class"},{"name":"UniversalNcReflection","href":"numerical.UniversalNcReflection.html","topicHref":"numerical.UniversalNcReflection.html","topicUid":"numerical.UniversalNcReflection","type":"Class"},{"name":"UniversalNcService","href":"numerical.UniversalNcService.html","topicHref":"numerical.UniversalNcService.html","topicUid":"numerical.UniversalNcService","type":"Class"},{"name":"UniversalNcService.UniversalNcServiceBase","href":"numerical.UniversalNcService.UniversalNcServiceBase.html","topicHref":"numerical.UniversalNcService.UniversalNcServiceBase.html","topicUid":"numerical.UniversalNcService.UniversalNcServiceBase","type":"Class"},{"name":"UniversalNcService.UniversalNcServiceClient","href":"numerical.UniversalNcService.UniversalNcServiceClient.html","topicHref":"numerical.UniversalNcService.UniversalNcServiceClient.html","topicUid":"numerical.UniversalNcService.UniversalNcServiceClient","type":"Class"}]}],"memberLayout":"SamePage"} +{"items":[{"name":"Hi.Cbtr","href":"Hi.Cbtr.html","topicHref":"Hi.Cbtr.html","topicUid":"Hi.Cbtr","type":"Namespace","items":[{"name":"CachedTris","href":"Hi.Cbtr.CachedTris.html","topicHref":"Hi.Cbtr.CachedTris.html","topicUid":"Hi.Cbtr.CachedTris","type":"Class"},{"name":"CachedTris.SweepingMode","href":"Hi.Cbtr.CachedTris.SweepingMode.html","topicHref":"Hi.Cbtr.CachedTris.SweepingMode.html","topicUid":"Hi.Cbtr.CachedTris.SweepingMode","type":"Enum"},{"name":"CbtrPickable","href":"Hi.Cbtr.CbtrPickable.html","topicHref":"Hi.Cbtr.CbtrPickable.html","topicUid":"Hi.Cbtr.CbtrPickable","type":"Class"},{"name":"CubeTree","href":"Hi.Cbtr.CubeTree.html","topicHref":"Hi.Cbtr.CubeTree.html","topicUid":"Hi.Cbtr.CubeTree","type":"Class"},{"name":"CubeTree.diff_response_func_t","href":"Hi.Cbtr.CubeTree.diff_response_func_t.html","topicHref":"Hi.Cbtr.CubeTree.diff_response_func_t.html","topicUid":"Hi.Cbtr.CubeTree.diff_response_func_t","type":"Delegate"},{"name":"CubeTreeFile","href":"Hi.Cbtr.CubeTreeFile.html","topicHref":"Hi.Cbtr.CubeTreeFile.html","topicUid":"Hi.Cbtr.CubeTreeFile","type":"Class"},{"name":"DiffAttachment","href":"Hi.Cbtr.DiffAttachment.html","topicHref":"Hi.Cbtr.DiffAttachment.html","topicUid":"Hi.Cbtr.DiffAttachment","type":"Class"},{"name":"GeomBoolCache","href":"Hi.Cbtr.GeomBoolCache.html","topicHref":"Hi.Cbtr.GeomBoolCache.html","topicUid":"Hi.Cbtr.GeomBoolCache","type":"Class"},{"name":"GeomBoolCacheEnum","href":"Hi.Cbtr.GeomBoolCacheEnum.html","topicHref":"Hi.Cbtr.GeomBoolCacheEnum.html","topicUid":"Hi.Cbtr.GeomBoolCacheEnum","type":"Enum"},{"name":"IGetInitStickConvex","href":"Hi.Cbtr.IGetInitStickConvex.html","topicHref":"Hi.Cbtr.IGetInitStickConvex.html","topicUid":"Hi.Cbtr.IGetInitStickConvex","type":"Interface"},{"name":"InitStickConvex","href":"Hi.Cbtr.InitStickConvex.html","topicHref":"Hi.Cbtr.InitStickConvex.html","topicUid":"Hi.Cbtr.InitStickConvex","type":"Class"},{"name":"LsStl","href":"Hi.Cbtr.LsStl.html","topicHref":"Hi.Cbtr.LsStl.html","topicUid":"Hi.Cbtr.LsStl","type":"Class"},{"name":"Substraction","href":"Hi.Cbtr.Substraction.html","topicHref":"Hi.Cbtr.Substraction.html","topicUid":"Hi.Cbtr.Substraction","type":"Class"},{"name":"UnhighlightablePickable","href":"Hi.Cbtr.UnhighlightablePickable.html","topicHref":"Hi.Cbtr.UnhighlightablePickable.html","topicUid":"Hi.Cbtr.UnhighlightablePickable","type":"Class"},{"name":"UnmanagedSubstraction","href":"Hi.Cbtr.UnmanagedSubstraction.html","topicHref":"Hi.Cbtr.UnmanagedSubstraction.html","topicUid":"Hi.Cbtr.UnmanagedSubstraction","type":"Class"},{"name":"node_diff_t","href":"Hi.Cbtr.node_diff_t.html","topicHref":"Hi.Cbtr.node_diff_t.html","topicUid":"Hi.Cbtr.node_diff_t","type":"Struct"}]},{"name":"Hi.Collision","href":"Hi.Collision.html","topicHref":"Hi.Collision.html","topicUid":"Hi.Collision","type":"Namespace","items":[{"name":"AnchoredCollidableLeaf","href":"Hi.Collision.AnchoredCollidableLeaf.html","topicHref":"Hi.Collision.AnchoredCollidableLeaf.html","topicUid":"Hi.Collision.AnchoredCollidableLeaf","type":"Class"},{"name":"AnchoredCollidablePair","href":"Hi.Collision.AnchoredCollidablePair.html","topicHref":"Hi.Collision.AnchoredCollidablePair.html","topicUid":"Hi.Collision.AnchoredCollidablePair","type":"Class"},{"name":"CollidableStl","href":"Hi.Collision.CollidableStl.html","topicHref":"Hi.Collision.CollidableStl.html","topicUid":"Hi.Collision.CollidableStl","type":"Class"},{"name":"CollisionFlag","href":"Hi.Collision.CollisionFlag.html","topicHref":"Hi.Collision.CollisionFlag.html","topicUid":"Hi.Collision.CollisionFlag","type":"Enum"},{"name":"CollisionIndexPair","href":"Hi.Collision.CollisionIndexPair.html","topicHref":"Hi.Collision.CollisionIndexPair.html","topicUid":"Hi.Collision.CollisionIndexPair","type":"Class"},{"name":"CollisionUtil","href":"Hi.Collision.CollisionUtil.html","topicHref":"Hi.Collision.CollisionUtil.html","topicUid":"Hi.Collision.CollisionUtil","type":"Class"},{"name":"FuncAnchoredCollidable","href":"Hi.Collision.FuncAnchoredCollidable.html","topicHref":"Hi.Collision.FuncAnchoredCollidable.html","topicUid":"Hi.Collision.FuncAnchoredCollidable","type":"Class"},{"name":"IAnchoredCollidableBased","href":"Hi.Collision.IAnchoredCollidableBased.html","topicHref":"Hi.Collision.IAnchoredCollidableBased.html","topicUid":"Hi.Collision.IAnchoredCollidableBased","type":"Interface"},{"name":"IAnchoredCollidableLeaf","href":"Hi.Collision.IAnchoredCollidableLeaf.html","topicHref":"Hi.Collision.IAnchoredCollidableLeaf.html","topicUid":"Hi.Collision.IAnchoredCollidableLeaf","type":"Interface"},{"name":"IAnchoredCollidableNode","href":"Hi.Collision.IAnchoredCollidableNode.html","topicHref":"Hi.Collision.IAnchoredCollidableNode.html","topicUid":"Hi.Collision.IAnchoredCollidableNode","type":"Interface"},{"name":"IAnchoredCollidableStem","href":"Hi.Collision.IAnchoredCollidableStem.html","topicHref":"Hi.Collision.IAnchoredCollidableStem.html","topicUid":"Hi.Collision.IAnchoredCollidableStem","type":"Interface"},{"name":"ICollidable","href":"Hi.Collision.ICollidable.html","topicHref":"Hi.Collision.ICollidable.html","topicUid":"Hi.Collision.ICollidable","type":"Interface"},{"name":"ICollidee","href":"Hi.Collision.ICollidee.html","topicHref":"Hi.Collision.ICollidee.html","topicUid":"Hi.Collision.ICollidee","type":"Interface"},{"name":"ICollisionArena","href":"Hi.Collision.ICollisionArena.html","topicHref":"Hi.Collision.ICollisionArena.html","topicUid":"Hi.Collision.ICollisionArena","type":"Interface"},{"name":"ICollisionIndex","href":"Hi.Collision.ICollisionIndex.html","topicHref":"Hi.Collision.ICollisionIndex.html","topicUid":"Hi.Collision.ICollisionIndex","type":"Interface"},{"name":"IGetAnchoredCollidablePairs","href":"Hi.Collision.IGetAnchoredCollidablePairs.html","topicHref":"Hi.Collision.IGetAnchoredCollidablePairs.html","topicUid":"Hi.Collision.IGetAnchoredCollidablePairs","type":"Interface"},{"name":"IGetCollidable","href":"Hi.Collision.IGetCollidable.html","topicHref":"Hi.Collision.IGetCollidable.html","topicUid":"Hi.Collision.IGetCollidable","type":"Interface"},{"name":"IGetCollisionIndexPairs","href":"Hi.Collision.IGetCollisionIndexPairs.html","topicHref":"Hi.Collision.IGetCollisionIndexPairs.html","topicUid":"Hi.Collision.IGetCollisionIndexPairs","type":"Interface"},{"name":"IGetDefaultCollidablePairs","href":"Hi.Collision.IGetDefaultCollidablePairs.html","topicHref":"Hi.Collision.IGetDefaultCollidablePairs.html","topicUid":"Hi.Collision.IGetDefaultCollidablePairs","type":"Interface"},{"name":"IGetTriTree","href":"Hi.Collision.IGetTriTree.html","topicHref":"Hi.Collision.IGetTriTree.html","topicUid":"Hi.Collision.IGetTriTree","type":"Interface"},{"name":"MechCollisionResult","href":"Hi.Collision.MechCollisionResult.html","topicHref":"Hi.Collision.MechCollisionResult.html","topicUid":"Hi.Collision.MechCollisionResult","type":"Class"},{"name":"MechCollisionUtil","href":"Hi.Collision.MechCollisionUtil.html","topicHref":"Hi.Collision.MechCollisionUtil.html","topicUid":"Hi.Collision.MechCollisionUtil","type":"Class"},{"name":"TriTree","href":"Hi.Collision.TriTree.html","topicHref":"Hi.Collision.TriTree.html","topicUid":"Hi.Collision.TriTree","type":"Class"}]},{"name":"Hi.Collisions","href":"Hi.Collisions.html","topicHref":"Hi.Collisions.html","topicUid":"Hi.Collisions","type":"Namespace","items":[{"name":"AnchoredCollidabled","href":"Hi.Collisions.AnchoredCollidabled.html","topicHref":"Hi.Collisions.AnchoredCollidabled.html","topicUid":"Hi.Collisions.AnchoredCollidabled","type":"Class"},{"name":"IAnchoredCollidabled","href":"Hi.Collisions.IAnchoredCollidabled.html","topicHref":"Hi.Collisions.IAnchoredCollidabled.html","topicUid":"Hi.Collisions.IAnchoredCollidabled","type":"Interface"}]},{"name":"Hi.Coloring","href":"Hi.Coloring.html","topicHref":"Hi.Coloring.html","topicUid":"Hi.Coloring","type":"Namespace","items":[{"name":"ColorUtil","href":"Hi.Coloring.ColorUtil.html","topicHref":"Hi.Coloring.ColorUtil.html","topicUid":"Hi.Coloring.ColorUtil","type":"Class"},{"name":"DictionaryColorGuide","href":"Hi.Coloring.DictionaryColorGuide.html","topicHref":"Hi.Coloring.DictionaryColorGuide.html","topicUid":"Hi.Coloring.DictionaryColorGuide","type":"Class"},{"name":"DiscreteQuantityColorGuide","href":"Hi.Coloring.DiscreteQuantityColorGuide.html","topicHref":"Hi.Coloring.DiscreteQuantityColorGuide.html","topicUid":"Hi.Coloring.DiscreteQuantityColorGuide","type":"Class"},{"name":"FilteredColorGuide","href":"Hi.Coloring.FilteredColorGuide.html","topicHref":"Hi.Coloring.FilteredColorGuide.html","topicUid":"Hi.Coloring.FilteredColorGuide","type":"Class"},{"name":"FuncRangeColorGuide","href":"Hi.Coloring.FuncRangeColorGuide.html","topicHref":"Hi.Coloring.FuncRangeColorGuide.html","topicUid":"Hi.Coloring.FuncRangeColorGuide","type":"Class"},{"name":"IColorGuide","href":"Hi.Coloring.IColorGuide.html","topicHref":"Hi.Coloring.IColorGuide.html","topicUid":"Hi.Coloring.IColorGuide","type":"Interface"},{"name":"IColorGuideProperty","href":"Hi.Coloring.IColorGuideProperty.html","topicHref":"Hi.Coloring.IColorGuideProperty.html","topicUid":"Hi.Coloring.IColorGuideProperty","type":"Interface"},{"name":"IGetColorGuide","href":"Hi.Coloring.IGetColorGuide.html","topicHref":"Hi.Coloring.IGetColorGuide.html","topicUid":"Hi.Coloring.IGetColorGuide","type":"Interface"},{"name":"IGetRangeColorRule","href":"Hi.Coloring.IGetRangeColorRule.html","topicHref":"Hi.Coloring.IGetRangeColorRule.html","topicUid":"Hi.Coloring.IGetRangeColorRule","type":"Interface"},{"name":"IGetRgb","href":"Hi.Coloring.IGetRgb.html","topicHref":"Hi.Coloring.IGetRgb.html","topicUid":"Hi.Coloring.IGetRgb","type":"Interface"},{"name":"IGetRgbWithPriority","href":"Hi.Coloring.IGetRgbWithPriority.html","topicHref":"Hi.Coloring.IGetRgbWithPriority.html","topicUid":"Hi.Coloring.IGetRgbWithPriority","type":"Interface"},{"name":"PlainColorGuide","href":"Hi.Coloring.PlainColorGuide.html","topicHref":"Hi.Coloring.PlainColorGuide.html","topicUid":"Hi.Coloring.PlainColorGuide","type":"Class"},{"name":"QuantityColorGuide","href":"Hi.Coloring.QuantityColorGuide.html","topicHref":"Hi.Coloring.QuantityColorGuide.html","topicUid":"Hi.Coloring.QuantityColorGuide","type":"Class"},{"name":"RangeColorRule","href":"Hi.Coloring.RangeColorRule.html","topicHref":"Hi.Coloring.RangeColorRule.html","topicUid":"Hi.Coloring.RangeColorRule","type":"Class"},{"name":"RatioRgbFuncEnum","href":"Hi.Coloring.RatioRgbFuncEnum.html","topicHref":"Hi.Coloring.RatioRgbFuncEnum.html","topicUid":"Hi.Coloring.RatioRgbFuncEnum","type":"Enum"},{"name":"RgbSeed","href":"Hi.Coloring.RgbSeed.html","topicHref":"Hi.Coloring.RgbSeed.html","topicUid":"Hi.Coloring.RgbSeed","type":"Class"}]},{"name":"Hi.Common","href":"Hi.Common.html","topicHref":"Hi.Common.html","topicUid":"Hi.Common","type":"Namespace","items":[{"name":"BinIoUtil","href":"Hi.Common.BinIoUtil.html","topicHref":"Hi.Common.BinIoUtil.html","topicUid":"Hi.Common.BinIoUtil","type":"Class"},{"name":"BinarySearchResult","href":"Hi.Common.BinarySearchResult.html","topicHref":"Hi.Common.BinarySearchResult.html","topicUid":"Hi.Common.BinarySearchResult","type":"Enum"},{"name":"BitUtil","href":"Hi.Common.BitUtil.html","topicHref":"Hi.Common.BitUtil.html","topicUid":"Hi.Common.BitUtil","type":"Class"},{"name":"BlockingTimer","href":"Hi.Common.BlockingTimer.html","topicHref":"Hi.Common.BlockingTimer.html","topicUid":"Hi.Common.BlockingTimer","type":"Class"},{"name":"BytesUtil","href":"Hi.Common.BytesUtil.html","topicHref":"Hi.Common.BytesUtil.html","topicUid":"Hi.Common.BytesUtil","type":"Class"},{"name":"ConcurrentTimeCounter","href":"Hi.Common.ConcurrentTimeCounter.html","topicHref":"Hi.Common.ConcurrentTimeCounter.html","topicUid":"Hi.Common.ConcurrentTimeCounter","type":"Class"},{"name":"ConsoleUtil","href":"Hi.Common.ConsoleUtil.html","topicHref":"Hi.Common.ConsoleUtil.html","topicUid":"Hi.Common.ConsoleUtil","type":"Class"},{"name":"CppLogUtil","href":"Hi.Common.CppLogUtil.html","topicHref":"Hi.Common.CppLogUtil.html","topicUid":"Hi.Common.CppLogUtil","type":"Class"},{"name":"CppLogUtil.LogDelegate","href":"Hi.Common.CppLogUtil.LogDelegate.html","topicHref":"Hi.Common.CppLogUtil.LogDelegate.html","topicUid":"Hi.Common.CppLogUtil.LogDelegate","type":"Delegate"},{"name":"CultureUtil","href":"Hi.Common.CultureUtil.html","topicHref":"Hi.Common.CultureUtil.html","topicUid":"Hi.Common.CultureUtil","type":"Class"},{"name":"DebugUtil","href":"Hi.Common.DebugUtil.html","topicHref":"Hi.Common.DebugUtil.html","topicUid":"Hi.Common.DebugUtil","type":"Class"},{"name":"DuplicateUtil","href":"Hi.Common.DuplicateUtil.html","topicHref":"Hi.Common.DuplicateUtil.html","topicUid":"Hi.Common.DuplicateUtil","type":"Class"},{"name":"EnumUtil","href":"Hi.Common.EnumUtil.html","topicHref":"Hi.Common.EnumUtil.html","topicUid":"Hi.Common.EnumUtil","type":"Class"},{"name":"EnumerablePlayer","href":"Hi.Common.EnumerablePlayer.html","topicHref":"Hi.Common.EnumerablePlayer.html","topicUid":"Hi.Common.EnumerablePlayer","type":"Class"},{"name":"ExceptionUtil","href":"Hi.Common.ExceptionUtil.html","topicHref":"Hi.Common.ExceptionUtil.html","topicUid":"Hi.Common.ExceptionUtil","type":"Class"},{"name":"IAbstractNote","href":"Hi.Common.IAbstractNote.html","topicHref":"Hi.Common.IAbstractNote.html","topicUid":"Hi.Common.IAbstractNote","type":"Interface"},{"name":"IBinaryIo","href":"Hi.Common.IBinaryIo.html","topicHref":"Hi.Common.IBinaryIo.html","topicUid":"Hi.Common.IBinaryIo","type":"Interface"},{"name":"IClearCache","href":"Hi.Common.IClearCache.html","topicHref":"Hi.Common.IClearCache.html","topicUid":"Hi.Common.IClearCache","type":"Interface"},{"name":"IDuplicate","href":"Hi.Common.IDuplicate.html","topicHref":"Hi.Common.IDuplicate.html","topicUid":"Hi.Common.IDuplicate","type":"Interface"},{"name":"IGetQuantityByKey","href":"Hi.Common.IGetQuantityByKey.html","topicHref":"Hi.Common.IGetQuantityByKey.html","topicUid":"Hi.Common.IGetQuantityByKey","type":"Interface"},{"name":"IGetSelectionName","href":"Hi.Common.IGetSelectionName.html","topicHref":"Hi.Common.IGetSelectionName.html","topicUid":"Hi.Common.IGetSelectionName","type":"Interface"},{"name":"INameNote","href":"Hi.Common.INameNote.html","topicHref":"Hi.Common.INameNote.html","topicUid":"Hi.Common.INameNote","type":"Interface"},{"name":"IPreferredFileName","href":"Hi.Common.IPreferredFileName.html","topicHref":"Hi.Common.IPreferredFileName.html","topicUid":"Hi.Common.IPreferredFileName","type":"Interface"},{"name":"ISourceFile","href":"Hi.Common.ISourceFile.html","topicHref":"Hi.Common.ISourceFile.html","topicUid":"Hi.Common.ISourceFile","type":"Interface"},{"name":"IUpdateByContent","href":"Hi.Common.IUpdateByContent.html","topicHref":"Hi.Common.IUpdateByContent.html","topicUid":"Hi.Common.IUpdateByContent","type":"Interface"},{"name":"IUriGetter","href":"Hi.Common.IUriGetter.html","topicHref":"Hi.Common.IUriGetter.html","topicUid":"Hi.Common.IUriGetter","type":"Interface"},{"name":"IWriteBin","href":"Hi.Common.IWriteBin.html","topicHref":"Hi.Common.IWriteBin.html","topicUid":"Hi.Common.IWriteBin","type":"Interface"},{"name":"IndexSegment","href":"Hi.Common.IndexSegment.html","topicHref":"Hi.Common.IndexSegment.html","topicUid":"Hi.Common.IndexSegment","type":"Class"},{"name":"IntegerKeyDictionaryConverter","href":"Hi.Common.IntegerKeyDictionaryConverter.html","topicHref":"Hi.Common.IntegerKeyDictionaryConverter.html","topicUid":"Hi.Common.IntegerKeyDictionaryConverter","type":"Class"},{"name":"IntegerKeyDictionaryConverter","href":"Hi.Common.IntegerKeyDictionaryConverter-1.html","topicHref":"Hi.Common.IntegerKeyDictionaryConverter-1.html","topicUid":"Hi.Common.IntegerKeyDictionaryConverter`1","type":"Class"},{"name":"InternalException","href":"Hi.Common.InternalException.html","topicHref":"Hi.Common.InternalException.html","topicUid":"Hi.Common.InternalException","type":"Class"},{"name":"InvokeUtil","href":"Hi.Common.InvokeUtil.html","topicHref":"Hi.Common.InvokeUtil.html","topicUid":"Hi.Common.InvokeUtil","type":"Class"},{"name":"JsonUtil","href":"Hi.Common.JsonUtil.html","topicHref":"Hi.Common.JsonUtil.html","topicUid":"Hi.Common.JsonUtil","type":"Class"},{"name":"LooseRunner","href":"Hi.Common.LooseRunner.html","topicHref":"Hi.Common.LooseRunner.html","topicUid":"Hi.Common.LooseRunner","type":"Class"},{"name":"LooseRunner.MergedCancellationTokenRun","href":"Hi.Common.LooseRunner.MergedCancellationTokenRun.html","topicHref":"Hi.Common.LooseRunner.MergedCancellationTokenRun.html","topicUid":"Hi.Common.LooseRunner.MergedCancellationTokenRun","type":"Delegate"},{"name":"ManualUtil","href":"Hi.Common.ManualUtil.html","topicHref":"Hi.Common.ManualUtil.html","topicUid":"Hi.Common.ManualUtil","type":"Class"},{"name":"MaskUtil","href":"Hi.Common.MaskUtil.html","topicHref":"Hi.Common.MaskUtil.html","topicUid":"Hi.Common.MaskUtil","type":"Class"},{"name":"NameUtil","href":"Hi.Common.NameUtil.html","topicHref":"Hi.Common.NameUtil.html","topicUid":"Hi.Common.NameUtil","type":"Class"},{"name":"PacePlayee","href":"Hi.Common.PacePlayee.html","topicHref":"Hi.Common.PacePlayee.html","topicUid":"Hi.Common.PacePlayee","type":"Class"},{"name":"PacePlayer","href":"Hi.Common.PacePlayer.html","topicHref":"Hi.Common.PacePlayer.html","topicUid":"Hi.Common.PacePlayer","type":"Class"},{"name":"Pair","href":"Hi.Common.Pair-2.html","topicHref":"Hi.Common.Pair-2.html","topicUid":"Hi.Common.Pair`2","type":"Class"},{"name":"Range","href":"Hi.Common.Range-1.html","topicHref":"Hi.Common.Range-1.html","topicUid":"Hi.Common.Range`1","type":"Class"},{"name":"ResourceUtil","href":"Hi.Common.ResourceUtil.html","topicHref":"Hi.Common.ResourceUtil.html","topicUid":"Hi.Common.ResourceUtil","type":"Class"},{"name":"RoutineBlocker","href":"Hi.Common.RoutineBlocker.html","topicHref":"Hi.Common.RoutineBlocker.html","topicUid":"Hi.Common.RoutineBlocker","type":"Class"},{"name":"RoutineBlocker0","href":"Hi.Common.RoutineBlocker0.html","topicHref":"Hi.Common.RoutineBlocker0.html","topicUid":"Hi.Common.RoutineBlocker0","type":"Class"},{"name":"SeqPairUtil","href":"Hi.Common.SeqPairUtil.html","topicHref":"Hi.Common.SeqPairUtil.html","topicUid":"Hi.Common.SeqPairUtil","type":"Class"},{"name":"SeqPair","href":"Hi.Common.SeqPair-1.html","topicHref":"Hi.Common.SeqPair-1.html","topicUid":"Hi.Common.SeqPair`1","type":"Class"},{"name":"ServerFileExplorerConfig","href":"Hi.Common.ServerFileExplorerConfig.html","topicHref":"Hi.Common.ServerFileExplorerConfig.html","topicUid":"Hi.Common.ServerFileExplorerConfig","type":"Class"},{"name":"Slice","href":"Hi.Common.Slice.html","topicHref":"Hi.Common.Slice.html","topicUid":"Hi.Common.Slice","type":"Class"},{"name":"StringLocalizer","href":"Hi.Common.StringLocalizer.html","topicHref":"Hi.Common.StringLocalizer.html","topicUid":"Hi.Common.StringLocalizer","type":"Class"},{"name":"StringUtil","href":"Hi.Common.StringUtil.html","topicHref":"Hi.Common.StringUtil.html","topicUid":"Hi.Common.StringUtil","type":"Class"},{"name":"TaskUtil","href":"Hi.Common.TaskUtil.html","topicHref":"Hi.Common.TaskUtil.html","topicUid":"Hi.Common.TaskUtil","type":"Class"},{"name":"TimeCounter","href":"Hi.Common.TimeCounter.html","topicHref":"Hi.Common.TimeCounter.html","topicUid":"Hi.Common.TimeCounter","type":"Class"}]},{"name":"Hi.Common.Collections","href":"Hi.Common.Collections.html","topicHref":"Hi.Common.Collections.html","topicUid":"Hi.Common.Collections","type":"Namespace","items":[{"name":"DictionaryUtil","href":"Hi.Common.Collections.DictionaryUtil.html","topicHref":"Hi.Common.Collections.DictionaryUtil.html","topicUid":"Hi.Common.Collections.DictionaryUtil","type":"Class"},{"name":"EnumerableUtil","href":"Hi.Common.Collections.EnumerableUtil.html","topicHref":"Hi.Common.Collections.EnumerableUtil.html","topicUid":"Hi.Common.Collections.EnumerableUtil","type":"Class"},{"name":"FixedSizeConcurrentLinkedListUtil","href":"Hi.Common.Collections.FixedSizeConcurrentLinkedListUtil.html","topicHref":"Hi.Common.Collections.FixedSizeConcurrentLinkedListUtil.html","topicUid":"Hi.Common.Collections.FixedSizeConcurrentLinkedListUtil","type":"Class"},{"name":"ListIndexBasedEnumerable","href":"Hi.Common.Collections.ListIndexBasedEnumerable-1.html","topicHref":"Hi.Common.Collections.ListIndexBasedEnumerable-1.html","topicUid":"Hi.Common.Collections.ListIndexBasedEnumerable`1","type":"Class"},{"name":"ListIndexBasedIEnumerator","href":"Hi.Common.Collections.ListIndexBasedIEnumerator-1.html","topicHref":"Hi.Common.Collections.ListIndexBasedIEnumerator-1.html","topicUid":"Hi.Common.Collections.ListIndexBasedIEnumerator`1","type":"Class"},{"name":"ListUtil","href":"Hi.Common.Collections.ListUtil.html","topicHref":"Hi.Common.Collections.ListUtil.html","topicUid":"Hi.Common.Collections.ListUtil","type":"Class"},{"name":"ListUtil.OuterPolationMode","href":"Hi.Common.Collections.ListUtil.OuterPolationMode.html","topicHref":"Hi.Common.Collections.ListUtil.OuterPolationMode.html","topicUid":"Hi.Common.Collections.ListUtil.OuterPolationMode","type":"Enum"},{"name":"SortedListUtil","href":"Hi.Common.Collections.SortedListUtil.html","topicHref":"Hi.Common.Collections.SortedListUtil.html","topicUid":"Hi.Common.Collections.SortedListUtil","type":"Class"},{"name":"SortedListUtil.SearchMethod","href":"Hi.Common.Collections.SortedListUtil.SearchMethod.html","topicHref":"Hi.Common.Collections.SortedListUtil.SearchMethod.html","topicUid":"Hi.Common.Collections.SortedListUtil.SearchMethod","type":"Enum"},{"name":"SortedListUtil.SeekDirection","href":"Hi.Common.Collections.SortedListUtil.SeekDirection.html","topicHref":"Hi.Common.Collections.SortedListUtil.SeekDirection.html","topicUid":"Hi.Common.Collections.SortedListUtil.SeekDirection","type":"Enum"},{"name":"SynList","href":"Hi.Common.Collections.SynList-1.html","topicHref":"Hi.Common.Collections.SynList-1.html","topicUid":"Hi.Common.Collections.SynList`1","type":"Class"}]},{"name":"Hi.Common.CsvUtils","href":"Hi.Common.CsvUtils.html","topicHref":"Hi.Common.CsvUtils.html","topicUid":"Hi.Common.CsvUtils","type":"Namespace","items":[{"name":"CsvInputKit","href":"Hi.Common.CsvUtils.CsvInputKit.html","topicHref":"Hi.Common.CsvUtils.CsvInputKit.html","topicUid":"Hi.Common.CsvUtils.CsvInputKit","type":"Class"},{"name":"CsvOutputKit","href":"Hi.Common.CsvUtils.CsvOutputKit.html","topicHref":"Hi.Common.CsvUtils.CsvOutputKit.html","topicUid":"Hi.Common.CsvUtils.CsvOutputKit","type":"Class"},{"name":"CsvUtil","href":"Hi.Common.CsvUtils.CsvUtil.html","topicHref":"Hi.Common.CsvUtils.CsvUtil.html","topicUid":"Hi.Common.CsvUtils.CsvUtil","type":"Class"},{"name":"ICsvRowIo","href":"Hi.Common.CsvUtils.ICsvRowIo.html","topicHref":"Hi.Common.CsvUtils.ICsvRowIo.html","topicUid":"Hi.Common.CsvUtils.ICsvRowIo","type":"Interface"},{"name":"IGetCsvDictionary","href":"Hi.Common.CsvUtils.IGetCsvDictionary.html","topicHref":"Hi.Common.CsvUtils.IGetCsvDictionary.html","topicUid":"Hi.Common.CsvUtils.IGetCsvDictionary","type":"Interface"}]},{"name":"Hi.Common.FileLines","href":"Hi.Common.FileLines.html","topicHref":"Hi.Common.FileLines.html","topicUid":"Hi.Common.FileLines","type":"Namespace","items":[{"name":"FileBeginEventArgs","href":"Hi.Common.FileLines.FileBeginEventArgs.html","topicHref":"Hi.Common.FileLines.FileBeginEventArgs.html","topicUid":"Hi.Common.FileLines.FileBeginEventArgs","type":"Class"},{"name":"FileEndEventArgs","href":"Hi.Common.FileLines.FileEndEventArgs.html","topicHref":"Hi.Common.FileLines.FileEndEventArgs.html","topicUid":"Hi.Common.FileLines.FileEndEventArgs","type":"Class"},{"name":"FileLineIndex","href":"Hi.Common.FileLines.FileLineIndex.html","topicHref":"Hi.Common.FileLines.FileLineIndex.html","topicUid":"Hi.Common.FileLines.FileLineIndex","type":"Class"},{"name":"FileLinePipingKit","href":"Hi.Common.FileLines.FileLinePipingKit.html","topicHref":"Hi.Common.FileLines.FileLinePipingKit.html","topicUid":"Hi.Common.FileLines.FileLinePipingKit","type":"Class"},{"name":"FileLineUtil","href":"Hi.Common.FileLines.FileLineUtil.html","topicHref":"Hi.Common.FileLines.FileLineUtil.html","topicUid":"Hi.Common.FileLines.FileLineUtil","type":"Class"},{"name":"FileUtil","href":"Hi.Common.FileLines.FileUtil.html","topicHref":"Hi.Common.FileLines.FileUtil.html","topicUid":"Hi.Common.FileLines.FileUtil","type":"Class"},{"name":"IFileChangedEventSupport","href":"Hi.Common.FileLines.IFileChangedEventSupport.html","topicHref":"Hi.Common.FileLines.IFileChangedEventSupport.html","topicUid":"Hi.Common.FileLines.IFileChangedEventSupport","type":"Interface"},{"name":"IFileLine","href":"Hi.Common.FileLines.IFileLine.html","topicHref":"Hi.Common.FileLines.IFileLine.html","topicUid":"Hi.Common.FileLines.IFileLine","type":"Interface"},{"name":"IFileLineIndex","href":"Hi.Common.FileLines.IFileLineIndex.html","topicHref":"Hi.Common.FileLines.IFileLineIndex.html","topicUid":"Hi.Common.FileLines.IFileLineIndex","type":"Interface"},{"name":"IGetFileLineIndex","href":"Hi.Common.FileLines.IGetFileLineIndex.html","topicHref":"Hi.Common.FileLines.IGetFileLineIndex.html","topicUid":"Hi.Common.FileLines.IGetFileLineIndex","type":"Interface"},{"name":"IGetIndexedFileLine","href":"Hi.Common.FileLines.IGetIndexedFileLine.html","topicHref":"Hi.Common.FileLines.IGetIndexedFileLine.html","topicUid":"Hi.Common.FileLines.IGetIndexedFileLine","type":"Interface"},{"name":"IIndexedFileLine","href":"Hi.Common.FileLines.IIndexedFileLine.html","topicHref":"Hi.Common.FileLines.IIndexedFileLine.html","topicUid":"Hi.Common.FileLines.IIndexedFileLine","type":"Interface"},{"name":"ILineChangedEventSupport","href":"Hi.Common.FileLines.ILineChangedEventSupport.html","topicHref":"Hi.Common.FileLines.ILineChangedEventSupport.html","topicUid":"Hi.Common.FileLines.ILineChangedEventSupport","type":"Interface"},{"name":"IndexedFile","href":"Hi.Common.FileLines.IndexedFile.html","topicHref":"Hi.Common.FileLines.IndexedFile.html","topicUid":"Hi.Common.FileLines.IndexedFile","type":"Class"},{"name":"IndexedFileLine","href":"Hi.Common.FileLines.IndexedFileLine.html","topicHref":"Hi.Common.FileLines.IndexedFileLine.html","topicUid":"Hi.Common.FileLines.IndexedFileLine","type":"Class"},{"name":"LineBeginEventArgs","href":"Hi.Common.FileLines.LineBeginEventArgs.html","topicHref":"Hi.Common.FileLines.LineBeginEventArgs.html","topicUid":"Hi.Common.FileLines.LineBeginEventArgs","type":"Class"},{"name":"LineEndEventArgs","href":"Hi.Common.FileLines.LineEndEventArgs.html","topicHref":"Hi.Common.FileLines.LineEndEventArgs.html","topicUid":"Hi.Common.FileLines.LineEndEventArgs","type":"Class"}]},{"name":"Hi.Common.Messages","href":"Hi.Common.Messages.html","topicHref":"Hi.Common.Messages.html","topicUid":"Hi.Common.Messages","type":"Namespace","items":[{"name":"BootstrapTheme","href":"Hi.Common.Messages.BootstrapTheme.html","topicHref":"Hi.Common.Messages.BootstrapTheme.html","topicUid":"Hi.Common.Messages.BootstrapTheme","type":"Enum"},{"name":"IMessageHost","href":"Hi.Common.Messages.IMessageHost.html","topicHref":"Hi.Common.Messages.IMessageHost.html","topicUid":"Hi.Common.Messages.IMessageHost","type":"Interface"},{"name":"MessageBoardUtil","href":"Hi.Common.Messages.MessageBoardUtil.html","topicHref":"Hi.Common.Messages.MessageBoardUtil.html","topicUid":"Hi.Common.Messages.MessageBoardUtil","type":"Class"},{"name":"MessageFlag","href":"Hi.Common.Messages.MessageFlag.html","topicHref":"Hi.Common.Messages.MessageFlag.html","topicUid":"Hi.Common.Messages.MessageFlag","type":"Enum"},{"name":"MessageHost","href":"Hi.Common.Messages.MessageHost.html","topicHref":"Hi.Common.Messages.MessageHost.html","topicUid":"Hi.Common.Messages.MessageHost","type":"Class"},{"name":"MessageHostUtil","href":"Hi.Common.Messages.MessageHostUtil.html","topicHref":"Hi.Common.Messages.MessageHostUtil.html","topicUid":"Hi.Common.Messages.MessageHostUtil","type":"Class"},{"name":"MultiTagMessage","href":"Hi.Common.Messages.MultiTagMessage.html","topicHref":"Hi.Common.Messages.MultiTagMessage.html","topicUid":"Hi.Common.Messages.MultiTagMessage","type":"Class"},{"name":"ShowMessageBoardDelegate","href":"Hi.Common.Messages.ShowMessageBoardDelegate.html","topicHref":"Hi.Common.Messages.ShowMessageBoardDelegate.html","topicUid":"Hi.Common.Messages.ShowMessageBoardDelegate","type":"Delegate"}]},{"name":"Hi.Common.MinMaxUtils","href":"Hi.Common.MinMaxUtils.html","topicHref":"Hi.Common.MinMaxUtils.html","topicUid":"Hi.Common.MinMaxUtils","type":"Namespace","items":[{"name":"IndexedMinMaxPos","href":"Hi.Common.MinMaxUtils.IndexedMinMaxPos-2.html","topicHref":"Hi.Common.MinMaxUtils.IndexedMinMaxPos-2.html","topicUid":"Hi.Common.MinMaxUtils.IndexedMinMaxPos`2","type":"Class"},{"name":"MinMaxUtil","href":"Hi.Common.MinMaxUtils.MinMaxUtil.html","topicHref":"Hi.Common.MinMaxUtils.MinMaxUtil.html","topicUid":"Hi.Common.MinMaxUtils.MinMaxUtil","type":"Class"}]},{"name":"Hi.Common.NativeProgresses","href":"Hi.Common.NativeProgresses.html","topicHref":"Hi.Common.NativeProgresses.html","topicUid":"Hi.Common.NativeProgresses","type":"Namespace","items":[{"name":"IProgressReport","href":"Hi.Common.NativeProgresses.IProgressReport.html","topicHref":"Hi.Common.NativeProgresses.IProgressReport.html","topicUid":"Hi.Common.NativeProgresses.IProgressReport","type":"Interface"},{"name":"NativeProgressReport","href":"Hi.Common.NativeProgresses.NativeProgressReport.html","topicHref":"Hi.Common.NativeProgresses.NativeProgressReport.html","topicUid":"Hi.Common.NativeProgresses.NativeProgressReport","type":"Class"},{"name":"ProgressReport","href":"Hi.Common.NativeProgresses.ProgressReport.html","topicHref":"Hi.Common.NativeProgresses.ProgressReport.html","topicUid":"Hi.Common.NativeProgresses.ProgressReport","type":"Class"},{"name":"progress_monitor_t","href":"Hi.Common.NativeProgresses.progress_monitor_t.html","topicHref":"Hi.Common.NativeProgresses.progress_monitor_t.html","topicUid":"Hi.Common.NativeProgresses.progress_monitor_t","type":"Struct"},{"name":"report_progress_func_t","href":"Hi.Common.NativeProgresses.report_progress_func_t.html","topicHref":"Hi.Common.NativeProgresses.report_progress_func_t.html","topicUid":"Hi.Common.NativeProgresses.report_progress_func_t","type":"Delegate"}]},{"name":"Hi.Common.ParallelBulkUtils","href":"Hi.Common.ParallelBulkUtils.html","topicHref":"Hi.Common.ParallelBulkUtils.html","topicUid":"Hi.Common.ParallelBulkUtils","type":"Namespace","items":[{"name":"ParallelBulkReader","href":"Hi.Common.ParallelBulkUtils.ParallelBulkReader-1.html","topicHref":"Hi.Common.ParallelBulkUtils.ParallelBulkReader-1.html","topicUid":"Hi.Common.ParallelBulkUtils.ParallelBulkReader`1","type":"Class"},{"name":"ParallelBulkWriter","href":"Hi.Common.ParallelBulkUtils.ParallelBulkWriter-1.html","topicHref":"Hi.Common.ParallelBulkUtils.ParallelBulkWriter-1.html","topicUid":"Hi.Common.ParallelBulkUtils.ParallelBulkWriter`1","type":"Class"},{"name":"ReadBulkDelegate","href":"Hi.Common.ParallelBulkUtils.ReadBulkDelegate-1.html","topicHref":"Hi.Common.ParallelBulkUtils.ReadBulkDelegate-1.html","topicUid":"Hi.Common.ParallelBulkUtils.ReadBulkDelegate`1","type":"Delegate"},{"name":"SequentialBulkReader","href":"Hi.Common.ParallelBulkUtils.SequentialBulkReader-1.html","topicHref":"Hi.Common.ParallelBulkUtils.SequentialBulkReader-1.html","topicUid":"Hi.Common.ParallelBulkUtils.SequentialBulkReader`1","type":"Class"}]},{"name":"Hi.Common.PathUtils","href":"Hi.Common.PathUtils.html","topicHref":"Hi.Common.PathUtils.html","topicUid":"Hi.Common.PathUtils","type":"Namespace","items":[{"name":"ExtendedNamedPath","href":"Hi.Common.PathUtils.ExtendedNamedPath.html","topicHref":"Hi.Common.PathUtils.ExtendedNamedPath.html","topicUid":"Hi.Common.PathUtils.ExtendedNamedPath","type":"Class"},{"name":"HttpUtil","href":"Hi.Common.PathUtils.HttpUtil.html","topicHref":"Hi.Common.PathUtils.HttpUtil.html","topicUid":"Hi.Common.PathUtils.HttpUtil","type":"Class"},{"name":"Lang","href":"Hi.Common.PathUtils.Lang.html","topicHref":"Hi.Common.PathUtils.Lang.html","topicUid":"Hi.Common.PathUtils.Lang","type":"Class"},{"name":"NamedPath","href":"Hi.Common.PathUtils.NamedPath.html","topicHref":"Hi.Common.PathUtils.NamedPath.html","topicUid":"Hi.Common.PathUtils.NamedPath","type":"Class"},{"name":"PathUtil","href":"Hi.Common.PathUtils.PathUtil.html","topicHref":"Hi.Common.PathUtils.PathUtil.html","topicUid":"Hi.Common.PathUtils.PathUtil","type":"Class"}]},{"name":"Hi.Common.QueueCacheUtils","href":"Hi.Common.QueueCacheUtils.html","topicHref":"Hi.Common.QueueCacheUtils.html","topicUid":"Hi.Common.QueueCacheUtils","type":"Namespace","items":[{"name":"QueueCacherHost","href":"Hi.Common.QueueCacheUtils.QueueCacherHost-1.html","topicHref":"Hi.Common.QueueCacheUtils.QueueCacherHost-1.html","topicUid":"Hi.Common.QueueCacheUtils.QueueCacherHost`1","type":"Class"},{"name":"QueueCacher","href":"Hi.Common.QueueCacheUtils.QueueCacher-1.html","topicHref":"Hi.Common.QueueCacheUtils.QueueCacher-1.html","topicUid":"Hi.Common.QueueCacheUtils.QueueCacher`1","type":"Class"}]},{"name":"Hi.Common.XmlUtils","href":"Hi.Common.XmlUtils.html","topicHref":"Hi.Common.XmlUtils.html","topicUid":"Hi.Common.XmlUtils","type":"Namespace","items":[{"name":"GenMode","href":"Hi.Common.XmlUtils.GenMode.html","topicHref":"Hi.Common.XmlUtils.GenMode.html","topicUid":"Hi.Common.XmlUtils.GenMode","type":"Enum"},{"name":"IMakeXmlSource","href":"Hi.Common.XmlUtils.IMakeXmlSource.html","topicHref":"Hi.Common.XmlUtils.IMakeXmlSource.html","topicUid":"Hi.Common.XmlUtils.IMakeXmlSource","type":"Interface"},{"name":"IToXElement","href":"Hi.Common.XmlUtils.IToXElement.html","topicHref":"Hi.Common.XmlUtils.IToXElement.html","topicUid":"Hi.Common.XmlUtils.IToXElement","type":"Interface"},{"name":"SetFileDelegate","href":"Hi.Common.XmlUtils.SetFileDelegate.html","topicHref":"Hi.Common.XmlUtils.SetFileDelegate.html","topicUid":"Hi.Common.XmlUtils.SetFileDelegate","type":"Delegate"},{"name":"XFactory","href":"Hi.Common.XmlUtils.XFactory.html","topicHref":"Hi.Common.XmlUtils.XFactory.html","topicUid":"Hi.Common.XmlUtils.XFactory","type":"Class"},{"name":"XFactory.GenByXElementDelegate","href":"Hi.Common.XmlUtils.XFactory.GenByXElementDelegate.html","topicHref":"Hi.Common.XmlUtils.XFactory.GenByXElementDelegate.html","topicUid":"Hi.Common.XmlUtils.XFactory.GenByXElementDelegate","type":"Delegate"},{"name":"XFactory.XmlExceptionDelegate","href":"Hi.Common.XmlUtils.XFactory.XmlExceptionDelegate.html","topicHref":"Hi.Common.XmlUtils.XFactory.XmlExceptionDelegate.html","topicUid":"Hi.Common.XmlUtils.XFactory.XmlExceptionDelegate","type":"Delegate"},{"name":"XmlSourceAndFile","href":"Hi.Common.XmlUtils.XmlSourceAndFile-1.html","topicHref":"Hi.Common.XmlUtils.XmlSourceAndFile-1.html","topicUid":"Hi.Common.XmlUtils.XmlSourceAndFile`1","type":"Class"},{"name":"XmlUtil","href":"Hi.Common.XmlUtils.XmlUtil.html","topicHref":"Hi.Common.XmlUtils.XmlUtil.html","topicUid":"Hi.Common.XmlUtils.XmlUtil","type":"Class"}]},{"name":"Hi.CutterLocations","href":"Hi.CutterLocations.html","topicHref":"Hi.CutterLocations.html","topicUid":"Hi.CutterLocations","type":"Namespace","items":[{"name":"IGetProgramCl","href":"Hi.CutterLocations.IGetProgramCl.html","topicHref":"Hi.CutterLocations.IGetProgramCl.html","topicUid":"Hi.CutterLocations.IGetProgramCl","type":"Interface"},{"name":"SimpleCl","href":"Hi.CutterLocations.SimpleCl.html","topicHref":"Hi.CutterLocations.SimpleCl.html","topicUid":"Hi.CutterLocations.SimpleCl","type":"Class"}]},{"name":"Hi.CutterLocations.ClPath","href":"Hi.CutterLocations.ClPath.html","topicHref":"Hi.CutterLocations.ClPath.html","topicUid":"Hi.CutterLocations.ClPath","type":"Namespace","items":[{"name":"ClCircleArc","href":"Hi.CutterLocations.ClPath.ClCircleArc.html","topicHref":"Hi.CutterLocations.ClPath.ClCircleArc.html","topicUid":"Hi.CutterLocations.ClPath.ClCircleArc","type":"Class"},{"name":"ClLinear","href":"Hi.CutterLocations.ClPath.ClLinear.html","topicHref":"Hi.CutterLocations.ClPath.ClLinear.html","topicUid":"Hi.CutterLocations.ClPath.ClLinear","type":"Class"},{"name":"IClPath","href":"Hi.CutterLocations.ClPath.IClPath.html","topicHref":"Hi.CutterLocations.ClPath.IClPath.html","topicUid":"Hi.CutterLocations.ClPath.IClPath","type":"Interface"}]},{"name":"Hi.CutterLocations.ClStrips","href":"Hi.CutterLocations.ClStrips.html","topicHref":"Hi.CutterLocations.ClStrips.html","topicUid":"Hi.CutterLocations.ClStrips","type":"Namespace","items":[{"name":"ClStrip","href":"Hi.CutterLocations.ClStrips.ClStrip.html","topicHref":"Hi.CutterLocations.ClStrips.ClStrip.html","topicUid":"Hi.CutterLocations.ClStrips.ClStrip","type":"Class"},{"name":"ClStripPos","href":"Hi.CutterLocations.ClStrips.ClStripPos.html","topicHref":"Hi.CutterLocations.ClStrips.ClStripPos.html","topicUid":"Hi.CutterLocations.ClStrips.ClStripPos","type":"Class"},{"name":"RgbFunc","href":"Hi.CutterLocations.ClStrips.RgbFunc.html","topicHref":"Hi.CutterLocations.ClStrips.RgbFunc.html","topicUid":"Hi.CutterLocations.ClStrips.RgbFunc","type":"Delegate"}]},{"name":"Hi.Disp","href":"Hi.Disp.html","topicHref":"Hi.Disp.html","topicUid":"Hi.Disp","type":"Namespace","items":[{"name":"Bind","href":"Hi.Disp.Bind.html","topicHref":"Hi.Disp.Bind.html","topicUid":"Hi.Disp.Bind","type":"Class"},{"name":"Box3dDispUtil","href":"Hi.Disp.Box3dDispUtil.html","topicHref":"Hi.Disp.Box3dDispUtil.html","topicUid":"Hi.Disp.Box3dDispUtil","type":"Class"},{"name":"Box3dDispUtil.BoxableExpandToBox3dDel","href":"Hi.Disp.Box3dDispUtil.BoxableExpandToBox3dDel.html","topicHref":"Hi.Disp.Box3dDispUtil.BoxableExpandToBox3dDel.html","topicUid":"Hi.Disp.Box3dDispUtil.BoxableExpandToBox3dDel","type":"Delegate"},{"name":"DelegateFuncDisplayee","href":"Hi.Disp.DelegateFuncDisplayee.html","topicHref":"Hi.Disp.DelegateFuncDisplayee.html","topicUid":"Hi.Disp.DelegateFuncDisplayee","type":"Class"},{"name":"DispEngine","href":"Hi.Disp.DispEngine.html","topicHref":"Hi.Disp.DispEngine.html","topicUid":"Hi.Disp.DispEngine","type":"Class"},{"name":"DispEngine.ImageRequestedDelegate","href":"Hi.Disp.DispEngine.ImageRequestedDelegate.html","topicHref":"Hi.Disp.DispEngine.ImageRequestedDelegate.html","topicUid":"Hi.Disp.DispEngine.ImageRequestedDelegate","type":"Delegate"},{"name":"DispEngineConfig","href":"Hi.Disp.DispEngineConfig.html","topicHref":"Hi.Disp.DispEngineConfig.html","topicUid":"Hi.Disp.DispEngineConfig","type":"Class"},{"name":"DispFrameUtil","href":"Hi.Disp.DispFrameUtil.html","topicHref":"Hi.Disp.DispFrameUtil.html","topicUid":"Hi.Disp.DispFrameUtil","type":"Class"},{"name":"DispList","href":"Hi.Disp.DispList.html","topicHref":"Hi.Disp.DispList.html","topicUid":"Hi.Disp.DispList","type":"Class"},{"name":"DispUtil","href":"Hi.Disp.DispUtil.html","topicHref":"Hi.Disp.DispUtil.html","topicUid":"Hi.Disp.DispUtil","type":"Class"},{"name":"Drawing","href":"Hi.Disp.Drawing.html","topicHref":"Hi.Disp.Drawing.html","topicUid":"Hi.Disp.Drawing","type":"Class"},{"name":"FuncDisplayee","href":"Hi.Disp.FuncDisplayee.html","topicHref":"Hi.Disp.FuncDisplayee.html","topicUid":"Hi.Disp.FuncDisplayee","type":"Class"},{"name":"GL","href":"Hi.Disp.GL.html","topicHref":"Hi.Disp.GL.html","topicUid":"Hi.Disp.GL","type":"Class"},{"name":"IDisplayee","href":"Hi.Disp.IDisplayee.html","topicHref":"Hi.Disp.IDisplayee.html","topicUid":"Hi.Disp.IDisplayee","type":"Interface"},{"name":"IGetDispEngine","href":"Hi.Disp.IGetDispEngine.html","topicHref":"Hi.Disp.IGetDispEngine.html","topicUid":"Hi.Disp.IGetDispEngine","type":"Interface"},{"name":"IGetPickable","href":"Hi.Disp.IGetPickable.html","topicHref":"Hi.Disp.IGetPickable.html","topicUid":"Hi.Disp.IGetPickable","type":"Interface"},{"name":"IGlContextDirver","href":"Hi.Disp.IGlContextDirver.html","topicHref":"Hi.Disp.IGlContextDirver.html","topicUid":"Hi.Disp.IGlContextDirver","type":"Interface"},{"name":"MatStack","href":"Hi.Disp.MatStack.html","topicHref":"Hi.Disp.MatStack.html","topicUid":"Hi.Disp.MatStack","type":"Class"},{"name":"MatStack.ItemDisposable","href":"Hi.Disp.MatStack.ItemDisposable.html","topicHref":"Hi.Disp.MatStack.ItemDisposable.html","topicUid":"Hi.Disp.MatStack.ItemDisposable","type":"Class"},{"name":"MvpBoxRelation","href":"Hi.Disp.MvpBoxRelation.html","topicHref":"Hi.Disp.MvpBoxRelation.html","topicUid":"Hi.Disp.MvpBoxRelation","type":"Enum"},{"name":"Pickable","href":"Hi.Disp.Pickable.html","topicHref":"Hi.Disp.Pickable.html","topicUid":"Hi.Disp.Pickable","type":"Class"},{"name":"PopModelMat","href":"Hi.Disp.PopModelMat.html","topicHref":"Hi.Disp.PopModelMat.html","topicUid":"Hi.Disp.PopModelMat","type":"Class"},{"name":"PushModelMat","href":"Hi.Disp.PushModelMat.html","topicHref":"Hi.Disp.PushModelMat.html","topicUid":"Hi.Disp.PushModelMat","type":"Class"},{"name":"Segment3dDispUtil","href":"Hi.Disp.Segment3dDispUtil.html","topicHref":"Hi.Disp.Segment3dDispUtil.html","topicUid":"Hi.Disp.Segment3dDispUtil","type":"Class"},{"name":"ShowEventPickable","href":"Hi.Disp.ShowEventPickable.html","topicHref":"Hi.Disp.ShowEventPickable.html","topicUid":"Hi.Disp.ShowEventPickable","type":"Class"},{"name":"Stamp","href":"Hi.Disp.Stamp.html","topicHref":"Hi.Disp.Stamp.html","topicUid":"Hi.Disp.Stamp","type":"Enum"},{"name":"StringDrawing","href":"Hi.Disp.StringDrawing.html","topicHref":"Hi.Disp.StringDrawing.html","topicUid":"Hi.Disp.StringDrawing","type":"Class"},{"name":"Tri3dDispUtil","href":"Hi.Disp.Tri3dDispUtil.html","topicHref":"Hi.Disp.Tri3dDispUtil.html","topicUid":"Hi.Disp.Tri3dDispUtil","type":"Class"},{"name":"WrappedDisplayee","href":"Hi.Disp.WrappedDisplayee.html","topicHref":"Hi.Disp.WrappedDisplayee.html","topicUid":"Hi.Disp.WrappedDisplayee","type":"Class"}]},{"name":"Hi.Disp.Flag","href":"Hi.Disp.Flag.html","topicHref":"Hi.Disp.Flag.html","topicUid":"Hi.Disp.Flag","type":"Namespace","items":[{"name":"ColorScaleBar","href":"Hi.Disp.Flag.ColorScaleBar.html","topicHref":"Hi.Disp.Flag.ColorScaleBar.html","topicUid":"Hi.Disp.Flag.ColorScaleBar","type":"Class"},{"name":"CoordinateDrawing","href":"Hi.Disp.Flag.CoordinateDrawing.html","topicHref":"Hi.Disp.Flag.CoordinateDrawing.html","topicUid":"Hi.Disp.Flag.CoordinateDrawing","type":"Class"},{"name":"CubicalFlagDrawing","href":"Hi.Disp.Flag.CubicalFlagDrawing.html","topicHref":"Hi.Disp.Flag.CubicalFlagDrawing.html","topicUid":"Hi.Disp.Flag.CubicalFlagDrawing","type":"Class"},{"name":"DimensionBar","href":"Hi.Disp.Flag.DimensionBar.html","topicHref":"Hi.Disp.Flag.DimensionBar.html","topicUid":"Hi.Disp.Flag.DimensionBar","type":"Class"},{"name":"DispCoverUtil","href":"Hi.Disp.Flag.DispCoverUtil.html","topicHref":"Hi.Disp.Flag.DispCoverUtil.html","topicUid":"Hi.Disp.Flag.DispCoverUtil","type":"Class"}]},{"name":"Hi.Disp.Treat","href":"Hi.Disp.Treat.html","topicHref":"Hi.Disp.Treat.html","topicUid":"Hi.Disp.Treat","type":"Namespace","items":[{"name":"LineWidthSwap","href":"Hi.Disp.Treat.LineWidthSwap.html","topicHref":"Hi.Disp.Treat.LineWidthSwap.html","topicUid":"Hi.Disp.Treat.LineWidthSwap","type":"Class"},{"name":"LineWidthTreat","href":"Hi.Disp.Treat.LineWidthTreat.html","topicHref":"Hi.Disp.Treat.LineWidthTreat.html","topicUid":"Hi.Disp.Treat.LineWidthTreat","type":"Class"},{"name":"PointSizeSwap","href":"Hi.Disp.Treat.PointSizeSwap.html","topicHref":"Hi.Disp.Treat.PointSizeSwap.html","topicUid":"Hi.Disp.Treat.PointSizeSwap","type":"Class"},{"name":"PointSizeTreat","href":"Hi.Disp.Treat.PointSizeTreat.html","topicHref":"Hi.Disp.Treat.PointSizeTreat.html","topicUid":"Hi.Disp.Treat.PointSizeTreat","type":"Class"},{"name":"RgbSwap","href":"Hi.Disp.Treat.RgbSwap.html","topicHref":"Hi.Disp.Treat.RgbSwap.html","topicUid":"Hi.Disp.Treat.RgbSwap","type":"Class"},{"name":"RgbTreat","href":"Hi.Disp.Treat.RgbTreat.html","topicHref":"Hi.Disp.Treat.RgbTreat.html","topicUid":"Hi.Disp.Treat.RgbTreat","type":"Class"},{"name":"RgbWrapper","href":"Hi.Disp.Treat.RgbWrapper.html","topicHref":"Hi.Disp.Treat.RgbWrapper.html","topicUid":"Hi.Disp.Treat.RgbWrapper","type":"Class"},{"name":"TransformationWrapper","href":"Hi.Disp.Treat.TransformationWrapper.html","topicHref":"Hi.Disp.Treat.TransformationWrapper.html","topicUid":"Hi.Disp.Treat.TransformationWrapper","type":"Class"}]},{"name":"Hi.Fanuc","href":"Hi.Fanuc.html","topicHref":"Hi.Fanuc.html","topicUid":"Hi.Fanuc","type":"Namespace","items":[{"name":"FanucVarTable","href":"Hi.Fanuc.FanucVarTable.html","topicHref":"Hi.Fanuc.FanucVarTable.html","topicUid":"Hi.Fanuc.FanucVarTable","type":"Class"},{"name":"FanucVarValue","href":"Hi.Fanuc.FanucVarValue.html","topicHref":"Hi.Fanuc.FanucVarValue.html","topicUid":"Hi.Fanuc.FanucVarValue","type":"Struct"}]},{"name":"Hi.Geom","href":"Hi.Geom.html","topicHref":"Hi.Geom.html","topicUid":"Hi.Geom","type":"Namespace","items":[{"name":"ArrayUtil","href":"Hi.Geom.ArrayUtil.html","topicHref":"Hi.Geom.ArrayUtil.html","topicUid":"Hi.Geom.ArrayUtil","type":"Class"},{"name":"AxisAngle4d","href":"Hi.Geom.AxisAngle4d.html","topicHref":"Hi.Geom.AxisAngle4d.html","topicUid":"Hi.Geom.AxisAngle4d","type":"Class"},{"name":"Box2d","href":"Hi.Geom.Box2d.html","topicHref":"Hi.Geom.Box2d.html","topicUid":"Hi.Geom.Box2d","type":"Class"},{"name":"Box2d.NoInit","href":"Hi.Geom.Box2d.NoInit.html","topicHref":"Hi.Geom.Box2d.NoInit.html","topicUid":"Hi.Geom.Box2d.NoInit","type":"Class"},{"name":"Box3d","href":"Hi.Geom.Box3d.html","topicHref":"Hi.Geom.Box3d.html","topicUid":"Hi.Geom.Box3d","type":"Class"},{"name":"Box3d.NoInit","href":"Hi.Geom.Box3d.NoInit.html","topicHref":"Hi.Geom.Box3d.NoInit.html","topicUid":"Hi.Geom.Box3d.NoInit","type":"Class"},{"name":"Cylindroid","href":"Hi.Geom.Cylindroid.html","topicHref":"Hi.Geom.Cylindroid.html","topicUid":"Hi.Geom.Cylindroid","type":"Class"},{"name":"DVec3d","href":"Hi.Geom.DVec3d.html","topicHref":"Hi.Geom.DVec3d.html","topicUid":"Hi.Geom.DVec3d","type":"Class"},{"name":"Dir","href":"Hi.Geom.Dir.html","topicHref":"Hi.Geom.Dir.html","topicUid":"Hi.Geom.Dir","type":"Enum"},{"name":"ExtendedCylinder","href":"Hi.Geom.ExtendedCylinder.html","topicHref":"Hi.Geom.ExtendedCylinder.html","topicUid":"Hi.Geom.ExtendedCylinder","type":"Class"},{"name":"Flat3d","href":"Hi.Geom.Flat3d.html","topicHref":"Hi.Geom.Flat3d.html","topicUid":"Hi.Geom.Flat3d","type":"Class"},{"name":"GeomCombination","href":"Hi.Geom.GeomCombination.html","topicHref":"Hi.Geom.GeomCombination.html","topicUid":"Hi.Geom.GeomCombination","type":"Class"},{"name":"GeomUtil","href":"Hi.Geom.GeomUtil.html","topicHref":"Hi.Geom.GeomUtil.html","topicUid":"Hi.Geom.GeomUtil","type":"Class"},{"name":"IExpandToBox2d","href":"Hi.Geom.IExpandToBox2d.html","topicHref":"Hi.Geom.IExpandToBox2d.html","topicUid":"Hi.Geom.IExpandToBox2d","type":"Interface"},{"name":"IExpandToBox3d","href":"Hi.Geom.IExpandToBox3d.html","topicHref":"Hi.Geom.IExpandToBox3d.html","topicUid":"Hi.Geom.IExpandToBox3d","type":"Interface"},{"name":"IFlat3d","href":"Hi.Geom.IFlat3d.html","topicHref":"Hi.Geom.IFlat3d.html","topicUid":"Hi.Geom.IFlat3d","type":"Interface"},{"name":"IGenStl","href":"Hi.Geom.IGenStl.html","topicHref":"Hi.Geom.IGenStl.html","topicUid":"Hi.Geom.IGenStl","type":"Interface"},{"name":"IGeomProperty","href":"Hi.Geom.IGeomProperty.html","topicHref":"Hi.Geom.IGeomProperty.html","topicUid":"Hi.Geom.IGeomProperty","type":"Interface"},{"name":"IGetStl","href":"Hi.Geom.IGetStl.html","topicHref":"Hi.Geom.IGetStl.html","topicUid":"Hi.Geom.IGetStl","type":"Interface"},{"name":"IGetZrContour","href":"Hi.Geom.IGetZrContour.html","topicHref":"Hi.Geom.IGetZrContour.html","topicUid":"Hi.Geom.IGetZrContour","type":"Interface"},{"name":"IGetZrList","href":"Hi.Geom.IGetZrList.html","topicHref":"Hi.Geom.IGetZrList.html","topicUid":"Hi.Geom.IGetZrList","type":"Interface"},{"name":"IStlSource","href":"Hi.Geom.IStlSource.html","topicHref":"Hi.Geom.IStlSource.html","topicUid":"Hi.Geom.IStlSource","type":"Interface"},{"name":"ITri3d","href":"Hi.Geom.ITri3d.html","topicHref":"Hi.Geom.ITri3d.html","topicUid":"Hi.Geom.ITri3d","type":"Interface"},{"name":"IVec","href":"Hi.Geom.IVec-1.html","topicHref":"Hi.Geom.IVec-1.html","topicUid":"Hi.Geom.IVec`1","type":"Interface"},{"name":"IZrListSourceProperty","href":"Hi.Geom.IZrListSourceProperty.html","topicHref":"Hi.Geom.IZrListSourceProperty.html","topicUid":"Hi.Geom.IZrListSourceProperty","type":"Interface"},{"name":"Mat4d","href":"Hi.Geom.Mat4d.html","topicHref":"Hi.Geom.Mat4d.html","topicUid":"Hi.Geom.Mat4d","type":"Class"},{"name":"Mat4d.IndexFlag","href":"Hi.Geom.Mat4d.IndexFlag.html","topicHref":"Hi.Geom.Mat4d.IndexFlag.html","topicUid":"Hi.Geom.Mat4d.IndexFlag","type":"Enum"},{"name":"MathNetUtil","href":"Hi.Geom.MathNetUtil.html","topicHref":"Hi.Geom.MathNetUtil.html","topicUid":"Hi.Geom.MathNetUtil","type":"Class"},{"name":"MathUtil","href":"Hi.Geom.MathUtil.html","topicHref":"Hi.Geom.MathUtil.html","topicUid":"Hi.Geom.MathUtil","type":"Class"},{"name":"NativeStl","href":"Hi.Geom.NativeStl.html","topicHref":"Hi.Geom.NativeStl.html","topicUid":"Hi.Geom.NativeStl","type":"Class"},{"name":"NativeTopoStld","href":"Hi.Geom.NativeTopoStld.html","topicHref":"Hi.Geom.NativeTopoStld.html","topicUid":"Hi.Geom.NativeTopoStld","type":"Class"},{"name":"NativeTopoStlfr","href":"Hi.Geom.NativeTopoStlfr.html","topicHref":"Hi.Geom.NativeTopoStlfr.html","topicUid":"Hi.Geom.NativeTopoStlfr","type":"Class"},{"name":"PairZr","href":"Hi.Geom.PairZr.html","topicHref":"Hi.Geom.PairZr.html","topicUid":"Hi.Geom.PairZr","type":"Class"},{"name":"PairZrUtil","href":"Hi.Geom.PairZrUtil.html","topicHref":"Hi.Geom.PairZrUtil.html","topicUid":"Hi.Geom.PairZrUtil","type":"Class"},{"name":"Polar3d","href":"Hi.Geom.Polar3d.html","topicHref":"Hi.Geom.Polar3d.html","topicUid":"Hi.Geom.Polar3d","type":"Class"},{"name":"Segment3d","href":"Hi.Geom.Segment3d.html","topicHref":"Hi.Geom.Segment3d.html","topicUid":"Hi.Geom.Segment3d","type":"Class"},{"name":"Stl","href":"Hi.Geom.Stl.html","topicHref":"Hi.Geom.Stl.html","topicUid":"Hi.Geom.Stl","type":"Class"},{"name":"Stl.StlType","href":"Hi.Geom.Stl.StlType.html","topicHref":"Hi.Geom.Stl.StlType.html","topicUid":"Hi.Geom.Stl.StlType","type":"Enum"},{"name":"StlFile","href":"Hi.Geom.StlFile.html","topicHref":"Hi.Geom.StlFile.html","topicUid":"Hi.Geom.StlFile","type":"Class"},{"name":"StlFuncHost","href":"Hi.Geom.StlFuncHost.html","topicHref":"Hi.Geom.StlFuncHost.html","topicUid":"Hi.Geom.StlFuncHost","type":"Class"},{"name":"StlUtil","href":"Hi.Geom.StlUtil.html","topicHref":"Hi.Geom.StlUtil.html","topicUid":"Hi.Geom.StlUtil","type":"Class"},{"name":"TransformationGeom","href":"Hi.Geom.TransformationGeom.html","topicHref":"Hi.Geom.TransformationGeom.html","topicUid":"Hi.Geom.TransformationGeom","type":"Class"},{"name":"Tri3d","href":"Hi.Geom.Tri3d.html","topicHref":"Hi.Geom.Tri3d.html","topicUid":"Hi.Geom.Tri3d","type":"Class"},{"name":"Tri3dUtil","href":"Hi.Geom.Tri3dUtil.html","topicHref":"Hi.Geom.Tri3dUtil.html","topicUid":"Hi.Geom.Tri3dUtil","type":"Class"},{"name":"UnnullableDVec3d","href":"Hi.Geom.UnnullableDVec3d.html","topicHref":"Hi.Geom.UnnullableDVec3d.html","topicUid":"Hi.Geom.UnnullableDVec3d","type":"Class"},{"name":"Vec2d","href":"Hi.Geom.Vec2d.html","topicHref":"Hi.Geom.Vec2d.html","topicUid":"Hi.Geom.Vec2d","type":"Class"},{"name":"Vec2i","href":"Hi.Geom.Vec2i.html","topicHref":"Hi.Geom.Vec2i.html","topicUid":"Hi.Geom.Vec2i","type":"Class"},{"name":"Vec3d","href":"Hi.Geom.Vec3d.html","topicHref":"Hi.Geom.Vec3d.html","topicUid":"Hi.Geom.Vec3d","type":"Class"},{"name":"Vec3dUtil","href":"Hi.Geom.Vec3dUtil.html","topicHref":"Hi.Geom.Vec3dUtil.html","topicUid":"Hi.Geom.Vec3dUtil","type":"Class"}]},{"name":"Hi.Geom.Resolution","href":"Hi.Geom.Resolution.html","topicHref":"Hi.Geom.Resolution.html","topicUid":"Hi.Geom.Resolution","type":"Namespace","items":[{"name":"IPolarResolution2d","href":"Hi.Geom.Resolution.IPolarResolution2d.html","topicHref":"Hi.Geom.Resolution.IPolarResolution2d.html","topicUid":"Hi.Geom.Resolution.IPolarResolution2d","type":"Interface"},{"name":"IPolarResolution2dSourceProperty","href":"Hi.Geom.Resolution.IPolarResolution2dSourceProperty.html","topicHref":"Hi.Geom.Resolution.IPolarResolution2dSourceProperty.html","topicUid":"Hi.Geom.Resolution.IPolarResolution2dSourceProperty","type":"Interface"},{"name":"PolarResolution2d","href":"Hi.Geom.Resolution.PolarResolution2d.html","topicHref":"Hi.Geom.Resolution.PolarResolution2d.html","topicUid":"Hi.Geom.Resolution.PolarResolution2d","type":"Class"}]},{"name":"Hi.Geom.Solvers","href":"Hi.Geom.Solvers.html","topicHref":"Hi.Geom.Solvers.html","topicUid":"Hi.Geom.Solvers","type":"Namespace","items":[{"name":"BinarySolverUtil","href":"Hi.Geom.Solvers.BinarySolverUtil.html","topicHref":"Hi.Geom.Solvers.BinarySolverUtil.html","topicUid":"Hi.Geom.Solvers.BinarySolverUtil","type":"Class"},{"name":"BinarySolvingEntry","href":"Hi.Geom.Solvers.BinarySolvingEntry.html","topicHref":"Hi.Geom.Solvers.BinarySolvingEntry.html","topicUid":"Hi.Geom.Solvers.BinarySolvingEntry","type":"Class"},{"name":"DeepSolvingStatus","href":"Hi.Geom.Solvers.DeepSolvingStatus.html","topicHref":"Hi.Geom.Solvers.DeepSolvingStatus.html","topicUid":"Hi.Geom.Solvers.DeepSolvingStatus","type":"Class"},{"name":"NumericalSolver","href":"Hi.Geom.Solvers.NumericalSolver.html","topicHref":"Hi.Geom.Solvers.NumericalSolver.html","topicUid":"Hi.Geom.Solvers.NumericalSolver","type":"Class"},{"name":"NumericalSolver.GetRepondsDelegate","href":"Hi.Geom.Solvers.NumericalSolver.GetRepondsDelegate.html","topicHref":"Hi.Geom.Solvers.NumericalSolver.GetRepondsDelegate.html","topicUid":"Hi.Geom.Solvers.NumericalSolver.GetRepondsDelegate","type":"Delegate"},{"name":"NumericalSolver.SetParasDelegate","href":"Hi.Geom.Solvers.NumericalSolver.SetParasDelegate.html","topicHref":"Hi.Geom.Solvers.NumericalSolver.SetParasDelegate.html","topicUid":"Hi.Geom.Solvers.NumericalSolver.SetParasDelegate","type":"Delegate"},{"name":"SolverUtil","href":"Hi.Geom.Solvers.SolverUtil.html","topicHref":"Hi.Geom.Solvers.SolverUtil.html","topicUid":"Hi.Geom.Solvers.SolverUtil","type":"Class"},{"name":"SolvingResult","href":"Hi.Geom.Solvers.SolvingResult.html","topicHref":"Hi.Geom.Solvers.SolvingResult.html","topicUid":"Hi.Geom.Solvers.SolvingResult","type":"Class"},{"name":"SolvingStatus","href":"Hi.Geom.Solvers.SolvingStatus.html","topicHref":"Hi.Geom.Solvers.SolvingStatus.html","topicUid":"Hi.Geom.Solvers.SolvingStatus","type":"Enum"},{"name":"SolvingTerm","href":"Hi.Geom.Solvers.SolvingTerm.html","topicHref":"Hi.Geom.Solvers.SolvingTerm.html","topicUid":"Hi.Geom.Solvers.SolvingTerm","type":"Enum"}]},{"name":"Hi.Geom.UnitUtils","href":"Hi.Geom.UnitUtils.html","topicHref":"Hi.Geom.UnitUtils.html","topicUid":"Hi.Geom.UnitUtils","type":"Namespace","items":[{"name":"PhysicsUnit","href":"Hi.Geom.UnitUtils.PhysicsUnit.html","topicHref":"Hi.Geom.UnitUtils.PhysicsUnit.html","topicUid":"Hi.Geom.UnitUtils.PhysicsUnit","type":"Enum"},{"name":"StringValueAttribute","href":"Hi.Geom.UnitUtils.StringValueAttribute.html","topicHref":"Hi.Geom.UnitUtils.StringValueAttribute.html","topicUid":"Hi.Geom.UnitUtils.StringValueAttribute","type":"Class"},{"name":"UnitConvertUtil","href":"Hi.Geom.UnitUtils.UnitConvertUtil.html","topicHref":"Hi.Geom.UnitUtils.UnitConvertUtil.html","topicUid":"Hi.Geom.UnitUtils.UnitConvertUtil","type":"Class"}]},{"name":"Hi.Grpcs","href":"Hi.Grpcs.html","topicHref":"Hi.Grpcs.html","topicUid":"Hi.Grpcs","type":"Namespace","items":[{"name":"ClStripService","href":"Hi.Grpcs.ClStripService.html","topicHref":"Hi.Grpcs.ClStripService.html","topicUid":"Hi.Grpcs.ClStripService","type":"Class"},{"name":"ClStripService.ClStripServiceBase","href":"Hi.Grpcs.ClStripService.ClStripServiceBase.html","topicHref":"Hi.Grpcs.ClStripService.ClStripServiceBase.html","topicUid":"Hi.Grpcs.ClStripService.ClStripServiceBase","type":"Class"},{"name":"ClStripService.ClStripServiceClient","href":"Hi.Grpcs.ClStripService.ClStripServiceClient.html","topicHref":"Hi.Grpcs.ClStripService.ClStripServiceClient.html","topicUid":"Hi.Grpcs.ClStripService.ClStripServiceClient","type":"Class"},{"name":"ClStripServiceReflection","href":"Hi.Grpcs.ClStripServiceReflection.html","topicHref":"Hi.Grpcs.ClStripServiceReflection.html","topicUid":"Hi.Grpcs.ClStripServiceReflection","type":"Class"},{"name":"ClStripServiceRunner","href":"Hi.Grpcs.ClStripServiceRunner.html","topicHref":"Hi.Grpcs.ClStripServiceRunner.html","topicUid":"Hi.Grpcs.ClStripServiceRunner","type":"Class"},{"name":"DictionaryStep","href":"Hi.Grpcs.DictionaryStep.html","topicHref":"Hi.Grpcs.DictionaryStep.html","topicUid":"Hi.Grpcs.DictionaryStep","type":"Class"},{"name":"PlayerService","href":"Hi.Grpcs.PlayerService.html","topicHref":"Hi.Grpcs.PlayerService.html","topicUid":"Hi.Grpcs.PlayerService","type":"Class"},{"name":"PlayerService.PlayerServiceBase","href":"Hi.Grpcs.PlayerService.PlayerServiceBase.html","topicHref":"Hi.Grpcs.PlayerService.PlayerServiceBase.html","topicUid":"Hi.Grpcs.PlayerService.PlayerServiceBase","type":"Class"},{"name":"PlayerService.PlayerServiceClient","href":"Hi.Grpcs.PlayerService.PlayerServiceClient.html","topicHref":"Hi.Grpcs.PlayerService.PlayerServiceClient.html","topicUid":"Hi.Grpcs.PlayerService.PlayerServiceClient","type":"Class"},{"name":"PlayerServiceReflection","href":"Hi.Grpcs.PlayerServiceReflection.html","topicHref":"Hi.Grpcs.PlayerServiceReflection.html","topicUid":"Hi.Grpcs.PlayerServiceReflection","type":"Class"},{"name":"PlayerServiceRunner","href":"Hi.Grpcs.PlayerServiceRunner.html","topicHref":"Hi.Grpcs.PlayerServiceRunner.html","topicUid":"Hi.Grpcs.PlayerServiceRunner","type":"Class"}]},{"name":"Hi.HiNcKits","href":"Hi.HiNcKits.html","topicHref":"Hi.HiNcKits.html","topicUid":"Hi.HiNcKits","type":"Namespace","items":[{"name":"BasePathEnum","href":"Hi.HiNcKits.BasePathEnum.html","topicHref":"Hi.HiNcKits.BasePathEnum.html","topicUid":"Hi.HiNcKits.BasePathEnum","type":"Enum"},{"name":"HiNcHost","href":"Hi.HiNcKits.HiNcHost.html","topicHref":"Hi.HiNcKits.HiNcHost.html","topicUid":"Hi.HiNcKits.HiNcHost","type":"Class"},{"name":"LocalApp","href":"Hi.HiNcKits.LocalApp.html","topicHref":"Hi.HiNcKits.LocalApp.html","topicUid":"Hi.HiNcKits.LocalApp","type":"Class"},{"name":"LocalAppConfig","href":"Hi.HiNcKits.LocalAppConfig.html","topicHref":"Hi.HiNcKits.LocalAppConfig.html","topicUid":"Hi.HiNcKits.LocalAppConfig","type":"Class"},{"name":"ProxyConfig","href":"Hi.HiNcKits.ProxyConfig.html","topicHref":"Hi.HiNcKits.ProxyConfig.html","topicUid":"Hi.HiNcKits.ProxyConfig","type":"Class"},{"name":"UserConfig","href":"Hi.HiNcKits.UserConfig.html","topicHref":"Hi.HiNcKits.UserConfig.html","topicUid":"Hi.HiNcKits.UserConfig","type":"Class"},{"name":"UserService","href":"Hi.HiNcKits.UserService.html","topicHref":"Hi.HiNcKits.UserService.html","topicUid":"Hi.HiNcKits.UserService","type":"Class"}]},{"name":"Hi.Licenses","href":"Hi.Licenses.html","topicHref":"Hi.Licenses.html","topicUid":"Hi.Licenses","type":"Namespace","items":[{"name":"AuthFeature","href":"Hi.Licenses.AuthFeature.html","topicHref":"Hi.Licenses.AuthFeature.html","topicUid":"Hi.Licenses.AuthFeature","type":"Enum"},{"name":"AuthorizationFailedEventArgs","href":"Hi.Licenses.AuthorizationFailedEventArgs.html","topicHref":"Hi.Licenses.AuthorizationFailedEventArgs.html","topicUid":"Hi.Licenses.AuthorizationFailedEventArgs","type":"Class"},{"name":"BlockType","href":"Hi.Licenses.BlockType.html","topicHref":"Hi.Licenses.BlockType.html","topicUid":"Hi.Licenses.BlockType","type":"Enum"},{"name":"License","href":"Hi.Licenses.License.html","topicHref":"Hi.Licenses.License.html","topicUid":"Hi.Licenses.License","type":"Class"},{"name":"LicenseType","href":"Hi.Licenses.LicenseType.html","topicHref":"Hi.Licenses.LicenseType.html","topicUid":"Hi.Licenses.LicenseType","type":"Enum"}]},{"name":"Hi.Machining","href":"Hi.Machining.html","topicHref":"Hi.Machining.html","topicUid":"Hi.Machining","type":"Namespace","items":[{"name":"FreeformRemover","href":"Hi.Machining.FreeformRemover.html","topicHref":"Hi.Machining.FreeformRemover.html","topicUid":"Hi.Machining.FreeformRemover","type":"Class"},{"name":"ICutter","href":"Hi.Machining.ICutter.html","topicHref":"Hi.Machining.ICutter.html","topicUid":"Hi.Machining.ICutter","type":"Interface"},{"name":"ICutterAnchorable","href":"Hi.Machining.ICutterAnchorable.html","topicHref":"Hi.Machining.ICutterAnchorable.html","topicUid":"Hi.Machining.ICutterAnchorable","type":"Interface"},{"name":"IGetSweptable","href":"Hi.Machining.IGetSweptable.html","topicHref":"Hi.Machining.IGetSweptable.html","topicUid":"Hi.Machining.IGetSweptable","type":"Interface"},{"name":"IMachiningTool","href":"Hi.Machining.IMachiningTool.html","topicHref":"Hi.Machining.IMachiningTool.html","topicUid":"Hi.Machining.IMachiningTool","type":"Interface"},{"name":"IVolumeRemover","href":"Hi.Machining.IVolumeRemover.html","topicHref":"Hi.Machining.IVolumeRemover.html","topicUid":"Hi.Machining.IVolumeRemover","type":"Interface"},{"name":"MachiningToolHouse","href":"Hi.Machining.MachiningToolHouse.html","topicHref":"Hi.Machining.MachiningToolHouse.html","topicUid":"Hi.Machining.MachiningToolHouse","type":"Class"},{"name":"MachiningVolumeRemovalProc","href":"Hi.Machining.MachiningVolumeRemovalProc.html","topicHref":"Hi.Machining.MachiningVolumeRemovalProc.html","topicUid":"Hi.Machining.MachiningVolumeRemovalProc","type":"Class"},{"name":"MachiningVolumeRemovalProc.StepMotionSnapshot","href":"Hi.Machining.MachiningVolumeRemovalProc.StepMotionSnapshot.html","topicHref":"Hi.Machining.MachiningVolumeRemovalProc.StepMotionSnapshot.html","topicUid":"Hi.Machining.MachiningVolumeRemovalProc.StepMotionSnapshot","type":"Class"},{"name":"MatInterpolationKit","href":"Hi.Machining.MatInterpolationKit.html","topicHref":"Hi.Machining.MatInterpolationKit.html","topicUid":"Hi.Machining.MatInterpolationKit","type":"Class"},{"name":"MatRelation","href":"Hi.Machining.MatRelation.html","topicHref":"Hi.Machining.MatRelation.html","topicUid":"Hi.Machining.MatRelation","type":"Enum"},{"name":"MatRelationUtil","href":"Hi.Machining.MatRelationUtil.html","topicHref":"Hi.Machining.MatRelationUtil.html","topicUid":"Hi.Machining.MatRelationUtil","type":"Class"},{"name":"MotionUtil","href":"Hi.Machining.MotionUtil.html","topicHref":"Hi.Machining.MotionUtil.html","topicUid":"Hi.Machining.MotionUtil","type":"Class"},{"name":"Sweptable","href":"Hi.Machining.Sweptable.html","topicHref":"Hi.Machining.Sweptable.html","topicUid":"Hi.Machining.Sweptable","type":"Class"},{"name":"SweptableUtil","href":"Hi.Machining.SweptableUtil.html","topicHref":"Hi.Machining.SweptableUtil.html","topicUid":"Hi.Machining.SweptableUtil","type":"Class"},{"name":"ToolNotFoundException","href":"Hi.Machining.ToolNotFoundException.html","topicHref":"Hi.Machining.ToolNotFoundException.html","topicUid":"Hi.Machining.ToolNotFoundException","type":"Class"}]},{"name":"Hi.Machining.MachiningEquipmentUtils","href":"Hi.Machining.MachiningEquipmentUtils.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.html","topicUid":"Hi.Machining.MachiningEquipmentUtils","type":"Namespace","items":[{"name":"CollidableComponentEnum","href":"Hi.Machining.MachiningEquipmentUtils.CollidableComponentEnum.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.CollidableComponentEnum.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.CollidableComponentEnum","type":"Enum"},{"name":"IGetMachiningEquipment","href":"Hi.Machining.MachiningEquipmentUtils.IGetMachiningEquipment.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.IGetMachiningEquipment.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.IGetMachiningEquipment","type":"Interface"},{"name":"IMachiningEquipment","href":"Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment","type":"Interface"},{"name":"MachiningEquipment","href":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipment","type":"Class"},{"name":"MachiningEquipmentCollisionIndex","href":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndex.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndex.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndex","type":"Class"},{"name":"MachiningEquipmentCollisionIndexPairsSource","href":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndexPairsSource.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndexPairsSource.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndexPairsSource","type":"Class"},{"name":"MachiningEquipmentUtil","href":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil","type":"Class"}]},{"name":"Hi.MachiningProcs","href":"Hi.MachiningProcs.html","topicHref":"Hi.MachiningProcs.html","topicUid":"Hi.MachiningProcs","type":"Namespace","items":[{"name":"ConfigStepFunc","href":"Hi.MachiningProcs.ConfigStepFunc.html","topicHref":"Hi.MachiningProcs.ConfigStepFunc.html","topicUid":"Hi.MachiningProcs.ConfigStepFunc","type":"Delegate"},{"name":"DynamicMachiningProjectDisplayee0","href":"Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.html","topicHref":"Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.html","topicUid":"Hi.MachiningProcs.DynamicMachiningProjectDisplayee0","type":"Class"},{"name":"IMachiningProjectGetter","href":"Hi.MachiningProcs.IMachiningProjectGetter.html","topicHref":"Hi.MachiningProcs.IMachiningProjectGetter.html","topicUid":"Hi.MachiningProcs.IMachiningProjectGetter","type":"Interface"},{"name":"IProjectService","href":"Hi.MachiningProcs.IProjectService.html","topicHref":"Hi.MachiningProcs.IProjectService.html","topicUid":"Hi.MachiningProcs.IProjectService","type":"Interface"},{"name":"LocalProjectService","href":"Hi.MachiningProcs.LocalProjectService.html","topicHref":"Hi.MachiningProcs.LocalProjectService.html","topicUid":"Hi.MachiningProcs.LocalProjectService","type":"Class"},{"name":"LocalProjectService.MachiningProjectChangedDelegate","href":"Hi.MachiningProcs.LocalProjectService.MachiningProjectChangedDelegate.html","topicHref":"Hi.MachiningProcs.LocalProjectService.MachiningProjectChangedDelegate.html","topicUid":"Hi.MachiningProcs.LocalProjectService.MachiningProjectChangedDelegate","type":"Delegate"},{"name":"MachiningActRunner","href":"Hi.MachiningProcs.MachiningActRunner.html","topicHref":"Hi.MachiningProcs.MachiningActRunner.html","topicUid":"Hi.MachiningProcs.MachiningActRunner","type":"Class"},{"name":"MachiningActRunner.MachiningStepBuiltDelegate","href":"Hi.MachiningProcs.MachiningActRunner.MachiningStepBuiltDelegate.html","topicHref":"Hi.MachiningProcs.MachiningActRunner.MachiningStepBuiltDelegate.html","topicUid":"Hi.MachiningProcs.MachiningActRunner.MachiningStepBuiltDelegate","type":"Delegate"},{"name":"MachiningActRunnerConfig","href":"Hi.MachiningProcs.MachiningActRunnerConfig.html","topicHref":"Hi.MachiningProcs.MachiningActRunnerConfig.html","topicUid":"Hi.MachiningProcs.MachiningActRunnerConfig","type":"Class"},{"name":"MachiningParallelProc","href":"Hi.MachiningProcs.MachiningParallelProc.html","topicHref":"Hi.MachiningProcs.MachiningParallelProc.html","topicUid":"Hi.MachiningProcs.MachiningParallelProc","type":"Class"},{"name":"MachiningParallelProc.StepTaskBundle","href":"Hi.MachiningProcs.MachiningParallelProc.StepTaskBundle.html","topicHref":"Hi.MachiningProcs.MachiningParallelProc.StepTaskBundle.html","topicUid":"Hi.MachiningProcs.MachiningParallelProc.StepTaskBundle","type":"Class"},{"name":"MachiningParallelProc.SubstractionResult","href":"Hi.MachiningProcs.MachiningParallelProc.SubstractionResult.html","topicHref":"Hi.MachiningProcs.MachiningParallelProc.SubstractionResult.html","topicUid":"Hi.MachiningProcs.MachiningParallelProc.SubstractionResult","type":"Class"},{"name":"MachiningProject","href":"Hi.MachiningProcs.MachiningProject.html","topicHref":"Hi.MachiningProcs.MachiningProject.html","topicUid":"Hi.MachiningProcs.MachiningProject","type":"Class"},{"name":"MachiningProjectDisplayee","href":"Hi.MachiningProcs.MachiningProjectDisplayee.html","topicHref":"Hi.MachiningProcs.MachiningProjectDisplayee.html","topicUid":"Hi.MachiningProcs.MachiningProjectDisplayee","type":"Class"},{"name":"MachiningSession","href":"Hi.MachiningProcs.MachiningSession.html","topicHref":"Hi.MachiningProcs.MachiningSession.html","topicUid":"Hi.MachiningProcs.MachiningSession","type":"Class"},{"name":"MillingUtil","href":"Hi.MachiningProcs.MillingUtil.html","topicHref":"Hi.MachiningProcs.MillingUtil.html","topicUid":"Hi.MachiningProcs.MillingUtil","type":"Class"},{"name":"ProxyProjectService","href":"Hi.MachiningProcs.ProxyProjectService.html","topicHref":"Hi.MachiningProcs.ProxyProjectService.html","topicUid":"Hi.MachiningProcs.ProxyProjectService","type":"Class"},{"name":"RenderingFlag","href":"Hi.MachiningProcs.RenderingFlag.html","topicHref":"Hi.MachiningProcs.RenderingFlag.html","topicUid":"Hi.MachiningProcs.RenderingFlag","type":"Enum"},{"name":"RuntimeApi","href":"Hi.MachiningProcs.RuntimeApi.html","topicHref":"Hi.MachiningProcs.RuntimeApi.html","topicUid":"Hi.MachiningProcs.RuntimeApi","type":"Class"},{"name":"RuntimeController","href":"Hi.MachiningProcs.RuntimeController.html","topicHref":"Hi.MachiningProcs.RuntimeController.html","topicUid":"Hi.MachiningProcs.RuntimeController","type":"Class"},{"name":"SessionMessage","href":"Hi.MachiningProcs.SessionMessage.html","topicHref":"Hi.MachiningProcs.SessionMessage.html","topicUid":"Hi.MachiningProcs.SessionMessage","type":"Class"},{"name":"SessionMessageHost","href":"Hi.MachiningProcs.SessionMessageHost.html","topicHref":"Hi.MachiningProcs.SessionMessageHost.html","topicUid":"Hi.MachiningProcs.SessionMessageHost","type":"Class"},{"name":"SessionMessageHost.FilterFlag","href":"Hi.MachiningProcs.SessionMessageHost.FilterFlag.html","topicHref":"Hi.MachiningProcs.SessionMessageHost.FilterFlag.html","topicUid":"Hi.MachiningProcs.SessionMessageHost.FilterFlag","type":"Enum"},{"name":"SessionMessagePack","href":"Hi.MachiningProcs.SessionMessagePack.html","topicHref":"Hi.MachiningProcs.SessionMessagePack.html","topicUid":"Hi.MachiningProcs.SessionMessagePack","type":"Class"},{"name":"SetupController","href":"Hi.MachiningProcs.SetupController.html","topicHref":"Hi.MachiningProcs.SetupController.html","topicUid":"Hi.MachiningProcs.SetupController","type":"Class"},{"name":"SpindleSpeedCache","href":"Hi.MachiningProcs.SpindleSpeedCache.html","topicHref":"Hi.MachiningProcs.SpindleSpeedCache.html","topicUid":"Hi.MachiningProcs.SpindleSpeedCache","type":"Class"}]},{"name":"Hi.MachiningSteps","href":"Hi.MachiningSteps.html","topicHref":"Hi.MachiningSteps.html","topicUid":"Hi.MachiningSteps","type":"Namespace","items":[{"name":"IFlagText","href":"Hi.MachiningSteps.IFlagText.html","topicHref":"Hi.MachiningSteps.IFlagText.html","topicUid":"Hi.MachiningSteps.IFlagText","type":"Interface"},{"name":"IMachiningStepHost","href":"Hi.MachiningSteps.IMachiningStepHost.html","topicHref":"Hi.MachiningSteps.IMachiningStepHost.html","topicUid":"Hi.MachiningSteps.IMachiningStepHost","type":"Interface"},{"name":"MachineMotionStep","href":"Hi.MachiningSteps.MachineMotionStep.html","topicHref":"Hi.MachiningSteps.MachineMotionStep.html","topicUid":"Hi.MachiningSteps.MachineMotionStep","type":"Class"},{"name":"MachiningStep","href":"Hi.MachiningSteps.MachiningStep.html","topicHref":"Hi.MachiningSteps.MachiningStep.html","topicUid":"Hi.MachiningSteps.MachiningStep","type":"Class"},{"name":"MachiningStep.CollidedKeyPair","href":"Hi.MachiningSteps.MachiningStep.CollidedKeyPair.html","topicHref":"Hi.MachiningSteps.MachiningStep.CollidedKeyPair.html","topicUid":"Hi.MachiningSteps.MachiningStep.CollidedKeyPair","type":"Class"},{"name":"MachiningStepUtil","href":"Hi.MachiningSteps.MachiningStepUtil.html","topicHref":"Hi.MachiningSteps.MachiningStepUtil.html","topicUid":"Hi.MachiningSteps.MachiningStepUtil","type":"Class"},{"name":"PresentAccess","href":"Hi.MachiningSteps.PresentAccess.html","topicHref":"Hi.MachiningSteps.PresentAccess.html","topicUid":"Hi.MachiningSteps.PresentAccess","type":"Class"},{"name":"PresentAttribute","href":"Hi.MachiningSteps.PresentAttribute.html","topicHref":"Hi.MachiningSteps.PresentAttribute.html","topicUid":"Hi.MachiningSteps.PresentAttribute","type":"Class"},{"name":"PropertyAccess","href":"Hi.MachiningSteps.PropertyAccess-1.html","topicHref":"Hi.MachiningSteps.PropertyAccess-1.html","topicUid":"Hi.MachiningSteps.PropertyAccess`1","type":"Class"}]},{"name":"Hi.Mapping","href":"Hi.Mapping.html","topicHref":"Hi.Mapping.html","topicUid":"Hi.Mapping","type":"Namespace","items":[{"name":"CsvNcStep","href":"Hi.Mapping.CsvNcStep.html","topicHref":"Hi.Mapping.CsvNcStep.html","topicUid":"Hi.Mapping.CsvNcStep","type":"Class"},{"name":"CsvNcStep.StepInterpoationMode","href":"Hi.Mapping.CsvNcStep.StepInterpoationMode.html","topicHref":"Hi.Mapping.CsvNcStep.StepInterpoationMode.html","topicUid":"Hi.Mapping.CsvNcStep.StepInterpoationMode","type":"Enum"},{"name":"FileToTimeShotMapping","href":"Hi.Mapping.FileToTimeShotMapping.html","topicHref":"Hi.Mapping.FileToTimeShotMapping.html","topicUid":"Hi.Mapping.FileToTimeShotMapping","type":"Class"},{"name":"IAccelerationShot","href":"Hi.Mapping.IAccelerationShot.html","topicHref":"Hi.Mapping.IAccelerationShot.html","topicUid":"Hi.Mapping.IAccelerationShot","type":"Interface"},{"name":"IForceShot","href":"Hi.Mapping.IForceShot.html","topicHref":"Hi.Mapping.IForceShot.html","topicUid":"Hi.Mapping.IForceShot","type":"Interface"},{"name":"IMomentShot","href":"Hi.Mapping.IMomentShot.html","topicHref":"Hi.Mapping.IMomentShot.html","topicUid":"Hi.Mapping.IMomentShot","type":"Interface"},{"name":"ITimeShot","href":"Hi.Mapping.ITimeShot.html","topicHref":"Hi.Mapping.ITimeShot.html","topicUid":"Hi.Mapping.ITimeShot","type":"Interface"},{"name":"StepTimeShotUtil","href":"Hi.Mapping.StepTimeShotUtil.html","topicHref":"Hi.Mapping.StepTimeShotUtil.html","topicUid":"Hi.Mapping.StepTimeShotUtil","type":"Class"},{"name":"StepTimeShotUtil.CycleSamplingMode","href":"Hi.Mapping.StepTimeShotUtil.CycleSamplingMode.html","topicHref":"Hi.Mapping.StepTimeShotUtil.CycleSamplingMode.html","topicUid":"Hi.Mapping.StepTimeShotUtil.CycleSamplingMode","type":"Enum"},{"name":"StepTimeShotUtil.GetTimeShotByFileDelegate","href":"Hi.Mapping.StepTimeShotUtil.GetTimeShotByFileDelegate.html","topicHref":"Hi.Mapping.StepTimeShotUtil.GetTimeShotByFileDelegate.html","topicUid":"Hi.Mapping.StepTimeShotUtil.GetTimeShotByFileDelegate","type":"Delegate"},{"name":"TimeMapping","href":"Hi.Mapping.TimeMapping.html","topicHref":"Hi.Mapping.TimeMapping.html","topicUid":"Hi.Mapping.TimeMapping","type":"Class"}]},{"name":"Hi.Mappings","href":"Hi.Mappings.html","topicHref":"Hi.Mappings.html","topicUid":"Hi.Mappings","type":"Namespace","items":[{"name":"FileTimeSection","href":"Hi.Mappings.FileTimeSection.html","topicHref":"Hi.Mappings.FileTimeSection.html","topicUid":"Hi.Mappings.FileTimeSection","type":"Class"},{"name":"FileTimeSection.TimeOption","href":"Hi.Mappings.FileTimeSection.TimeOption.html","topicHref":"Hi.Mappings.FileTimeSection.TimeOption.html","topicUid":"Hi.Mappings.FileTimeSection.TimeOption","type":"Enum"}]},{"name":"Hi.Mech","href":"Hi.Mech.html","topicHref":"Hi.Mech.html","topicUid":"Hi.Mech","type":"Namespace","items":[{"name":"GeneralMechanism","href":"Hi.Mech.GeneralMechanism.html","topicHref":"Hi.Mech.GeneralMechanism.html","topicUid":"Hi.Mech.GeneralMechanism","type":"Class"},{"name":"IGetAnchorToSolidDictionary","href":"Hi.Mech.IGetAnchorToSolidDictionary.html","topicHref":"Hi.Mech.IGetAnchorToSolidDictionary.html","topicUid":"Hi.Mech.IGetAnchorToSolidDictionary","type":"Interface"},{"name":"IGetMachiningChain","href":"Hi.Mech.IGetMachiningChain.html","topicHref":"Hi.Mech.IGetMachiningChain.html","topicUid":"Hi.Mech.IGetMachiningChain","type":"Interface"},{"name":"IMachiningChain","href":"Hi.Mech.IMachiningChain.html","topicHref":"Hi.Mech.IMachiningChain.html","topicUid":"Hi.Mech.IMachiningChain","type":"Interface"},{"name":"IMachiningChainSource","href":"Hi.Mech.IMachiningChainSource.html","topicHref":"Hi.Mech.IMachiningChainSource.html","topicUid":"Hi.Mech.IMachiningChainSource","type":"Interface"},{"name":"MachiningChainUtil","href":"Hi.Mech.MachiningChainUtil.html","topicHref":"Hi.Mech.MachiningChainUtil.html","topicUid":"Hi.Mech.MachiningChainUtil","type":"Class"}]},{"name":"Hi.Mech.Topo","href":"Hi.Mech.Topo.html","topicHref":"Hi.Mech.Topo.html","topicUid":"Hi.Mech.Topo","type":"Namespace","items":[{"name":"Anchor","href":"Hi.Mech.Topo.Anchor.html","topicHref":"Hi.Mech.Topo.Anchor.html","topicUid":"Hi.Mech.Topo.Anchor","type":"Class"},{"name":"AnchorFuncSource","href":"Hi.Mech.Topo.AnchorFuncSource.html","topicHref":"Hi.Mech.Topo.AnchorFuncSource.html","topicUid":"Hi.Mech.Topo.AnchorFuncSource","type":"Class"},{"name":"AnchoredBoxable","href":"Hi.Mech.Topo.AnchoredBoxable.html","topicHref":"Hi.Mech.Topo.AnchoredBoxable.html","topicUid":"Hi.Mech.Topo.AnchoredBoxable","type":"Class"},{"name":"AnchoredDisplayee","href":"Hi.Mech.Topo.AnchoredDisplayee.html","topicHref":"Hi.Mech.Topo.AnchoredDisplayee.html","topicUid":"Hi.Mech.Topo.AnchoredDisplayee","type":"Class"},{"name":"Asmb","href":"Hi.Mech.Topo.Asmb.html","topicHref":"Hi.Mech.Topo.Asmb.html","topicUid":"Hi.Mech.Topo.Asmb","type":"Class"},{"name":"AsmbDraw","href":"Hi.Mech.Topo.AsmbDraw.html","topicHref":"Hi.Mech.Topo.AsmbDraw.html","topicUid":"Hi.Mech.Topo.AsmbDraw","type":"Class"},{"name":"Branch","href":"Hi.Mech.Topo.Branch.html","topicHref":"Hi.Mech.Topo.Branch.html","topicUid":"Hi.Mech.Topo.Branch","type":"Class"},{"name":"DirectionBranchPack","href":"Hi.Mech.Topo.DirectionBranchPack.html","topicHref":"Hi.Mech.Topo.DirectionBranchPack.html","topicUid":"Hi.Mech.Topo.DirectionBranchPack","type":"Class"},{"name":"DirectionBranchPackUtil","href":"Hi.Mech.Topo.DirectionBranchPackUtil.html","topicHref":"Hi.Mech.Topo.DirectionBranchPackUtil.html","topicUid":"Hi.Mech.Topo.DirectionBranchPackUtil","type":"Class"},{"name":"DynamicFreeform","href":"Hi.Mech.Topo.DynamicFreeform.html","topicHref":"Hi.Mech.Topo.DynamicFreeform.html","topicUid":"Hi.Mech.Topo.DynamicFreeform","type":"Class"},{"name":"DynamicRotation","href":"Hi.Mech.Topo.DynamicRotation.html","topicHref":"Hi.Mech.Topo.DynamicRotation.html","topicUid":"Hi.Mech.Topo.DynamicRotation","type":"Class"},{"name":"DynamicTranslation","href":"Hi.Mech.Topo.DynamicTranslation.html","topicHref":"Hi.Mech.Topo.DynamicTranslation.html","topicUid":"Hi.Mech.Topo.DynamicTranslation","type":"Class"},{"name":"GeneralTransform","href":"Hi.Mech.Topo.GeneralTransform.html","topicHref":"Hi.Mech.Topo.GeneralTransform.html","topicUid":"Hi.Mech.Topo.GeneralTransform","type":"Class"},{"name":"IAnchoredDisplayee","href":"Hi.Mech.Topo.IAnchoredDisplayee.html","topicHref":"Hi.Mech.Topo.IAnchoredDisplayee.html","topicUid":"Hi.Mech.Topo.IAnchoredDisplayee","type":"Interface"},{"name":"IDynamicRegular","href":"Hi.Mech.Topo.IDynamicRegular.html","topicHref":"Hi.Mech.Topo.IDynamicRegular.html","topicUid":"Hi.Mech.Topo.IDynamicRegular","type":"Interface"},{"name":"IDynamicTransformer","href":"Hi.Mech.Topo.IDynamicTransformer.html","topicHref":"Hi.Mech.Topo.IDynamicTransformer.html","topicUid":"Hi.Mech.Topo.IDynamicTransformer","type":"Interface"},{"name":"IGetAnchor","href":"Hi.Mech.Topo.IGetAnchor.html","topicHref":"Hi.Mech.Topo.IGetAnchor.html","topicUid":"Hi.Mech.Topo.IGetAnchor","type":"Interface"},{"name":"IGetAnchoredDisplayeeList","href":"Hi.Mech.Topo.IGetAnchoredDisplayeeList.html","topicHref":"Hi.Mech.Topo.IGetAnchoredDisplayeeList.html","topicUid":"Hi.Mech.Topo.IGetAnchoredDisplayeeList","type":"Interface"},{"name":"IGetAsmb","href":"Hi.Mech.Topo.IGetAsmb.html","topicHref":"Hi.Mech.Topo.IGetAsmb.html","topicUid":"Hi.Mech.Topo.IGetAsmb","type":"Interface"},{"name":"IGetFletchBuckle","href":"Hi.Mech.Topo.IGetFletchBuckle.html","topicHref":"Hi.Mech.Topo.IGetFletchBuckle.html","topicUid":"Hi.Mech.Topo.IGetFletchBuckle","type":"Interface"},{"name":"IGetInverseTransformer","href":"Hi.Mech.Topo.IGetInverseTransformer.html","topicHref":"Hi.Mech.Topo.IGetInverseTransformer.html","topicUid":"Hi.Mech.Topo.IGetInverseTransformer","type":"Interface"},{"name":"IGetTopoIndex","href":"Hi.Mech.Topo.IGetTopoIndex.html","topicHref":"Hi.Mech.Topo.IGetTopoIndex.html","topicUid":"Hi.Mech.Topo.IGetTopoIndex","type":"Interface"},{"name":"IStaticTransformer","href":"Hi.Mech.Topo.IStaticTransformer.html","topicHref":"Hi.Mech.Topo.IStaticTransformer.html","topicUid":"Hi.Mech.Topo.IStaticTransformer","type":"Interface"},{"name":"ITopo","href":"Hi.Mech.Topo.ITopo.html","topicHref":"Hi.Mech.Topo.ITopo.html","topicUid":"Hi.Mech.Topo.ITopo","type":"Interface"},{"name":"ITopoDisplayee","href":"Hi.Mech.Topo.ITopoDisplayee.html","topicHref":"Hi.Mech.Topo.ITopoDisplayee.html","topicUid":"Hi.Mech.Topo.ITopoDisplayee","type":"Interface"},{"name":"ITransformer","href":"Hi.Mech.Topo.ITransformer.html","topicHref":"Hi.Mech.Topo.ITransformer.html","topicUid":"Hi.Mech.Topo.ITransformer","type":"Interface"},{"name":"ITransformerProperty","href":"Hi.Mech.Topo.ITransformerProperty.html","topicHref":"Hi.Mech.Topo.ITransformerProperty.html","topicUid":"Hi.Mech.Topo.ITransformerProperty","type":"Interface"},{"name":"NoTransform","href":"Hi.Mech.Topo.NoTransform.html","topicHref":"Hi.Mech.Topo.NoTransform.html","topicUid":"Hi.Mech.Topo.NoTransform","type":"Class"},{"name":"StackTransformer","href":"Hi.Mech.Topo.StackTransformer.html","topicHref":"Hi.Mech.Topo.StackTransformer.html","topicUid":"Hi.Mech.Topo.StackTransformer","type":"Class"},{"name":"StaticFreeform","href":"Hi.Mech.Topo.StaticFreeform.html","topicHref":"Hi.Mech.Topo.StaticFreeform.html","topicUid":"Hi.Mech.Topo.StaticFreeform","type":"Class"},{"name":"StaticRotation","href":"Hi.Mech.Topo.StaticRotation.html","topicHref":"Hi.Mech.Topo.StaticRotation.html","topicUid":"Hi.Mech.Topo.StaticRotation","type":"Class"},{"name":"StaticTranslation","href":"Hi.Mech.Topo.StaticTranslation.html","topicHref":"Hi.Mech.Topo.StaticTranslation.html","topicUid":"Hi.Mech.Topo.StaticTranslation","type":"Class"},{"name":"TopoDisplayee","href":"Hi.Mech.Topo.TopoDisplayee.html","topicHref":"Hi.Mech.Topo.TopoDisplayee.html","topicUid":"Hi.Mech.Topo.TopoDisplayee","type":"Class"},{"name":"TopoDisplayeeUtil","href":"Hi.Mech.Topo.TopoDisplayeeUtil.html","topicHref":"Hi.Mech.Topo.TopoDisplayeeUtil.html","topicUid":"Hi.Mech.Topo.TopoDisplayeeUtil","type":"Class"},{"name":"TopoReflection","href":"Hi.Mech.Topo.TopoReflection.html","topicHref":"Hi.Mech.Topo.TopoReflection.html","topicUid":"Hi.Mech.Topo.TopoReflection","type":"Class"},{"name":"TopoUtil","href":"Hi.Mech.Topo.TopoUtil.html","topicHref":"Hi.Mech.Topo.TopoUtil.html","topicUid":"Hi.Mech.Topo.TopoUtil","type":"Class"},{"name":"TransformerUtil","href":"Hi.Mech.Topo.TransformerUtil.html","topicHref":"Hi.Mech.Topo.TransformerUtil.html","topicUid":"Hi.Mech.Topo.TransformerUtil","type":"Class"}]},{"name":"Hi.Milling","href":"Hi.Milling.html","topicHref":"Hi.Milling.html","topicUid":"Hi.Milling","type":"Namespace","items":[{"name":"IGetDiameter","href":"Hi.Milling.IGetDiameter.html","topicHref":"Hi.Milling.IGetDiameter.html","topicUid":"Hi.Milling.IGetDiameter","type":"Interface"},{"name":"IGetFluteHeight","href":"Hi.Milling.IGetFluteHeight.html","topicHref":"Hi.Milling.IGetFluteHeight.html","topicUid":"Hi.Milling.IGetFluteHeight","type":"Interface"},{"name":"IGetMillingGeomBrief","href":"Hi.Milling.IGetMillingGeomBrief.html","topicHref":"Hi.Milling.IGetMillingGeomBrief.html","topicUid":"Hi.Milling.IGetMillingGeomBrief","type":"Interface"},{"name":"IGetRadialReliefAngle","href":"Hi.Milling.IGetRadialReliefAngle.html","topicHref":"Hi.Milling.IGetRadialReliefAngle.html","topicUid":"Hi.Milling.IGetRadialReliefAngle","type":"Interface"},{"name":"IMillingGeomBriefAccessor","href":"Hi.Milling.IMillingGeomBriefAccessor.html","topicHref":"Hi.Milling.IMillingGeomBriefAccessor.html","topicUid":"Hi.Milling.IMillingGeomBriefAccessor","type":"Interface"},{"name":"MillingGeomBrief","href":"Hi.Milling.MillingGeomBrief.html","topicHref":"Hi.Milling.MillingGeomBrief.html","topicUid":"Hi.Milling.MillingGeomBrief","type":"Class"},{"name":"MillingRemovalUtil","href":"Hi.Milling.MillingRemovalUtil.html","topicHref":"Hi.Milling.MillingRemovalUtil.html","topicUid":"Hi.Milling.MillingRemovalUtil","type":"Class"},{"name":"SpindleCapability","href":"Hi.Milling.SpindleCapability.html","topicHref":"Hi.Milling.SpindleCapability.html","topicUid":"Hi.Milling.SpindleCapability","type":"Class"}]},{"name":"Hi.Milling.Apts","href":"Hi.Milling.Apts.html","topicHref":"Hi.Milling.Apts.html","topicUid":"Hi.Milling.Apts","type":"Namespace","items":[{"name":"AptDerivative","href":"Hi.Milling.Apts.AptDerivative.html","topicHref":"Hi.Milling.Apts.AptDerivative.html","topicUid":"Hi.Milling.Apts.AptDerivative","type":"Class"},{"name":"BallApt","href":"Hi.Milling.Apts.BallApt.html","topicHref":"Hi.Milling.Apts.BallApt.html","topicUid":"Hi.Milling.Apts.BallApt","type":"Class"},{"name":"BullNoseApt","href":"Hi.Milling.Apts.BullNoseApt.html","topicHref":"Hi.Milling.Apts.BullNoseApt.html","topicUid":"Hi.Milling.Apts.BullNoseApt","type":"Class"},{"name":"ColumnApt","href":"Hi.Milling.Apts.ColumnApt.html","topicHref":"Hi.Milling.Apts.ColumnApt.html","topicUid":"Hi.Milling.Apts.ColumnApt","type":"Class"},{"name":"ConeApt","href":"Hi.Milling.Apts.ConeApt.html","topicHref":"Hi.Milling.Apts.ConeApt.html","topicUid":"Hi.Milling.Apts.ConeApt","type":"Class"},{"name":"ExactColumnApt","href":"Hi.Milling.Apts.ExactColumnApt.html","topicHref":"Hi.Milling.Apts.ExactColumnApt.html","topicUid":"Hi.Milling.Apts.ExactColumnApt","type":"Class"},{"name":"GeneralApt","href":"Hi.Milling.Apts.GeneralApt.html","topicHref":"Hi.Milling.Apts.GeneralApt.html","topicUid":"Hi.Milling.Apts.GeneralApt","type":"Class"},{"name":"IAptAlpha","href":"Hi.Milling.Apts.IAptAlpha.html","topicHref":"Hi.Milling.Apts.IAptAlpha.html","topicUid":"Hi.Milling.Apts.IAptAlpha","type":"Interface"},{"name":"IAptBased","href":"Hi.Milling.Apts.IAptBased.html","topicHref":"Hi.Milling.Apts.IAptBased.html","topicUid":"Hi.Milling.Apts.IAptBased","type":"Interface"},{"name":"IAptBeta","href":"Hi.Milling.Apts.IAptBeta.html","topicHref":"Hi.Milling.Apts.IAptBeta.html","topicUid":"Hi.Milling.Apts.IAptBeta","type":"Interface"},{"name":"IAptRc","href":"Hi.Milling.Apts.IAptRc.html","topicHref":"Hi.Milling.Apts.IAptRc.html","topicUid":"Hi.Milling.Apts.IAptRc","type":"Interface"},{"name":"IAptRr","href":"Hi.Milling.Apts.IAptRr.html","topicHref":"Hi.Milling.Apts.IAptRr.html","topicUid":"Hi.Milling.Apts.IAptRr","type":"Interface"},{"name":"IAptRz","href":"Hi.Milling.Apts.IAptRz.html","topicHref":"Hi.Milling.Apts.IAptRz.html","topicUid":"Hi.Milling.Apts.IAptRz","type":"Interface"},{"name":"IGetApt","href":"Hi.Milling.Apts.IGetApt.html","topicHref":"Hi.Milling.Apts.IGetApt.html","topicUid":"Hi.Milling.Apts.IGetApt","type":"Interface"},{"name":"IGetGeneralApt","href":"Hi.Milling.Apts.IGetGeneralApt.html","topicHref":"Hi.Milling.Apts.IGetGeneralApt.html","topicUid":"Hi.Milling.Apts.IGetGeneralApt","type":"Interface"},{"name":"TaperApt","href":"Hi.Milling.Apts.TaperApt.html","topicHref":"Hi.Milling.Apts.TaperApt.html","topicUid":"Hi.Milling.Apts.TaperApt","type":"Class"},{"name":"apt_t","href":"Hi.Milling.Apts.apt_t.html","topicHref":"Hi.Milling.Apts.apt_t.html","topicUid":"Hi.Milling.Apts.apt_t","type":"Struct"}]},{"name":"Hi.Milling.Cutters","href":"Hi.Milling.Cutters.html","topicHref":"Hi.Milling.Cutters.html","topicUid":"Hi.Milling.Cutters","type":"Namespace","items":[{"name":"AptProfile","href":"Hi.Milling.Cutters.AptProfile.html","topicHref":"Hi.Milling.Cutters.AptProfile.html","topicUid":"Hi.Milling.Cutters.AptProfile","type":"Class"},{"name":"ConstRatioProfile","href":"Hi.Milling.Cutters.ConstRatioProfile.html","topicHref":"Hi.Milling.Cutters.ConstRatioProfile.html","topicUid":"Hi.Milling.Cutters.ConstRatioProfile","type":"Class"},{"name":"CustomSpinningProfile","href":"Hi.Milling.Cutters.CustomSpinningProfile.html","topicHref":"Hi.Milling.Cutters.CustomSpinningProfile.html","topicUid":"Hi.Milling.Cutters.CustomSpinningProfile","type":"Class"},{"name":"CutterUtil","href":"Hi.Milling.Cutters.CutterUtil.html","topicHref":"Hi.Milling.Cutters.CutterUtil.html","topicUid":"Hi.Milling.Cutters.CutterUtil","type":"Class"},{"name":"FluteContourDisplayee","href":"Hi.Milling.Cutters.FluteContourDisplayee.html","topicHref":"Hi.Milling.Cutters.FluteContourDisplayee.html","topicUid":"Hi.Milling.Cutters.FluteContourDisplayee","type":"Class"},{"name":"FluteDependentRatioProfile","href":"Hi.Milling.Cutters.FluteDependentRatioProfile.html","topicHref":"Hi.Milling.Cutters.FluteDependentRatioProfile.html","topicUid":"Hi.Milling.Cutters.FluteDependentRatioProfile","type":"Class"},{"name":"IShaperProfile","href":"Hi.Milling.Cutters.IShaperProfile.html","topicHref":"Hi.Milling.Cutters.IShaperProfile.html","topicUid":"Hi.Milling.Cutters.IShaperProfile","type":"Interface"},{"name":"MillingCutter","href":"Hi.Milling.Cutters.MillingCutter.html","topicHref":"Hi.Milling.Cutters.MillingCutter.html","topicUid":"Hi.Milling.Cutters.MillingCutter","type":"Class"},{"name":"MillingCutter.IntegralModeEnum","href":"Hi.Milling.Cutters.MillingCutter.IntegralModeEnum.html","topicHref":"Hi.Milling.Cutters.MillingCutter.IntegralModeEnum.html","topicUid":"Hi.Milling.Cutters.MillingCutter.IntegralModeEnum","type":"Enum"},{"name":"MillingCutter.MassAssignmentMode","href":"Hi.Milling.Cutters.MillingCutter.MassAssignmentMode.html","topicHref":"Hi.Milling.Cutters.MillingCutter.MassAssignmentMode.html","topicUid":"Hi.Milling.Cutters.MillingCutter.MassAssignmentMode","type":"Enum"},{"name":"MillingCutterEditorDisplayee","href":"Hi.Milling.Cutters.MillingCutterEditorDisplayee.html","topicHref":"Hi.Milling.Cutters.MillingCutterEditorDisplayee.html","topicUid":"Hi.Milling.Cutters.MillingCutterEditorDisplayee","type":"Class"},{"name":"MillingCutterEditorDisplayee.ShapeModeEnum","href":"Hi.Milling.Cutters.MillingCutterEditorDisplayee.ShapeModeEnum.html","topicHref":"Hi.Milling.Cutters.MillingCutterEditorDisplayee.ShapeModeEnum.html","topicUid":"Hi.Milling.Cutters.MillingCutterEditorDisplayee.ShapeModeEnum","type":"Enum"}]},{"name":"Hi.Milling.Engagements","href":"Hi.Milling.Engagements.html","topicHref":"Hi.Milling.Engagements.html","topicUid":"Hi.Milling.Engagements","type":"Namespace","items":[{"name":"BitwiseMillingEngagement","href":"Hi.Milling.Engagements.BitwiseMillingEngagement.html","topicHref":"Hi.Milling.Engagements.BitwiseMillingEngagement.html","topicUid":"Hi.Milling.Engagements.BitwiseMillingEngagement","type":"Class"},{"name":"EngagementLayer","href":"Hi.Milling.Engagements.EngagementLayer.html","topicHref":"Hi.Milling.Engagements.EngagementLayer.html","topicUid":"Hi.Milling.Engagements.EngagementLayer","type":"Class"},{"name":"EngagementSlice","href":"Hi.Milling.Engagements.EngagementSlice.html","topicHref":"Hi.Milling.Engagements.EngagementSlice.html","topicUid":"Hi.Milling.Engagements.EngagementSlice","type":"Class"},{"name":"IBitwiseMillingEngagementSupport","href":"Hi.Milling.Engagements.IBitwiseMillingEngagementSupport.html","topicHref":"Hi.Milling.Engagements.IBitwiseMillingEngagementSupport.html","topicUid":"Hi.Milling.Engagements.IBitwiseMillingEngagementSupport","type":"Interface"},{"name":"IGetLayerMillingEngagement","href":"Hi.Milling.Engagements.IGetLayerMillingEngagement.html","topicHref":"Hi.Milling.Engagements.IGetLayerMillingEngagement.html","topicUid":"Hi.Milling.Engagements.IGetLayerMillingEngagement","type":"Interface"},{"name":"LayerMillingEngagement","href":"Hi.Milling.Engagements.LayerMillingEngagement.html","topicHref":"Hi.Milling.Engagements.LayerMillingEngagement.html","topicUid":"Hi.Milling.Engagements.LayerMillingEngagement","type":"Class"},{"name":"MillingEngagementUtil","href":"Hi.Milling.Engagements.MillingEngagementUtil.html","topicHref":"Hi.Milling.Engagements.MillingEngagementUtil.html","topicUid":"Hi.Milling.Engagements.MillingEngagementUtil","type":"Class"}]},{"name":"Hi.Milling.FluteContours","href":"Hi.Milling.FluteContours.html","topicHref":"Hi.Milling.FluteContours.html","topicUid":"Hi.Milling.FluteContours","type":"Namespace","items":[{"name":"ConstHelixSideContour","href":"Hi.Milling.FluteContours.ConstHelixSideContour.html","topicHref":"Hi.Milling.FluteContours.ConstHelixSideContour.html","topicUid":"Hi.Milling.FluteContours.ConstHelixSideContour","type":"Class"},{"name":"FluteContour","href":"Hi.Milling.FluteContours.FluteContour.html","topicHref":"Hi.Milling.FluteContours.FluteContour.html","topicUid":"Hi.Milling.FluteContours.FluteContour","type":"Class"},{"name":"FluteContourUtil","href":"Hi.Milling.FluteContours.FluteContourUtil.html","topicHref":"Hi.Milling.FluteContours.FluteContourUtil.html","topicUid":"Hi.Milling.FluteContours.FluteContourUtil","type":"Class"},{"name":"FreeContourTray","href":"Hi.Milling.FluteContours.FreeContourTray.html","topicHref":"Hi.Milling.FluteContours.FreeContourTray.html","topicUid":"Hi.Milling.FluteContours.FreeContourTray","type":"Class"},{"name":"FreeformSideContour","href":"Hi.Milling.FluteContours.FreeformSideContour.html","topicHref":"Hi.Milling.FluteContours.FreeformSideContour.html","topicUid":"Hi.Milling.FluteContours.FreeformSideContour","type":"Class"},{"name":"IBottomContour","href":"Hi.Milling.FluteContours.IBottomContour.html","topicHref":"Hi.Milling.FluteContours.IBottomContour.html","topicUid":"Hi.Milling.FluteContours.IBottomContour","type":"Interface"},{"name":"IContourTray","href":"Hi.Milling.FluteContours.IContourTray.html","topicHref":"Hi.Milling.FluteContours.IContourTray.html","topicUid":"Hi.Milling.FluteContours.IContourTray","type":"Interface"},{"name":"IFluteNumSourceProperty","href":"Hi.Milling.FluteContours.IFluteNumSourceProperty.html","topicHref":"Hi.Milling.FluteContours.IFluteNumSourceProperty.html","topicUid":"Hi.Milling.FluteContours.IFluteNumSourceProperty","type":"Interface"},{"name":"IGetFluteNum","href":"Hi.Milling.FluteContours.IGetFluteNum.html","topicHref":"Hi.Milling.FluteContours.IGetFluteNum.html","topicUid":"Hi.Milling.FluteContours.IGetFluteNum","type":"Interface"},{"name":"ISideContour","href":"Hi.Milling.FluteContours.ISideContour.html","topicHref":"Hi.Milling.FluteContours.ISideContour.html","topicUid":"Hi.Milling.FluteContours.ISideContour","type":"Interface"},{"name":"IWorkingContour","href":"Hi.Milling.FluteContours.IWorkingContour.html","topicHref":"Hi.Milling.FluteContours.IWorkingContour.html","topicUid":"Hi.Milling.FluteContours.IWorkingContour","type":"Interface"},{"name":"ShiftedWorkingContour","href":"Hi.Milling.FluteContours.ShiftedWorkingContour.html","topicHref":"Hi.Milling.FluteContours.ShiftedWorkingContour.html","topicUid":"Hi.Milling.FluteContours.ShiftedWorkingContour","type":"Class"},{"name":"SideContourDisplayee","href":"Hi.Milling.FluteContours.SideContourDisplayee.html","topicHref":"Hi.Milling.FluteContours.SideContourDisplayee.html","topicUid":"Hi.Milling.FluteContours.SideContourDisplayee","type":"Class"},{"name":"SlideBottomContour","href":"Hi.Milling.FluteContours.SlideBottomContour.html","topicHref":"Hi.Milling.FluteContours.SlideBottomContour.html","topicUid":"Hi.Milling.FluteContours.SlideBottomContour","type":"Class"},{"name":"SpanContourPos4d","href":"Hi.Milling.FluteContours.SpanContourPos4d.html","topicHref":"Hi.Milling.FluteContours.SpanContourPos4d.html","topicUid":"Hi.Milling.FluteContours.SpanContourPos4d","type":"Class"},{"name":"UniformContourTray","href":"Hi.Milling.FluteContours.UniformContourTray.html","topicHref":"Hi.Milling.FluteContours.UniformContourTray.html","topicUid":"Hi.Milling.FluteContours.UniformContourTray","type":"Class"}]},{"name":"Hi.Milling.MillingTools","href":"Hi.Milling.MillingTools.html","topicHref":"Hi.Milling.MillingTools.html","topicUid":"Hi.Milling.MillingTools","type":"Namespace","items":[{"name":"MillingTool","href":"Hi.Milling.MillingTools.MillingTool.html","topicHref":"Hi.Milling.MillingTools.MillingTool.html","topicUid":"Hi.Milling.MillingTools.MillingTool","type":"Class"},{"name":"MillingToolAnchorReference","href":"Hi.Milling.MillingTools.MillingToolAnchorReference.html","topicHref":"Hi.Milling.MillingTools.MillingToolAnchorReference.html","topicUid":"Hi.Milling.MillingTools.MillingToolAnchorReference","type":"Enum"},{"name":"MillingToolEditorDisplayee","href":"Hi.Milling.MillingTools.MillingToolEditorDisplayee.html","topicHref":"Hi.Milling.MillingTools.MillingToolEditorDisplayee.html","topicUid":"Hi.Milling.MillingTools.MillingToolEditorDisplayee","type":"Class"},{"name":"MillingToolUtil","href":"Hi.Milling.MillingTools.MillingToolUtil.html","topicHref":"Hi.Milling.MillingTools.MillingToolUtil.html","topicUid":"Hi.Milling.MillingTools.MillingToolUtil","type":"Class"}]},{"name":"Hi.MillingForces","href":"Hi.MillingForces.html","topicHref":"Hi.MillingForces.html","topicUid":"Hi.MillingForces","type":"Namespace","items":[{"name":"FluteZData","href":"Hi.MillingForces.FluteZData.html","topicHref":"Hi.MillingForces.FluteZData.html","topicUid":"Hi.MillingForces.FluteZData","type":"Class"},{"name":"IGetMillingForce","href":"Hi.MillingForces.IGetMillingForce.html","topicHref":"Hi.MillingForces.IGetMillingForce.html","topicUid":"Hi.MillingForces.IGetMillingForce","type":"Interface"},{"name":"IMillingForceAccessor","href":"Hi.MillingForces.IMillingForceAccessor.html","topicHref":"Hi.MillingForces.IMillingForceAccessor.html","topicUid":"Hi.MillingForces.IMillingForceAccessor","type":"Interface"},{"name":"MillingForce","href":"Hi.MillingForces.MillingForce.html","topicHref":"Hi.MillingForces.MillingForce.html","topicUid":"Hi.MillingForces.MillingForce","type":"Class"},{"name":"MillingForceLicense","href":"Hi.MillingForces.MillingForceLicense.html","topicHref":"Hi.MillingForces.MillingForceLicense.html","topicUid":"Hi.MillingForces.MillingForceLicense","type":"Class"},{"name":"MillingForceLuggage","href":"Hi.MillingForces.MillingForceLuggage.html","topicHref":"Hi.MillingForces.MillingForceLuggage.html","topicUid":"Hi.MillingForces.MillingForceLuggage","type":"Class"},{"name":"MillingForceUtil","href":"Hi.MillingForces.MillingForceUtil.html","topicHref":"Hi.MillingForces.MillingForceUtil.html","topicUid":"Hi.MillingForces.MillingForceUtil","type":"Class"},{"name":"MillingForceUtil.AnglePack","href":"Hi.MillingForces.MillingForceUtil.AnglePack.html","topicHref":"Hi.MillingForces.MillingForceUtil.AnglePack.html","topicUid":"Hi.MillingForces.MillingForceUtil.AnglePack","type":"Class"},{"name":"MillingPhysicsBrief","href":"Hi.MillingForces.MillingPhysicsBrief.html","topicHref":"Hi.MillingForces.MillingPhysicsBrief.html","topicUid":"Hi.MillingForces.MillingPhysicsBrief","type":"Class"},{"name":"PhysicsUtil","href":"Hi.MillingForces.PhysicsUtil.html","topicHref":"Hi.MillingForces.PhysicsUtil.html","topicUid":"Hi.MillingForces.PhysicsUtil","type":"Class"},{"name":"ToolObservationReference","href":"Hi.MillingForces.ToolObservationReference.html","topicHref":"Hi.MillingForces.ToolObservationReference.html","topicUid":"Hi.MillingForces.ToolObservationReference","type":"Enum"}]},{"name":"Hi.MillingForces.Fittings","href":"Hi.MillingForces.Fittings.html","topicHref":"Hi.MillingForces.Fittings.html","topicUid":"Hi.MillingForces.Fittings","type":"Namespace","items":[{"name":"CuttingParaUtil","href":"Hi.MillingForces.Fittings.CuttingParaUtil.html","topicHref":"Hi.MillingForces.Fittings.CuttingParaUtil.html","topicUid":"Hi.MillingForces.Fittings.CuttingParaUtil","type":"Class"},{"name":"ICuttingPara","href":"Hi.MillingForces.Fittings.ICuttingPara.html","topicHref":"Hi.MillingForces.Fittings.ICuttingPara.html","topicUid":"Hi.MillingForces.Fittings.ICuttingPara","type":"Interface"},{"name":"IGetCuttingPara","href":"Hi.MillingForces.Fittings.IGetCuttingPara.html","topicHref":"Hi.MillingForces.Fittings.IGetCuttingPara.html","topicUid":"Hi.MillingForces.Fittings.IGetCuttingPara","type":"Interface"},{"name":"SampleCategory","href":"Hi.MillingForces.Fittings.SampleCategory.html","topicHref":"Hi.MillingForces.Fittings.SampleCategory.html","topicUid":"Hi.MillingForces.Fittings.SampleCategory","type":"Class"},{"name":"SampleFlag","href":"Hi.MillingForces.Fittings.SampleFlag.html","topicHref":"Hi.MillingForces.Fittings.SampleFlag.html","topicUid":"Hi.MillingForces.Fittings.SampleFlag","type":"Enum"},{"name":"SampleFlagUtil","href":"Hi.MillingForces.Fittings.SampleFlagUtil.html","topicHref":"Hi.MillingForces.Fittings.SampleFlagUtil.html","topicUid":"Hi.MillingForces.Fittings.SampleFlagUtil","type":"Class"},{"name":"SampleInstance","href":"Hi.MillingForces.Fittings.SampleInstance.html","topicHref":"Hi.MillingForces.Fittings.SampleInstance.html","topicUid":"Hi.MillingForces.Fittings.SampleInstance","type":"Class"},{"name":"TimeForce","href":"Hi.MillingForces.Fittings.TimeForce.html","topicHref":"Hi.MillingForces.Fittings.TimeForce.html","topicUid":"Hi.MillingForces.Fittings.TimeForce","type":"Class"},{"name":"TimeForceFrequencyDomain","href":"Hi.MillingForces.Fittings.TimeForceFrequencyDomain.html","topicHref":"Hi.MillingForces.Fittings.TimeForceFrequencyDomain.html","topicUid":"Hi.MillingForces.Fittings.TimeForceFrequencyDomain","type":"Class"},{"name":"TimeForceSeries","href":"Hi.MillingForces.Fittings.TimeForceSeries.html","topicHref":"Hi.MillingForces.Fittings.TimeForceSeries.html","topicUid":"Hi.MillingForces.Fittings.TimeForceSeries","type":"Class"},{"name":"TimeForceUtil","href":"Hi.MillingForces.Fittings.TimeForceUtil.html","topicHref":"Hi.MillingForces.Fittings.TimeForceUtil.html","topicUid":"Hi.MillingForces.Fittings.TimeForceUtil","type":"Class"},{"name":"TimeVsForceSeries","href":"Hi.MillingForces.Fittings.TimeVsForceSeries.html","topicHref":"Hi.MillingForces.Fittings.TimeVsForceSeries.html","topicUid":"Hi.MillingForces.Fittings.TimeVsForceSeries","type":"Class"},{"name":"TimeVsTorqueSeries","href":"Hi.MillingForces.Fittings.TimeVsTorqueSeries.html","topicHref":"Hi.MillingForces.Fittings.TimeVsTorqueSeries.html","topicUid":"Hi.MillingForces.Fittings.TimeVsTorqueSeries","type":"Class"},{"name":"TrainingSample","href":"Hi.MillingForces.Fittings.TrainingSample.html","topicHref":"Hi.MillingForces.Fittings.TrainingSample.html","topicUid":"Hi.MillingForces.Fittings.TrainingSample","type":"Class"}]},{"name":"Hi.MillingForces.ProfileMillingParas","href":"Hi.MillingForces.ProfileMillingParas.html","topicHref":"Hi.MillingForces.ProfileMillingParas.html","topicUid":"Hi.MillingForces.ProfileMillingParas","type":"Namespace","items":[{"name":"IGetLocalProfileMillingPara","href":"Hi.MillingForces.ProfileMillingParas.IGetLocalProfileMillingPara.html","topicHref":"Hi.MillingForces.ProfileMillingParas.IGetLocalProfileMillingPara.html","topicUid":"Hi.MillingForces.ProfileMillingParas.IGetLocalProfileMillingPara","type":"Interface"},{"name":"LocalProfileMillingPara","href":"Hi.MillingForces.ProfileMillingParas.LocalProfileMillingPara.html","topicHref":"Hi.MillingForces.ProfileMillingParas.LocalProfileMillingPara.html","topicUid":"Hi.MillingForces.ProfileMillingParas.LocalProfileMillingPara","type":"Class"},{"name":"ProfileMillingParaMap","href":"Hi.MillingForces.ProfileMillingParas.ProfileMillingParaMap.html","topicHref":"Hi.MillingForces.ProfileMillingParas.ProfileMillingParaMap.html","topicUid":"Hi.MillingForces.ProfileMillingParas.ProfileMillingParaMap","type":"Class"},{"name":"RtaMillingParaKey","href":"Hi.MillingForces.ProfileMillingParas.RtaMillingParaKey.html","topicHref":"Hi.MillingForces.ProfileMillingParas.RtaMillingParaKey.html","topicUid":"Hi.MillingForces.ProfileMillingParas.RtaMillingParaKey","type":"Enum"}]},{"name":"Hi.MillingForces.RakeFaceCuttingParas","href":"Hi.MillingForces.RakeFaceCuttingParas.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas","type":"Namespace","items":[{"name":"IRakeFaceCuttingPara","href":"Hi.MillingForces.RakeFaceCuttingParas.IRakeFaceCuttingPara.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.IRakeFaceCuttingPara.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.IRakeFaceCuttingPara","type":"Interface"},{"name":"MillingPhysicsUtil","href":"Hi.MillingForces.RakeFaceCuttingParas.MillingPhysicsUtil.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.MillingPhysicsUtil.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.MillingPhysicsUtil","type":"Class"},{"name":"MultiFormRakeFaceCuttingPara","href":"Hi.MillingForces.RakeFaceCuttingParas.MultiFormRakeFaceCuttingPara.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.MultiFormRakeFaceCuttingPara.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.MultiFormRakeFaceCuttingPara","type":"Class"},{"name":"RakeFaceCuttingPara2d","href":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara2d.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara2d.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara2d","type":"Class"},{"name":"RakeFaceCuttingPara3d","href":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara3d.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara3d.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara3d","type":"Class"},{"name":"RakeFaceCuttingParaMap","href":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingParaMap.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingParaMap.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingParaMap","type":"Class"}]},{"name":"Hi.MillingForces.Training","href":"Hi.MillingForces.Training.html","topicHref":"Hi.MillingForces.Training.html","topicUid":"Hi.MillingForces.Training","type":"Namespace","items":[{"name":"MillingTraining","href":"Hi.MillingForces.Training.MillingTraining.html","topicHref":"Hi.MillingForces.Training.MillingTraining.html","topicUid":"Hi.MillingForces.Training.MillingTraining","type":"Class"}]},{"name":"Hi.MillingProcs","href":"Hi.MillingProcs.html","topicHref":"Hi.MillingProcs.html","topicUid":"Hi.MillingProcs","type":"Namespace","items":[{"name":"MillingGuide","href":"Hi.MillingProcs.MillingGuide.html","topicHref":"Hi.MillingProcs.MillingGuide.html","topicUid":"Hi.MillingProcs.MillingGuide","type":"Class"}]},{"name":"Hi.MillingStepUtils","href":"Hi.MillingStepUtils.html","topicHref":"Hi.MillingStepUtils.html","topicUid":"Hi.MillingStepUtils","type":"Namespace","items":[{"name":"ClStripChartConfig","href":"Hi.MillingStepUtils.ClStripChartConfig.html","topicHref":"Hi.MillingStepUtils.ClStripChartConfig.html","topicUid":"Hi.MillingStepUtils.ClStripChartConfig","type":"Class"},{"name":"ClStripChartItemConfig","href":"Hi.MillingStepUtils.ClStripChartItemConfig.html","topicHref":"Hi.MillingStepUtils.ClStripChartItemConfig.html","topicUid":"Hi.MillingStepUtils.ClStripChartItemConfig","type":"Class"},{"name":"ForceCycleFlag","href":"Hi.MillingStepUtils.ForceCycleFlag.html","topicHref":"Hi.MillingStepUtils.ForceCycleFlag.html","topicUid":"Hi.MillingStepUtils.ForceCycleFlag","type":"Enum"},{"name":"ForceCycleLineDivConfig","href":"Hi.MillingStepUtils.ForceCycleLineDivConfig.html","topicHref":"Hi.MillingStepUtils.ForceCycleLineDivConfig.html","topicUid":"Hi.MillingStepUtils.ForceCycleLineDivConfig","type":"Class"},{"name":"LineChartVRangeMode","href":"Hi.MillingStepUtils.LineChartVRangeMode.html","topicHref":"Hi.MillingStepUtils.LineChartVRangeMode.html","topicUid":"Hi.MillingStepUtils.LineChartVRangeMode","type":"Enum"},{"name":"SpindleMomentCycleLineDivConfig","href":"Hi.MillingStepUtils.SpindleMomentCycleLineDivConfig.html","topicHref":"Hi.MillingStepUtils.SpindleMomentCycleLineDivConfig.html","topicUid":"Hi.MillingStepUtils.SpindleMomentCycleLineDivConfig","type":"Class"},{"name":"TimeChartYConfig","href":"Hi.MillingStepUtils.TimeChartYConfig.html","topicHref":"Hi.MillingStepUtils.TimeChartYConfig.html","topicUid":"Hi.MillingStepUtils.TimeChartYConfig","type":"Class"}]},{"name":"Hi.MillingSteps","href":"Hi.MillingSteps.html","topicHref":"Hi.MillingSteps.html","topicUid":"Hi.MillingSteps","type":"Namespace","items":[{"name":"MillingInstance","href":"Hi.MillingSteps.MillingInstance.html","topicHref":"Hi.MillingSteps.MillingInstance.html","topicUid":"Hi.MillingSteps.MillingInstance","type":"Class"},{"name":"MillingStepLuggage","href":"Hi.MillingSteps.MillingStepLuggage.html","topicHref":"Hi.MillingSteps.MillingStepLuggage.html","topicUid":"Hi.MillingSteps.MillingStepLuggage","type":"Class"}]},{"name":"Hi.MongoUtils","href":"Hi.MongoUtils.html","topicHref":"Hi.MongoUtils.html","topicUid":"Hi.MongoUtils","type":"Namespace","items":[{"name":"IMongoRunner","href":"Hi.MongoUtils.IMongoRunner.html","topicHref":"Hi.MongoUtils.IMongoRunner.html","topicUid":"Hi.MongoUtils.IMongoRunner","type":"Interface"},{"name":"MongoRunnerOptions","href":"Hi.MongoUtils.MongoRunnerOptions.html","topicHref":"Hi.MongoUtils.MongoRunnerOptions.html","topicUid":"Hi.MongoUtils.MongoRunnerOptions","type":"Class"},{"name":"MongoServer","href":"Hi.MongoUtils.MongoServer.html","topicHref":"Hi.MongoUtils.MongoServer.html","topicUid":"Hi.MongoUtils.MongoServer","type":"Class"}]},{"name":"Hi.Motion.MatValves","href":"Hi.Motion.MatValves.html","topicHref":"Hi.Motion.MatValves.html","topicUid":"Hi.Motion.MatValves","type":"Namespace","items":[{"name":"ClMachiningValve","href":"Hi.Motion.MatValves.ClMachiningValve.html","topicHref":"Hi.Motion.MatValves.ClMachiningValve.html","topicUid":"Hi.Motion.MatValves.ClMachiningValve","type":"Class"},{"name":"IMotionValve","href":"Hi.Motion.MatValves.IMotionValve.html","topicHref":"Hi.Motion.MatValves.IMotionValve.html","topicUid":"Hi.Motion.MatValves.IMotionValve","type":"Interface"},{"name":"MacroMotionValve","href":"Hi.Motion.MatValves.MacroMotionValve.html","topicHref":"Hi.Motion.MatValves.MacroMotionValve.html","topicUid":"Hi.Motion.MatValves.MacroMotionValve","type":"Class"},{"name":"StepMotionValve","href":"Hi.Motion.MatValves.StepMotionValve.html","topicHref":"Hi.Motion.MatValves.StepMotionValve.html","topicUid":"Hi.Motion.MatValves.StepMotionValve","type":"Class"}]},{"name":"Hi.Native","href":"Hi.Native.html","topicHref":"Hi.Native.html","topicUid":"Hi.Native","type":"Namespace","items":[{"name":"StopSource","href":"Hi.Native.StopSource.html","topicHref":"Hi.Native.StopSource.html","topicUid":"Hi.Native.StopSource","type":"Class"},{"name":"StopToken","href":"Hi.Native.StopToken.html","topicHref":"Hi.Native.StopToken.html","topicUid":"Hi.Native.StopToken","type":"Class"},{"name":"StopTokenKit","href":"Hi.Native.StopTokenKit.html","topicHref":"Hi.Native.StopTokenKit.html","topicUid":"Hi.Native.StopTokenKit","type":"Class"},{"name":"StopTokenUtil","href":"Hi.Native.StopTokenUtil.html","topicHref":"Hi.Native.StopTokenUtil.html","topicUid":"Hi.Native.StopTokenUtil","type":"Class"},{"name":"bind_t","href":"Hi.Native.bind_t.html","topicHref":"Hi.Native.bind_t.html","topicUid":"Hi.Native.bind_t","type":"Struct"},{"name":"box2d","href":"Hi.Native.box2d.html","topicHref":"Hi.Native.box2d.html","topicUid":"Hi.Native.box2d","type":"Struct"},{"name":"box3d","href":"Hi.Native.box3d.html","topicHref":"Hi.Native.box3d.html","topicUid":"Hi.Native.box3d","type":"Struct"},{"name":"expand_to_box3d_func_t","href":"Hi.Native.expand_to_box3d_func_t.html","topicHref":"Hi.Native.expand_to_box3d_func_t.html","topicUid":"Hi.Native.expand_to_box3d_func_t","type":"Delegate"},{"name":"key_event_t","href":"Hi.Native.key_event_t.html","topicHref":"Hi.Native.key_event_t.html","topicUid":"Hi.Native.key_event_t","type":"Struct"},{"name":"key_table__transform_view_by_key_pressing_t","href":"Hi.Native.key_table__transform_view_by_key_pressing_t.html","topicHref":"Hi.Native.key_table__transform_view_by_key_pressing_t.html","topicUid":"Hi.Native.key_table__transform_view_by_key_pressing_t","type":"Struct"},{"name":"mat4d","href":"Hi.Native.mat4d.html","topicHref":"Hi.Native.mat4d.html","topicUid":"Hi.Native.mat4d","type":"Struct"},{"name":"mat_stack_t","href":"Hi.Native.mat_stack_t.html","topicHref":"Hi.Native.mat_stack_t.html","topicUid":"Hi.Native.mat_stack_t","type":"Struct"},{"name":"mouse_button_event_t","href":"Hi.Native.mouse_button_event_t.html","topicHref":"Hi.Native.mouse_button_event_t.html","topicUid":"Hi.Native.mouse_button_event_t","type":"Struct"},{"name":"mouse_button_table__transform_view_by_mouse_drag_t","href":"Hi.Native.mouse_button_table__transform_view_by_mouse_drag_t.html","topicHref":"Hi.Native.mouse_button_table__transform_view_by_mouse_drag_t.html","topicUid":"Hi.Native.mouse_button_table__transform_view_by_mouse_drag_t","type":"Struct"},{"name":"mouse_move_event_t","href":"Hi.Native.mouse_move_event_t.html","topicHref":"Hi.Native.mouse_move_event_t.html","topicUid":"Hi.Native.mouse_move_event_t","type":"Struct"},{"name":"mouse_wheel_event_t","href":"Hi.Native.mouse_wheel_event_t.html","topicHref":"Hi.Native.mouse_wheel_event_t.html","topicUid":"Hi.Native.mouse_wheel_event_t","type":"Struct"},{"name":"panel_state_t","href":"Hi.Native.panel_state_t.html","topicHref":"Hi.Native.panel_state_t.html","topicUid":"Hi.Native.panel_state_t","type":"Struct"},{"name":"picking_event_t","href":"Hi.Native.picking_event_t.html","topicHref":"Hi.Native.picking_event_t.html","topicUid":"Hi.Native.picking_event_t","type":"Struct"},{"name":"picking_func_t","href":"Hi.Native.picking_func_t.html","topicHref":"Hi.Native.picking_func_t.html","topicUid":"Hi.Native.picking_func_t","type":"Delegate"},{"name":"picking_mark_t","href":"Hi.Native.picking_mark_t.html","topicHref":"Hi.Native.picking_mark_t.html","topicUid":"Hi.Native.picking_mark_t","type":"Struct"},{"name":"tri3d","href":"Hi.Native.tri3d.html","topicHref":"Hi.Native.tri3d.html","topicUid":"Hi.Native.tri3d","type":"Struct"},{"name":"ui_event_type","href":"Hi.Native.ui_event_type.html","topicHref":"Hi.Native.ui_event_type.html","topicUid":"Hi.Native.ui_event_type","type":"Enum"},{"name":"vec2d","href":"Hi.Native.vec2d.html","topicHref":"Hi.Native.vec2d.html","topicUid":"Hi.Native.vec2d","type":"Struct"},{"name":"vec3d","href":"Hi.Native.vec3d.html","topicHref":"Hi.Native.vec3d.html","topicUid":"Hi.Native.vec3d","type":"Struct"},{"name":"vec3f","href":"Hi.Native.vec3f.html","topicHref":"Hi.Native.vec3f.html","topicUid":"Hi.Native.vec3f","type":"Struct"}]},{"name":"Hi.NcMech","href":"Hi.NcMech.html","topicHref":"Hi.NcMech.html","topicUid":"Hi.NcMech","type":"Namespace","items":[{"name":"ICollisionIndexPairsSource","href":"Hi.NcMech.ICollisionIndexPairsSource.html","topicHref":"Hi.NcMech.ICollisionIndexPairsSource.html","topicUid":"Hi.NcMech.ICollisionIndexPairsSource","type":"Interface"}]},{"name":"Hi.NcMech.Fixtures","href":"Hi.NcMech.Fixtures.html","topicHref":"Hi.NcMech.Fixtures.html","topicUid":"Hi.NcMech.Fixtures","type":"Namespace","items":[{"name":"Fixture","href":"Hi.NcMech.Fixtures.Fixture.html","topicHref":"Hi.NcMech.Fixtures.Fixture.html","topicUid":"Hi.NcMech.Fixtures.Fixture","type":"Class"},{"name":"FixtureEditorDisplayee","href":"Hi.NcMech.Fixtures.FixtureEditorDisplayee.html","topicHref":"Hi.NcMech.Fixtures.FixtureEditorDisplayee.html","topicUid":"Hi.NcMech.Fixtures.FixtureEditorDisplayee","type":"Class"},{"name":"FixtureEditorDisplayeeConfig","href":"Hi.NcMech.Fixtures.FixtureEditorDisplayeeConfig.html","topicHref":"Hi.NcMech.Fixtures.FixtureEditorDisplayeeConfig.html","topicUid":"Hi.NcMech.Fixtures.FixtureEditorDisplayeeConfig","type":"Class"}]},{"name":"Hi.NcMech.Holders","href":"Hi.NcMech.Holders.html","topicHref":"Hi.NcMech.Holders.html","topicUid":"Hi.NcMech.Holders","type":"Namespace","items":[{"name":"CylindroidHolder","href":"Hi.NcMech.Holders.CylindroidHolder.html","topicHref":"Hi.NcMech.Holders.CylindroidHolder.html","topicUid":"Hi.NcMech.Holders.CylindroidHolder","type":"Class"},{"name":"FreeformHolder","href":"Hi.NcMech.Holders.FreeformHolder.html","topicHref":"Hi.NcMech.Holders.FreeformHolder.html","topicUid":"Hi.NcMech.Holders.FreeformHolder","type":"Class"},{"name":"HolderEditorDisplayee","href":"Hi.NcMech.Holders.HolderEditorDisplayee.html","topicHref":"Hi.NcMech.Holders.HolderEditorDisplayee.html","topicUid":"Hi.NcMech.Holders.HolderEditorDisplayee","type":"Class"},{"name":"IHolder","href":"Hi.NcMech.Holders.IHolder.html","topicHref":"Hi.NcMech.Holders.IHolder.html","topicUid":"Hi.NcMech.Holders.IHolder","type":"Interface"}]},{"name":"Hi.NcMech.Solids","href":"Hi.NcMech.Solids.html","topicHref":"Hi.NcMech.Solids.html","topicUid":"Hi.NcMech.Solids","type":"Namespace","items":[{"name":"IGetSolid","href":"Hi.NcMech.Solids.IGetSolid.html","topicHref":"Hi.NcMech.Solids.IGetSolid.html","topicUid":"Hi.NcMech.Solids.IGetSolid","type":"Interface"},{"name":"Solid","href":"Hi.NcMech.Solids.Solid.html","topicHref":"Hi.NcMech.Solids.Solid.html","topicUid":"Hi.NcMech.Solids.Solid","type":"Class"},{"name":"Solid.RenderingModeEnum","href":"Hi.NcMech.Solids.Solid.RenderingModeEnum.html","topicHref":"Hi.NcMech.Solids.Solid.RenderingModeEnum.html","topicUid":"Hi.NcMech.Solids.Solid.RenderingModeEnum","type":"Enum"},{"name":"SolidFuncSource","href":"Hi.NcMech.Solids.SolidFuncSource.html","topicHref":"Hi.NcMech.Solids.SolidFuncSource.html","topicUid":"Hi.NcMech.Solids.SolidFuncSource","type":"Class"}]},{"name":"Hi.NcMech.Topo","href":"Hi.NcMech.Topo.html","topicHref":"Hi.NcMech.Topo.html","topicUid":"Hi.NcMech.Topo","type":"Namespace","items":[{"name":"INcStroke","href":"Hi.NcMech.Topo.INcStroke.html","topicHref":"Hi.NcMech.Topo.INcStroke.html","topicUid":"Hi.NcMech.Topo.INcStroke","type":"Interface"},{"name":"INcTransformer","href":"Hi.NcMech.Topo.INcTransformer.html","topicHref":"Hi.NcMech.Topo.INcTransformer.html","topicUid":"Hi.NcMech.Topo.INcTransformer","type":"Interface"},{"name":"ITopoBrick","href":"Hi.NcMech.Topo.ITopoBrick.html","topicHref":"Hi.NcMech.Topo.ITopoBrick.html","topicUid":"Hi.NcMech.Topo.ITopoBrick","type":"Interface"},{"name":"NcRotation","href":"Hi.NcMech.Topo.NcRotation.html","topicHref":"Hi.NcMech.Topo.NcRotation.html","topicUid":"Hi.NcMech.Topo.NcRotation","type":"Class"},{"name":"NcTranslation","href":"Hi.NcMech.Topo.NcTranslation.html","topicHref":"Hi.NcMech.Topo.NcTranslation.html","topicUid":"Hi.NcMech.Topo.NcTranslation","type":"Class"},{"name":"SolidSourceTopoBrick","href":"Hi.NcMech.Topo.SolidSourceTopoBrick.html","topicHref":"Hi.NcMech.Topo.SolidSourceTopoBrick.html","topicUid":"Hi.NcMech.Topo.SolidSourceTopoBrick","type":"Class"},{"name":"StlSourceTopoBrick","href":"Hi.NcMech.Topo.StlSourceTopoBrick.html","topicHref":"Hi.NcMech.Topo.StlSourceTopoBrick.html","topicUid":"Hi.NcMech.Topo.StlSourceTopoBrick","type":"Class"}]},{"name":"Hi.NcMech.Workpieces","href":"Hi.NcMech.Workpieces.html","topicHref":"Hi.NcMech.Workpieces.html","topicUid":"Hi.NcMech.Workpieces","type":"Namespace","items":[{"name":"Workpiece","href":"Hi.NcMech.Workpieces.Workpiece.html","topicHref":"Hi.NcMech.Workpieces.Workpiece.html","topicUid":"Hi.NcMech.Workpieces.Workpiece","type":"Class"},{"name":"WorkpieceEditorDisplayee","href":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayee.html","topicHref":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayee.html","topicUid":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayee","type":"Class"},{"name":"WorkpieceEditorDisplayeeConfig","href":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayeeConfig.html","topicHref":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayeeConfig.html","topicUid":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayeeConfig","type":"Class"}]},{"name":"Hi.NcMech.Xyzabc","href":"Hi.NcMech.Xyzabc.html","topicHref":"Hi.NcMech.Xyzabc.html","topicUid":"Hi.NcMech.Xyzabc","type":"Namespace","items":[{"name":"CodeXyzabcMachineTool","href":"Hi.NcMech.Xyzabc.CodeXyzabcMachineTool.html","topicHref":"Hi.NcMech.Xyzabc.CodeXyzabcMachineTool.html","topicUid":"Hi.NcMech.Xyzabc.CodeXyzabcMachineTool","type":"Class"},{"name":"CodeXyzabcMachineToolUri","href":"Hi.NcMech.Xyzabc.CodeXyzabcMachineToolUri.html","topicHref":"Hi.NcMech.Xyzabc.CodeXyzabcMachineToolUri.html","topicUid":"Hi.NcMech.Xyzabc.CodeXyzabcMachineToolUri","type":"Class"},{"name":"GeneralXyzabcMachineTool","href":"Hi.NcMech.Xyzabc.GeneralXyzabcMachineTool.html","topicHref":"Hi.NcMech.Xyzabc.GeneralXyzabcMachineTool.html","topicUid":"Hi.NcMech.Xyzabc.GeneralXyzabcMachineTool","type":"Class"},{"name":"IGetCodeXyzabcMachineTool","href":"Hi.NcMech.Xyzabc.IGetCodeXyzabcMachineTool.html","topicHref":"Hi.NcMech.Xyzabc.IGetCodeXyzabcMachineTool.html","topicUid":"Hi.NcMech.Xyzabc.IGetCodeXyzabcMachineTool","type":"Interface"},{"name":"IXyzabcMachineTool","href":"Hi.NcMech.Xyzabc.IXyzabcMachineTool.html","topicHref":"Hi.NcMech.Xyzabc.IXyzabcMachineTool.html","topicUid":"Hi.NcMech.Xyzabc.IXyzabcMachineTool","type":"Interface"}]},{"name":"Hi.NcOpt","href":"Hi.NcOpt.html","topicHref":"Hi.NcOpt.html","topicUid":"Hi.NcOpt","type":"Namespace","items":[{"name":"CuttingVelocityOptLimit","href":"Hi.NcOpt.CuttingVelocityOptLimit.html","topicHref":"Hi.NcOpt.CuttingVelocityOptLimit.html","topicUid":"Hi.NcOpt.CuttingVelocityOptLimit","type":"Class"},{"name":"FixedFeedPerCycleOptLimit","href":"Hi.NcOpt.FixedFeedPerCycleOptLimit.html","topicHref":"Hi.NcOpt.FixedFeedPerCycleOptLimit.html","topicUid":"Hi.NcOpt.FixedFeedPerCycleOptLimit","type":"Class"},{"name":"FixedFeedPerToothOptLimit","href":"Hi.NcOpt.FixedFeedPerToothOptLimit.html","topicHref":"Hi.NcOpt.FixedFeedPerToothOptLimit.html","topicUid":"Hi.NcOpt.FixedFeedPerToothOptLimit","type":"Class"},{"name":"ICutterOptLimitHost","href":"Hi.NcOpt.ICutterOptLimitHost.html","topicHref":"Hi.NcOpt.ICutterOptLimitHost.html","topicUid":"Hi.NcOpt.ICutterOptLimitHost","type":"Interface"},{"name":"ICutterOptOption","href":"Hi.NcOpt.ICutterOptOption.html","topicHref":"Hi.NcOpt.ICutterOptOption.html","topicUid":"Hi.NcOpt.ICutterOptOption","type":"Interface"},{"name":"ICuttingVelocityOptLimit","href":"Hi.NcOpt.ICuttingVelocityOptLimit.html","topicHref":"Hi.NcOpt.ICuttingVelocityOptLimit.html","topicUid":"Hi.NcOpt.ICuttingVelocityOptLimit","type":"Interface"},{"name":"IFeedPerToothOptLimit","href":"Hi.NcOpt.IFeedPerToothOptLimit.html","topicHref":"Hi.NcOpt.IFeedPerToothOptLimit.html","topicUid":"Hi.NcOpt.IFeedPerToothOptLimit","type":"Interface"},{"name":"MillingCutterOptOption","href":"Hi.NcOpt.MillingCutterOptOption.html","topicHref":"Hi.NcOpt.MillingCutterOptOption.html","topicUid":"Hi.NcOpt.MillingCutterOptOption","type":"Class"},{"name":"NcOptOption","href":"Hi.NcOpt.NcOptOption.html","topicHref":"Hi.NcOpt.NcOptOption.html","topicUid":"Hi.NcOpt.NcOptOption","type":"Class"},{"name":"NcOptProc","href":"Hi.NcOpt.NcOptProc.html","topicHref":"Hi.NcOpt.NcOptProc.html","topicUid":"Hi.NcOpt.NcOptProc","type":"Class"},{"name":"NcOptimizationEmbeddedLogMode","href":"Hi.NcOpt.NcOptimizationEmbeddedLogMode.html","topicHref":"Hi.NcOpt.NcOptimizationEmbeddedLogMode.html","topicUid":"Hi.NcOpt.NcOptimizationEmbeddedLogMode","type":"Enum"},{"name":"ShapeBasedCutterOptLimit","href":"Hi.NcOpt.ShapeBasedCutterOptLimit.html","topicHref":"Hi.NcOpt.ShapeBasedCutterOptLimit.html","topicUid":"Hi.NcOpt.ShapeBasedCutterOptLimit","type":"Class"}]},{"name":"Hi.NcStepUtils","href":"Hi.NcStepUtils.html","topicHref":"Hi.NcStepUtils.html","topicUid":"Hi.NcStepUtils","type":"Namespace","items":[{"name":"IGetNcStep0","href":"Hi.NcStepUtils.IGetNcStep0.html","topicHref":"Hi.NcStepUtils.IGetNcStep0.html","topicUid":"Hi.NcStepUtils.IGetNcStep0","type":"Interface"},{"name":"INcStep0","href":"Hi.NcStepUtils.INcStep0.html","topicHref":"Hi.NcStepUtils.INcStep0.html","topicUid":"Hi.NcStepUtils.INcStep0","type":"Interface"},{"name":"INcStepMonitee","href":"Hi.NcStepUtils.INcStepMonitee.html","topicHref":"Hi.NcStepUtils.INcStepMonitee.html","topicUid":"Hi.NcStepUtils.INcStepMonitee","type":"Interface"},{"name":"NcStepUtil","href":"Hi.NcStepUtils.NcStepUtil.html","topicHref":"Hi.NcStepUtils.NcStepUtil.html","topicUid":"Hi.NcStepUtils.NcStepUtil","type":"Class"}]},{"name":"Hi.Numerical","href":"Hi.Numerical.html","topicHref":"Hi.Numerical.html","topicUid":"Hi.Numerical","type":"Namespace","items":[{"name":"CncBrand","href":"Hi.Numerical.CncBrand.html","topicHref":"Hi.Numerical.CncBrand.html","topicUid":"Hi.Numerical.CncBrand","type":"Enum"},{"name":"CommentMark","href":"Hi.Numerical.CommentMark.html","topicHref":"Hi.Numerical.CommentMark.html","topicUid":"Hi.Numerical.CommentMark","type":"Enum"},{"name":"CoordinateEntryDisplayee","href":"Hi.Numerical.CoordinateEntryDisplayee.html","topicHref":"Hi.Numerical.CoordinateEntryDisplayee.html","topicUid":"Hi.Numerical.CoordinateEntryDisplayee","type":"Class"},{"name":"CoordinateEntryRenderingFlag","href":"Hi.Numerical.CoordinateEntryRenderingFlag.html","topicHref":"Hi.Numerical.CoordinateEntryRenderingFlag.html","topicUid":"Hi.Numerical.CoordinateEntryRenderingFlag","type":"Enum"},{"name":"CoordinateInterpolationMode","href":"Hi.Numerical.CoordinateInterpolationMode.html","topicHref":"Hi.Numerical.CoordinateInterpolationMode.html","topicUid":"Hi.Numerical.CoordinateInterpolationMode","type":"Enum"},{"name":"FlexDictionaryUtil","href":"Hi.Numerical.FlexDictionaryUtil.html","topicHref":"Hi.Numerical.FlexDictionaryUtil.html","topicUid":"Hi.Numerical.FlexDictionaryUtil","type":"Class"},{"name":"HeidenhainCoordinateEntryDisplayee","href":"Hi.Numerical.HeidenhainCoordinateEntryDisplayee.html","topicHref":"Hi.Numerical.HeidenhainCoordinateEntryDisplayee.html","topicUid":"Hi.Numerical.HeidenhainCoordinateEntryDisplayee","type":"Class"},{"name":"IFlexDictionaryHost","href":"Hi.Numerical.IFlexDictionaryHost-1.html","topicHref":"Hi.Numerical.IFlexDictionaryHost-1.html","topicUid":"Hi.Numerical.IFlexDictionaryHost`1","type":"Interface"},{"name":"IGetFeedrate","href":"Hi.Numerical.IGetFeedrate.html","topicHref":"Hi.Numerical.IGetFeedrate.html","topicUid":"Hi.Numerical.IGetFeedrate","type":"Interface"},{"name":"IGetSpindleSpeed","href":"Hi.Numerical.IGetSpindleSpeed.html","topicHref":"Hi.Numerical.IGetSpindleSpeed.html","topicUid":"Hi.Numerical.IGetSpindleSpeed","type":"Interface"},{"name":"ISetFeedrate","href":"Hi.Numerical.ISetFeedrate.html","topicHref":"Hi.Numerical.ISetFeedrate.html","topicUid":"Hi.Numerical.ISetFeedrate","type":"Interface"},{"name":"ISetSpindleSpeed","href":"Hi.Numerical.ISetSpindleSpeed.html","topicHref":"Hi.Numerical.ISetSpindleSpeed.html","topicUid":"Hi.Numerical.ISetSpindleSpeed","type":"Interface"},{"name":"IsoCoordinateEntryDisplayee","href":"Hi.Numerical.IsoCoordinateEntryDisplayee.html","topicHref":"Hi.Numerical.IsoCoordinateEntryDisplayee.html","topicUid":"Hi.Numerical.IsoCoordinateEntryDisplayee","type":"Class"},{"name":"IsoCoordinateTable","href":"Hi.Numerical.IsoCoordinateTable.html","topicHref":"Hi.Numerical.IsoCoordinateTable.html","topicUid":"Hi.Numerical.IsoCoordinateTable","type":"Class"},{"name":"MechNcUtil","href":"Hi.Numerical.MechNcUtil.html","topicHref":"Hi.Numerical.MechNcUtil.html","topicUid":"Hi.Numerical.MechNcUtil","type":"Class"},{"name":"MillingToolOffsetTable","href":"Hi.Numerical.MillingToolOffsetTable.html","topicHref":"Hi.Numerical.MillingToolOffsetTable.html","topicUid":"Hi.Numerical.MillingToolOffsetTable","type":"Class"},{"name":"MillingToolOffsetTableRow","href":"Hi.Numerical.MillingToolOffsetTableRow.html","topicHref":"Hi.Numerical.MillingToolOffsetTableRow.html","topicUid":"Hi.Numerical.MillingToolOffsetTableRow","type":"Class"},{"name":"NcComment","href":"Hi.Numerical.NcComment.html","topicHref":"Hi.Numerical.NcComment.html","topicUid":"Hi.Numerical.NcComment","type":"Class"},{"name":"NcEnv","href":"Hi.Numerical.NcEnv.html","topicHref":"Hi.Numerical.NcEnv.html","topicUid":"Hi.Numerical.NcEnv","type":"Class"},{"name":"NcFlag","href":"Hi.Numerical.NcFlag.html","topicHref":"Hi.Numerical.NcFlag.html","topicUid":"Hi.Numerical.NcFlag","type":"Enum"},{"name":"NcFlagUtil","href":"Hi.Numerical.NcFlagUtil.html","topicHref":"Hi.Numerical.NcFlagUtil.html","topicUid":"Hi.Numerical.NcFlagUtil","type":"Class"},{"name":"NcGroup00","href":"Hi.Numerical.NcGroup00.html","topicHref":"Hi.Numerical.NcGroup00.html","topicUid":"Hi.Numerical.NcGroup00","type":"Enum"},{"name":"NcGroup01","href":"Hi.Numerical.NcGroup01.html","topicHref":"Hi.Numerical.NcGroup01.html","topicUid":"Hi.Numerical.NcGroup01","type":"Enum"},{"name":"NcGroup02","href":"Hi.Numerical.NcGroup02.html","topicHref":"Hi.Numerical.NcGroup02.html","topicUid":"Hi.Numerical.NcGroup02","type":"Enum"},{"name":"NcGroup03","href":"Hi.Numerical.NcGroup03.html","topicHref":"Hi.Numerical.NcGroup03.html","topicUid":"Hi.Numerical.NcGroup03","type":"Enum"},{"name":"NcGroup05","href":"Hi.Numerical.NcGroup05.html","topicHref":"Hi.Numerical.NcGroup05.html","topicUid":"Hi.Numerical.NcGroup05","type":"Enum"},{"name":"NcGroup06","href":"Hi.Numerical.NcGroup06.html","topicHref":"Hi.Numerical.NcGroup06.html","topicUid":"Hi.Numerical.NcGroup06","type":"Enum"},{"name":"NcGroup07","href":"Hi.Numerical.NcGroup07.html","topicHref":"Hi.Numerical.NcGroup07.html","topicUid":"Hi.Numerical.NcGroup07","type":"Enum"},{"name":"NcGroup08","href":"Hi.Numerical.NcGroup08.html","topicHref":"Hi.Numerical.NcGroup08.html","topicUid":"Hi.Numerical.NcGroup08","type":"Enum"},{"name":"NcGroup09","href":"Hi.Numerical.NcGroup09.html","topicHref":"Hi.Numerical.NcGroup09.html","topicUid":"Hi.Numerical.NcGroup09","type":"Enum"},{"name":"NcGroup10","href":"Hi.Numerical.NcGroup10.html","topicHref":"Hi.Numerical.NcGroup10.html","topicUid":"Hi.Numerical.NcGroup10","type":"Enum"},{"name":"NcGroup13","href":"Hi.Numerical.NcGroup13.html","topicHref":"Hi.Numerical.NcGroup13.html","topicUid":"Hi.Numerical.NcGroup13","type":"Enum"},{"name":"NcGroup14","href":"Hi.Numerical.NcGroup14.html","topicHref":"Hi.Numerical.NcGroup14.html","topicUid":"Hi.Numerical.NcGroup14","type":"Enum"},{"name":"NcGroup15","href":"Hi.Numerical.NcGroup15.html","topicHref":"Hi.Numerical.NcGroup15.html","topicUid":"Hi.Numerical.NcGroup15","type":"Enum"},{"name":"NcGroup16","href":"Hi.Numerical.NcGroup16.html","topicHref":"Hi.Numerical.NcGroup16.html","topicUid":"Hi.Numerical.NcGroup16","type":"Enum"},{"name":"NcGroup21","href":"Hi.Numerical.NcGroup21.html","topicHref":"Hi.Numerical.NcGroup21.html","topicUid":"Hi.Numerical.NcGroup21","type":"Enum"},{"name":"NcGroupAttribute","href":"Hi.Numerical.NcGroupAttribute.html","topicHref":"Hi.Numerical.NcGroupAttribute.html","topicUid":"Hi.Numerical.NcGroupAttribute","type":"Class"},{"name":"NcGroupHeidenhainM107M108","href":"Hi.Numerical.NcGroupHeidenhainM107M108.html","topicHref":"Hi.Numerical.NcGroupHeidenhainM107M108.html","topicUid":"Hi.Numerical.NcGroupHeidenhainM107M108","type":"Enum"},{"name":"NcGroupHeidenhainPlane","href":"Hi.Numerical.NcGroupHeidenhainPlane.html","topicHref":"Hi.Numerical.NcGroupHeidenhainPlane.html","topicUid":"Hi.Numerical.NcGroupHeidenhainPlane","type":"Enum"},{"name":"NcGroupHeidenhainShortestRotaryPath","href":"Hi.Numerical.NcGroupHeidenhainShortestRotaryPath.html","topicHref":"Hi.Numerical.NcGroupHeidenhainShortestRotaryPath.html","topicUid":"Hi.Numerical.NcGroupHeidenhainShortestRotaryPath","type":"Enum"},{"name":"NcGroupSpindleRotation","href":"Hi.Numerical.NcGroupSpindleRotation.html","topicHref":"Hi.Numerical.NcGroupSpindleRotation.html","topicUid":"Hi.Numerical.NcGroupSpindleRotation","type":"Enum"},{"name":"NcLifeCycleAttribute","href":"Hi.Numerical.NcLifeCycleAttribute.html","topicHref":"Hi.Numerical.NcLifeCycleAttribute.html","topicUid":"Hi.Numerical.NcLifeCycleAttribute","type":"Class"},{"name":"NcLifeCycleMode","href":"Hi.Numerical.NcLifeCycleMode.html","topicHref":"Hi.Numerical.NcLifeCycleMode.html","topicUid":"Hi.Numerical.NcLifeCycleMode","type":"Enum"},{"name":"NcLine","href":"Hi.Numerical.NcLine.html","topicHref":"Hi.Numerical.NcLine.html","topicUid":"Hi.Numerical.NcLine","type":"Class"},{"name":"NcNameAttribute","href":"Hi.Numerical.NcNameAttribute.html","topicHref":"Hi.Numerical.NcNameAttribute.html","topicUid":"Hi.Numerical.NcNameAttribute","type":"Class"},{"name":"NcNoteCache","href":"Hi.Numerical.NcNoteCache.html","topicHref":"Hi.Numerical.NcNoteCache.html","topicUid":"Hi.Numerical.NcNoteCache","type":"Class"},{"name":"NcProc","href":"Hi.Numerical.NcProc.html","topicHref":"Hi.Numerical.NcProc.html","topicUid":"Hi.Numerical.NcProc","type":"Class"},{"name":"NcStepFileOutputKit","href":"Hi.Numerical.NcStepFileOutputKit.html","topicHref":"Hi.Numerical.NcStepFileOutputKit.html","topicUid":"Hi.Numerical.NcStepFileOutputKit","type":"Class"},{"name":"NcStepMonitor","href":"Hi.Numerical.NcStepMonitor.html","topicHref":"Hi.Numerical.NcStepMonitor.html","topicUid":"Hi.Numerical.NcStepMonitor","type":"Class"},{"name":"NcUtil","href":"Hi.Numerical.NcUtil.html","topicHref":"Hi.Numerical.NcUtil.html","topicUid":"Hi.Numerical.NcUtil","type":"Class"},{"name":"NcWarningSceneEnum","href":"Hi.Numerical.NcWarningSceneEnum.html","topicHref":"Hi.Numerical.NcWarningSceneEnum.html","topicUid":"Hi.Numerical.NcWarningSceneEnum","type":"Enum"},{"name":"NumericUtil","href":"Hi.Numerical.NumericUtil.html","topicHref":"Hi.Numerical.NumericUtil.html","topicUid":"Hi.Numerical.NumericUtil","type":"Class"},{"name":"PolarEntry","href":"Hi.Numerical.PolarEntry.html","topicHref":"Hi.Numerical.PolarEntry.html","topicUid":"Hi.Numerical.PolarEntry","type":"Class"},{"name":"PolarEntry.PolarModeDirEnum","href":"Hi.Numerical.PolarEntry.PolarModeDirEnum.html","topicHref":"Hi.Numerical.PolarEntry.PolarModeDirEnum.html","topicUid":"Hi.Numerical.PolarEntry.PolarModeDirEnum","type":"Enum"},{"name":"RadiusCompensationBuf","href":"Hi.Numerical.RadiusCompensationBuf.html","topicHref":"Hi.Numerical.RadiusCompensationBuf.html","topicUid":"Hi.Numerical.RadiusCompensationBuf","type":"Class"},{"name":"SpindleDirection","href":"Hi.Numerical.SpindleDirection.html","topicHref":"Hi.Numerical.SpindleDirection.html","topicUid":"Hi.Numerical.SpindleDirection","type":"Enum"},{"name":"SubStringKit","href":"Hi.Numerical.SubStringKit.html","topicHref":"Hi.Numerical.SubStringKit.html","topicUid":"Hi.Numerical.SubStringKit","type":"Class"},{"name":"SubStringKit.ActivationMode","href":"Hi.Numerical.SubStringKit.ActivationMode.html","topicHref":"Hi.Numerical.SubStringKit.ActivationMode.html","topicUid":"Hi.Numerical.SubStringKit.ActivationMode","type":"Enum"},{"name":"ToolConfigNotFoundException","href":"Hi.Numerical.ToolConfigNotFoundException.html","topicHref":"Hi.Numerical.ToolConfigNotFoundException.html","topicUid":"Hi.Numerical.ToolConfigNotFoundException","type":"Class"}]},{"name":"Hi.Numerical.Acts","href":"Hi.Numerical.Acts.html","topicHref":"Hi.Numerical.Acts.html","topicUid":"Hi.Numerical.Acts","type":"Namespace","items":[{"name":"ActActualTime","href":"Hi.Numerical.Acts.ActActualTime.html","topicHref":"Hi.Numerical.Acts.ActActualTime.html","topicUid":"Hi.Numerical.Acts.ActActualTime","type":"Class"},{"name":"ActClArc","href":"Hi.Numerical.Acts.ActClArc.html","topicHref":"Hi.Numerical.Acts.ActClArc.html","topicUid":"Hi.Numerical.Acts.ActClArc","type":"Class"},{"name":"ActClLinear","href":"Hi.Numerical.Acts.ActClLinear.html","topicHref":"Hi.Numerical.Acts.ActClLinear.html","topicUid":"Hi.Numerical.Acts.ActClLinear","type":"Class"},{"name":"ActClStep","href":"Hi.Numerical.Acts.ActClStep.html","topicHref":"Hi.Numerical.Acts.ActClStep.html","topicUid":"Hi.Numerical.Acts.ActClStep","type":"Class"},{"name":"ActClTeleport","href":"Hi.Numerical.Acts.ActClTeleport.html","topicHref":"Hi.Numerical.Acts.ActClTeleport.html","topicUid":"Hi.Numerical.Acts.ActClTeleport","type":"Class"},{"name":"ActCooling","href":"Hi.Numerical.Acts.ActCooling.html","topicHref":"Hi.Numerical.Acts.ActCooling.html","topicUid":"Hi.Numerical.Acts.ActCooling","type":"Class"},{"name":"ActData","href":"Hi.Numerical.Acts.ActData.html","topicHref":"Hi.Numerical.Acts.ActData.html","topicUid":"Hi.Numerical.Acts.ActData","type":"Class"},{"name":"ActDelay","href":"Hi.Numerical.Acts.ActDelay.html","topicHref":"Hi.Numerical.Acts.ActDelay.html","topicUid":"Hi.Numerical.Acts.ActDelay","type":"Class"},{"name":"ActFeedrate","href":"Hi.Numerical.Acts.ActFeedrate.html","topicHref":"Hi.Numerical.Acts.ActFeedrate.html","topicUid":"Hi.Numerical.Acts.ActFeedrate","type":"Class"},{"name":"ActHiddenStateChanged","href":"Hi.Numerical.Acts.ActHiddenStateChanged.html","topicHref":"Hi.Numerical.Acts.ActHiddenStateChanged.html","topicUid":"Hi.Numerical.Acts.ActHiddenStateChanged","type":"Class"},{"name":"ActIntentionalSkip","href":"Hi.Numerical.Acts.ActIntentionalSkip.html","topicHref":"Hi.Numerical.Acts.ActIntentionalSkip.html","topicUid":"Hi.Numerical.Acts.ActIntentionalSkip","type":"Class"},{"name":"ActLineBegin","href":"Hi.Numerical.Acts.ActLineBegin.html","topicHref":"Hi.Numerical.Acts.ActLineBegin.html","topicUid":"Hi.Numerical.Acts.ActLineBegin","type":"Class"},{"name":"ActLineCsScript","href":"Hi.Numerical.Acts.ActLineCsScript.html","topicHref":"Hi.Numerical.Acts.ActLineCsScript.html","topicUid":"Hi.Numerical.Acts.ActLineCsScript","type":"Class"},{"name":"ActLineEnd","href":"Hi.Numerical.Acts.ActLineEnd.html","topicHref":"Hi.Numerical.Acts.ActLineEnd.html","topicUid":"Hi.Numerical.Acts.ActLineEnd","type":"Class"},{"name":"ActLinearClAndLinearMcAbcMcXyzabcContour","href":"Hi.Numerical.Acts.ActLinearClAndLinearMcAbcMcXyzabcContour.html","topicHref":"Hi.Numerical.Acts.ActLinearClAndLinearMcAbcMcXyzabcContour.html","topicUid":"Hi.Numerical.Acts.ActLinearClAndLinearMcAbcMcXyzabcContour","type":"Class"},{"name":"ActMcPolarLinearContour","href":"Hi.Numerical.Acts.ActMcPolarLinearContour.html","topicHref":"Hi.Numerical.Acts.ActMcPolarLinearContour.html","topicUid":"Hi.Numerical.Acts.ActMcPolarLinearContour","type":"Class"},{"name":"ActMcXyzLinearContour","href":"Hi.Numerical.Acts.ActMcXyzLinearContour.html","topicHref":"Hi.Numerical.Acts.ActMcXyzLinearContour.html","topicUid":"Hi.Numerical.Acts.ActMcXyzLinearContour","type":"Class"},{"name":"ActMcXyzStep","href":"Hi.Numerical.Acts.ActMcXyzStep.html","topicHref":"Hi.Numerical.Acts.ActMcXyzStep.html","topicUid":"Hi.Numerical.Acts.ActMcXyzStep","type":"Class"},{"name":"ActMcXyzabcOrientableLinearContour","href":"Hi.Numerical.Acts.ActMcXyzabcOrientableLinearContour.html","topicHref":"Hi.Numerical.Acts.ActMcXyzabcOrientableLinearContour.html","topicUid":"Hi.Numerical.Acts.ActMcXyzabcOrientableLinearContour","type":"Class"},{"name":"ActMcXyzabcStep","href":"Hi.Numerical.Acts.ActMcXyzabcStep.html","topicHref":"Hi.Numerical.Acts.ActMcXyzabcStep.html","topicUid":"Hi.Numerical.Acts.ActMcXyzabcStep","type":"Class"},{"name":"ActRapid","href":"Hi.Numerical.Acts.ActRapid.html","topicHref":"Hi.Numerical.Acts.ActRapid.html","topicUid":"Hi.Numerical.Acts.ActRapid","type":"Class"},{"name":"ActSpindleDirection","href":"Hi.Numerical.Acts.ActSpindleDirection.html","topicHref":"Hi.Numerical.Acts.ActSpindleDirection.html","topicUid":"Hi.Numerical.Acts.ActSpindleDirection","type":"Class"},{"name":"ActSpindleSpeed","href":"Hi.Numerical.Acts.ActSpindleSpeed.html","topicHref":"Hi.Numerical.Acts.ActSpindleSpeed.html","topicUid":"Hi.Numerical.Acts.ActSpindleSpeed","type":"Class"},{"name":"ActSpiralMcXyzContour","href":"Hi.Numerical.Acts.ActSpiralMcXyzContour.html","topicHref":"Hi.Numerical.Acts.ActSpiralMcXyzContour.html","topicUid":"Hi.Numerical.Acts.ActSpiralMcXyzContour","type":"Class"},{"name":"ActStateRunner","href":"Hi.Numerical.Acts.ActStateRunner.html","topicHref":"Hi.Numerical.Acts.ActStateRunner.html","topicUid":"Hi.Numerical.Acts.ActStateRunner","type":"Class"},{"name":"ActToolingStep","href":"Hi.Numerical.Acts.ActToolingStep.html","topicHref":"Hi.Numerical.Acts.ActToolingStep.html","topicUid":"Hi.Numerical.Acts.ActToolingStep","type":"Class"},{"name":"ActToolingTeleport","href":"Hi.Numerical.Acts.ActToolingTeleport.html","topicHref":"Hi.Numerical.Acts.ActToolingTeleport.html","topicUid":"Hi.Numerical.Acts.ActToolingTeleport","type":"Class"},{"name":"ActUnknownSkip","href":"Hi.Numerical.Acts.ActUnknownSkip.html","topicHref":"Hi.Numerical.Acts.ActUnknownSkip.html","topicUid":"Hi.Numerical.Acts.ActUnknownSkip","type":"Class"},{"name":"ActUtil","href":"Hi.Numerical.Acts.ActUtil.html","topicHref":"Hi.Numerical.Acts.ActUtil.html","topicUid":"Hi.Numerical.Acts.ActUtil","type":"Class"},{"name":"IAct","href":"Hi.Numerical.Acts.IAct.html","topicHref":"Hi.Numerical.Acts.IAct.html","topicUid":"Hi.Numerical.Acts.IAct","type":"Interface"},{"name":"IActClMove","href":"Hi.Numerical.Acts.IActClMove.html","topicHref":"Hi.Numerical.Acts.IActClMove.html","topicUid":"Hi.Numerical.Acts.IActClMove","type":"Interface"},{"name":"IActDuration","href":"Hi.Numerical.Acts.IActDuration.html","topicHref":"Hi.Numerical.Acts.IActDuration.html","topicUid":"Hi.Numerical.Acts.IActDuration","type":"Interface"},{"name":"IActMachineStep","href":"Hi.Numerical.Acts.IActMachineStep.html","topicHref":"Hi.Numerical.Acts.IActMachineStep.html","topicUid":"Hi.Numerical.Acts.IActMachineStep","type":"Interface"},{"name":"IActMcXyzContour","href":"Hi.Numerical.Acts.IActMcXyzContour.html","topicHref":"Hi.Numerical.Acts.IActMcXyzContour.html","topicUid":"Hi.Numerical.Acts.IActMcXyzContour","type":"Interface"},{"name":"IActMcXyzabcContour","href":"Hi.Numerical.Acts.IActMcXyzabcContour.html","topicHref":"Hi.Numerical.Acts.IActMcXyzabcContour.html","topicUid":"Hi.Numerical.Acts.IActMcXyzabcContour","type":"Interface"},{"name":"IActSkip","href":"Hi.Numerical.Acts.IActSkip.html","topicHref":"Hi.Numerical.Acts.IActSkip.html","topicUid":"Hi.Numerical.Acts.IActSkip","type":"Interface"},{"name":"IActTooling","href":"Hi.Numerical.Acts.IActTooling.html","topicHref":"Hi.Numerical.Acts.IActTooling.html","topicUid":"Hi.Numerical.Acts.IActTooling","type":"Interface"},{"name":"IWorkTimeAttrib","href":"Hi.Numerical.Acts.IWorkTimeAttrib.html","topicHref":"Hi.Numerical.Acts.IWorkTimeAttrib.html","topicUid":"Hi.Numerical.Acts.IWorkTimeAttrib","type":"Interface"},{"name":"IWorkTimeGetter","href":"Hi.Numerical.Acts.IWorkTimeGetter.html","topicHref":"Hi.Numerical.Acts.IWorkTimeGetter.html","topicUid":"Hi.Numerical.Acts.IWorkTimeGetter","type":"Interface"},{"name":"IWorkTimeSetter","href":"Hi.Numerical.Acts.IWorkTimeSetter.html","topicHref":"Hi.Numerical.Acts.IWorkTimeSetter.html","topicUid":"Hi.Numerical.Acts.IWorkTimeSetter","type":"Interface"}]},{"name":"Hi.Numerical.FilePlayers","href":"Hi.Numerical.FilePlayers.html","topicHref":"Hi.Numerical.FilePlayers.html","topicUid":"Hi.Numerical.FilePlayers","type":"Namespace","items":[{"name":"CsvRunner","href":"Hi.Numerical.FilePlayers.CsvRunner.html","topicHref":"Hi.Numerical.FilePlayers.CsvRunner.html","topicUid":"Hi.Numerical.FilePlayers.CsvRunner","type":"Class"},{"name":"CsvRunnerConfig","href":"Hi.Numerical.FilePlayers.CsvRunnerConfig.html","topicHref":"Hi.Numerical.FilePlayers.CsvRunnerConfig.html","topicUid":"Hi.Numerical.FilePlayers.CsvRunnerConfig","type":"Class"},{"name":"IControlRunner","href":"Hi.Numerical.FilePlayers.IControlRunner.html","topicHref":"Hi.Numerical.FilePlayers.IControlRunner.html","topicUid":"Hi.Numerical.FilePlayers.IControlRunner","type":"Interface"},{"name":"NcRunner","href":"Hi.Numerical.FilePlayers.NcRunner.html","topicHref":"Hi.Numerical.FilePlayers.NcRunner.html","topicUid":"Hi.Numerical.FilePlayers.NcRunner","type":"Class"},{"name":"SourceCommandActEntry","href":"Hi.Numerical.FilePlayers.SourceCommandActEntry.html","topicHref":"Hi.Numerical.FilePlayers.SourceCommandActEntry.html","topicUid":"Hi.Numerical.FilePlayers.SourceCommandActEntry","type":"Class"}]},{"name":"Hi.Numerical.MachiningMotionResolutionUtils","href":"Hi.Numerical.MachiningMotionResolutionUtils.html","topicHref":"Hi.Numerical.MachiningMotionResolutionUtils.html","topicUid":"Hi.Numerical.MachiningMotionResolutionUtils","type":"Namespace","items":[{"name":"FeedPerCycleMachiningMotionResolution","href":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerCycleMachiningMotionResolution.html","topicHref":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerCycleMachiningMotionResolution.html","topicUid":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerCycleMachiningMotionResolution","type":"Class"},{"name":"FeedPerToothMachiningMotionResolution","href":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerToothMachiningMotionResolution.html","topicHref":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerToothMachiningMotionResolution.html","topicUid":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerToothMachiningMotionResolution","type":"Class"},{"name":"FeedPerToothNcResolution0","href":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerToothNcResolution0.html","topicHref":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerToothNcResolution0.html","topicUid":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerToothNcResolution0","type":"Class"},{"name":"FixedMachiningMotionResolution","href":"Hi.Numerical.MachiningMotionResolutionUtils.FixedMachiningMotionResolution.html","topicHref":"Hi.Numerical.MachiningMotionResolutionUtils.FixedMachiningMotionResolution.html","topicUid":"Hi.Numerical.MachiningMotionResolutionUtils.FixedMachiningMotionResolution","type":"Class"},{"name":"IMachiningMotionResolution","href":"Hi.Numerical.MachiningMotionResolutionUtils.IMachiningMotionResolution.html","topicHref":"Hi.Numerical.MachiningMotionResolutionUtils.IMachiningMotionResolution.html","topicUid":"Hi.Numerical.MachiningMotionResolutionUtils.IMachiningMotionResolution","type":"Interface"}]},{"name":"Hi.Numerical.NcArgs","href":"Hi.Numerical.NcArgs.html","topicHref":"Hi.Numerical.NcArgs.html","topicUid":"Hi.Numerical.NcArgs","type":"Namespace","items":[{"name":"ArcNcArg","href":"Hi.Numerical.NcArgs.ArcNcArg.html","topicHref":"Hi.Numerical.NcArgs.ArcNcArg.html","topicUid":"Hi.Numerical.NcArgs.ArcNcArg","type":"Class"},{"name":"G28Arg","href":"Hi.Numerical.NcArgs.G28Arg.html","topicHref":"Hi.Numerical.NcArgs.G28Arg.html","topicUid":"Hi.Numerical.NcArgs.G28Arg","type":"Class"},{"name":"Group07NcArg","href":"Hi.Numerical.NcArgs.Group07NcArg.html","topicHref":"Hi.Numerical.NcArgs.Group07NcArg.html","topicUid":"Hi.Numerical.NcArgs.Group07NcArg","type":"Class"},{"name":"Group09NcArg","href":"Hi.Numerical.NcArgs.Group09NcArg.html","topicHref":"Hi.Numerical.NcArgs.Group09NcArg.html","topicUid":"Hi.Numerical.NcArgs.Group09NcArg","type":"Class"},{"name":"HeidenhainCycleDef7Arg","href":"Hi.Numerical.NcArgs.HeidenhainCycleDef7Arg.html","topicHref":"Hi.Numerical.NcArgs.HeidenhainCycleDef7Arg.html","topicUid":"Hi.Numerical.NcArgs.HeidenhainCycleDef7Arg","type":"Class"},{"name":"HeidenhainPlaneSpatialArg","href":"Hi.Numerical.NcArgs.HeidenhainPlaneSpatialArg.html","topicHref":"Hi.Numerical.NcArgs.HeidenhainPlaneSpatialArg.html","topicUid":"Hi.Numerical.NcArgs.HeidenhainPlaneSpatialArg","type":"Class"},{"name":"IHeidenhainBlockCacheArg","href":"Hi.Numerical.NcArgs.IHeidenhainBlockCacheArg.html","topicHref":"Hi.Numerical.NcArgs.IHeidenhainBlockCacheArg.html","topicUid":"Hi.Numerical.NcArgs.IHeidenhainBlockCacheArg","type":"Interface"},{"name":"IHeidenhainPlaneArg","href":"Hi.Numerical.NcArgs.IHeidenhainPlaneArg.html","topicHref":"Hi.Numerical.NcArgs.IHeidenhainPlaneArg.html","topicUid":"Hi.Numerical.NcArgs.IHeidenhainPlaneArg","type":"Interface"},{"name":"ITiltPlaneNcArg","href":"Hi.Numerical.NcArgs.ITiltPlaneNcArg.html","topicHref":"Hi.Numerical.NcArgs.ITiltPlaneNcArg.html","topicUid":"Hi.Numerical.NcArgs.ITiltPlaneNcArg","type":"Interface"},{"name":"NcArgCycle800","href":"Hi.Numerical.NcArgs.NcArgCycle800.html","topicHref":"Hi.Numerical.NcArgs.NcArgCycle800.html","topicUid":"Hi.Numerical.NcArgs.NcArgCycle800","type":"Class"},{"name":"NcArgG68","href":"Hi.Numerical.NcArgs.NcArgG68.html","topicHref":"Hi.Numerical.NcArgs.NcArgG68.html","topicUid":"Hi.Numerical.NcArgs.NcArgG68","type":"Class"},{"name":"NcArgG68p2","href":"Hi.Numerical.NcArgs.NcArgG68p2.html","topicHref":"Hi.Numerical.NcArgs.NcArgG68p2.html","topicUid":"Hi.Numerical.NcArgs.NcArgG68p2","type":"Class"},{"name":"PausingNcArg","href":"Hi.Numerical.NcArgs.PausingNcArg.html","topicHref":"Hi.Numerical.NcArgs.PausingNcArg.html","topicUid":"Hi.Numerical.NcArgs.PausingNcArg","type":"Class"}]},{"name":"Hi.Numerical.StepSelectionUtils","href":"Hi.Numerical.StepSelectionUtils.html","topicHref":"Hi.Numerical.StepSelectionUtils.html","topicUid":"Hi.Numerical.StepSelectionUtils","type":"Namespace","items":[{"name":"AnchorMode","href":"Hi.Numerical.StepSelectionUtils.AnchorMode.html","topicHref":"Hi.Numerical.StepSelectionUtils.AnchorMode.html","topicUid":"Hi.Numerical.StepSelectionUtils.AnchorMode","type":"Enum"},{"name":"BoundSelector","href":"Hi.Numerical.StepSelectionUtils.BoundSelector.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelector.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelector","type":"Class"},{"name":"BoundSelectorHost","href":"Hi.Numerical.StepSelectionUtils.BoundSelectorHost.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelectorHost.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelectorHost","type":"Class"},{"name":"BoundSelectorPair","href":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair","type":"Class"},{"name":"BoundSelectorPair.BoundLocale","href":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair.BoundLocale.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair.BoundLocale.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair.BoundLocale","type":"Enum"},{"name":"BoundSelectorStepSectionBundle","href":"Hi.Numerical.StepSelectionUtils.BoundSelectorStepSectionBundle.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelectorStepSectionBundle.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelectorStepSectionBundle","type":"Class"},{"name":"BoundSelectorUtil","href":"Hi.Numerical.StepSelectionUtils.BoundSelectorUtil.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelectorUtil.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelectorUtil","type":"Class"},{"name":"DistanceShift","href":"Hi.Numerical.StepSelectionUtils.DistanceShift.html","topicHref":"Hi.Numerical.StepSelectionUtils.DistanceShift.html","topicUid":"Hi.Numerical.StepSelectionUtils.DistanceShift","type":"Class"},{"name":"IStepShift","href":"Hi.Numerical.StepSelectionUtils.IStepShift.html","topicHref":"Hi.Numerical.StepSelectionUtils.IStepShift.html","topicUid":"Hi.Numerical.StepSelectionUtils.IStepShift","type":"Interface"},{"name":"TimeShift","href":"Hi.Numerical.StepSelectionUtils.TimeShift.html","topicHref":"Hi.Numerical.StepSelectionUtils.TimeShift.html","topicUid":"Hi.Numerical.StepSelectionUtils.TimeShift","type":"Class"}]},{"name":"Hi.Numerical.Xyzabc","href":"Hi.Numerical.Xyzabc.html","topicHref":"Hi.Numerical.Xyzabc.html","topicUid":"Hi.Numerical.Xyzabc","type":"Namespace","items":[{"name":"Abc","href":"Hi.Numerical.Xyzabc.Abc.html","topicHref":"Hi.Numerical.Xyzabc.Abc.html","topicUid":"Hi.Numerical.Xyzabc.Abc","type":"Struct"},{"name":"CodeXyzabcChain","href":"Hi.Numerical.Xyzabc.CodeXyzabcChain.html","topicHref":"Hi.Numerical.Xyzabc.CodeXyzabcChain.html","topicUid":"Hi.Numerical.Xyzabc.CodeXyzabcChain","type":"Class"},{"name":"GeneralXyzabcChain","href":"Hi.Numerical.Xyzabc.GeneralXyzabcChain.html","topicHref":"Hi.Numerical.Xyzabc.GeneralXyzabcChain.html","topicUid":"Hi.Numerical.Xyzabc.GeneralXyzabcChain","type":"Class"},{"name":"ICoordinateConverter","href":"Hi.Numerical.Xyzabc.ICoordinateConverter.html","topicHref":"Hi.Numerical.Xyzabc.ICoordinateConverter.html","topicUid":"Hi.Numerical.Xyzabc.ICoordinateConverter","type":"Interface"},{"name":"IGetMcXyzabc","href":"Hi.Numerical.Xyzabc.IGetMcXyzabc.html","topicHref":"Hi.Numerical.Xyzabc.IGetMcXyzabc.html","topicUid":"Hi.Numerical.Xyzabc.IGetMcXyzabc","type":"Interface"},{"name":"IGetXyzabcChain","href":"Hi.Numerical.Xyzabc.IGetXyzabcChain.html","topicHref":"Hi.Numerical.Xyzabc.IGetXyzabcChain.html","topicUid":"Hi.Numerical.Xyzabc.IGetXyzabcChain","type":"Interface"},{"name":"IXyzabcChain","href":"Hi.Numerical.Xyzabc.IXyzabcChain.html","topicHref":"Hi.Numerical.Xyzabc.IXyzabcChain.html","topicUid":"Hi.Numerical.Xyzabc.IXyzabcChain","type":"Interface"},{"name":"ReflectedXyzabcChain","href":"Hi.Numerical.Xyzabc.ReflectedXyzabcChain.html","topicHref":"Hi.Numerical.Xyzabc.ReflectedXyzabcChain.html","topicUid":"Hi.Numerical.Xyzabc.ReflectedXyzabcChain","type":"Class"},{"name":"SimpleChainCoordinateConverter","href":"Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.html","topicHref":"Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter.html","topicUid":"Hi.Numerical.Xyzabc.SimpleChainCoordinateConverter","type":"Class"},{"name":"XyzabcChainMillingCoordinateConverter","href":"Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter.html","topicHref":"Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter.html","topicUid":"Hi.Numerical.Xyzabc.XyzabcChainMillingCoordinateConverter","type":"Class"},{"name":"XyzabcSolver","href":"Hi.Numerical.Xyzabc.XyzabcSolver.html","topicHref":"Hi.Numerical.Xyzabc.XyzabcSolver.html","topicUid":"Hi.Numerical.Xyzabc.XyzabcSolver","type":"Class"},{"name":"XyzabcUtil","href":"Hi.Numerical.Xyzabc.XyzabcUtil.html","topicHref":"Hi.Numerical.Xyzabc.XyzabcUtil.html","topicUid":"Hi.Numerical.Xyzabc.XyzabcUtil","type":"Class"}]},{"name":"Hi.PanelModels","href":"Hi.PanelModels.html","topicHref":"Hi.PanelModels.html","topicUid":"Hi.PanelModels","type":"Namespace","items":[{"name":"HiKey","href":"Hi.PanelModels.HiKey.html","topicHref":"Hi.PanelModels.HiKey.html","topicUid":"Hi.PanelModels.HiKey","type":"Enum"},{"name":"HiKeyEvent","href":"Hi.PanelModels.HiKeyEvent.html","topicHref":"Hi.PanelModels.HiKeyEvent.html","topicUid":"Hi.PanelModels.HiKeyEvent","type":"Class"},{"name":"HiModifierKeys","href":"Hi.PanelModels.HiModifierKeys.html","topicHref":"Hi.PanelModels.HiModifierKeys.html","topicUid":"Hi.PanelModels.HiModifierKeys","type":"Enum"},{"name":"HiMouseButton","href":"Hi.PanelModels.HiMouseButton.html","topicHref":"Hi.PanelModels.HiMouseButton.html","topicUid":"Hi.PanelModels.HiMouseButton","type":"Enum"},{"name":"HiMouseButtonEvent","href":"Hi.PanelModels.HiMouseButtonEvent.html","topicHref":"Hi.PanelModels.HiMouseButtonEvent.html","topicUid":"Hi.PanelModels.HiMouseButtonEvent","type":"Class"},{"name":"HiMouseButtonMask","href":"Hi.PanelModels.HiMouseButtonMask.html","topicHref":"Hi.PanelModels.HiMouseButtonMask.html","topicUid":"Hi.PanelModels.HiMouseButtonMask","type":"Enum"},{"name":"HiMouseButtonMaskUtil","href":"Hi.PanelModels.HiMouseButtonMaskUtil.html","topicHref":"Hi.PanelModels.HiMouseButtonMaskUtil.html","topicUid":"Hi.PanelModels.HiMouseButtonMaskUtil","type":"Class"},{"name":"HiMouseMoveEvent","href":"Hi.PanelModels.HiMouseMoveEvent.html","topicHref":"Hi.PanelModels.HiMouseMoveEvent.html","topicUid":"Hi.PanelModels.HiMouseMoveEvent","type":"Class"},{"name":"HiMouseWheelEvent","href":"Hi.PanelModels.HiMouseWheelEvent.html","topicHref":"Hi.PanelModels.HiMouseWheelEvent.html","topicUid":"Hi.PanelModels.HiMouseWheelEvent","type":"Class"},{"name":"PanelModel","href":"Hi.PanelModels.PanelModel.html","topicHref":"Hi.PanelModels.PanelModel.html","topicUid":"Hi.PanelModels.PanelModel","type":"Class"}]},{"name":"Hi.Parallels","href":"Hi.Parallels.html","topicHref":"Hi.Parallels.html","topicUid":"Hi.Parallels","type":"Namespace","items":[{"name":"CurrentThreadTaskScheduler","href":"Hi.Parallels.CurrentThreadTaskScheduler.html","topicHref":"Hi.Parallels.CurrentThreadTaskScheduler.html","topicUid":"Hi.Parallels.CurrentThreadTaskScheduler","type":"Class"},{"name":"DistributedQueueTaskScheduler","href":"Hi.Parallels.DistributedQueueTaskScheduler.html","topicHref":"Hi.Parallels.DistributedQueueTaskScheduler.html","topicUid":"Hi.Parallels.DistributedQueueTaskScheduler","type":"Class"},{"name":"DistributedQueueTaskStarter","href":"Hi.Parallels.DistributedQueueTaskStarter.html","topicHref":"Hi.Parallels.DistributedQueueTaskStarter.html","topicUid":"Hi.Parallels.DistributedQueueTaskStarter","type":"Class"},{"name":"LockUtil","href":"Hi.Parallels.LockUtil.html","topicHref":"Hi.Parallels.LockUtil.html","topicUid":"Hi.Parallels.LockUtil","type":"Class"},{"name":"PriorityBasedTaskScheduler","href":"Hi.Parallels.PriorityBasedTaskScheduler.html","topicHref":"Hi.Parallels.PriorityBasedTaskScheduler.html","topicUid":"Hi.Parallels.PriorityBasedTaskScheduler","type":"Class"},{"name":"QueueTaskScheduler","href":"Hi.Parallels.QueueTaskScheduler.html","topicHref":"Hi.Parallels.QueueTaskScheduler.html","topicUid":"Hi.Parallels.QueueTaskScheduler","type":"Class"},{"name":"ReaderWriterLockUtil","href":"Hi.Parallels.ReaderWriterLockUtil.html","topicHref":"Hi.Parallels.ReaderWriterLockUtil.html","topicUid":"Hi.Parallels.ReaderWriterLockUtil","type":"Class"},{"name":"SemaphoreUtil","href":"Hi.Parallels.SemaphoreUtil.html","topicHref":"Hi.Parallels.SemaphoreUtil.html","topicUid":"Hi.Parallels.SemaphoreUtil","type":"Class"},{"name":"ThreadSafeSet","href":"Hi.Parallels.ThreadSafeSet-1.html","topicHref":"Hi.Parallels.ThreadSafeSet-1.html","topicUid":"Hi.Parallels.ThreadSafeSet`1","type":"Class"}]},{"name":"Hi.Physics","href":"Hi.Physics.html","topicHref":"Hi.Physics.html","topicUid":"Hi.Physics","type":"Namespace","items":[{"name":"AmpPhase","href":"Hi.Physics.AmpPhase.html","topicHref":"Hi.Physics.AmpPhase.html","topicUid":"Hi.Physics.AmpPhase","type":"Class"},{"name":"CoatingMaterial","href":"Hi.Physics.CoatingMaterial.html","topicHref":"Hi.Physics.CoatingMaterial.html","topicUid":"Hi.Physics.CoatingMaterial","type":"Class"},{"name":"CoolantHeatCondition","href":"Hi.Physics.CoolantHeatCondition.html","topicHref":"Hi.Physics.CoolantHeatCondition.html","topicUid":"Hi.Physics.CoolantHeatCondition","type":"Class"},{"name":"CutterMaterial","href":"Hi.Physics.CutterMaterial.html","topicHref":"Hi.Physics.CutterMaterial.html","topicUid":"Hi.Physics.CutterMaterial","type":"Class"},{"name":"IGetThermalLayerList","href":"Hi.Physics.IGetThermalLayerList.html","topicHref":"Hi.Physics.IGetThermalLayerList.html","topicUid":"Hi.Physics.IGetThermalLayerList","type":"Interface"},{"name":"IStructureMaterial","href":"Hi.Physics.IStructureMaterial.html","topicHref":"Hi.Physics.IStructureMaterial.html","topicUid":"Hi.Physics.IStructureMaterial","type":"Interface"},{"name":"ISuccessivePhysicsBriefAccessor","href":"Hi.Physics.ISuccessivePhysicsBriefAccessor.html","topicHref":"Hi.Physics.ISuccessivePhysicsBriefAccessor.html","topicUid":"Hi.Physics.ISuccessivePhysicsBriefAccessor","type":"Interface"},{"name":"ISurfaceMaterial","href":"Hi.Physics.ISurfaceMaterial.html","topicHref":"Hi.Physics.ISurfaceMaterial.html","topicUid":"Hi.Physics.ISurfaceMaterial","type":"Interface"},{"name":"ITimeGetter","href":"Hi.Physics.ITimeGetter.html","topicHref":"Hi.Physics.ITimeGetter.html","topicUid":"Hi.Physics.ITimeGetter","type":"Interface"},{"name":"MillingTemperatureUtil","href":"Hi.Physics.MillingTemperatureUtil.html","topicHref":"Hi.Physics.MillingTemperatureUtil.html","topicUid":"Hi.Physics.MillingTemperatureUtil","type":"Class"},{"name":"SeqPhysicsBrief","href":"Hi.Physics.SeqPhysicsBrief.html","topicHref":"Hi.Physics.SeqPhysicsBrief.html","topicUid":"Hi.Physics.SeqPhysicsBrief","type":"Class"},{"name":"StructureMaterial","href":"Hi.Physics.StructureMaterial.html","topicHref":"Hi.Physics.StructureMaterial.html","topicUid":"Hi.Physics.StructureMaterial","type":"Class"},{"name":"TemperatureUtil","href":"Hi.Physics.TemperatureUtil.html","topicHref":"Hi.Physics.TemperatureUtil.html","topicUid":"Hi.Physics.TemperatureUtil","type":"Class"},{"name":"TemperatureVsHardness","href":"Hi.Physics.TemperatureVsHardness.html","topicHref":"Hi.Physics.TemperatureVsHardness.html","topicUid":"Hi.Physics.TemperatureVsHardness","type":"Class"},{"name":"ThermalLayer1D","href":"Hi.Physics.ThermalLayer1D.html","topicHref":"Hi.Physics.ThermalLayer1D.html","topicUid":"Hi.Physics.ThermalLayer1D","type":"Class"},{"name":"TimeSeriesUtil","href":"Hi.Physics.TimeSeriesUtil.html","topicHref":"Hi.Physics.TimeSeriesUtil.html","topicUid":"Hi.Physics.TimeSeriesUtil","type":"Class"},{"name":"TimeValue","href":"Hi.Physics.TimeValue.html","topicHref":"Hi.Physics.TimeValue.html","topicUid":"Hi.Physics.TimeValue","type":"Class"},{"name":"WorkpieceMaterial","href":"Hi.Physics.WorkpieceMaterial.html","topicHref":"Hi.Physics.WorkpieceMaterial.html","topicUid":"Hi.Physics.WorkpieceMaterial","type":"Class"}]},{"name":"Hi.ScriptApiUtils","href":"Hi.ScriptApiUtils.html","topicHref":"Hi.ScriptApiUtils.html","topicUid":"Hi.ScriptApiUtils","type":"Namespace","items":[{"name":"ICsScriptApi","href":"Hi.ScriptApiUtils.ICsScriptApi.html","topicHref":"Hi.ScriptApiUtils.ICsScriptApi.html","topicUid":"Hi.ScriptApiUtils.ICsScriptApi","type":"Interface"},{"name":"JsAceAttribute","href":"Hi.ScriptApiUtils.JsAceAttribute.html","topicHref":"Hi.ScriptApiUtils.JsAceAttribute.html","topicUid":"Hi.ScriptApiUtils.JsAceAttribute","type":"Class"}]},{"name":"Hi.ShellCommands","href":"Hi.ShellCommands.html","topicHref":"Hi.ShellCommands.html","topicUid":"Hi.ShellCommands","type":"Namespace","items":[{"name":"EnablingWrapper","href":"Hi.ShellCommands.EnablingWrapper.html","topicHref":"Hi.ShellCommands.EnablingWrapper.html","topicUid":"Hi.ShellCommands.EnablingWrapper","type":"Class"},{"name":"GeomDiffCommand","href":"Hi.ShellCommands.GeomDiffCommand.html","topicHref":"Hi.ShellCommands.GeomDiffCommand.html","topicUid":"Hi.ShellCommands.GeomDiffCommand","type":"Class"},{"name":"IShellCommand","href":"Hi.ShellCommands.IShellCommand.html","topicHref":"Hi.ShellCommands.IShellCommand.html","topicUid":"Hi.ShellCommands.IShellCommand","type":"Interface"},{"name":"ITitleCommand","href":"Hi.ShellCommands.ITitleCommand.html","topicHref":"Hi.ShellCommands.ITitleCommand.html","topicUid":"Hi.ShellCommands.ITitleCommand","type":"Interface"},{"name":"Lang","href":"Hi.ShellCommands.Lang.html","topicHref":"Hi.ShellCommands.Lang.html","topicUid":"Hi.ShellCommands.Lang","type":"Class"},{"name":"ListCommand","href":"Hi.ShellCommands.ListCommand.html","topicHref":"Hi.ShellCommands.ListCommand.html","topicUid":"Hi.ShellCommands.ListCommand","type":"Class"},{"name":"MachiningMotionResolutionCommand","href":"Hi.ShellCommands.MachiningMotionResolutionCommand.html","topicHref":"Hi.ShellCommands.MachiningMotionResolutionCommand.html","topicUid":"Hi.ShellCommands.MachiningMotionResolutionCommand","type":"Class"},{"name":"NcCodeCommand","href":"Hi.ShellCommands.NcCodeCommand.html","topicHref":"Hi.ShellCommands.NcCodeCommand.html","topicUid":"Hi.ShellCommands.NcCodeCommand","type":"Class"},{"name":"NcFileCommand","href":"Hi.ShellCommands.NcFileCommand.html","topicHref":"Hi.ShellCommands.NcFileCommand.html","topicUid":"Hi.ShellCommands.NcFileCommand","type":"Class"},{"name":"NcFileListCommand","href":"Hi.ShellCommands.NcFileListCommand.html","topicHref":"Hi.ShellCommands.NcFileListCommand.html","topicUid":"Hi.ShellCommands.NcFileListCommand","type":"Class"},{"name":"NcOptOptionCommand","href":"Hi.ShellCommands.NcOptOptionCommand.html","topicHref":"Hi.ShellCommands.NcOptOptionCommand.html","topicUid":"Hi.ShellCommands.NcOptOptionCommand","type":"Class"},{"name":"OptimizeToFilesCommand","href":"Hi.ShellCommands.OptimizeToFilesCommand.html","topicHref":"Hi.ShellCommands.OptimizeToFilesCommand.html","topicUid":"Hi.ShellCommands.OptimizeToFilesCommand","type":"Class"},{"name":"PostExecutionCommand","href":"Hi.ShellCommands.PostExecutionCommand.html","topicHref":"Hi.ShellCommands.PostExecutionCommand.html","topicUid":"Hi.ShellCommands.PostExecutionCommand","type":"Class"},{"name":"PreSettingCommand","href":"Hi.ShellCommands.PreSettingCommand.html","topicHref":"Hi.ShellCommands.PreSettingCommand.html","topicUid":"Hi.ShellCommands.PreSettingCommand","type":"Class"},{"name":"RecordRuntimeGeomActionEnum","href":"Hi.ShellCommands.RecordRuntimeGeomActionEnum.html","topicHref":"Hi.ShellCommands.RecordRuntimeGeomActionEnum.html","topicUid":"Hi.ShellCommands.RecordRuntimeGeomActionEnum","type":"Enum"},{"name":"RecordRuntimeGeomCommand","href":"Hi.ShellCommands.RecordRuntimeGeomCommand.html","topicHref":"Hi.ShellCommands.RecordRuntimeGeomCommand.html","topicUid":"Hi.ShellCommands.RecordRuntimeGeomCommand","type":"Class"},{"name":"ScriptCommand","href":"Hi.ShellCommands.ScriptCommand.html","topicHref":"Hi.ShellCommands.ScriptCommand.html","topicUid":"Hi.ShellCommands.ScriptCommand","type":"Class"},{"name":"SimpleSessionCommand","href":"Hi.ShellCommands.SimpleSessionCommand.html","topicHref":"Hi.ShellCommands.SimpleSessionCommand.html","topicUid":"Hi.ShellCommands.SimpleSessionCommand","type":"Class"},{"name":"WriteRuntimeGeomToStlCommand","href":"Hi.ShellCommands.WriteRuntimeGeomToStlCommand.html","topicHref":"Hi.ShellCommands.WriteRuntimeGeomToStlCommand.html","topicUid":"Hi.ShellCommands.WriteRuntimeGeomToStlCommand","type":"Class"},{"name":"WriteShotFilesCommand","href":"Hi.ShellCommands.WriteShotFilesCommand.html","topicHref":"Hi.ShellCommands.WriteShotFilesCommand.html","topicUid":"Hi.ShellCommands.WriteShotFilesCommand","type":"Class"},{"name":"WriteStepFilesCommand","href":"Hi.ShellCommands.WriteStepFilesCommand.html","topicHref":"Hi.ShellCommands.WriteStepFilesCommand.html","topicUid":"Hi.ShellCommands.WriteStepFilesCommand","type":"Class"}]},{"name":"Hi.Test","href":"Hi.Test.html","topicHref":"Hi.Test.html","topicUid":"Hi.Test","type":"Namespace","items":[{"name":"TestCollision","href":"Hi.Test.TestCollision.html","topicHref":"Hi.Test.TestCollision.html","topicUid":"Hi.Test.TestCollision","type":"Class"}]},{"name":"Hi.UiExtensions","href":"Hi.UiExtensions.html","topicHref":"Hi.UiExtensions.html","topicUid":"Hi.UiExtensions","type":"Namespace","items":[{"name":"ChartBoundary","href":"Hi.UiExtensions.ChartBoundary.html","topicHref":"Hi.UiExtensions.ChartBoundary.html","topicUid":"Hi.UiExtensions.ChartBoundary","type":"Class"},{"name":"ChartBoundaryEnum","href":"Hi.UiExtensions.ChartBoundaryEnum.html","topicHref":"Hi.UiExtensions.ChartBoundaryEnum.html","topicUid":"Hi.UiExtensions.ChartBoundaryEnum","type":"Enum"},{"name":"NativeVisibility","href":"Hi.UiExtensions.NativeVisibility.html","topicHref":"Hi.UiExtensions.NativeVisibility.html","topicUid":"Hi.UiExtensions.NativeVisibility","type":"Enum"},{"name":"UiUtil","href":"Hi.UiExtensions.UiUtil.html","topicHref":"Hi.UiExtensions.UiUtil.html","topicUid":"Hi.UiExtensions.UiUtil","type":"Class"},{"name":"UiUtil.InvokeFunc","href":"Hi.UiExtensions.UiUtil.InvokeFunc.html","topicHref":"Hi.UiExtensions.UiUtil.InvokeFunc.html","topicUid":"Hi.UiExtensions.UiUtil.InvokeFunc","type":"Delegate"}]},{"name":"Hi.UniversalNc","href":"Hi.UniversalNc.html","topicHref":"Hi.UniversalNc.html","topicUid":"Hi.UniversalNc","type":"Namespace","items":[{"name":"Lang","href":"Hi.UniversalNc.Lang.html","topicHref":"Hi.UniversalNc.Lang.html","topicUid":"Hi.UniversalNc.Lang","type":"Class"}]},{"name":"Hi.Vibrations","href":"Hi.Vibrations.html","topicHref":"Hi.Vibrations.html","topicUid":"Hi.Vibrations","type":"Namespace","items":[{"name":"AngularVelocityUtil","href":"Hi.Vibrations.AngularVelocityUtil.html","topicHref":"Hi.Vibrations.AngularVelocityUtil.html","topicUid":"Hi.Vibrations.AngularVelocityUtil","type":"Class"},{"name":"ForceAccelAmpPhase","href":"Hi.Vibrations.ForceAccelAmpPhase.html","topicHref":"Hi.Vibrations.ForceAccelAmpPhase.html","topicUid":"Hi.Vibrations.ForceAccelAmpPhase","type":"Class"},{"name":"ForceAccelFourierSeries","href":"Hi.Vibrations.ForceAccelFourierSeries.html","topicHref":"Hi.Vibrations.ForceAccelFourierSeries.html","topicUid":"Hi.Vibrations.ForceAccelFourierSeries","type":"Class"},{"name":"ForceAccelShot","href":"Hi.Vibrations.ForceAccelShot.html","topicHref":"Hi.Vibrations.ForceAccelShot.html","topicUid":"Hi.Vibrations.ForceAccelShot","type":"Class"},{"name":"ForceAccelUtil","href":"Hi.Vibrations.ForceAccelUtil.html","topicHref":"Hi.Vibrations.ForceAccelUtil.html","topicUid":"Hi.Vibrations.ForceAccelUtil","type":"Class"},{"name":"IAngularVelocityOwner","href":"Hi.Vibrations.IAngularVelocityOwner.html","topicHref":"Hi.Vibrations.IAngularVelocityOwner.html","topicUid":"Hi.Vibrations.IAngularVelocityOwner","type":"Interface"},{"name":"VibrationUtil","href":"Hi.Vibrations.VibrationUtil.html","topicHref":"Hi.Vibrations.VibrationUtil.html","topicUid":"Hi.Vibrations.VibrationUtil","type":"Class"},{"name":"WAmpPhase","href":"Hi.Vibrations.WAmpPhase.html","topicHref":"Hi.Vibrations.WAmpPhase.html","topicUid":"Hi.Vibrations.WAmpPhase","type":"Class"},{"name":"WAmpPhaseXyzTransformation","href":"Hi.Vibrations.WAmpPhaseXyzTransformation.html","topicHref":"Hi.Vibrations.WAmpPhaseXyzTransformation.html","topicUid":"Hi.Vibrations.WAmpPhaseXyzTransformation","type":"Class"}]},{"name":"Hi.WinForm.Disp","href":"Hi.WinForm.Disp.html","topicHref":"Hi.WinForm.Disp.html","topicUid":"Hi.WinForm.Disp","type":"Namespace","items":[{"name":"RenderingCanvas","href":"Hi.WinForm.Disp.RenderingCanvas.html","topicHref":"Hi.WinForm.Disp.RenderingCanvas.html","topicUid":"Hi.WinForm.Disp.RenderingCanvas","type":"Class"},{"name":"RenderingForm","href":"Hi.WinForm.Disp.RenderingForm.html","topicHref":"Hi.WinForm.Disp.RenderingForm.html","topicUid":"Hi.WinForm.Disp.RenderingForm","type":"Class"}]},{"name":"Hi.WpfPlus.Disp","href":"Hi.WpfPlus.Disp.html","topicHref":"Hi.WpfPlus.Disp.html","topicUid":"Hi.WpfPlus.Disp","type":"Namespace","items":[{"name":"RenderingCanvas","href":"Hi.WpfPlus.Disp.RenderingCanvas.html","topicHref":"Hi.WpfPlus.Disp.RenderingCanvas.html","topicUid":"Hi.WpfPlus.Disp.RenderingCanvas","type":"Class"},{"name":"RenderingWindow","href":"Hi.WpfPlus.Disp.RenderingWindow.html","topicHref":"Hi.WpfPlus.Disp.RenderingWindow.html","topicUid":"Hi.WpfPlus.Disp.RenderingWindow","type":"Class"}]},{"name":"HiMachining.Milling","href":"HiMachining.Milling.html","topicHref":"HiMachining.Milling.html","topicUid":"HiMachining.Milling","type":"Namespace","items":[{"name":"ClMillingDevice","href":"HiMachining.Milling.ClMillingDevice.html","topicHref":"HiMachining.Milling.ClMillingDevice.html","topicUid":"HiMachining.Milling.ClMillingDevice","type":"Class"}]},{"name":"HiNc.Grpcs","href":"HiNc.Grpcs.html","topicHref":"HiNc.Grpcs.html","topicUid":"HiNc.Grpcs","type":"Namespace","items":[{"name":"MachiningProjectGrpcServer","href":"HiNc.Grpcs.MachiningProjectGrpcServer.html","topicHref":"HiNc.Grpcs.MachiningProjectGrpcServer.html","topicUid":"HiNc.Grpcs.MachiningProjectGrpcServer","type":"Class"}]},{"name":"numerical","href":"numerical.html","topicHref":"numerical.html","topicUid":"numerical","type":"Namespace","items":[{"name":"Empty","href":"numerical.Empty.html","topicHref":"numerical.Empty.html","topicUid":"numerical.Empty","type":"Class"},{"name":"GrpcCsvRowDictionary","href":"numerical.GrpcCsvRowDictionary.html","topicHref":"numerical.GrpcCsvRowDictionary.html","topicUid":"numerical.GrpcCsvRowDictionary","type":"Class"},{"name":"GrpcNcStep","href":"numerical.GrpcNcStep.html","topicHref":"numerical.GrpcNcStep.html","topicUid":"numerical.GrpcNcStep","type":"Class"},{"name":"NumericalReflection","href":"numerical.NumericalReflection.html","topicHref":"numerical.NumericalReflection.html","topicUid":"numerical.NumericalReflection","type":"Class"},{"name":"NumericalService","href":"numerical.NumericalService.html","topicHref":"numerical.NumericalService.html","topicUid":"numerical.NumericalService","type":"Class"},{"name":"NumericalService.NumericalServiceBase","href":"numerical.NumericalService.NumericalServiceBase.html","topicHref":"numerical.NumericalService.NumericalServiceBase.html","topicUid":"numerical.NumericalService.NumericalServiceBase","type":"Class"},{"name":"NumericalService.NumericalServiceClient","href":"numerical.NumericalService.NumericalServiceClient.html","topicHref":"numerical.NumericalService.NumericalServiceClient.html","topicUid":"numerical.NumericalService.NumericalServiceClient","type":"Class"},{"name":"UniversalNcReflection","href":"numerical.UniversalNcReflection.html","topicHref":"numerical.UniversalNcReflection.html","topicUid":"numerical.UniversalNcReflection","type":"Class"},{"name":"UniversalNcService","href":"numerical.UniversalNcService.html","topicHref":"numerical.UniversalNcService.html","topicUid":"numerical.UniversalNcService","type":"Class"},{"name":"UniversalNcService.UniversalNcServiceBase","href":"numerical.UniversalNcService.UniversalNcServiceBase.html","topicHref":"numerical.UniversalNcService.UniversalNcServiceBase.html","topicUid":"numerical.UniversalNcService.UniversalNcServiceBase","type":"Class"},{"name":"UniversalNcService.UniversalNcServiceClient","href":"numerical.UniversalNcService.UniversalNcServiceClient.html","topicHref":"numerical.UniversalNcService.UniversalNcServiceClient.html","topicUid":"numerical.UniversalNcService.UniversalNcServiceClient","type":"Class"}]}],"memberLayout":"SamePage"} diff --git a/App/wwwroot/HiAPI-docsite/brief/dev-doc/basic/rendering/rendering-canvas/custom-implementation.html b/App/wwwroot/HiAPI-docsite/brief/dev-doc/basic/rendering/rendering-canvas/custom-implementation.html index e4491f3..acd608e 100644 --- a/App/wwwroot/HiAPI-docsite/brief/dev-doc/basic/rendering/rendering-canvas/custom-implementation.html +++ b/App/wwwroot/HiAPI-docsite/brief/dev-doc/basic/rendering/rendering-canvas/custom-implementation.html @@ -90,7 +90,7 @@

    This guide provides detailed implementation information for creating your own RenderingCanvas using the DispEngine. By understanding these implementation details, you can customize the rendering component for specific application needs or create implementations for other UI frameworks.

    Note
    -

    For Windows Applications: If you are developing for Windows systems, it is recommended to directly use the existing RenderingCanvas implementations in the Hi.WinForm or Hi.Wpf packages, rather than creating your own. These implementations are fully tested, optimized, and maintained.

    +

    For Windows Applications: If you are developing for Windows systems, it is recommended to directly use the existing RenderingCanvas implementations in the Hi.WinForm or Hi.WpfPlus packages, rather than creating your own. These implementations are fully tested, optimized, and maintained.

    The implementation details provided in this document are primarily for educational purposes or for developers who need to port RenderingCanvas to other platforms/frameworks.

    Basic DispEngine Usage

    diff --git a/App/wwwroot/HiAPI-docsite/brief/dev-doc/basic/rendering/rendering-canvas/index.html b/App/wwwroot/HiAPI-docsite/brief/dev-doc/basic/rendering/rendering-canvas/index.html index 2155862..d4e8579 100644 --- a/App/wwwroot/HiAPI-docsite/brief/dev-doc/basic/rendering/rendering-canvas/index.html +++ b/App/wwwroot/HiAPI-docsite/brief/dev-doc/basic/rendering/rendering-canvas/index.html @@ -92,7 +92,7 @@

    The RenderingCanvas class is available in frameworks:

    • Hi.WinForm for Windows Forms applications
    • -
    • Hi.Wpf for WPF applications
    • +
    • Hi.WpfPlus for WPF applications

    All implementations share a common architecture centered around the DispEngine class, enabling consistent rendering and interaction across platforms.

    Core Concept: DispEngine and IDisplayee

    @@ -159,7 +159,7 @@ myForm.Controls.Add(canvas);

    Apply Hi.WPF

    // Create a new instance
    -using Hi.Wpf.Disp;
    +using Hi.WpfPlus.Disp;
     
     // Create displayee object
     var displayee = new MyCompositeDisplayee();
    diff --git a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/index.html b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/index.html
    index 125e1b6..740ab8f 100644
    --- a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/index.html
    +++ b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/index.html
    @@ -117,7 +117,7 @@
     
     
    Note
    -

    Add Hi.Wpf packages to the project if the building WPF project.

    +

    Add Hi.WpfPlus packages to the project if the building WPF project.

  • Create Main Window, set the layout according to Main Panel Layout.
  • diff --git a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/main-panel.html b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/main-panel.html index 98a90fa..1754633 100644 --- a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/main-panel.html +++ b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/main-panel.html @@ -114,7 +114,7 @@
  • Machine Tool MenuItem Open Machine Tool Page Sole window in WPF app. -The page manages MachiningEquipment.<Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.MachiningChain>.
  • +The page manages <xref:Hi.MachiningProcs.MachiningProject.MachiningEquipment>.<Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.MachiningChain>.
  • Controller MenuItem Open Controller Page
  • Tool House MenuItem
  • diff --git a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/mech/cutter/milling-cutter-panel.html b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/mech/cutter/milling-cutter-panel.html index 2751f66..73635e8 100644 --- a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/mech/cutter/milling-cutter-panel.html +++ b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/mech/cutter/milling-cutter-panel.html @@ -174,7 +174,7 @@ The model is GetMinimumUncutChipThickness_um(ICuttingPara). The argument (cutting parameter) is obtained by the MachiningProject.Workpiece.CuttingPara. Series pass the models by the GUI if needed. +
  • Shows calculated value from GetMinimumUncutChipThickness_um(ICuttingPara). The argument (cutting parameter) is obtained by the MachiningProject.<xref:Hi.MachiningProcs.MachiningProject.Workpiece*>.CuttingPara. Series pass the models by the GUI if needed.
  • Note Label
    • Show Workpiece Cutting Parameter Name. @@ -383,7 +383,7 @@ Apply
    • Limit by Theoretical Minimum Feed Per Tooth Checkbox
    • diff --git a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/mech/fixture-page.html b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/mech/fixture-page.html index d7e6411..71c2533 100644 --- a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/mech/fixture-page.html +++ b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/mech/fixture-page.html @@ -89,7 +89,7 @@

      The page triggers by Main Panel.

      The key model is Fixture and FixtureEditorDisplayeeConfig. -Fixture is assigned from the Main Panel's MachiningProject.MachiningEquipment.Fixture.

      +Fixture is assigned from the Main Panel's MachiningProject.<xref:Hi.MachiningProcs.MachiningProject.MachiningEquipment>.Fixture.

      FixtureEditorDisplayeeConfig is from <xref:Hi.HiNcKits.AppService>.<xref:Hi.HiNcKits.AppConfig> which assigned from the parent component.

      Layout

        diff --git a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/mech/workpiece-page.html b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/mech/workpiece-page.html index 3fdc609..82b5f05 100644 --- a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/mech/workpiece-page.html +++ b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/mech/workpiece-page.html @@ -89,7 +89,7 @@

        The page triggers by Main Panel.

        The key model is Workpiece and WorkpieceEditorDisplayeeConfig. -Which is assigned from the Main Panel's MachiningProject.Workpiece.

        +Which is assigned from the Main Panel's MachiningProject.<xref:Hi.MachiningProcs.MachiningProject.Workpiece>.

        FixtureEditorDisplayeeConfig is from <xref:Hi.HiNcKits.AppService>.<xref:Hi.HiNcKits.AppConfig> which assigned from the parent component.

        Layout

          diff --git a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/player/player-tool-bar.html b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/player/player-tool-bar.html index 1f49c51..47e720d 100644 --- a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/player/player-tool-bar.html +++ b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/player/player-tool-bar.html @@ -113,7 +113,7 @@
        • Pause
        -
      • Both webservice and win-desktop applications use LocalProjectService events for monitoring PacePlayer status changes.
      • +
      • Both webservice and win-desktop applications use LocalProjectService events for monitoring <xref:Hi.MachiningProcs.MachiningProject.PacePlayer> status changes.
      • In webservice applications, the PlayerStatusService subscribes to these LocalProjectService events and broadcasts status changes via PlayerStatusHub using SignalR for real-time communication.
      • Win-desktop applications can directly subscribe to LocalProjectService events for status updates.
      • Alter the background color of the Status Text Field if the status changed. @@ -162,7 +162,7 @@
      • Players/PlayerStatusService.cs

      SignalR Implementation (Webapi Only)

      -

      PlayerStatusHub provides real-time player status updates, with methods GetPlayerStatus() and event PlayerStatusUpdated. PlayerStatusService monitors LocalProjectService events (PacePlayer_IsRunningChangedEvent, PacePlayer_IsLockedChangedEvent, PacePlayer_IsFinishedChangedEvent, PacePlayer_ResetedEvent) and broadcasts changes via SignalR. The JavaScript component connects to /playerStatusHub and listens for status updates. API endpoints include /api/player/start, /api/player/pause, /api/player/resume, /api/player/run-line, /api/player/run-step, /api/player/stop, and /api/player/reset.

      +

      PlayerStatusHub provides real-time player status updates, with methods GetPlayerStatus() and event PlayerStatusUpdated. PlayerStatusService monitors LocalProjectService events (<xref:Hi.MachiningProcs.LocalProjectService.PacePlayer_IsRunningChangedEvent>, <xref:Hi.MachiningProcs.LocalProjectService.PacePlayer_IsLockedChangedEvent>, <xref:Hi.MachiningProcs.LocalProjectService.PacePlayer_IsFinishedChangedEvent>, <xref:Hi.MachiningProcs.LocalProjectService.PacePlayer_ResetedEvent>) and broadcasts changes via SignalR. The JavaScript component connects to /playerStatusHub and listens for status updates. API endpoints include /api/player/start, /api/player/pause, /api/player/resume, /api/player/run-line, /api/player/run-step, /api/player/stop, and /api/player/reset.

      Razor Page Source Code

      @using Hi.Common.PathUtils;
       @using Hi.HiNcKits;
      @@ -173,6 +173,7 @@
       
       @{
           MachiningProject machiningProject = hiNcHost.MachiningProject;
      +    var localProjectService = hiNcHost.LocalProjectService;
           bool disabledByMachiningProject = machiningProject == null;
       }
       
      @@ -186,15 +187,15 @@
                   <div class="d-inline-block" style="width: 4rem">
                       @{
                           if (machiningProject == null) { }
      -                    else if (machiningProject.PacePlayer.IsRunning)
      +                    else if (localProjectService.PacePlayer.IsRunning)
                           {
                               <span class="badge text-bg-warning">@Loc["Running"]</span>
                           }
      -                    else if (machiningProject.PacePlayer.IsLocked)
      +                    else if (localProjectService.PacePlayer.IsLocked)
                           {
                               <span class="badge text-bg-secondary">@Loc["Pause"]</span>
                           }
      -                    else if (machiningProject.PacePlayer.IsFinished)
      +                    else if (localProjectService.PacePlayer.IsFinished)
                           {
                               <span class="badge text-bg-success">@Loc["Finish"]</span>
                           }
      @@ -210,11 +211,11 @@
           <div id="player-@Tid" class="btn-group collapse collapse-horizontal show" role="group">
       
               @if (machiningProject == null) { }
      -        else if (!machiningProject.PacePlayer.IsLocked)
      +        else if (!localProjectService.PacePlayer.IsLocked)
               {
                   <button class="btn btn-primary text-nowrap" title="@Loc["Start"] (S)"
                           accesskey="s"
      -                    disabled="@(disabledByMachiningProject||machiningProject.PacePlayer.IsFinished)"
      +                    disabled="@(disabledByMachiningProject||localProjectService.PacePlayer.IsFinished)"
                           @onclick="StartOrContinue">
                       <span class="oi oi-media-play me-1"></span>
                   </button>
      @@ -224,27 +225,27 @@
                   <button class="btn btn-primary text-nowrap" title="@Loc["Continue"] (S)"
                           accesskey="s"
                           @onclick="StartOrContinue"
      -                    disabled="@(disabledByMachiningProject||machiningProject.PacePlayer.IsFinished||machiningProject.PacePlayer.IsRunning)">
      +                    disabled="@(disabledByMachiningProject||localProjectService.PacePlayer.IsFinished||localProjectService.PacePlayer.IsRunning)">
                       <span class="oi oi-media-play me-1"></span>
                   </button>
               }
               <button class="btn btn-primary text-nowrap" title="@Loc["Pause"] (P)"
                       accesskey="p"
                       @onclick="Pause"
      -                disabled="@(disabledByMachiningProject||!machiningProject.PacePlayer.IsRunning)">
      +                disabled="@(disabledByMachiningProject||!localProjectService.PacePlayer.IsRunning)">
                   <span class="oi oi-media-pause me-1"></span>
               </button>
               <button class="btn btn-primary text-nowrap" title="@Loc["Run One Line"] (L)"
                       accesskey="l"
                       @onclick="RunToLineEnd"
      -                disabled="@(disabledByMachiningProject||machiningProject.PacePlayer.IsFinished)">
      +                disabled="@(disabledByMachiningProject||localProjectService.PacePlayer.IsFinished)">
                   <span class="oi oi-media-step-forward me-1"></span>
               </button>
       
               <button class="btn btn-primary text-nowrap" title="@Loc["Run One Step"] (K)"
                       accesskey="k"
                       @onclick="RunToNextPace"
      -                disabled="@(disabledByMachiningProject||machiningProject.PacePlayer.IsFinished)">
      +                disabled="@(disabledByMachiningProject||localProjectService.PacePlayer.IsFinished)">
                   <CommonRcl.Shared.CombinedIcon>
                       <IconA>
                           <span class="oi oi-media-step-forward me-1"></span>
      @@ -259,7 +260,7 @@
       
               <button class="btn btn-primary text-nowrap" title="@Loc["Break"]"
                       @onclick="@Break"
      -                disabled="@(disabledByMachiningProject||!(machiningProject.PacePlayer.IsLocked||machiningProject.PacePlayer.IsFinished))">
      +                disabled="@(disabledByMachiningProject||!(localProjectService.PacePlayer.IsLocked||localProjectService.PacePlayer.IsFinished))">
                   <span class="oi oi-media-stop me-1"></span>
               </button>
       
      @@ -285,6 +286,7 @@ namespace HiNcRcl.Areas.Player
               StringLocalizer Loc { get; } = new StringLocalizer(typeof(PlayerDiv));
               SemaphoreSlim DisposeSemaphore { get; } = new SemaphoreSlim(1);
               MachiningProject MachiningProject => hiNcHost.MachiningProject;
      +        LocalProjectService LocalProjectService => hiNcHost.LocalProjectService;
               bool disposedValue = false;
               /// <inheritdoc/>
               protected override async Task OnAfterRenderAsync(bool firstRender)
      @@ -297,11 +299,11 @@ namespace HiNcRcl.Areas.Player
                       var machiningProject = MachiningProject;
                       if (machiningProject != null)
                       {
      -                    machiningProject.PacePlayer.IsLockedChangedEvent
      +                    LocalProjectService.PacePlayer.IsLockedChangedEvent
                               += EnumerablePlayer_IsLockedEventHandler;
      -                    machiningProject.PacePlayer.IsRunningChangedEvent
      +                    LocalProjectService.PacePlayer.IsRunningChangedEvent
                               += EnumerablePlayer_IsLockedEventHandler;
      -                    machiningProject.PacePlayer.IsFinishedChangedEvent
      +                    LocalProjectService.PacePlayer.IsFinishedChangedEvent
                               += EnumerablePlayer_IsLockedEventHandler;
                       }
                   }
      @@ -314,11 +316,11 @@ namespace HiNcRcl.Areas.Player
                   var machiningProject = MachiningProject;
                   if (machiningProject != null)
                   {
      -                machiningProject.PacePlayer.IsLockedChangedEvent
      +                LocalProjectService.PacePlayer.IsLockedChangedEvent
                           -= EnumerablePlayer_IsLockedEventHandler;
      -                machiningProject.PacePlayer.IsRunningChangedEvent
      +                LocalProjectService.PacePlayer.IsRunningChangedEvent
                           -= EnumerablePlayer_IsLockedEventHandler;
      -                machiningProject.PacePlayer.IsFinishedChangedEvent
      +                LocalProjectService.PacePlayer.IsFinishedChangedEvent
                           -= EnumerablePlayer_IsLockedEventHandler;
                   }
                   disposedValue = true;
      @@ -333,14 +335,15 @@ namespace HiNcRcl.Areas.Player
               {
                   await Task.Run(() =>
                   {
      -                if (!MachiningProject.PacePlayer.IsLocked)
      +                var pacePlayer = LocalProjectService.PacePlayer;
      +                if (!pacePlayer.IsLocked)
                       {
      -                    MachiningProject.PacePlayer.Start();
      +                    pacePlayer.Start();
                       }
      -                else if (!MachiningProject.PacePlayer.IsRunning
      -                && !MachiningProject.PacePlayer.IsFinished)
      +                else if (!pacePlayer.IsRunning
      +                && !pacePlayer.IsFinished)
                       {
      -                    MachiningProject.PacePlayer.Resume();
      +                    pacePlayer.Resume();
                       }
                   }).ShowIfCatched(this);
               }
      @@ -348,35 +351,35 @@ namespace HiNcRcl.Areas.Player
               {
                   await Task.Run(() =>
                   {
      -                MachiningProject?.PacePlayer.Pause();
      +                LocalProjectService.PacePlayer.Pause();
                   }).ShowIfCatched(this);			
               }
               public async Task RunToLineEnd()
               {
                   await Task.Run(() =>
                   {
      -                MachiningProject?.NcRunner.RunToLineEnd();
      +                LocalProjectService.NcRunner.RunToLineEnd();
                   }).ShowIfCatched(this);			
               }
               public async Task RunToNextPace()
               {
                   await Task.Run(() =>
                   {
      -                MachiningProject?.PacePlayer.RunToNextPace();
      +                LocalProjectService.PacePlayer.RunToNextPace();
                   }).ShowIfCatched(this);			
               }
               public async Task Break()
               {
                   await Task.Run(() =>
                   {
      -                MachiningProject?.PacePlayer.Terminate();
      +                LocalProjectService.PacePlayer.Terminate();
                   }).ShowIfCatched(this);
               }
               public async Task Reset()
               {
                   await Task.Run(() =>
                   {
      -                MachiningProject?.PacePlayer.Reset();
      +                LocalProjectService.PacePlayer.Reset();
                   }).ShowIfCatched(this);
               }
           }
      diff --git a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/player/selected-step-info-panel.html b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/player/selected-step-info-panel.html
      index 0865b3c..00c66cd 100644
      --- a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/player/selected-step-info-panel.html
      +++ b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/player/selected-step-info-panel.html
      @@ -89,7 +89,7 @@
       
       

      The panel locates on the Player Panel.

      The model is MachiningStep and <xref:Hi.HiNcKits.AppService>.

      -

      The MachiningStep is assigned by ClStrip.PosSelected.

      +

      The MachiningStep is assigned by <xref:Hi.MachiningProcs.MachiningProject.ClStrip>.PosSelected.

      Show step infomation from <xref:Hi.HiNcKits.AppService>.<xref:Hi.HiNcKits.AppService.DisplayedStepPresentAccessList>.

      The resx of MachiningStep contains the translation of PresentAttribute.Name, apply the translation to the GUI. If the translation not existed, use the original value.

      See Also Step Present Preference Page.

      @@ -106,7 +106,7 @@ } }

      SignalR Implementation (Webapi Only)

      -

      SelectedStepInfoHub provides real-time step updates with method GetSelectedStepInfo() and event SelectedStepInfoUpdated. SelectedStepInfoService monitors ClStrip_PosSelected and ClStrip_MachiningStepSelected events and broadcasts updates. The JavaScript component connects to /selectedStepInfoHub to receive step change notifications and update the UI accordingly.

      +

      SelectedStepInfoHub provides real-time step updates with method GetSelectedStepInfo() and event SelectedStepInfoUpdated. SelectedStepInfoService monitors <xref:Hi.MachiningProcs.LocalProjectService.ClStrip_PosSelected> and <xref:Hi.MachiningProcs.LocalProjectService.ClStrip_MachiningStepSelected> events and broadcasts updates. The JavaScript component connects to /selectedStepInfoHub to receive step change notifications and update the UI accordingly.

      Source Code Path

      See this page for git repository.

      WPF Application Source Code Path

      diff --git a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/preference/step-present-preference-page.html b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/preference/step-present-preference-page.html index 3610217..c89c5e0 100644 --- a/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/preference/step-present-preference-page.html +++ b/App/wwwroot/HiAPI-docsite/brief/dev-doc/build-hinc/preference/step-present-preference-page.html @@ -217,11 +217,11 @@ Apply

      Session Message Panel

      -

      The model is MachiningProject.SessionMessageHost.

      +

      The model is MachiningProject.<xref:Hi.MachiningProcs.MachiningProject.SessionMessageHost>.

      MachiningProject is assigned from the Player Panel.

      Layout

        @@ -114,9 +114,9 @@

        Central Message Table

        The model of Central Message Table is SessionMessageHost.MessageCollection.

        Only take last 1000 filtered elements in the MessageCollection by GetFliteredList(FilterFlag, string) to show for user experience. Find the usage example in the code:

        -
        internal static void DemoUseSessionMessageHost(MachiningProject project)
        +
        internal static void DemoUseSessionMessageHost(LocalProjectService localProjectService)
         {
        -    SessionMessageHost sessionMessageHost = project.SessionMessageHost;
        +    SessionMessageHost sessionMessageHost = localProjectService.SessionMessageHost;
         
             SessionMessageHost.FilterFlag filterFlags =
                 SessionMessageHost.FilterFlag.NC |
        @@ -162,7 +162,7 @@
         

        Behavior of Export Button

        Export ALL filtered elements in the MessageCollection by GetFliteredList(FilterFlag, string).

        SignalR Implementation (Webapi Only)

        -

        SessionMessageHub provides real-time message updates with method GetSessionMessages(string filterFlags, string filterText, int limit) and event SessionMessagesUpdated. SessionMessageService monitors SessionMessageHost_CollectionItemChanged and broadcasts updates. The service uses LooseRunner for non-blocking async operations. The JavaScript component connects to /sessionMessageHub to receive real-time message updates.

        +

        SessionMessageHub provides real-time message updates with method GetSessionMessages(string filterFlags, string filterText, int limit) and event SessionMessagesUpdated. SessionMessageService monitors <xref:Hi.MachiningProcs.LocalProjectService.SessionMessageHost_CollectionItemChanged> and broadcasts updates. The service uses LooseRunner for non-blocking async operations. The JavaScript component connects to /sessionMessageHub to receive real-time message updates.

        Source Code Path

        See this page for git repository.

        WPF Application Source Code Path

        diff --git a/App/wwwroot/HiAPI-docsite/brief/dev-doc/general-hinc-workflow/index.html b/App/wwwroot/HiAPI-docsite/brief/dev-doc/general-hinc-workflow/index.html index 9652e77..8bc948b 100644 --- a/App/wwwroot/HiAPI-docsite/brief/dev-doc/general-hinc-workflow/index.html +++ b/App/wwwroot/HiAPI-docsite/brief/dev-doc/general-hinc-workflow/index.html @@ -131,7 +131,7 @@

      The PlayerCommand is typically a ListCommand that contains a sequence of command entries to be executed during the simulation.

      4. Run the Tasks (Simulation and Optimization)

      -

      Run PlayerCommand through PacePlayer.

      +

      Run PlayerCommand through <xref:Hi.MachiningProcs.MachiningProject.PacePlayer>.

      At this stage, the simulation process is similar to video playback, which can be:

      • Started
      • @@ -141,7 +141,7 @@
      • Run one step
      • Reset
      -

      The PacePlayer controls the execution pace of the simulation, allowing you to observe the machining process in detail or run it at full speed.

      +

      The <xref:Hi.MachiningProcs.MachiningProject.PacePlayer> controls the execution pace of the simulation, allowing you to observe the machining process in detail or run it at full speed.

      View the Analysis During Process or Result

      SessionMessageHost contains a sequence of simulation messages and step data, which can be used to monitor and analyze the simulation process and results.

      UI Pattern

      diff --git a/App/wwwroot/HiAPI-docsite/brief/dev-doc/getting-started/index.html b/App/wwwroot/HiAPI-docsite/brief/dev-doc/getting-started/index.html index dc07005..ec1ced5 100644 --- a/App/wwwroot/HiAPI-docsite/brief/dev-doc/getting-started/index.html +++ b/App/wwwroot/HiAPI-docsite/brief/dev-doc/getting-started/index.html @@ -114,7 +114,7 @@
      <ItemGroup>
         <PackageReference Include="HiNc" Version="3.1.*" />
         <!--optional-->
      -  <PackageReference Include="Hi.Wpf" Version="*" /> 
      +  <PackageReference Include="Hi.WpfPlus" Version="*" /> 
       </ItemGroup>
       
      diff --git a/App/wwwroot/HiAPI-docsite/brief/dev-doc/index.html b/App/wwwroot/HiAPI-docsite/brief/dev-doc/index.html index 0ff4f76..19225cc 100644 --- a/App/wwwroot/HiAPI-docsite/brief/dev-doc/index.html +++ b/App/wwwroot/HiAPI-docsite/brief/dev-doc/index.html @@ -109,7 +109,7 @@ HiUniNc --> HiNc HiDisp --> Hi.WinForm - HiDisp --> Hi.Wpf + HiDisp --> Hi.WpfPlus style HiNc fill:#d3d,stroke:#333,stroke-width:2px
  • @@ -117,7 +117,7 @@

    If you need to develop Windows desktop applications:

    • For Windows Forms applications, use the Hi.WinForm package.
    • -
    • For WPF applications, use the Hi.Wpf package.
    • +
    • For WPF applications, use the Hi.WpfPlus package.
    Note
    @@ -130,9 +130,9 @@
  • https://superhightech-gitea.webredirect.org/HiNC-Deploy/Hi.WinForm.git
  • -
  • Hi.Wpf +
  • Hi.WpfPlus
  • diff --git a/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Common.DemoSessionMessage.html b/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Common.DemoSessionMessage.html index 92d9b99..9134a3a 100644 --- a/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Common.DemoSessionMessage.html +++ b/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Common.DemoSessionMessage.html @@ -172,9 +172,9 @@ namespace Sample.Common public static class DemoSessionMessage { #region Demo_UseSessionMessageHost - internal static void DemoUseSessionMessageHost(MachiningProject project) + internal static void DemoUseSessionMessageHost(LocalProjectService localProjectService) { - SessionMessageHost sessionMessageHost = project.SessionMessageHost; + SessionMessageHost sessionMessageHost = localProjectService.SessionMessageHost; SessionMessageHost.FilterFlag filterFlags = SessionMessageHost.FilterFlag.NC | @@ -208,10 +208,10 @@ namespace Sample.Common } #endregion - internal static void DemoUseSessionMessageHost2(MachiningProject project) + internal static void DemoUseSessionMessageHost2(LocalProjectService localProjectService) { - SessionMessageHost sessionMessageHost = project.SessionMessageHost; - IMachiningChain machiningChain = project.MachiningEquipment?.MachiningChain; + SessionMessageHost sessionMessageHost = localProjectService.SessionMessageHost; + IMachiningChain machiningChain = localProjectService.MachiningChain; PresentAttribute mrrPresent = typeof(MachiningStep).GetProperty(nameof(MachiningStep.Mrr_mm3ds)).GetCustomAttribute<PresentAttribute>(); string mrrUnit = mrrPresent?.TailUnitString; diff --git a/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Disp.DemoUtil.html b/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Disp.DemoUtil.html index 893d73d..a1b9fa9 100644 --- a/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Disp.DemoUtil.html +++ b/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Disp.DemoUtil.html @@ -155,7 +155,7 @@ Handles common initialization and cleanup tasks for visualization examples.

    using Hi.HiNcKits; using Hi.Licenses; using Hi.MongoUtils; -using Hi.Wpf.Disp; +using Hi.WpfPlus.Disp; using System.Windows; namespace Sample.Disp diff --git a/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Machining.DemoBuildGeomOnlyMachiningProject.html b/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Machining.DemoBuildGeomOnlyMachiningProject.html index 6f939ee..9ffe4aa 100644 --- a/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Machining.DemoBuildGeomOnlyMachiningProject.html +++ b/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Machining.DemoBuildGeomOnlyMachiningProject.html @@ -193,11 +193,13 @@ namespace Sample.Machining static void Main() { LocalApp.AppBegin(); + LocalProjectService localProjectService = new LocalProjectService(); var projectPath = "C:/HiNC-Projects/NewProject/Main.hincproj"; var projectDirectory = Path.GetDirectoryName(projectPath); Console.WriteLine($"Directory of the New Project: {projectDirectory}"); - MachiningProject machiningProject = new MachiningProject(projectDirectory); + localProjectService.LoadProject(projectPath); + MachiningProject machiningProject = localProjectService.MachiningProject; CylindroidHolder cylindroidHolder = new CylindroidHolder() { @@ -205,7 +207,7 @@ namespace Sample.Machining Cylindroid = new Cylindroid([ new PairZr(0,12),new PairZr(20,12), new PairZr(20,16),new PairZr(30,16)]) }; - machiningProject.MachiningToolHouse = new MachiningToolHouse() + localProjectService.MachiningToolHouse = new MachiningToolHouse() { [1] = new MillingTool() { @@ -216,13 +218,13 @@ namespace Sample.Machining }, }; - machiningProject.MachiningEquipment.Fixture = new Fixture() + localProjectService.Fixture = new Fixture() { Geom = new Box3d(new Vec3d(-40, -40, 0), new Vec3d(40, 40, 10)), GeomToWorkpieceTransformer = new StaticTranslation(new Vec3d(0, 0, 10)), }; - machiningProject.MachiningEquipment.Workpiece = new Workpiece() + localProjectService.Workpiece = new Workpiece() { InitResolution = 0.25, InitGeom = new Box3d(0, 0, -50, 70, 50, 0), @@ -230,12 +232,12 @@ namespace Sample.Machining WorkpieceGeomToFixtureBuckleTransformer = new StaticTranslation(new Vec3d(0, 0, 0)), }; - machiningProject.MachiningEquipment.MachiningChain + localProjectService.MachiningChain = XFactory.GenByFile<CodeXyzabcMachineTool>( "Resource", "MachineTool/PMC-B1/PMC-B1.mt", GenMode.Default); - machiningProject.MachiningEquipment.MachiningChainFile = "PMC-B1/PMC-B1.mt"; + localProjectService.MachiningChainFile = "PMC-B1/PMC-B1.mt"; - machiningProject.MakeXmlSourceFile(projectPath); + localProjectService.SaveProject(); machiningProject.Dispose(); LocalApp.AppEnd(); diff --git a/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Machining.DemoBuildMachiningProject.html b/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Machining.DemoBuildMachiningProject.html index 0b801a4..49b4515 100644 --- a/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Machining.DemoBuildMachiningProject.html +++ b/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Machining.DemoBuildMachiningProject.html @@ -297,14 +297,16 @@ namespace Sample.Machining static void Main() { LocalApp.AppBegin(); + LocalProjectService localProjectService = new LocalProjectService(); var projectPath = "C:/HiNC-Projects/NewProject/Main.hincproj"; var projectDirectory = Path.GetDirectoryName(projectPath); Console.WriteLine($"Directory of the New Project: {projectDirectory}"); - MachiningProject machiningProject = new MachiningProject(projectDirectory); + localProjectService.LoadProject(projectPath); + MachiningProject machiningProject = localProjectService.MachiningProject; #region ConfigureMachiningToolHouse - machiningProject.MachiningToolHouse = new MachiningToolHouse() + localProjectService.MachiningToolHouse = new MachiningToolHouse() { [1] = new MillingTool() { @@ -331,7 +333,7 @@ namespace Sample.Machining #endregion #region ConfigureFixture - machiningProject.MachiningEquipment.Fixture = new Fixture() + localProjectService.Fixture = new Fixture() { Geom = new Box3d(new Vec3d(-40, -40, 0), new Vec3d(40, 40, 10)), GeomToWorkpieceTransformer = new StaticTranslation(new Vec3d(0, 0, 10)), @@ -339,7 +341,7 @@ namespace Sample.Machining #endregion #region ConfigureWorkpiece - machiningProject.MachiningEquipment.Workpiece = new Workpiece() + localProjectService.Workpiece = new Workpiece() { InitResolution = 0.25, InitGeom = new Box3d(0, 0, -50, 70, 50, 0), @@ -353,7 +355,7 @@ namespace Sample.Machining #endregion #region ConfigureMachineChain - machiningProject.MachiningEquipment.MachiningChain + localProjectService.MachiningChain = XFactory.GenByFile<CodeXyzabcMachineTool>( "Resource", "MachineTool/PMC-B1/PMC-B1.mt", GenMode.Default); #endregion diff --git a/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Machining.DemoMillingByCutterLocation.html b/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Machining.DemoMillingByCutterLocation.html index 1932b49..a10e282 100644 --- a/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Machining.DemoMillingByCutterLocation.html +++ b/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Machining.DemoMillingByCutterLocation.html @@ -155,7 +155,7 @@ using Hi.Geom.Resolution; using Hi.HiNcKits; using Hi.MachiningProcs; using Hi.Numerical.Acts; -using Hi.Wpf.Disp; +using Hi.WpfPlus.Disp; using HiMachining.Milling; using System; using System.IO; @@ -192,21 +192,21 @@ namespace Sample.Machining //var projectPath = "C:/HiNC-Projects/DemoStandardPath/Main.hincproj"; var projectPath = "C:/HiNC-Projects/demo-test-1/Main.hincproj"; Console.WriteLine($"Load Project: {projectPath}"); - localProjectService.LoadProject(projectPath).ShowIfCatched(null); + localProjectService.LoadProject(projectPath); var project = localProjectService.MachiningProject; #endregion - var projectDisplayee = new MachiningProjectDisplayee(()=> localProjectService.MachiningProject); + var projectDisplayee = new MachiningProjectDisplayee(localProjectService); var device = new ClMillingDevice(); - project.MachiningEquipment.MachiningChain = device; - project.ClStrip.IsShowDot = true; + localProjectService.MachiningEquipment.MachiningChain = device; + localProjectService.ClStrip.IsShowDot = true; double resolution_mm = 0.5; var projectDir = Path.GetDirectoryName(projectPath); - project.Workpiece.InitGeom = new StlFile(stlFile_CylinderR20, projectDir); - project.Workpiece.IdealGeom = new StlFile(stlFile_CylinderR19, projectDir); - project.Workpiece.InitResolution = resolution_mm; + localProjectService.Workpiece.InitGeom = new StlFile(stlFile_CylinderR20, projectDir); + localProjectService.Workpiece.IdealGeom = new StlFile(stlFile_CylinderR19, projectDir); + localProjectService.Workpiece.InitResolution = resolution_mm; - RuntimeApi runtimeApi = project.RuntimeApi; + RuntimeApi runtimeApi = localProjectService.RuntimeApi; runtimeApi.SetNcResolutionFixed(9999, 15); runtimeApi.EnableCollisionDetection = false; runtimeApi.EnablePhysics = false; @@ -215,13 +215,13 @@ namespace Sample.Machining //RunConsole(project, projectDisplayee, resolution_mm); RunWindow(localProjectService, projectDisplayee, resolution_mm); } - static void RunConsole(IProjectService projectService, + static void RunConsole(LocalProjectService projectService, MachiningProjectDisplayee projectDisplayee, double resolution_mm) { RunSession(projectService, resolution_mm); DispEngine dispEngine = new DispEngine(projectDisplayee); dispEngine.SetViewToIsometricView(); - dispEngine.SketchView = projectService.MachiningProject.ClStrip.GetFittingView(dispEngine.SketchView); + dispEngine.SketchView = projectService.ClStrip.GetFittingView(dispEngine.SketchView); dispEngine.SketchView = dispEngine.SketchView.Scale(0.5); dispEngine.Snapshot($"Cache/result.bmp", 1000, 1000); @@ -229,7 +229,7 @@ namespace Sample.Machining LocalApp.AppEnd(); Console.WriteLine($"App exit."); } - static void RunWindow(IProjectService projectService, + static void RunWindow(LocalProjectService projectService, MachiningProjectDisplayee projectDisplayee, double resolution_mm) { var task = Task.Run(() => @@ -256,16 +256,16 @@ namespace Sample.Machining }); #endregion } - static void RunSession(IProjectService projectService, double resolution_mm) + static void RunSession(LocalProjectService localProjectService, double resolution_mm) { - var project=projectService.MachiningProject; - RuntimeApi runtimeApi = project.RuntimeApi; + var project=localProjectService.MachiningProject; + RuntimeApi runtimeApi = localProjectService.RuntimeApi; - project.BeginSession(); + localProjectService.BeginSession(); double radius = 20; double z = -1; - project.Act(new ActToolingTeleport(1));//equip tool - project.Act(new ActClTeleport(new DVec3d(radius, 0, z, 0, 0, 1)));//goto initial position + localProjectService.Act(new ActToolingTeleport(1));//equip tool + localProjectService.Act(new ActClTeleport(new DVec3d(radius, 0, z, 0, 0, 1)));//goto initial position //run an arbitrary contour. int divNum = 36; for (int i = 0; i <= divNum; i++) @@ -275,16 +275,16 @@ namespace Sample.Machining radius * Math.Sin(i * Math.PI * 2 / divNum), z, 0, 0, 1); Console.WriteLine($"{cl.Point.CsvText},{cl.Normal.CsvText},"); - project.Act(new ActClStep(cl)); + localProjectService.Act(new ActClStep(cl)); } double diffLimit_mm = resolution_mm * 2; runtimeApi.Diff(resolution_mm * 2); - Console.WriteLine($"IsDifferenceAceptable: {IsDifferenceAceptable(project, diffLimit_mm)}"); - project.EndSession(); + Console.WriteLine($"IsDifferenceAceptable: {IsDifferenceAceptable(localProjectService, diffLimit_mm)}"); + localProjectService.EndSession(); } - static bool IsDifferenceAceptable(MachiningProject project, double diffLimit) + static bool IsDifferenceAceptable(LocalProjectService localProjectService, double diffLimit) { - foreach (var attachment in project.Workpiece.DiffAttachmentBag) + foreach (var attachment in localProjectService.Workpiece.DiffAttachmentBag) { if (double.IsNaN(attachment.Diff) || Math.Abs(attachment.Diff) > diffLimit) { diff --git a/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Machining.DemoRenderingMachiningProcessAndStripPosSelection.html b/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Machining.DemoRenderingMachiningProcessAndStripPosSelection.html index cc28dcb..463f161 100644 --- a/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Machining.DemoRenderingMachiningProcessAndStripPosSelection.html +++ b/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Machining.DemoRenderingMachiningProcessAndStripPosSelection.html @@ -151,7 +151,7 @@ Provides a complete example of a 3D visualization application with HiAPI and WPF

    Remarks

    Source Code

    -
    using Hi.Wpf.Disp;
    +
    using Hi.WpfPlus.Disp;
     using System;
     using Hi.MachiningProcs;
     using Hi.Common.FileLines;
    @@ -176,22 +176,24 @@ namespace Sample.Machining
             static void Main(string[] args)
             {
                 LocalApp.AppBegin();
    +            LocalProjectService localProjectService = new LocalProjectService();
     
                 #region Load Machining Project
                 var projectPath = "C:/HiNC-Projects/DemoStandardPath/Main.hincproj";
                 Console.WriteLine($"Load Project: {projectPath}");
    -            MachiningProject machiningProject = MachiningProject.LoadFile(projectPath);
    +            localProjectService.LoadProject(projectPath);
    +            MachiningProject machiningProject = localProjectService.MachiningProject;
     
    -            machiningProject.RuntimeApi.MachiningStepSelected += (MachiningStep step) =>
    +            localProjectService.RuntimeApi.MachiningStepSelected += (MachiningStep step) =>
                 {
                     var sourceCommand = step.SourceCommand;
                     Console.WriteLine($"Step Selected: MRR = {step.Mrr_mm3ds} At \"{sourceCommand?.FilePath}\" (Line {sourceCommand?.GetLineNo()}) \"{sourceCommand?.Line}\"");
                 };
    -            machiningProject.PacePlayer.Start();
    +            localProjectService.PacePlayer.Start();
                 #endregion
     
                 #region Configure Rendering Options
    -            var projectDisplayee = new MachiningProjectDisplayee(()=>machiningProject);
    +            var projectDisplayee = new MachiningProjectDisplayee(localProjectService);
                 projectDisplayee.RenderingFlagBitArray[(int)RenderingFlag.Mech] = true;
                 projectDisplayee.RenderingFlagBitArray[(int)RenderingFlag.Fixture] = true;
                 projectDisplayee.RenderingFlagBitArray[(int)RenderingFlag.WorkpieceGeom] = true;
    diff --git a/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Machining.DemoUseMachiningProject.html b/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Machining.DemoUseMachiningProject.html
    index 175699f..36e3b30 100644
    --- a/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Machining.DemoUseMachiningProject.html
    +++ b/App/wwwroot/HiAPI-docsite/brief/sample/Sample.Machining.DemoUseMachiningProject.html
    @@ -176,11 +176,13 @@ namespace Sample.Machining
             static void Main()
             {
                 LocalApp.AppBegin();
    +            LocalProjectService localProjectService = new LocalProjectService();
     
                 #region ProjectLoading
                 var projectPath = "C:/HiNC-Projects/DemoStandardPath/Main.hincproj";
                 Console.WriteLine($"Load Project: {projectPath}");
    -            MachiningProject machiningProject = MachiningProject.LoadFile(projectPath);
    +            localProjectService.LoadProject(projectPath);
    +            MachiningProject machiningProject = localProjectService.MachiningProject;
                 #endregion
     
                 #region EventHandling
    @@ -188,7 +190,7 @@ namespace Sample.Machining
     
                 using StreamWriter writer = new StreamWriter("msg.txt");
                 //show message if something abnormal.
    -            machiningProject.SessionMessageHost.CollectionItemAdded += pack =>
    +            localProjectService.SessionMessageHost.CollectionItemAdded += pack =>
                 {
                     if (pack.Tags.Contains(MessageFlag.Warning.ToString()) ||
                         pack.Tags.Contains(MessageFlag.Error.ToString()) ||
    @@ -200,7 +202,7 @@ namespace Sample.Machining
                 };
                 Console.WriteLine($"Set machining step event.");
                 //show MRR.
    -            machiningProject.RuntimeApi.MachiningStepBuilt += (preStep, curStep) =>
    +            localProjectService.RuntimeApi.MachiningStepBuilt += (preStep, curStep) =>
                 {
                     var sourceCommand = curStep.SourceCommand;
                     if (curStep.Mrr_mm3ds > 500) //show only the step that contains large MRR.
    @@ -210,18 +212,18 @@ namespace Sample.Machining
     
                 #region MachiningExecution
                 Console.WriteLine($"Reset runtime status.");
    -            machiningProject.ResetRuntime();
    +            localProjectService.ResetRuntime();
     
                 Console.WriteLine($"Session begin.");
    -            machiningProject.BeginSession();
    -            machiningProject.RuntimeApi.MachiningResolution_mm = 1;
    -            machiningProject.RuntimeApi.EnableCollisionDetection = true;
    -            machiningProject.RuntimeApi.EnablePauseOnFailure = false;
    -            machiningProject.RuntimeApi.EnablePhysics = false;
    +            localProjectService.BeginSession();
    +            localProjectService.RuntimeApi.MachiningResolution_mm = 1;
    +            localProjectService.RuntimeApi.EnableCollisionDetection = true;
    +            localProjectService.RuntimeApi.EnablePauseOnFailure = false;
    +            localProjectService.RuntimeApi.EnablePhysics = false;
                 //the path from Shell-API is relative by project directory. 
    -            machiningProject.RuntimeApi.PlayNcFile("NC/side.ptp");
    -            machiningProject.RuntimeApi.PlayNcFile("NC/circle.ptp");
    -            machiningProject.EndSession();
    +            localProjectService.RuntimeApi.PlayNcFile("NC/side.ptp");
    +            localProjectService.RuntimeApi.PlayNcFile("NC/circle.ptp");
    +            localProjectService.EndSession();
                 Console.WriteLine($"Session end.");
                 #endregion
     
    diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/theory-and-technique/cpu-usage/geom-quick.png b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/theory-and-technique/cpu-usage/geom-quick.png
    new file mode 100644
    index 0000000000000000000000000000000000000000..f130d2d2e53d0c0c402a3f3b15db28226fa7dfa6
    GIT binary patch
    literal 156462
    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
    z
    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�uR1iG+YAz^>Y&XPS>1Xe86T#s2B}C@G*}t%;
    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
    M07*qoM6N<$g7P4R-T(jq
    
    literal 0
    HcmV?d00001
    
    diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/theory-and-technique/cpu-usage/geom-slow.png b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/theory-and-technique/cpu-usage/geom-slow.png
    new file mode 100644
    index 0000000000000000000000000000000000000000..01c5b561a9bf9bacbe9d46c49e94d7afa22c0204
    GIT binary patch
    literal 259095
    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	iN-C8c-($Q^m
    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	h5Z{nV8_{2^h$$B0u@4Sg|UIeKx
    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
    +
    +  
    +    
    +      關於仿真過程CPU的使用率 | HiAPI-C# 2025 
    +      
    +      
    +      
    +      
    +      
    +      
    +      
    +      
    +      
    +      
    +      
    +      
    +      
    +      
    +      
    +      
    +      
    +      
    +      
    +      
    +      
    +      
    +      
    +      
    +      
    +      
    +
    +      
    +
    +      
    +
    +  
    +
    +  
    +    
    +
    +    
    +
    +
    +
    +
    Table of Contents
    + +
    +
    + +
    +
    +
    + +
    +
    + + + +
    + +
    +

    關於仿真過程CPU的使用率

    + +

    仿真的運算線程

    +

    時序資料的計算是單線程(同一時間只使用一個CPU核心),其他資料則可以平行計算。

    +

    幾何移除

    +

    幾何移除是單線程,因為按照次序切削才能得到正確的CWE(刀具工件接觸面)。幾何移除後的工件幾何表面是淡粉色,通常代表該處的物理量尚未計算完成。

    +

    物理計算

    +

    切削力的計算在取得CWE之後,因其不受計算次序影響,一般模式下為多線程計算。力矩等物理量也會在這個步驟多線程計算。

    +

    溫度的計算必須是時序,所以又會收斂至單線程。

    +

    整個加工仿真的計算過程就這樣分分合合,一個步被計算完成後會在該步著上指定指標的顏色。

    +

    CPU的使用率

    +

    幾何解析度大時

    +

    幾何解析度大的時候,幾何移除較物理計算快,所以仿真過程會看到一大片的淡粉色跟在刀具後面跑。未計算完成的步數有數量限制,幾何移除在該數量內才會運行。

    +

    這種情況主要是CPU的多核運算(物理計算),比較容易看到CPU多核使用率偏高。

    +

    幾何解析度大時

    +

    幾何解析度小時

    +

    幾何解析度小的時候,幾何移除較物理計算慢,所以幾乎看不到淡粉色。

    +

    這種情況主要是CPU的單核運算(幾何計算)。

    +

    幾何解析度小時

    +

    平衡狀態

    +

    如果幾何解析度剛好使得幾何計算與物理計算不互相拖累,那淡粉色區域會出現但快速消失。此時物理計算不會拖累幾何計算,通常幾何計算才是運算速度的瓶頸。

    +

    CPU未跑滿的情況

    +

    至於CPU沒有跑滿,可能是作業系統為了確保GUI能即時反應,所以預留空間不讓跑。這部分目前沒有解法。

    + +
    + +
    +
    + + + +
    + +
    + +
    +
    + +
    + + + + diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/toc.html b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/toc.html index c2f7457..987e7c8 100644 --- a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/toc.html +++ b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/toc.html @@ -214,6 +214,9 @@
  • 第一離隙角避讓
  • +
  • + 仿真CPU使用率 +
  • diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/toc.json b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/toc.json index f4ab91f..9414efa 100644 --- a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/toc.json +++ b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/toc.json @@ -1,2 +1,2 @@ -{"items":[{"name":"HiNC 使用說明","href":"index.html","topicHref":"index.html"},{"name":"使用者條款","href":"license/index.html","topicHref":"license/index.html"},{"name":"HiNC啟用","items":[{"name":"Windows系統啟用","href":"startup/windows.html","topicHref":"startup/windows.html"},{"name":"單機多站配置","href":"startup/multi-station.html","topicHref":"startup/multi-station.html"},{"name":"多主機授權設置","href":"startup/delegate-auth.html","topicHref":"startup/delegate-auth.html"},{"name":"教學視頻","href":"startup/tutorial.html","topicHref":"startup/tutorial.html"}]},{"name":"系統","items":[{"name":"檔案總管","href":"system/file-explorer.html","topicHref":"system/file-explorer.html"}]},{"name":"設備","items":[{"name":"錨點","href":"mech/anchor.html","topicHref":"mech/anchor.html"},{"name":"工具機建置","href":"equipment/build-machine-tool.html","topicHref":"equipment/build-machine-tool.html"},{"name":"冷卻液","href":"equipment/coolant.html","topicHref":"equipment/coolant.html"}]},{"name":"控制器","items":[{"name":"海德漢支援","href":"controllers/heidenhain-support.html","topicHref":"controllers/heidenhain-support.html"},{"name":"通用NC碼支援","href":"controllers/iso-nc-support.html","topicHref":"controllers/iso-nc-support.html"}]},{"name":"加工工具","items":[{"name":"銑刀","href":"milling-tool/cutter.html","topicHref":"milling-tool/cutter.html"},{"name":"APT工具","href":"milling-tool/apt.html","topicHref":"milling-tool/apt.html"},{"name":"刀片式刃雕","href":"milling-tool/insert-cutter/index.html","topicHref":"milling-tool/insert-cutter/index.html"},{"name":"徑向角度量測","href":"milling-tool/radial-angle-measurement.html","topicHref":"milling-tool/radial-angle-measurement.html"},{"name":"智慧刀把","href":"milling-tool/smart-tool-holder.html","topicHref":"milling-tool/smart-tool-holder.html"}]},{"name":"腳本命令","href":"script/index.html","topicHref":"script/index.html","items":[{"name":"文件任務","href":"script/Doc-Task/index.html","topicHref":"script/Doc-Task/index.html"},{"name":"執行NC檔案","href":"script/PlayNcFile/index.html","topicHref":"script/PlayNcFile/index.html"},{"name":"執行NC碼字串","href":"script/PlayNc/index.html","topicHref":"script/PlayNc/index.html"},{"name":"執行CSV檔案","href":"script/PlayCsvFile/play-csv-file.html","topicHref":"script/PlayCsvFile/play-csv-file.html"},{"name":"播放器控制","href":"script/PlayerControl/index.html","topicHref":"script/PlayerControl/index.html"},{"name":"事件處理","href":"script/Events/index.html","topicHref":"script/Events/index.html"},{"name":"屬性設定","href":"script/Properties/index.html","topicHref":"script/Properties/index.html"},{"name":"動作操作","href":"script/ActOperations/index.html","topicHref":"script/ActOperations/index.html"},{"name":"加工步變數","href":"script/StepVariables/index.html","topicHref":"script/StepVariables/index.html"},{"name":"訊息處理","href":"script/Messages/index.html","topicHref":"script/Messages/index.html"},{"name":"運行時管理","href":"script/RuntimeManagement/index.html","topicHref":"script/RuntimeManagement/index.html"},{"name":"碰撞檢測","href":"script/Collision/index.html","topicHref":"script/Collision/index.html"},{"name":"離料","href":"script/FlyPiece/index.html","topicHref":"script/FlyPiece/index.html"},{"name":"幾何差異","href":"script/GeomDiff/index.html","topicHref":"script/GeomDiff/index.html"},{"name":"映射","href":"script/Mapping/index.html","topicHref":"script/Mapping/index.html"},{"name":"銑削訓練","href":"script/MillingTraining/index.html","topicHref":"script/MillingTraining/index.html"},{"name":"載入切削參數","href":"script/LoadCuttingPara/index.html","topicHref":"script/LoadCuttingPara/index.html"},{"name":"物理仿真設定","href":"script/Physics/index.html","topicHref":"script/Physics/index.html"},{"name":"NC優化","href":"script/NcOptimization/index.html","topicHref":"script/NcOptimization/index.html"},{"name":"解析度","href":"script/Resolution/index.html","topicHref":"script/Resolution/index.html"},{"name":"運行時幾何","href":"script/RuntimeGeom/index.html","topicHref":"script/RuntimeGeom/index.html"},{"name":"輸出Shot檔案","href":"script/WriteShotFiles/index.html","topicHref":"script/WriteShotFiles/index.html"},{"name":"輸出Step檔案","href":"script/WriteStepFiles/index.html","topicHref":"script/WriteStepFiles/index.html"},{"name":"刀具與智慧刀把設置","href":"script/ToolSetup/index.html","topicHref":"script/ToolSetup/index.html"}]},{"name":"輸出","items":[{"name":"模擬步階輸出資訊","href":"output/simulation-step-output.html","topicHref":"output/simulation-step-output.html"}]},{"name":"優化","items":[{"name":"NC優化","href":"optimization/index.html","topicHref":"optimization/index.html"}]},{"name":"理論與技術","items":[{"name":"銑削物理座標系","href":"theory-and-technique/milling-physics-coordinates.html","topicHref":"theory-and-technique/milling-physics-coordinates.html"},{"name":"評估製程可加工性","href":"availability/index.html","topicHref":"availability/index.html"},{"name":"刀具壽命與磨耗","href":"technique/wear.html","topicHref":"technique/wear.html"},{"name":"第一離隙角避讓","href":"technique/relief-face-avoidance/index.html","topicHref":"technique/relief-face-avoidance/index.html"}]}]} +{"items":[{"name":"HiNC 使用說明","href":"index.html","topicHref":"index.html"},{"name":"使用者條款","href":"license/index.html","topicHref":"license/index.html"},{"name":"HiNC啟用","items":[{"name":"Windows系統啟用","href":"startup/windows.html","topicHref":"startup/windows.html"},{"name":"單機多站配置","href":"startup/multi-station.html","topicHref":"startup/multi-station.html"},{"name":"多主機授權設置","href":"startup/delegate-auth.html","topicHref":"startup/delegate-auth.html"},{"name":"教學視頻","href":"startup/tutorial.html","topicHref":"startup/tutorial.html"}]},{"name":"系統","items":[{"name":"檔案總管","href":"system/file-explorer.html","topicHref":"system/file-explorer.html"}]},{"name":"設備","items":[{"name":"錨點","href":"mech/anchor.html","topicHref":"mech/anchor.html"},{"name":"工具機建置","href":"equipment/build-machine-tool.html","topicHref":"equipment/build-machine-tool.html"},{"name":"冷卻液","href":"equipment/coolant.html","topicHref":"equipment/coolant.html"}]},{"name":"控制器","items":[{"name":"海德漢支援","href":"controllers/heidenhain-support.html","topicHref":"controllers/heidenhain-support.html"},{"name":"通用NC碼支援","href":"controllers/iso-nc-support.html","topicHref":"controllers/iso-nc-support.html"}]},{"name":"加工工具","items":[{"name":"銑刀","href":"milling-tool/cutter.html","topicHref":"milling-tool/cutter.html"},{"name":"APT工具","href":"milling-tool/apt.html","topicHref":"milling-tool/apt.html"},{"name":"刀片式刃雕","href":"milling-tool/insert-cutter/index.html","topicHref":"milling-tool/insert-cutter/index.html"},{"name":"徑向角度量測","href":"milling-tool/radial-angle-measurement.html","topicHref":"milling-tool/radial-angle-measurement.html"},{"name":"智慧刀把","href":"milling-tool/smart-tool-holder.html","topicHref":"milling-tool/smart-tool-holder.html"}]},{"name":"腳本命令","href":"script/index.html","topicHref":"script/index.html","items":[{"name":"文件任務","href":"script/Doc-Task/index.html","topicHref":"script/Doc-Task/index.html"},{"name":"執行NC檔案","href":"script/PlayNcFile/index.html","topicHref":"script/PlayNcFile/index.html"},{"name":"執行NC碼字串","href":"script/PlayNc/index.html","topicHref":"script/PlayNc/index.html"},{"name":"執行CSV檔案","href":"script/PlayCsvFile/play-csv-file.html","topicHref":"script/PlayCsvFile/play-csv-file.html"},{"name":"播放器控制","href":"script/PlayerControl/index.html","topicHref":"script/PlayerControl/index.html"},{"name":"事件處理","href":"script/Events/index.html","topicHref":"script/Events/index.html"},{"name":"屬性設定","href":"script/Properties/index.html","topicHref":"script/Properties/index.html"},{"name":"動作操作","href":"script/ActOperations/index.html","topicHref":"script/ActOperations/index.html"},{"name":"加工步變數","href":"script/StepVariables/index.html","topicHref":"script/StepVariables/index.html"},{"name":"訊息處理","href":"script/Messages/index.html","topicHref":"script/Messages/index.html"},{"name":"運行時管理","href":"script/RuntimeManagement/index.html","topicHref":"script/RuntimeManagement/index.html"},{"name":"碰撞檢測","href":"script/Collision/index.html","topicHref":"script/Collision/index.html"},{"name":"離料","href":"script/FlyPiece/index.html","topicHref":"script/FlyPiece/index.html"},{"name":"幾何差異","href":"script/GeomDiff/index.html","topicHref":"script/GeomDiff/index.html"},{"name":"映射","href":"script/Mapping/index.html","topicHref":"script/Mapping/index.html"},{"name":"銑削訓練","href":"script/MillingTraining/index.html","topicHref":"script/MillingTraining/index.html"},{"name":"載入切削參數","href":"script/LoadCuttingPara/index.html","topicHref":"script/LoadCuttingPara/index.html"},{"name":"物理仿真設定","href":"script/Physics/index.html","topicHref":"script/Physics/index.html"},{"name":"NC優化","href":"script/NcOptimization/index.html","topicHref":"script/NcOptimization/index.html"},{"name":"解析度","href":"script/Resolution/index.html","topicHref":"script/Resolution/index.html"},{"name":"運行時幾何","href":"script/RuntimeGeom/index.html","topicHref":"script/RuntimeGeom/index.html"},{"name":"輸出Shot檔案","href":"script/WriteShotFiles/index.html","topicHref":"script/WriteShotFiles/index.html"},{"name":"輸出Step檔案","href":"script/WriteStepFiles/index.html","topicHref":"script/WriteStepFiles/index.html"},{"name":"刀具與智慧刀把設置","href":"script/ToolSetup/index.html","topicHref":"script/ToolSetup/index.html"}]},{"name":"輸出","items":[{"name":"模擬步階輸出資訊","href":"output/simulation-step-output.html","topicHref":"output/simulation-step-output.html"}]},{"name":"優化","items":[{"name":"NC優化","href":"optimization/index.html","topicHref":"optimization/index.html"}]},{"name":"理論與技術","items":[{"name":"銑削物理座標系","href":"theory-and-technique/milling-physics-coordinates.html","topicHref":"theory-and-technique/milling-physics-coordinates.html"},{"name":"評估製程可加工性","href":"availability/index.html","topicHref":"availability/index.html"},{"name":"刀具壽命與磨耗","href":"technique/wear.html","topicHref":"technique/wear.html"},{"name":"第一離隙角避讓","href":"technique/relief-face-avoidance/index.html","topicHref":"technique/relief-face-avoidance/index.html"},{"name":"仿真CPU使用率","href":"theory-and-technique/cpu-usage/index.html","topicHref":"theory-and-technique/cpu-usage/index.html"}]}]} diff --git a/App/wwwroot/HiAPI-docsite/docfx.json b/App/wwwroot/HiAPI-docsite/docfx.json index 96a9a90..5d2a3c4 100644 --- a/App/wwwroot/HiAPI-docsite/docfx.json +++ b/App/wwwroot/HiAPI-docsite/docfx.json @@ -11,7 +11,7 @@ "HiMech/HiMech.csproj", "HiUniNc/HiUniNc.csproj", "HiNc/HiNc.csproj", - "Hi.Wpf/Hi.Wpf.csproj", + "Hi.WpfPlus/Hi.WpfPlus.csproj", "Hi.WinForm/Hi.WinForm.csproj" ] } diff --git a/App/wwwroot/HiAPI-docsite/index.json b/App/wwwroot/HiAPI-docsite/index.json index 95e79eb..3bb61cf 100644 --- a/App/wwwroot/HiAPI-docsite/index.json +++ b/App/wwwroot/HiAPI-docsite/index.json @@ -482,7 +482,7 @@ "api/Hi.Common.FileLines.FileLineIndex.html": { "href": "api/Hi.Common.FileLines.FileLineIndex.html", "title": "Class FileLineIndex | HiAPI-C# 2025", - "summary": "Class FileLineIndex Namespace Hi.Common.FileLines Assembly HiGeom.dll Represents a location in a file by its file index and line number. public class FileLineIndex : IFileLineIndex, IGetFileLineIndex, IComparable, IMakeXmlSource, IToXElement Inheritance object FileLineIndex Implements IFileLineIndex IGetFileLineIndex IComparable IMakeXmlSource IToXElement Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) FileLineUtil.GetFileNo(IFileLineIndex) FileLineUtil.GetLineNo(IFileLineIndex) FileLineUtil.MixedIndex(IFileLineIndex) FileLineUtil.MixedIndex(IGetFileLineIndex) XmlUtil.MakeXmlSourceFile(IMakeXmlSource, string, bool) XmlUtil.MakeXmlSourceWithRebaseFile(IMakeXmlSource, string, string, bool) XmlUtil.SaveToByteArrayAsync(IMakeXmlSource, string) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors FileLineIndex() Initializes a new instance of the FileLineIndex class. public FileLineIndex() FileLineIndex(IFileLineIndex) Initializes a new instance of the FileLineIndex class by copying another instance. public FileLineIndex(IFileLineIndex src) Parameters src IFileLineIndex The source FileLineIndex to copy from FileLineIndex(int, int) Initializes a new instance of the FileLineIndex class with specified indices. public FileLineIndex(int fileIndex, int lineIndex) Parameters fileIndex int The zero-based file index lineIndex int The zero-based line index FileLineIndex(XElement) Initializes a new instance of the FileLineIndex class from an XML element. public FileLineIndex(XElement src) Parameters src XElement The XML element containing the file and line indices Properties FileIndex File Index. Start on 0. public int FileIndex { get; set; } Property Value int FileNo Gets or sets the one-based file number (FileIndex + 1) public int FileNo { get; set; } Property Value int LineIndex Line Index. Start on 0. public int LineIndex { get; set; } Property Value int LineNo Gets or sets the one-based line number (LineIndex + 1) public int LineNo { get; set; } Property Value int XName Gets the XML element name used for serialization. public static string XName { get; } Property Value string Methods CompareTo(IFileLineIndex) Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. public int CompareTo(IFileLineIndex other) Parameters other IFileLineIndex An object to compare with this instance. Returns int A value that indicates the relative order of the objects being compared. The return value has these meanings: Value Meaning Less than zero This instance precedes other in the sort order. Zero This instance occurs in the same position in the sort order as other. Greater than zero This instance follows other in the sort order. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. GetFileLineIndex() Get FileLineIndex. public FileLineIndex GetFileLineIndex() Returns FileLineIndex FileLineIndex GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. ToUserString() Returns a user-friendly string representation of the file and line numbers. public string ToUserString() Returns string A string in the format “(FileNo:X,LineNo:Y)” ToXElement() Converts the current instance to an XElement. public XElement ToXElement() Returns XElement An XElement representing this index." + "summary": "Class FileLineIndex Namespace Hi.Common.FileLines Assembly HiGeom.dll Represents a location in a file by its file index and line number. public class FileLineIndex : IFileLineIndex, IGetFileLineIndex, IComparable, IMakeXmlSource, IToXElement Inheritance object FileLineIndex Implements IFileLineIndex IGetFileLineIndex IComparable IMakeXmlSource IToXElement Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) MathUtil.Clamp(T, T, T) FileLineUtil.GetFileNo(IFileLineIndex) FileLineUtil.GetLineNo(IFileLineIndex) FileLineUtil.MixedIndex(IFileLineIndex) FileLineUtil.MixedIndex(IGetFileLineIndex) XmlUtil.MakeXmlSourceFile(IMakeXmlSource, string, bool) XmlUtil.MakeXmlSourceWithRebaseFile(IMakeXmlSource, string, string, bool) XmlUtil.SaveToByteArrayAsync(IMakeXmlSource, string) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors FileLineIndex() Initializes a new instance of the FileLineIndex class. public FileLineIndex() FileLineIndex(IFileLineIndex) Initializes a new instance of the FileLineIndex class by copying another instance. public FileLineIndex(IFileLineIndex src) Parameters src IFileLineIndex The source FileLineIndex to copy from FileLineIndex(int, int) Initializes a new instance of the FileLineIndex class with specified indices. public FileLineIndex(int fileIndex, int lineIndex) Parameters fileIndex int The zero-based file index lineIndex int The zero-based line index FileLineIndex(XElement) Initializes a new instance of the FileLineIndex class from an XML element. public FileLineIndex(XElement src) Parameters src XElement The XML element containing the file and line indices Properties FileIndex File Index. Start on 0. public int FileIndex { get; set; } Property Value int FileNo Gets or sets the one-based file number (FileIndex + 1) public int FileNo { get; set; } Property Value int LineIndex Line Index. Start on 0. public int LineIndex { get; set; } Property Value int LineNo Gets or sets the one-based line number (LineIndex + 1) public int LineNo { get; set; } Property Value int XName Gets the XML element name used for serialization. public static string XName { get; } Property Value string Methods CompareTo(IFileLineIndex) Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. public int CompareTo(IFileLineIndex other) Parameters other IFileLineIndex An object to compare with this instance. Returns int A value that indicates the relative order of the objects being compared. The return value has these meanings: Value Meaning Less than zero This instance precedes other in the sort order. Zero This instance occurs in the same position in the sort order as other. Greater than zero This instance follows other in the sort order. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. GetFileLineIndex() Get FileLineIndex. public FileLineIndex GetFileLineIndex() Returns FileLineIndex FileLineIndex GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. ToUserString() Returns a user-friendly string representation of the file and line numbers. public string ToUserString() Returns string A string in the format “(FileNo:X,LineNo:Y)” ToXElement() Converts the current instance to an XElement. public XElement ToXElement() Returns XElement An XElement representing this index." }, "api/Hi.Common.FileLines.FileLinePipingKit.html": { "href": "api/Hi.Common.FileLines.FileLinePipingKit.html", @@ -987,7 +987,7 @@ "api/Hi.CutterLocations.ClStrips.ClStrip.html": { "href": "api/Hi.CutterLocations.ClStrips.ClStrip.html", "title": "Class ClStrip | HiAPI-C# 2025", - "summary": "Class ClStrip Namespace Hi.CutterLocations.ClStrips Assembly HiMech.dll Represents a CL (Cutter Location) strip for 3D display. This class manages the display and interaction of cutter location points and lines. public class ClStrip : IDisplayee, IExpandToBox3d, IDisposable Inheritance object ClStrip Implements IDisplayee IExpandToBox3d IDisposable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) BoundSelectorUtil.GetStepRange(ClStrip, BoundSelectorPair) DispUtil.Display(IDisplayee, Bind, Mat4d) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors ClStrip(int) Initializes a new instance of the ClStrip class. public ClStrip(int cap = 2048) Parameters cap int The initial capacity of the strip Fields slice_distance The distance between slices for efficient rendering. public const int slice_distance = 8192 Field Value int Properties AbsDispEnd Gets the absolute display end position. If the display end is set to -1, returns the total number of positions. public int AbsDispEnd { get; } Property Value int CallRefreshDrawing internal use public bool CallRefreshDrawing { get; } Property Value bool IsKeepingDispAlive Keep the disp range to at least two dots while the stripe length enough. public bool IsKeepingDispAlive { get; set; } Property Value bool IsShowDot Gets or sets whether to display dots at each position. public bool IsShowDot { get; set; } Property Value bool StripPoses Gets the list of strip positions. Do not add or remove elements directly. public SynList StripPoses { get; } Property Value SynList StripPosesClearLock Gets the lock for thread-safe operations on strip positions. public ReaderWriterLockSlim StripPosesClearLock { get; } Property Value ReaderWriterLockSlim StripPosesCount Gets the thread-safe count of strip positions. public int StripPosesCount { get; } Property Value int Methods Add(object, DVec3d) Adds a new position to the strip. public ClStripPos Add(object state, DVec3d programCl) Parameters state object The state object associated with the position programCl DVec3d The cutter location Returns ClStripPos The newly created strip position Clear(object) Clears all strip positions and resets the display state. public void Clear(object sender) Parameters sender object The object that initiated this clear operation Display(Bind) Displays the strip. public void Display(Bind bind) Parameters bind Bind The binding context for display Dispose() Disposes of the resources used by this strip. public void Dispose() Dispose(bool) Disposes of the resources used by this strip. protected virtual void Dispose(bool disposing) Parameters disposing bool Whether this is being called from Dispose ExpandToBox3d(Box3d) Expands the given box to include all strip positions. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d The box to expand GetDispBegin() Gets the current display begin position. public int GetDispBegin() Returns int The display begin position GetDispEnd() Gets the current display end position. A value of -1 indicates that the display should follow the end of the strip. public int GetDispEnd() Returns int The display end position GetEnteredPos() Gets the currently entered position. public ClStripPos GetEnteredPos() Returns ClStripPos The entered position GetFittingView(Mat4d, Mat4d) Gets a scaled fitting view based on the strip display range. public Mat4d GetFittingView(Mat4d sketchView, Mat4d clStripZeroToRoot = null) Parameters sketchView Mat4d The sketch view matrix clStripZeroToRoot Mat4d The transformation from strip zero to root Returns Mat4d The scaled fitting view matrix GetSelectedPos() Gets the currently selected position. public ClStripPos GetSelectedPos() Returns ClStripPos The selected position GetStripPos(int, bool) Gets a strip position by index. public ClStripPos GetStripPos(int index, bool isLocked = false) Parameters index int The index of the position isLocked bool Whether the strip positions are already locked Returns ClStripPos The strip position at the specified index RefreshDrawing() Marks the drawing for refresh. public void RefreshDrawing() RefreshDrawingInRendering(bool) internal use public void RefreshDrawingInRendering(bool isLocked) Parameters isLocked bool SetDispBegin(int, object) Sets the display begin position. public void SetDispBegin(int value, object caller) Parameters value int The new display begin position caller object The object that initiated this change SetDispEnd(int, object) Sets the display end position. A value of -1 indicates that the display should follow the end of the strip. public void SetDispEnd(int value, object caller) Parameters value int The new display end position caller object The object that initiated this change SetDispRange(int, int, object, int) Sets the display range for the cutter location strip. This method sets both the beginning and ending positions of the display range. public void SetDispRange(int beginIndex, int endIndex, object caller, int lowestLength = 2) Parameters beginIndex int The beginning index of the display range. Will be clamped to [0, StripPoses.Count - 1]. endIndex int The ending index of the display range. A value of -1 indicates that the display should follow the end of the strip. Values greater than or equal to StripPoses.Count will be converted to -1. Will be clamped to [-1, StripPoses.Count]. caller object The caller object that requests the display range change. Used for event notifications. lowestLength int The minimum length of the display range. Currently not used in the implementation. Default is 2. SetEnteredPos(ClStripPos, object) Sets the currently entered position. public void SetEnteredPos(ClStripPos value, object sender) Parameters value ClStripPos The new entered position sender object The object that initiated this change SetSelectedPos(ClStripPos, object) Sets the currently selected position. public void SetSelectedPos(ClStripPos value, object sender) Parameters value ClStripPos The new selected position sender object The object that initiated this change ShrinkAttachmentMemory(CancellationToken?) Shrinks the attachment memory for all positions. public void ShrinkAttachmentMemory(CancellationToken? cancellationToken = null) Parameters cancellationToken CancellationToken? StripPosesThreadSafeSelect(Func) Thread-safe selection of strip positions. public List StripPosesThreadSafeSelect(Func func) Parameters func Func The function to transform each strip position Returns List A list of transformed strip positions Type Parameters T The type of the selected data Events AbsDispEndChanged Event raised when the absolute display end position changes. public event EventHandler AbsDispEndChanged Event Type EventHandler DispBeginChanged Event raised when the display begin position changes. public event EventHandler DispBeginChanged Event Type EventHandler DispEndChanged Event raised when the display end position changes. public event EventHandler DispEndChanged Event Type EventHandler DrawingRefreshing Event raised when the drawing is being refreshed. public event EventHandler DrawingRefreshing Event Type EventHandler MachiningStepSelected The same effecting position as PosSelected but with more convenient arguments for the end-user. public event Action MachiningStepSelected Event Type Action PosAdded Event raised when a new position is added to the strip. public event Action PosAdded Event Type Action PosEntered Event raised when the mouse enters a position. public event EventHandler PosEntered Event Type EventHandler PosSelected Event raised when a position is selected. public event EventHandler PosSelected Event Type EventHandler StaticPosSelected Static event raised when any position is selected. public static event EventHandler StaticPosSelected Event Type EventHandler" + "summary": "Class ClStrip Namespace Hi.CutterLocations.ClStrips Assembly HiMech.dll Represents a CL (Cutter Location) strip for 3D display. This class manages the display and interaction of cutter location points and lines. public class ClStrip : IDisplayee, IExpandToBox3d, IDisposable Inheritance object ClStrip Implements IDisplayee IExpandToBox3d IDisposable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) BoundSelectorUtil.GetStepRange(ClStrip, BoundSelectorPair) DispUtil.Display(IDisplayee, Bind, Mat4d) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors ClStrip(int) Initializes a new instance of the ClStrip class. public ClStrip(int cap = 2048) Parameters cap int The initial capacity of the strip Fields slice_distance The distance between slices for efficient rendering. public const int slice_distance = 8192 Field Value int Properties AbsDispEnd Gets the absolute display end position. If the display end is set to -1, returns the total number of positions. public int AbsDispEnd { get; } Property Value int CallRefreshDrawing internal use public bool CallRefreshDrawing { get; } Property Value bool ChartRange Synchoronized Chart Time Range. The value is possible to be null for the un-available status. public Range ChartRange { get; set; } Property Value Range IsKeepingDispAlive Keep the disp range to at least two dots while the stripe length enough. public bool IsKeepingDispAlive { get; set; } Property Value bool IsShowDot Gets or sets whether to display dots at each position. public bool IsShowDot { get; set; } Property Value bool StripPoses Gets the list of strip positions. Do not add or remove elements directly. public SynList StripPoses { get; } Property Value SynList StripPosesClearLock Gets the lock for thread-safe operations on strip positions. public ReaderWriterLockSlim StripPosesClearLock { get; } Property Value ReaderWriterLockSlim StripPosesCount Gets the thread-safe count of strip positions. public int StripPosesCount { get; } Property Value int Methods Add(object, DVec3d) Adds a new position to the strip. public ClStripPos Add(object state, DVec3d programCl) Parameters state object The state object associated with the position programCl DVec3d The cutter location Returns ClStripPos The newly created strip position Clear(object) Clears all strip positions and resets the display state. public void Clear(object sender) Parameters sender object The object that initiated this clear operation Display(Bind) Displays the strip. public void Display(Bind bind) Parameters bind Bind The binding context for display Dispose() Disposes of the resources used by this strip. public void Dispose() Dispose(bool) Disposes of the resources used by this strip. protected virtual void Dispose(bool disposing) Parameters disposing bool Whether this is being called from Dispose ExpandToBox3d(Box3d) Expands the given box to include all strip positions. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d The box to expand GetDispBegin() Gets the current display begin position. public int GetDispBegin() Returns int The display begin position GetDispEnd() Gets the current display end position. A value of -1 indicates that the display should follow the end of the strip. public int GetDispEnd() Returns int The display end position GetEnteredPos() Gets the currently entered position. public ClStripPos GetEnteredPos() Returns ClStripPos The entered position GetFittingView(Mat4d, Mat4d) Gets a scaled fitting view based on the strip display range. public Mat4d GetFittingView(Mat4d sketchView, Mat4d clStripZeroToRoot = null) Parameters sketchView Mat4d The sketch view matrix clStripZeroToRoot Mat4d The transformation from strip zero to root Returns Mat4d The scaled fitting view matrix GetSelectedPos() Gets the currently selected position. public ClStripPos GetSelectedPos() Returns ClStripPos The selected position GetStripPos(int, bool) Gets a strip position by index. public ClStripPos GetStripPos(int index, bool isLocked = false) Parameters index int The index of the position isLocked bool Whether the strip positions are already locked Returns ClStripPos The strip position at the specified index RefreshDrawing() Marks the drawing for refresh. public void RefreshDrawing() RefreshDrawingInRendering(bool) internal use public void RefreshDrawingInRendering(bool isLocked) Parameters isLocked bool SetDispBegin(int, object) Sets the display begin position. public void SetDispBegin(int value, object caller) Parameters value int The new display begin position caller object The object that initiated this change SetDispEnd(int, object) Sets the display end position. A value of -1 indicates that the display should follow the end of the strip. public void SetDispEnd(int value, object caller) Parameters value int The new display end position caller object The object that initiated this change SetDispSegment(int, int, object, int) Sets the display range for the cutter location strip. This method sets both the beginning and ending positions of the display range. public void SetDispSegment(int beginIndex, int endIndex, object caller, int lowestLength = 2) Parameters beginIndex int The beginning index of the display range. Will be clamped to [0, StripPoses.Count - 1]. endIndex int The ending index of the display range. A value of -1 indicates that the display should follow the end of the strip. Values greater than or equal to StripPoses.Count will be converted to -1. Will be clamped to [-1, StripPoses.Count]. caller object The caller object that requests the display range change. Used for event notifications. lowestLength int The minimum length of the display range. Currently not used in the implementation. Default is 2. SetEnteredPos(ClStripPos, object) Sets the currently entered position. public void SetEnteredPos(ClStripPos value, object sender) Parameters value ClStripPos The new entered position sender object The object that initiated this change SetSelectedPos(ClStripPos, object) Sets the currently selected position. public void SetSelectedPos(ClStripPos value, object sender) Parameters value ClStripPos The new selected position sender object The object that initiated this change ShrinkAttachmentMemory(CancellationToken?) Shrinks the attachment memory for all positions. public void ShrinkAttachmentMemory(CancellationToken? cancellationToken = null) Parameters cancellationToken CancellationToken? StripPosesThreadSafeSelect(Func) Thread-safe selection of strip positions. public List StripPosesThreadSafeSelect(Func func) Parameters func Func The function to transform each strip position Returns List A list of transformed strip positions Type Parameters T The type of the selected data UpdateChartRangeByDispSegment() Update Chart Time Range By DispSegment. Internal Use Only. public void UpdateChartRangeByDispSegment() UpdateDispSegmentByChartRange(object) public void UpdateDispSegmentByChartRange(object caller) Parameters caller object Events AbsDispEndChanged Event raised when the absolute display end position changes. public event EventHandler AbsDispEndChanged Event Type EventHandler DispBeginChanged Event raised when the display begin position changes. public event EventHandler DispBeginChanged Event Type EventHandler DispEndChanged Event raised when the display end position changes. public event EventHandler DispEndChanged Event Type EventHandler DrawingRefreshing Event raised when the drawing is being refreshed. public event EventHandler DrawingRefreshing Event Type EventHandler MachiningStepSelected The same effecting position as PosSelected but with more convenient arguments for the end-user. public event Action MachiningStepSelected Event Type Action PosAdded Event raised when a new position is added to the strip. public event Action PosAdded Event Type Action PosEntered Event raised when the mouse enters a position. public event EventHandler PosEntered Event Type EventHandler PosSelected Event raised when a position is selected. public event EventHandler PosSelected Event Type EventHandler StaticPosSelected Static event raised when any position is selected. public static event EventHandler StaticPosSelected Event Type EventHandler" }, "api/Hi.CutterLocations.ClStrips.ClStripPos.html": { "href": "api/Hi.CutterLocations.ClStrips.ClStripPos.html", @@ -1402,7 +1402,7 @@ "api/Hi.Geom.MathUtil.html": { "href": "api/Hi.Geom.MathUtil.html", "title": "Class MathUtil | HiAPI-C# 2025", - "summary": "Class MathUtil Namespace Hi.Geom Assembly HiGeom.dll Math Utility. public static class MathUtil Inheritance object MathUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Fields sqrt2 square root of 2. public const double sqrt2 = 1.4142135623730951 Field Value double sqrt3 square root of 3. public const double sqrt3 = 1.7320508075688772 Field Value double Methods AbsDiffAngle(double, double) Calculates the absolute difference between two angles in radians public static double AbsDiffAngle(double angleA_rad, double angleB_rad) Parameters angleA_rad double First angle in radians angleB_rad double Second angle in radians Returns double The absolute difference between the two angles Add(double[], double[]) Adds the elements of the second array to the corresponding elements of the first array in-place. public static double[] Add(this double[] src, double[] src2) Parameters src double[] The source array to which elements will be added. src2 double[] The array containing elements to add. Returns double[] The modified source array. AlterIfNan(double, double) public static double AlterIfNan(double primaryValue, double alteringValue) Parameters primaryValue double primary value alteringValue double the candidate value Returns double ApplyAlterIf(T, Func, T) Applies an alternative value if the source value meets a specified condition. public static T ApplyAlterIf(T src, Func isApplyingAlternateFunc, T alternative) Parameters src T The source value to check. isApplyingAlternateFunc Func Function that determines if the alternative should be applied. alternative T The alternative value to use if the condition is met. Returns T Either the original value or the alternative value based on the condition. Type Parameters T The type of the values. Average(IEnumerable) Average. public static Vec3d Average(this IEnumerable src) Parameters src IEnumerable src Returns Vec3d Average BilinearInterpolate(double, double, double, double, double, double) Performs bilinear interpolation between four double values public static double BilinearInterpolate(double v00, double v01, double v10, double v11, double u, double v) Parameters v00 double Value at (0,0) on normalized bilinear coordinate v01 double Value at (0,1) on normalized bilinear coordinate v10 double Value at (1,0) on normalized bilinear coordinate v11 double Value at (1,1) on normalized bilinear coordinate u double Ratio along v00 and v10, etc. v double Ratio along v00 and v01, etc. Returns double The interpolated value BilinearInterpolate(T, T, T, T, double, double) Bilinear interpolate. public static T BilinearInterpolate(T v00, T v01, T v10, T v11, double u, double v) where T : IAdditionOperators, IMultiplyOperators Parameters v00 T value at (0,0) on normalized bilinear coordinate v01 T value at (0,1) on normalized bilinear coordinate v10 T value at (1,0) on normalized bilinear coordinate v11 T value at (1,1) on normalized bilinear coordinate u double ratio along v00 and v10, etc. v double ratio along v00 and v01, etc. Returns T interpolated value Type Parameters T value type. BilinearInterpolate(T, T, T, T, double, double, Func, Func) Bilinear interpolate. public static T BilinearInterpolate(T v00, T v01, T v10, T v11, double u, double v, Func scalingFunc, Func addingFunc) Parameters v00 T value at (0,0) on normalized bilinear coordinate v01 T value at (0,1) on normalized bilinear coordinate v10 T value at (1,0) on normalized bilinear coordinate v11 T value at (1,1) on normalized bilinear coordinate u double ratio along v00 and v10, etc. v double ratio along v00 and v01, etc. scalingFunc Func scaling function addingFunc Func adding function Returns T interpolated value Type Parameters T value type. BinaryDividentSequence(int) Generates a value in a binary divident sequence based on the seed. public static double BinaryDividentSequence(int seed) Parameters seed int The seed value for the sequence. Returns double The value in the binary divident sequence. Cbrt(double) Calculates the cube root of a number. public static double Cbrt(double v) Parameters v double The value to calculate the cube root of. Returns double The cube root of the specified value. Convert_inchdmin_To_mmds(double) Converts inches per minute to millimeters per second. public static double Convert_inchdmin_To_mmds(double inchdmin) Parameters inchdmin double Value in inches per minute. Returns double Value in millimeters per second. Convert_mdmin_To_mmds(double) Converts meters per minute to millimeters per second. public static double Convert_mdmin_To_mmds(double mdmin) Parameters mdmin double Value in meters per minute. Returns double Value in millimeters per second. Convert_mmdmin_To_mmds(double) Converts millimeters per minute to millimeters per second. public static double Convert_mmdmin_To_mmds(double mmdmin) Parameters mmdmin double Value in millimeters per minute. Returns double Value in millimeters per second. Convert_mmds_To_mdmin(double) Converts millimeters per second to meters per minute. public static double Convert_mmds_To_mdmin(double mmds) Parameters mmds double Value in millimeters per second. Returns double Value in meters per minute. Convert_mmds_To_mmdmin(double) Converts millimeters per second to millimeters per minute. public static double Convert_mmds_To_mmdmin(double mmds) Parameters mmds double Value in millimeters per second. Returns double Value in millimeters per minute. Convert_radds_To_rpm(double) Converts radians per second to revolutions per minute (RPM). public static double Convert_radds_To_rpm(double radds) Parameters radds double Value in radians per second. Returns double Value in revolutions per minute. Convert_rpm_To_radds(double) Converts revolutions per minute (RPM) to radians per second. public static double Convert_rpm_To_radds(double rpm) Parameters rpm double Value in revolutions per minute. Returns double Value in radians per second. Cycle(double, double, double) If the value is within lowerBound and upperBound, return value. Otherwise, perform looped value according to the direction from lower to upper. ex. bound=(0,1), value=3.1, than return 0.1. public static double Cycle(double value, double lowerBound, double upperBound) Parameters value double value lowerBound double lower bound, inclusive upperBound double upper bound, exclusive Returns double cycled value Cycle(double, double, double, bool) Cycles a value to be within the specified range, with configurable bound inclusivity. public static double Cycle(double value, double lowerBound, double upperBound, bool isBothBoundInclusive) Parameters value double The value to cycle. lowerBound double The lower bound of the range. upperBound double The upper bound of the range. isBothBoundInclusive bool If true, both bounds are inclusive; otherwise, only the lower bound is inclusive. Returns double The cycled value within the specified range. Cycle2Pi_rad(double, double, bool) Get value by the cycle range transformation. The cycle is from anchor_rad-pi to anchor_rad+pi. public static double Cycle2Pi_rad(double target_rad, double anchor_rad = 0, bool isBothBoundInclusive = false) Parameters target_rad double target angle anchor_rad double anchor angle isBothBoundInclusive bool if true, both bounds are inclusive; otherwise, only the lower bound is inclusive Returns double adjusted target angle CycleUnit(double) Get the value locates on 0(inclusive) ~ 1(exclusive). The source code: return v - Math.Floor(v); public static double CycleUnit(double v) Parameters v double value Returns double 0 (inclusive) ~1 (exclusive) Decompose(double[,], out int[], out int) Performs LU decomposition with partial pivoting on a matrix. public static double[,] Decompose(double[,] matrix, out int[] perm, out int toggle) Parameters matrix double[,] The matrix to decompose. perm int[] Output parameter that holds row permutations. toggle int Output parameter that is +1 or -1 depending on whether the number of row exchanges is even or odd. Returns double[,] The LU decomposition of the matrix. Exceptions Exception Thrown when attempting to decompose a non-square matrix. Div(double[], double) Divides each element of the array by a scalar value in-place. public static double[] Div(this double[] src, double scale) Parameters src double[] The source array to be modified. scale double The scalar value to divide by. Returns double[] The modified source array. Erf(double) Calculates the error function (erf) for the specified value. public static double Erf(double x) Parameters x double The value to calculate the error function for Returns double The error function value Erfc(double) Calculates the complementary error function (erfc) for the specified value. public static double Erfc(double x) Parameters x double The value to calculate the complementary error function for Returns double The complementary error function value GetAbs(double[]) Creates a new array containing the absolute values of the elements in the source array. public static double[] GetAbs(this double[] src) Parameters src double[] The source array. Returns double[] A new array containing the absolute values of the elements in the source array. GetAdd(double[], double[]) Creates a new array by adding corresponding elements of two arrays. public static double[] GetAdd(this double[] src, double[] src2) Parameters src double[] The first array. src2 double[] The second array. Returns double[] A new array containing the sum of corresponding elements. GetCommonRatioFromGeometricSeries(double, double, double) Calculates the common ratio from a geometric series sum. public static double GetCommonRatioFromGeometricSeries(double geometricSeriesSum, double powIndex, double convergenceLimit = 0.001) Parameters geometricSeriesSum double The sum of the geometric series. powIndex double The power index in the series. convergenceLimit double The convergence limit for the calculation. Returns double The common ratio of the geometric series. GetDiv(double[], double) Creates a new array by dividing each element of the source array by a scalar value. public static double[] GetDiv(this double[] src, double scale) Parameters src double[] The source array. scale double The scalar value to divide by. Returns double[] A new array with each element divided by the scalar value. GetDot(double[], double[]) Creates a new array by multiplying corresponding elements of two arrays. public static double[] GetDot(this double[] a, double[] b) Parameters a double[] The first array. b double[] The second array. Returns double[] A new array containing the product of corresponding elements. GetInterpolationRatio(TimeSpan, TimeSpan, TimeSpan) Gets the interpolation ratio between two TimeSpan values public static double GetInterpolationRatio(TimeSpan begin, TimeSpan end, TimeSpan pos) Parameters begin TimeSpan The beginning TimeSpan end TimeSpan The ending TimeSpan pos TimeSpan The position TimeSpan to calculate the ratio for Returns double The interpolation ratio: (pos - begin) / (end - begin) GetInterpolationRatio(T, T, T) Get position ratio. (pos - begin) / (end - begin) . public static double GetInterpolationRatio(T begin, T end, T pos) where T : ISubtractionOperators, IDivisionOperators Parameters begin T range begin end T range end pos T key position Returns double position ratio Type Parameters T GetInterpolationRatio(T, T, T, Func, Func) Gets the interpolation ratio between two values using custom subtraction and division functions public static double GetInterpolationRatio(T begin, T end, T pos, Func minusFunc, Func divFunc) Parameters begin T The beginning value end T The ending value pos T The position value to calculate the ratio for minusFunc Func The function to use for subtraction divFunc Func The function to use for division Returns double The interpolation ratio: (pos - begin) / (end - begin) Type Parameters T The type of the values GetMul(double[], double) Creates a new array by multiplying each element of the source array by a scalar value. public static double[] GetMul(this double[] src, double s) Parameters src double[] The source array. s double The scalar value to multiply by. Returns double[] A new array with each element multiplied by the scalar value. GetSub(double[], double[]) Creates a new array by subtracting corresponding elements of the second array from the first array. public static double[] GetSub(this double[] a, double[] b) Parameters a double[] The first array. b double[] The second array to subtract. Returns double[] A new array containing the difference of corresponding elements. Idt(int) Creates an identity matrix of the specified size. public static double[,] Idt(int n) Parameters n int The size of the square identity matrix. Returns double[,] An n x n identity matrix. Interpolate(TimeSpan, TimeSpan, double) Interpolates between two TimeSpan values using the specified ratio public static TimeSpan Interpolate(TimeSpan a, TimeSpan b, double ratio) Parameters a TimeSpan The first TimeSpan value b TimeSpan The second TimeSpan value ratio double The interpolation ratio (0.0 to 1.0) Returns TimeSpan The interpolated TimeSpan value: a * (1 - ratio) + b * ratio InterpolateWithinBoundary(T, T, double) If ratio smaller or equal 0, return a. If ratio larger or equal 1, return b. Otherwise, interpolate by ratio. public static T InterpolateWithinBoundary(T a, T b, double ratio) where T : IEqualityOperators, IAdditionOperators, IMultiplyOperators Parameters a T b T ratio double Returns T Type Parameters T Interpolate(T, T, double) Interpolate from a to b with ratio alpha:(1-alpha). public static T Interpolate(T a, T b, double ratio) where T : IEqualityOperators, IAdditionOperators, IMultiplyOperators Parameters a T a b T b ratio double ratio Returns T a * (1 - ratio) + b * ratio Type Parameters T Interpolate(T, T, double, Func) Interpolates between two values based on a position using a position function. public static T Interpolate(T a, T b, double pos, Func posFunc) where T : INumber, IMultiplyOperators Parameters a T The first value b T The second value pos double The position to interpolate at posFunc Func Function to extract a position from a value Returns T The interpolated value Type Parameters T The type of the values Interpolate(TItem, TItem, double, Func, Func, Func) Interpolates between two items based on a key value using custom functions. public static TItem Interpolate(TItem a, TItem b, double key, Func keyFunc, Func addingFunc, Func scalingFunc) Parameters a TItem The first item b TItem The second item key double The key value to interpolate at (0.0 to 1.0) keyFunc Func Function to extract a double key from an item addingFunc Func Function to add two items scalingFunc Func Function to scale an item by a double Returns TItem The interpolated item Type Parameters TItem The type of the items Interpolate(T, T, double, Func, Func) Interpolates between two values using custom addition and scaling functions public static T Interpolate(T a, T b, double ratio, Func addingFunc, Func scalingFunc) Parameters a T The first value b T The second value ratio double The interpolation ratio (0.0 to 1.0) addingFunc Func The function to use for addition scalingFunc Func The function to use for scaling Returns T The interpolated value: a * (1 - ratio) + b * ratio Type Parameters T The type of the values Interpolate(T[], T[], double) Interpolates between two arrays of values using the specified ratio public static T[] Interpolate(T[] a, T[] b, double ratio) where T : INumber, IMultiplyOperators Parameters a T[] The first array b T[] The second array ratio double The interpolation ratio (0.0 to 1.0) Returns T[] A new array containing the interpolated values Type Parameters T The type of the array elements Interpolate(TItem, TItem, TKey, Func, Func, Func, Func, Func) Interpolates between two items using custom key extraction, key operations, and item operations public static TItem Interpolate(TItem a, TItem b, TKey key, Func keyFunc, Func keyMinusFunc, Func keyDivFunc, Func itemAddingFunc, Func itemScalingFunc) Parameters a TItem The first item b TItem The second item key TKey The key value to interpolate at keyFunc Func Function to extract a key from an item keyMinusFunc Func Function to subtract keys keyDivFunc Func Function to divide keys itemAddingFunc Func Function to add items itemScalingFunc Func Function to scale items Returns TItem The interpolated item Type Parameters TKey The type of the key used for interpolation TItem The type of the items being interpolated Inverse(double[,]) Computes the inverse of a matrix. public static double[,] Inverse(double[,] matrix) Parameters matrix double[,] The matrix to invert. Returns double[,] The inverse of the matrix. Exceptions Exception Thrown when the matrix cannot be inverted. Inverse2d(double[,], double[,]) Calculates the inverse of a 2x2 matrix public static void Inverse2d(double[,] src, double[,] dst) Parameters src double[,] The source 2x2 matrix dst double[,] The destination matrix to store the inverse Inverse3d(double[,], double[,]) Calculates the inverse of a 3x3 matrix public static void Inverse3d(double[,] src, double[,] dst) Parameters src double[,] The source 3x3 matrix dst double[,] The destination matrix to store the inverse IsFinite(double) Is v neither NaN nor infinity. public static bool IsFinite(double v) Parameters v double value Returns bool Is v neither NaN nor infinity. Mul(double[], double) Multiplies each element of the array by a scalar value in-place. public static double[] Mul(this double[] src, double scale) Parameters src double[] The source array to be modified. scale double The scalar value to multiply by. Returns double[] The modified source array. NoChanged(double) Do nothing. public static double NoChanged(double src) Parameters src double src Returns double src Norm2(double[]) Calculates the Euclidean norm (L2 norm) of a vector. public static double Norm2(this double[] src) Parameters src double[] The source vector as an array of doubles. Returns double The Euclidean norm of the vector. Normalized(double[]) Creates a new array by normalizing the source array to have a unit norm. public static double[] Normalized(this double[] src) Parameters src double[] The source array. Returns double[] A new array with the same direction as the source array but with unit norm. Pow3(double) Calculates the cube (power of 3) of a double value. public static double Pow3(this double src) Parameters src double The source double value Returns double The cube of the source value Pow3(int) Calculates the cube (power of 3) of an integer value. public static int Pow3(this int src) Parameters src int The source integer value Returns int The cube of the source value Pow4(double) Calculates the fourth power of a double value. public static double Pow4(this double src) Parameters src double The source double value Returns double The fourth power of the source value Pow4(int) Calculates the fourth power of an integer value. public static int Pow4(this int src) Parameters src int The source integer value Returns int The fourth power of the source value Product(double[,], double[,]) Multiplies two matrices. public static double[,] Product(double[,] matrixA, double[,] matrixB) Parameters matrixA double[,] The first matrix. matrixB double[,] The second matrix. Returns double[,] The product of the two matrices. Exceptions Exception Thrown when the matrices are not conformable for multiplication. SolveCubic(double, double, double, double) public static Complex[] SolveCubic(double c0, double c1, double c2, double c3) Parameters c0 double constant term. c1 double coefficient of power of 1 of x. c2 double coefficient of power of 2 of x. c3 double coefficient of power of 3 of x. Returns Complex[] SolveQuadratic(double, double, double, out double, out double) Solve quadratic equation. public static double SolveQuadratic(double c, double b, double a, out double x0, out double x1) Parameters c double coefficient of constant of x. b double coefficient of power of 1 of x. a double coefficient of power of 2 of x. x0 double lower root x1 double higher root Returns double determinent SqrtVariance(IList, out double) Standard deviation with n denominator (instead of n-1). public static double SqrtVariance(IList src, out double avg) Parameters src IList avg double Returns double STD Square(double) Calculates the square of a double value. public static double Square(this double src) Parameters src double The source double value Returns double The square of the source value Square(int) Calculates the square of an integer value. public static int Square(this int src) Parameters src int The source integer value Returns int The square of the source value Sum(IEnumerable) Sum. public static Vec3d Sum(this IEnumerable src) Parameters src IEnumerable src Returns Vec3d Sum ToDeg(double) Get degree from radian. public static double ToDeg(double rad) Parameters rad double radian Returns double degree ToRad(double) Get radian from degree. public static double ToRad(double deg) Parameters deg double degree Returns double radian ToString(double[,], string) Converts a 2D double array to a string representation using the specified format public static string ToString(this double[,] src, string format) Parameters src double[,] The source 2D double array format string The format string to use for each double value Returns string A string representation of the 2D array ToString(double[], string) Converts a double array to a string representation using the specified format public static string ToString(this double[] src, string format) Parameters src double[] The source double array format string The format string to use for each double value Returns string A string representation of the array ToStringWithoutCultureNum(double, string) To string function. The special number is formatted by XmlConvert. public static string ToStringWithoutCultureNum(this double src, string format) Parameters src double src format string format Returns string string Transpose(double[,]) Transposes a 2D matrix represented as a 2D array. public static double[,] Transpose(double[,] src) Parameters src double[,] The source matrix to transpose. Returns double[,] A new matrix that is the transpose of the source matrix." + "summary": "Class MathUtil Namespace Hi.Geom Assembly HiGeom.dll Math Utility. public static class MathUtil Inheritance object MathUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Fields sqrt2 square root of 2. public const double sqrt2 = 1.4142135623730951 Field Value double sqrt3 square root of 3. public const double sqrt3 = 1.7320508075688772 Field Value double Methods AbsDiffAngle(double, double) Calculates the absolute difference between two angles in radians public static double AbsDiffAngle(double angleA_rad, double angleB_rad) Parameters angleA_rad double First angle in radians angleB_rad double Second angle in radians Returns double The absolute difference between the two angles Add(double[], double[]) Adds the elements of the second array to the corresponding elements of the first array in-place. public static double[] Add(this double[] src, double[] src2) Parameters src double[] The source array to which elements will be added. src2 double[] The array containing elements to add. Returns double[] The modified source array. AlterIfNan(double, double) public static double AlterIfNan(double primaryValue, double alteringValue) Parameters primaryValue double primary value alteringValue double the candidate value Returns double ApplyAlterIf(T, Func, T) Applies an alternative value if the source value meets a specified condition. public static T ApplyAlterIf(T src, Func isApplyingAlternateFunc, T alternative) Parameters src T The source value to check. isApplyingAlternateFunc Func Function that determines if the alternative should be applied. alternative T The alternative value to use if the condition is met. Returns T Either the original value or the alternative value based on the condition. Type Parameters T The type of the values. Average(IEnumerable) Average. public static Vec3d Average(this IEnumerable src) Parameters src IEnumerable src Returns Vec3d Average BilinearInterpolate(double, double, double, double, double, double) Performs bilinear interpolation between four double values public static double BilinearInterpolate(double v00, double v01, double v10, double v11, double u, double v) Parameters v00 double Value at (0,0) on normalized bilinear coordinate v01 double Value at (0,1) on normalized bilinear coordinate v10 double Value at (1,0) on normalized bilinear coordinate v11 double Value at (1,1) on normalized bilinear coordinate u double Ratio along v00 and v10, etc. v double Ratio along v00 and v01, etc. Returns double The interpolated value BilinearInterpolate(T, T, T, T, double, double) Bilinear interpolate. public static T BilinearInterpolate(T v00, T v01, T v10, T v11, double u, double v) where T : IAdditionOperators, IMultiplyOperators Parameters v00 T value at (0,0) on normalized bilinear coordinate v01 T value at (0,1) on normalized bilinear coordinate v10 T value at (1,0) on normalized bilinear coordinate v11 T value at (1,1) on normalized bilinear coordinate u double ratio along v00 and v10, etc. v double ratio along v00 and v01, etc. Returns T interpolated value Type Parameters T value type. BilinearInterpolate(T, T, T, T, double, double, Func, Func) Bilinear interpolate. public static T BilinearInterpolate(T v00, T v01, T v10, T v11, double u, double v, Func scalingFunc, Func addingFunc) Parameters v00 T value at (0,0) on normalized bilinear coordinate v01 T value at (0,1) on normalized bilinear coordinate v10 T value at (1,0) on normalized bilinear coordinate v11 T value at (1,1) on normalized bilinear coordinate u double ratio along v00 and v10, etc. v double ratio along v00 and v01, etc. scalingFunc Func scaling function addingFunc Func adding function Returns T interpolated value Type Parameters T value type. BinaryDividentSequence(int) Generates a value in a binary divident sequence based on the seed. public static double BinaryDividentSequence(int seed) Parameters seed int The seed value for the sequence. Returns double The value in the binary divident sequence. Cbrt(double) Calculates the cube root of a number. public static double Cbrt(double v) Parameters v double The value to calculate the cube root of. Returns double The cube root of the specified value. Clamp(T, T, T) Clamps a value within an inclusive range of minimum and maximum values. public static T Clamp(this T val, T min, T max) where T : IComparable Parameters val T min T max T Returns T Type Parameters T Convert_inchdmin_To_mmds(double) Converts inches per minute to millimeters per second. public static double Convert_inchdmin_To_mmds(double inchdmin) Parameters inchdmin double Value in inches per minute. Returns double Value in millimeters per second. Convert_mdmin_To_mmds(double) Converts meters per minute to millimeters per second. public static double Convert_mdmin_To_mmds(double mdmin) Parameters mdmin double Value in meters per minute. Returns double Value in millimeters per second. Convert_mmdmin_To_mmds(double) Converts millimeters per minute to millimeters per second. public static double Convert_mmdmin_To_mmds(double mmdmin) Parameters mmdmin double Value in millimeters per minute. Returns double Value in millimeters per second. Convert_mmds_To_mdmin(double) Converts millimeters per second to meters per minute. public static double Convert_mmds_To_mdmin(double mmds) Parameters mmds double Value in millimeters per second. Returns double Value in meters per minute. Convert_mmds_To_mmdmin(double) Converts millimeters per second to millimeters per minute. public static double Convert_mmds_To_mmdmin(double mmds) Parameters mmds double Value in millimeters per second. Returns double Value in millimeters per minute. Convert_radds_To_rpm(double) Converts radians per second to revolutions per minute (RPM). public static double Convert_radds_To_rpm(double radds) Parameters radds double Value in radians per second. Returns double Value in revolutions per minute. Convert_rpm_To_radds(double) Converts revolutions per minute (RPM) to radians per second. public static double Convert_rpm_To_radds(double rpm) Parameters rpm double Value in revolutions per minute. Returns double Value in radians per second. Cycle(double, double, double) If the value is within lowerBound and upperBound, return value. Otherwise, perform looped value according to the direction from lower to upper. ex. bound=(0,1), value=3.1, than return 0.1. public static double Cycle(double value, double lowerBound, double upperBound) Parameters value double value lowerBound double lower bound, inclusive upperBound double upper bound, exclusive Returns double cycled value Cycle(double, double, double, bool) Cycles a value to be within the specified range, with configurable bound inclusivity. public static double Cycle(double value, double lowerBound, double upperBound, bool isBothBoundInclusive) Parameters value double The value to cycle. lowerBound double The lower bound of the range. upperBound double The upper bound of the range. isBothBoundInclusive bool If true, both bounds are inclusive; otherwise, only the lower bound is inclusive. Returns double The cycled value within the specified range. Cycle2Pi_rad(double, double, bool) Get value by the cycle range transformation. The cycle is from anchor_rad-pi to anchor_rad+pi. public static double Cycle2Pi_rad(double target_rad, double anchor_rad = 0, bool isBothBoundInclusive = false) Parameters target_rad double target angle anchor_rad double anchor angle isBothBoundInclusive bool if true, both bounds are inclusive; otherwise, only the lower bound is inclusive Returns double adjusted target angle CycleUnit(double) Get the value locates on 0(inclusive) ~ 1(exclusive). The source code: return v - Math.Floor(v); public static double CycleUnit(double v) Parameters v double value Returns double 0 (inclusive) ~1 (exclusive) Decompose(double[,], out int[], out int) Performs LU decomposition with partial pivoting on a matrix. public static double[,] Decompose(double[,] matrix, out int[] perm, out int toggle) Parameters matrix double[,] The matrix to decompose. perm int[] Output parameter that holds row permutations. toggle int Output parameter that is +1 or -1 depending on whether the number of row exchanges is even or odd. Returns double[,] The LU decomposition of the matrix. Exceptions Exception Thrown when attempting to decompose a non-square matrix. Div(double[], double) Divides each element of the array by a scalar value in-place. public static double[] Div(this double[] src, double scale) Parameters src double[] The source array to be modified. scale double The scalar value to divide by. Returns double[] The modified source array. Erf(double) Calculates the error function (erf) for the specified value. public static double Erf(double x) Parameters x double The value to calculate the error function for Returns double The error function value Erfc(double) Calculates the complementary error function (erfc) for the specified value. public static double Erfc(double x) Parameters x double The value to calculate the complementary error function for Returns double The complementary error function value GetAbs(double[]) Creates a new array containing the absolute values of the elements in the source array. public static double[] GetAbs(this double[] src) Parameters src double[] The source array. Returns double[] A new array containing the absolute values of the elements in the source array. GetAdd(double[], double[]) Creates a new array by adding corresponding elements of two arrays. public static double[] GetAdd(this double[] src, double[] src2) Parameters src double[] The first array. src2 double[] The second array. Returns double[] A new array containing the sum of corresponding elements. GetCommonRatioFromGeometricSeries(double, double, double) Calculates the common ratio from a geometric series sum. public static double GetCommonRatioFromGeometricSeries(double geometricSeriesSum, double powIndex, double convergenceLimit = 0.001) Parameters geometricSeriesSum double The sum of the geometric series. powIndex double The power index in the series. convergenceLimit double The convergence limit for the calculation. Returns double The common ratio of the geometric series. GetDiv(double[], double) Creates a new array by dividing each element of the source array by a scalar value. public static double[] GetDiv(this double[] src, double scale) Parameters src double[] The source array. scale double The scalar value to divide by. Returns double[] A new array with each element divided by the scalar value. GetDot(double[], double[]) Creates a new array by multiplying corresponding elements of two arrays. public static double[] GetDot(this double[] a, double[] b) Parameters a double[] The first array. b double[] The second array. Returns double[] A new array containing the product of corresponding elements. GetInterpolationRatio(TimeSpan, TimeSpan, TimeSpan) Gets the interpolation ratio between two TimeSpan values public static double GetInterpolationRatio(TimeSpan begin, TimeSpan end, TimeSpan pos) Parameters begin TimeSpan The beginning TimeSpan end TimeSpan The ending TimeSpan pos TimeSpan The position TimeSpan to calculate the ratio for Returns double The interpolation ratio: (pos - begin) / (end - begin) GetInterpolationRatio(T, T, T) Get position ratio. (pos - begin) / (end - begin) . public static double GetInterpolationRatio(T begin, T end, T pos) where T : ISubtractionOperators, IDivisionOperators Parameters begin T range begin end T range end pos T key position Returns double position ratio Type Parameters T GetInterpolationRatio(T, T, T, Func, Func) Gets the interpolation ratio between two values using custom subtraction and division functions public static double GetInterpolationRatio(T begin, T end, T pos, Func minusFunc, Func divFunc) Parameters begin T The beginning value end T The ending value pos T The position value to calculate the ratio for minusFunc Func The function to use for subtraction divFunc Func The function to use for division Returns double The interpolation ratio: (pos - begin) / (end - begin) Type Parameters T The type of the values GetMul(double[], double) Creates a new array by multiplying each element of the source array by a scalar value. public static double[] GetMul(this double[] src, double s) Parameters src double[] The source array. s double The scalar value to multiply by. Returns double[] A new array with each element multiplied by the scalar value. GetSub(double[], double[]) Creates a new array by subtracting corresponding elements of the second array from the first array. public static double[] GetSub(this double[] a, double[] b) Parameters a double[] The first array. b double[] The second array to subtract. Returns double[] A new array containing the difference of corresponding elements. Idt(int) Creates an identity matrix of the specified size. public static double[,] Idt(int n) Parameters n int The size of the square identity matrix. Returns double[,] An n x n identity matrix. Interpolate(TimeSpan, TimeSpan, double) Interpolates between two TimeSpan values using the specified ratio public static TimeSpan Interpolate(TimeSpan a, TimeSpan b, double ratio) Parameters a TimeSpan The first TimeSpan value b TimeSpan The second TimeSpan value ratio double The interpolation ratio (0.0 to 1.0) Returns TimeSpan The interpolated TimeSpan value: a * (1 - ratio) + b * ratio InterpolateWithinBoundary(T, T, double) If ratio smaller or equal 0, return a. If ratio larger or equal 1, return b. Otherwise, interpolate by ratio. public static T InterpolateWithinBoundary(T a, T b, double ratio) where T : IEqualityOperators, IAdditionOperators, IMultiplyOperators Parameters a T b T ratio double Returns T Type Parameters T Interpolate(T, T, double) Interpolate from a to b with ratio alpha:(1-alpha). public static T Interpolate(T a, T b, double ratio) where T : IEqualityOperators, IAdditionOperators, IMultiplyOperators Parameters a T a b T b ratio double ratio Returns T a * (1 - ratio) + b * ratio Type Parameters T Interpolate(T, T, double, Func) Interpolates between two values based on a position using a position function. public static T Interpolate(T a, T b, double pos, Func posFunc) where T : INumber, IMultiplyOperators Parameters a T The first value b T The second value pos double The position to interpolate at posFunc Func Function to extract a position from a value Returns T The interpolated value Type Parameters T The type of the values Interpolate(TItem, TItem, double, Func, Func, Func) Interpolates between two items based on a key value using custom functions. public static TItem Interpolate(TItem a, TItem b, double key, Func keyFunc, Func addingFunc, Func scalingFunc) Parameters a TItem The first item b TItem The second item key double The key value to interpolate at (0.0 to 1.0) keyFunc Func Function to extract a double key from an item addingFunc Func Function to add two items scalingFunc Func Function to scale an item by a double Returns TItem The interpolated item Type Parameters TItem The type of the items Interpolate(T, T, double, Func, Func) Interpolates between two values using custom addition and scaling functions public static T Interpolate(T a, T b, double ratio, Func addingFunc, Func scalingFunc) Parameters a T The first value b T The second value ratio double The interpolation ratio (0.0 to 1.0) addingFunc Func The function to use for addition scalingFunc Func The function to use for scaling Returns T The interpolated value: a * (1 - ratio) + b * ratio Type Parameters T The type of the values Interpolate(T[], T[], double) Interpolates between two arrays of values using the specified ratio public static T[] Interpolate(T[] a, T[] b, double ratio) where T : INumber, IMultiplyOperators Parameters a T[] The first array b T[] The second array ratio double The interpolation ratio (0.0 to 1.0) Returns T[] A new array containing the interpolated values Type Parameters T The type of the array elements Interpolate(TItem, TItem, TKey, Func, Func, Func, Func, Func) Interpolates between two items using custom key extraction, key operations, and item operations public static TItem Interpolate(TItem a, TItem b, TKey key, Func keyFunc, Func keyMinusFunc, Func keyDivFunc, Func itemAddingFunc, Func itemScalingFunc) Parameters a TItem The first item b TItem The second item key TKey The key value to interpolate at keyFunc Func Function to extract a key from an item keyMinusFunc Func Function to subtract keys keyDivFunc Func Function to divide keys itemAddingFunc Func Function to add items itemScalingFunc Func Function to scale items Returns TItem The interpolated item Type Parameters TKey The type of the key used for interpolation TItem The type of the items being interpolated Inverse(double[,]) Computes the inverse of a matrix. public static double[,] Inverse(double[,] matrix) Parameters matrix double[,] The matrix to invert. Returns double[,] The inverse of the matrix. Exceptions Exception Thrown when the matrix cannot be inverted. Inverse2d(double[,], double[,]) Calculates the inverse of a 2x2 matrix public static void Inverse2d(double[,] src, double[,] dst) Parameters src double[,] The source 2x2 matrix dst double[,] The destination matrix to store the inverse Inverse3d(double[,], double[,]) Calculates the inverse of a 3x3 matrix public static void Inverse3d(double[,] src, double[,] dst) Parameters src double[,] The source 3x3 matrix dst double[,] The destination matrix to store the inverse IsFinite(double) Is v neither NaN nor infinity. public static bool IsFinite(double v) Parameters v double value Returns bool Is v neither NaN nor infinity. Mul(double[], double) Multiplies each element of the array by a scalar value in-place. public static double[] Mul(this double[] src, double scale) Parameters src double[] The source array to be modified. scale double The scalar value to multiply by. Returns double[] The modified source array. NoChanged(double) Do nothing. public static double NoChanged(double src) Parameters src double src Returns double src Norm2(double[]) Calculates the Euclidean norm (L2 norm) of a vector. public static double Norm2(this double[] src) Parameters src double[] The source vector as an array of doubles. Returns double The Euclidean norm of the vector. Normalized(double[]) Creates a new array by normalizing the source array to have a unit norm. public static double[] Normalized(this double[] src) Parameters src double[] The source array. Returns double[] A new array with the same direction as the source array but with unit norm. Pow3(double) Calculates the cube (power of 3) of a double value. public static double Pow3(this double src) Parameters src double The source double value Returns double The cube of the source value Pow3(int) Calculates the cube (power of 3) of an integer value. public static int Pow3(this int src) Parameters src int The source integer value Returns int The cube of the source value Pow4(double) Calculates the fourth power of a double value. public static double Pow4(this double src) Parameters src double The source double value Returns double The fourth power of the source value Pow4(int) Calculates the fourth power of an integer value. public static int Pow4(this int src) Parameters src int The source integer value Returns int The fourth power of the source value Product(double[,], double[,]) Multiplies two matrices. public static double[,] Product(double[,] matrixA, double[,] matrixB) Parameters matrixA double[,] The first matrix. matrixB double[,] The second matrix. Returns double[,] The product of the two matrices. Exceptions Exception Thrown when the matrices are not conformable for multiplication. SolveCubic(double, double, double, double) public static Complex[] SolveCubic(double c0, double c1, double c2, double c3) Parameters c0 double constant term. c1 double coefficient of power of 1 of x. c2 double coefficient of power of 2 of x. c3 double coefficient of power of 3 of x. Returns Complex[] SolveQuadratic(double, double, double, out double, out double) Solve quadratic equation. public static double SolveQuadratic(double c, double b, double a, out double x0, out double x1) Parameters c double coefficient of constant of x. b double coefficient of power of 1 of x. a double coefficient of power of 2 of x. x0 double lower root x1 double higher root Returns double determinent SqrtVariance(IList, out double) Standard deviation with n denominator (instead of n-1). public static double SqrtVariance(IList src, out double avg) Parameters src IList avg double Returns double STD Square(double) Calculates the square of a double value. public static double Square(this double src) Parameters src double The source double value Returns double The square of the source value Square(int) Calculates the square of an integer value. public static int Square(this int src) Parameters src int The source integer value Returns int The square of the source value Sum(IEnumerable) Sum. public static Vec3d Sum(this IEnumerable src) Parameters src IEnumerable src Returns Vec3d Sum ToDeg(double) Get degree from radian. public static double ToDeg(double rad) Parameters rad double radian Returns double degree ToRad(double) Get radian from degree. public static double ToRad(double deg) Parameters deg double degree Returns double radian ToString(double[,], string) Converts a 2D double array to a string representation using the specified format public static string ToString(this double[,] src, string format) Parameters src double[,] The source 2D double array format string The format string to use for each double value Returns string A string representation of the 2D array ToString(double[], string) Converts a double array to a string representation using the specified format public static string ToString(this double[] src, string format) Parameters src double[] The source double array format string The format string to use for each double value Returns string A string representation of the array ToStringWithoutCultureNum(double, string) To string function. The special number is formatted by XmlConvert. public static string ToStringWithoutCultureNum(this double src, string format) Parameters src double src format string format Returns string string Transpose(double[,]) Transposes a 2D matrix represented as a 2D array. public static double[,] Transpose(double[,] src) Parameters src double[,] The source matrix to transpose. Returns double[,] A new matrix that is the transpose of the source matrix." }, "api/Hi.Geom.NativeStl.html": { "href": "api/Hi.Geom.NativeStl.html", @@ -1627,7 +1627,7 @@ "api/Hi.Grpcs.ClStripServiceRunner.html": { "href": "api/Hi.Grpcs.ClStripServiceRunner.html", "title": "Class ClStripServiceRunner | HiAPI-C# 2025", - "summary": "Class ClStripServiceRunner Namespace Hi.Grpcs Assembly HiNc.dll Service runner for the ClStrip gRPC service. public class ClStripServiceRunner : ClStripService.ClStripServiceBase Inheritance object ClStripService.ClStripServiceBase ClStripServiceRunner Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors ClStripServiceRunner(Func) Initializes a new instance of the ClStripServiceRunner class. public ClStripServiceRunner(Func machiningProjectHost) Parameters machiningProjectHost Func Function to provide access to the current MachiningProject instance Methods StepRan(Empty, IServerStreamWriter, ServerCallContext) Streams step data as steps are executed. public override Task StepRan(Empty request, IServerStreamWriter responseStream, ServerCallContext context) Parameters request Empty Empty request responseStream IServerStreamWriter Stream to write step data to context ServerCallContext Server call context Returns Task Task representing the asynchronous operation StepSelected(Empty, IServerStreamWriter, ServerCallContext) Streams step data when a step is selected in the UI. public override Task StepSelected(Empty request, IServerStreamWriter responseStream, ServerCallContext context) Parameters request Empty Empty request responseStream IServerStreamWriter Stream to write step data to context ServerCallContext Server call context Returns Task Task representing the asynchronous operation" + "summary": "Class ClStripServiceRunner Namespace Hi.Grpcs Assembly HiNc.dll Service runner for the ClStrip gRPC service. public class ClStripServiceRunner : ClStripService.ClStripServiceBase Inheritance object ClStripService.ClStripServiceBase ClStripServiceRunner Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors ClStripServiceRunner(LocalProjectService) Initializes a new instance of the ClStripServiceRunner class. public ClStripServiceRunner(LocalProjectService machiningProjectHost) Parameters machiningProjectHost LocalProjectService Function to provide access to the current MachiningProject instance Methods StepRan(Empty, IServerStreamWriter, ServerCallContext) Streams step data as steps are executed. public override Task StepRan(Empty request, IServerStreamWriter responseStream, ServerCallContext context) Parameters request Empty Empty request responseStream IServerStreamWriter Stream to write step data to context ServerCallContext Server call context Returns Task Task representing the asynchronous operation StepSelected(Empty, IServerStreamWriter, ServerCallContext) Streams step data when a step is selected in the UI. public override Task StepSelected(Empty request, IServerStreamWriter responseStream, ServerCallContext context) Parameters request Empty Empty request responseStream IServerStreamWriter Stream to write step data to context ServerCallContext Server call context Returns Task Task representing the asynchronous operation" }, "api/Hi.Grpcs.DictionaryStep.html": { "href": "api/Hi.Grpcs.DictionaryStep.html", @@ -1657,7 +1657,7 @@ "api/Hi.Grpcs.PlayerServiceRunner.html": { "href": "api/Hi.Grpcs.PlayerServiceRunner.html", "title": "Class PlayerServiceRunner | HiAPI-C# 2025", - "summary": "Class PlayerServiceRunner Namespace Hi.Grpcs Assembly HiNc.dll Service runner for the Player gRPC service. public class PlayerServiceRunner : PlayerService.PlayerServiceBase Inheritance object PlayerService.PlayerServiceBase PlayerServiceRunner Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors PlayerServiceRunner(Func) Initializes a new instance of the PlayerServiceRunner class. public PlayerServiceRunner(Func machiningProjectHost) Parameters machiningProjectHost Func Function to create or retrieve a milling course instance. Methods Pause(Empty, ServerCallContext) Pauses the player. public override Task Pause(Empty request, ServerCallContext context) Parameters request Empty The empty request. context ServerCallContext The server call context. Returns Task Empty response. Reset(Empty, ServerCallContext) Resets the player. public override Task Reset(Empty request, ServerCallContext context) Parameters request Empty The empty request. context ServerCallContext The server call context. Returns Task Empty response. Resume(Empty, ServerCallContext) Resumes the player. public override Task Resume(Empty request, ServerCallContext context) Parameters request Empty The empty request. context ServerCallContext The server call context. Returns Task Empty response. Start(Empty, ServerCallContext) Starts the player. public override Task Start(Empty request, ServerCallContext context) Parameters request Empty The empty request. context ServerCallContext The server call context. Returns Task Empty response." + "summary": "Class PlayerServiceRunner Namespace Hi.Grpcs Assembly HiNc.dll Service runner for the Player gRPC service. public class PlayerServiceRunner : PlayerService.PlayerServiceBase Inheritance object PlayerService.PlayerServiceBase PlayerServiceRunner Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors PlayerServiceRunner(LocalProjectService) Initializes a new instance of the PlayerServiceRunner class. public PlayerServiceRunner(LocalProjectService localProjectService) Parameters localProjectService LocalProjectService Methods Pause(Empty, ServerCallContext) Pauses the player. public override Task Pause(Empty request, ServerCallContext context) Parameters request Empty The empty request. context ServerCallContext The server call context. Returns Task Empty response. Reset(Empty, ServerCallContext) Resets the player. public override Task Reset(Empty request, ServerCallContext context) Parameters request Empty The empty request. context ServerCallContext The server call context. Returns Task Empty response. Resume(Empty, ServerCallContext) Resumes the player. public override Task Resume(Empty request, ServerCallContext context) Parameters request Empty The empty request. context ServerCallContext The server call context. Returns Task Empty response. Start(Empty, ServerCallContext) Starts the player. public override Task Start(Empty request, ServerCallContext context) Parameters request Empty The empty request. context ServerCallContext The server call context. Returns Task Empty response." }, "api/Hi.Grpcs.html": { "href": "api/Hi.Grpcs.html", @@ -1672,7 +1672,7 @@ "api/Hi.HiNcKits.HiNcHost.html": { "href": "api/Hi.HiNcKits.HiNcHost.html", "title": "Class HiNcHost | HiAPI-C# 2025", - "summary": "Class HiNcHost Namespace Hi.HiNcKits Assembly HiNc.dll Rich HiNC Service. Host class for HiNC functionality that provides project management, path resolution, and MongoDB integration. public class HiNcHost : IDisposable Inheritance object HiNcHost Implements IDisposable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors HiNcHost(ProxyProjectService) public HiNcHost(ProxyProjectService proxyProjectService) Parameters proxyProjectService ProxyProjectService HiNcHost(string, int, string) public HiNcHost(string adminDirectory, int mongodbPort, string displayEngineFontFile) Parameters adminDirectory string mongodbPort int displayEngineFontFile string The default value will be alternative if the value is null. Fields HiNcUserDbMetaName Gets the name of the HiNC user database metadata. public const string HiNcUserDbMetaName = \"UserDbMeta\" Field Value string HiNcUserDbName Gets the name of the HiNC user database. public const string HiNcUserDbName = \"HiNcUserDb\" Field Value string Properties AdminDirectory Admin absolute directory. public string AdminDirectory { get; set; } Property Value string AdminExtendedNamedPath Gets the admin extended named path. public ExtendedNamedPath AdminExtendedNamedPath { get; } Property Value ExtendedNamedPath AdminNamedPath Gets the admin named path. public NamedPath AdminNamedPath { get; } Property Value NamedPath CacheDbId Gets the cache database ID. public static string CacheDbId { get; set; } Property Value string MachiningProject public MachiningProject MachiningProject { get; } Property Value MachiningProject MongoServer Gets the main MongoDB runner. public IMongoRunner MongoServer { get; } Property Value IMongoRunner ProjectDirectory Project Absolute Directory. public string ProjectDirectory { get; } Property Value string ProjectExtendedNamedPath Gets the project extended named path. public ExtendedNamedPath ProjectExtendedNamedPath { get; } Property Value ExtendedNamedPath ProjectNamedPath Gets the project named path. public NamedPath ProjectNamedPath { get; } Property Value NamedPath ProjectRelativeDirectory Gets the relative project directory path. public string ProjectRelativeDirectory { get; } Property Value string RelativeProjectPath public string RelativeProjectPath { get; } Property Value string ResourceDir Resource absolute directory. public string ResourceDir { get; } Property Value string ResourceExtendedNamedPath Gets the resource extended named path. public ExtendedNamedPath ResourceExtendedNamedPath { get; } Property Value ExtendedNamedPath ResourceNamedPath Gets the resource named path. public NamedPath ResourceNamedPath { get; } Property Value NamedPath ResourceRelDir Relative directory from AdminDirectory for resource. public string ResourceRelDir { get; set; } Property Value string Methods CloseProject() Closes the current project. public Task CloseProject() Returns Task A task representing the asynchronous operation CopyResourceIfNotExisted() Copies resources if they don't already exist in the target location. public void CopyResourceIfNotExisted() Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() Dispose(bool) protected virtual void Dispose(bool disposing) Parameters disposing bool GetExtendedNamedPathByNamePath(string) Gets an extended named path by its name path. public ExtendedNamedPath GetExtendedNamedPathByNamePath(string namePath) Parameters namePath string The name path to look up. Returns ExtendedNamedPath The extended named path for the specified name path, or null if not found. GetExtendedNamedPathByPath(string) Gets an extended named path by its path. public ExtendedNamedPath GetExtendedNamedPathByPath(string path) Parameters path string The path to look up. Returns ExtendedNamedPath The extended named path with the specified path, or null if not found. GetExtendedNamedPathByUriPara(string) GetExtendedNamedPath By blazor page parameter. public ExtendedNamedPath GetExtendedNamedPathByUriPara(string uriPara) Parameters uriPara string Returns ExtendedNamedPath GetExtendedNamedPathList(params BasePathEnum[]) Gets a list of extended named paths for the specified base path types. public List GetExtendedNamedPathList(params BasePathEnum[] basePathEnums) Parameters basePathEnums BasePathEnum[] The base path types to include. Returns List A list of extended named paths. GetNamedPathByName(string) Gets a named path by its name. public NamedPath GetNamedPathByName(string name) Parameters name string The name of the path to retrieve Returns NamedPath The named path with the specified name, or null if not found GetNamedPathByPath(string) Gets a named path by its path. public NamedPath GetNamedPathByPath(string path) Parameters path string The path to look up. Returns NamedPath The named path with the specified path, or null if not found. GetNamedPathList(params BasePathEnum[]) Gets a list of named paths for the specified base path types. public List GetNamedPathList(params BasePathEnum[] basePathEnums) Parameters basePathEnums BasePathEnum[] The base path types to include. Returns List A list of named paths. LoadProjectByRelativePath(string) Loads a project from the specified relative file path. public void LoadProjectByRelativePath(string relativeFilePathFromAdminRoot) Parameters relativeFilePathFromAdminRoot string The relative file path from the admin directory root NewProjectByRelFile(string) Creates a new project from a relative file path. public void NewProjectByRelFile(string relFilePath) Parameters relFilePath string The relative file path from the admin directory ReloadProject() Reloads the current project. public Task ReloadProject() Returns Task A task representing the asynchronous operation SaveAsProject(string) Saves the current project to a specified relative file path. public void SaveAsProject(string relativeFilePath) Parameters relativeFilePath string The relative file path from the admin directory root SaveProject() Save project in the current path. public void SaveProject() ShowMessageBoard(string, string, BootstrapTheme) Shows a message board with specified title, message and theme. public void ShowMessageBoard(string title, string message, BootstrapTheme bootstrapThemeColor) Parameters title string The title of the message board message string The message to display bootstrapThemeColor BootstrapTheme The bootstrap theme color for the message board Events OnShownMessageBoard Event raised when a message board is shown. public event ShowMessageBoardDelegate OnShownMessageBoard Event Type ShowMessageBoardDelegate" + "summary": "Class HiNcHost Namespace Hi.HiNcKits Assembly HiNc.dll Rich HiNC Service. Host class for HiNC functionality that provides project management, path resolution, and MongoDB integration. public class HiNcHost : IDisposable Inheritance object HiNcHost Implements IDisposable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors HiNcHost(ProxyProjectService) public HiNcHost(ProxyProjectService proxyProjectService) Parameters proxyProjectService ProxyProjectService HiNcHost(string, int, string) public HiNcHost(string adminDirectory, int mongodbPort, string displayEngineFontFile) Parameters adminDirectory string mongodbPort int displayEngineFontFile string The default value will be alternative if the value is null. Fields HiNcUserDbMetaName Gets the name of the HiNC user database metadata. public const string HiNcUserDbMetaName = \"UserDbMeta\" Field Value string HiNcUserDbName Gets the name of the HiNC user database. public const string HiNcUserDbName = \"HiNcUserDb\" Field Value string Properties AdminDirectory Admin absolute directory. public string AdminDirectory { get; set; } Property Value string AdminExtendedNamedPath Gets the admin extended named path. public ExtendedNamedPath AdminExtendedNamedPath { get; } Property Value ExtendedNamedPath AdminNamedPath Gets the admin named path. public NamedPath AdminNamedPath { get; } Property Value NamedPath CacheDbId Gets the cache database ID. public static string CacheDbId { get; set; } Property Value string LocalProjectService public LocalProjectService LocalProjectService { get; } Property Value LocalProjectService MachiningProject public MachiningProject MachiningProject { get; } Property Value MachiningProject MongoServer Gets the main MongoDB runner. public IMongoRunner MongoServer { get; } Property Value IMongoRunner ProjectDirectory Project Absolute Directory. public string ProjectDirectory { get; } Property Value string ProjectExtendedNamedPath Gets the project extended named path. public ExtendedNamedPath ProjectExtendedNamedPath { get; } Property Value ExtendedNamedPath ProjectNamedPath Gets the project named path. public NamedPath ProjectNamedPath { get; } Property Value NamedPath ProjectRelativeDirectory Gets the relative project directory path. public string ProjectRelativeDirectory { get; } Property Value string RelativeProjectPath public string RelativeProjectPath { get; } Property Value string ResourceDir Resource absolute directory. public string ResourceDir { get; } Property Value string ResourceExtendedNamedPath Gets the resource extended named path. public ExtendedNamedPath ResourceExtendedNamedPath { get; } Property Value ExtendedNamedPath ResourceNamedPath Gets the resource named path. public NamedPath ResourceNamedPath { get; } Property Value NamedPath ResourceRelDir Relative directory from AdminDirectory for resource. public string ResourceRelDir { get; set; } Property Value string Methods CloseProject() Closes the current project. public Task CloseProject() Returns Task A task representing the asynchronous operation CopyResourceIfNotExisted() Copies resources if they don't already exist in the target location. public void CopyResourceIfNotExisted() Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() Dispose(bool) protected virtual void Dispose(bool disposing) Parameters disposing bool GetExtendedNamedPathByNamePath(string) Gets an extended named path by its name path. public ExtendedNamedPath GetExtendedNamedPathByNamePath(string namePath) Parameters namePath string The name path to look up. Returns ExtendedNamedPath The extended named path for the specified name path, or null if not found. GetExtendedNamedPathByPath(string) Gets an extended named path by its path. public ExtendedNamedPath GetExtendedNamedPathByPath(string path) Parameters path string The path to look up. Returns ExtendedNamedPath The extended named path with the specified path, or null if not found. GetExtendedNamedPathByUriPara(string) GetExtendedNamedPath By blazor page parameter. public ExtendedNamedPath GetExtendedNamedPathByUriPara(string uriPara) Parameters uriPara string Returns ExtendedNamedPath GetExtendedNamedPathList(params BasePathEnum[]) Gets a list of extended named paths for the specified base path types. public List GetExtendedNamedPathList(params BasePathEnum[] basePathEnums) Parameters basePathEnums BasePathEnum[] The base path types to include. Returns List A list of extended named paths. GetNamedPathByName(string) Gets a named path by its name. public NamedPath GetNamedPathByName(string name) Parameters name string The name of the path to retrieve Returns NamedPath The named path with the specified name, or null if not found GetNamedPathByPath(string) Gets a named path by its path. public NamedPath GetNamedPathByPath(string path) Parameters path string The path to look up. Returns NamedPath The named path with the specified path, or null if not found. GetNamedPathList(params BasePathEnum[]) Gets a list of named paths for the specified base path types. public List GetNamedPathList(params BasePathEnum[] basePathEnums) Parameters basePathEnums BasePathEnum[] The base path types to include. Returns List A list of named paths. LoadProjectByRelativePath(string) Loads a project from the specified relative file path. public void LoadProjectByRelativePath(string relativeFilePathFromAdminRoot) Parameters relativeFilePathFromAdminRoot string The relative file path from the admin directory root NewProjectByRelFile(string) Creates a new project from a relative file path. public void NewProjectByRelFile(string relFilePath) Parameters relFilePath string The relative file path from the admin directory ReloadProject() Reloads the current project. public Task ReloadProject() Returns Task A task representing the asynchronous operation SaveAsProject(string) Saves the current project to a specified relative file path. public void SaveAsProject(string relativeFilePath) Parameters relativeFilePath string The relative file path from the admin directory root SaveProject() Save project in the current path. public void SaveProject() ShowMessageBoard(string, string, BootstrapTheme) Shows a message board with specified title, message and theme. public void ShowMessageBoard(string title, string message, BootstrapTheme bootstrapThemeColor) Parameters title string The title of the message board message string The message to display bootstrapThemeColor BootstrapTheme The bootstrap theme color for the message board Events OnShownMessageBoard Event raised when a message board is shown. public event ShowMessageBoardDelegate OnShownMessageBoard Event Type ShowMessageBoardDelegate" }, "api/Hi.HiNcKits.LocalApp.html": { "href": "api/Hi.HiNcKits.LocalApp.html", @@ -1782,7 +1782,7 @@ "api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html": { "href": "api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html", "title": "Class MachiningEquipment | HiAPI-C# 2025", - "summary": "Class MachiningEquipment Namespace Hi.Machining.MachiningEquipmentUtils Assembly HiMech.dll Machining Equipment. Include the machining chain, workpiece, tool and fixture, etc.. public class MachiningEquipment : IMachiningEquipment, IDisplayee, IExpandToBox3d, IMakeXmlSource, IGetAnchoredDisplayeeList, IGetProgramCl, IGetAsmb, IGetAnchor, IGetTopoIndex, IGetMachiningChain, IGetMachiningEquipment Inheritance object MachiningEquipment Implements IMachiningEquipment IDisplayee IExpandToBox3d IMakeXmlSource IGetAnchoredDisplayeeList IGetProgramCl IGetAsmb IGetAnchor IGetTopoIndex IGetMachiningChain IGetMachiningEquipment Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) MachiningEquipmentUtil.GetMcXyz_AttacherAtProgramZero(IMachiningEquipment) MachiningEquipmentUtil.GetMcXyz_AttacherAtTableBuckleZero(IMachiningEquipment) MachiningEquipmentUtil.RunByStep(IMachiningEquipment, INcStep0, MachiningToolHouse) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningEquipment() Ctor. public MachiningEquipment() MachiningEquipment(XElement, string, string) Initializes a new instance of the MachiningEquipment class from XML data. public MachiningEquipment(XElement src, string baseDirectory, string relFile) Parameters src XElement The XML element containing the equipment configuration. baseDirectory string The base directory for resolving relative file paths. relFile string The relative file path for XML serialization. Properties Asmb Asmb of the entire equipment. public Asmb Asmb { get; } Property Value Asmb BackgroundTemperature_C Gets or sets the background temperature in Celsius. This is a convenience property that converts between Celsius and Kelvin. public double BackgroundTemperature_C { get; set; } Property Value double BackgroundTemperature_K Gets or sets the background temperature in Kelvin. This represents the ambient temperature of the machining environment. public double BackgroundTemperature_K { get; set; } Property Value double CoolantHeatCondition Gets or sets the coolant heat condition settings. This includes coolant temperature and heat transfer coefficients. public CoolantHeatCondition CoolantHeatCondition { get; set; } Property Value CoolantHeatCondition Fixture Fixture. public Fixture Fixture { get; set; } Property Value Fixture MachiningChain Body of the equipment. public IMachiningChain MachiningChain { get; set; } Property Value IMachiningChain MachiningChainFile Gets or sets the file path of the solid machining chain. This is used for XML serialization and file management. public string MachiningChainFile { get; set; } Property Value string MachiningTool Milling tool. public IMachiningTool MachiningTool { get; set; } Property Value IMachiningTool SpindleCapability Gets or sets the spindle capability configuration. This defines the operational capabilities and limits of the spindle. public SpindleCapability SpindleCapability { get; set; } Property Value SpindleCapability SpindleCapabilityFile Gets or sets the file path of the spindle capability configuration. This is used for XML serialization and file management. public string SpindleCapabilityFile { get; set; } Property Value string TableToComp Transformer of the branch from table buckle to workpiece side buckle. Note that the workpiece side buckle links to Fixture if fixture exist; otherwise, it links to Workpiece if workpiece exist. If Workpiece either Fixture do not exist, this property makes no effect. public ITransformer TableToComp { get; set; } Property Value ITransformer Workpiece Workpiece. public Workpiece Workpiece { get; set; } Property Value Workpiece XName Name for XML IO. public static string XName { get; } Property Value string Methods Detect(bool) Performs collision detection. public MechCollisionResult Detect(bool addFluteAndWorkpieceDetection) Parameters addFluteAndWorkpieceDetection bool Whether to include flute and workpiece in detection. Returns MechCollisionResult Significant collision result. Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. ExpandToBox3d(Box3d) Expands the destination box. This function is usually used to compute the bounding box of elements. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d Destination box GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor GetAnchoredDisplayeeList() Gets a list of anchored displayable objects. public List GetAnchoredDisplayeeList() Returns List A list of IAnchoredDisplayee objects GetAsmb() Gets the key asmb. public Asmb GetAsmb() Returns Asmb The key asmb. GetMachiningChain() Gets the machining chain instance. public IMachiningChain GetMachiningChain() Returns IMachiningChain The machining chain instance. GetMillingEquipment() Get MachiningEquipment. public MachiningEquipment GetMillingEquipment() Returns MachiningEquipment MachiningEquipment GetProgramCl() Get CL (Cutter Location). Where Point is tool tip position; Normal is tool orientation. public DVec3d GetProgramCl() Returns DVec3d CL GetToolTipXyzOnProgramZero() Get tool tip xyz from workpiece geom anchor. public Vec3d GetToolTipXyzOnProgramZero() Returns Vec3d if no MachiningTool or no Workpiece equiping, return null; otherwise, return the XYZ from workpiece geomanchor to tool tip. GetTransformFromRootToProgramZero() Gets the transform matrix from the root coordinate system to the program zero coordinate system. public Mat4d GetTransformFromRootToProgramZero() Returns Mat4d A 4x4 transformation matrix representing the coordinate system transformation. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. PrepareCollidableItems() Prepares all collidable items for collision detection. This method should be called before performing collision detection. public void PrepareCollidableItems() ResetCollisionFlags() Resets all collision flags to their default states. This should be called after collision detection is complete. public void ResetCollisionFlags() Tooling(int, MachiningToolHouse) Set MachiningTool by toolId and toolHouse. public bool Tooling(int toolId, MachiningToolHouse toolHouse) Parameters toolId int tool ID toolHouse MachiningToolHouse tool house Returns bool true if tool changed; otherwise, false. Exceptions ToolNotFoundException Throw If toolId does not exist on toolHouse. Events MachiningChainChanged Event that is raised when the machining chain is changed. Provides both the previous and new chain values. public event Action> MachiningChainChanged Event Type Action> WorkpieceChanged Event that is raised when the workpiece is changed. public event Action> WorkpieceChanged Event Type Action> Remarks This event is triggered whenever the workpiece property is modified. Subscribers can use this event to respond to changes in the workpiece configuration, such as updating visualizations or recalculating machining parameters. The event provides both the previous and new workpiece values through a SeqPair." + "summary": "Class MachiningEquipment Namespace Hi.Machining.MachiningEquipmentUtils Assembly HiMech.dll Machining Equipment. Include the machining chain, workpiece, tool and fixture, etc.. public class MachiningEquipment : IMachiningEquipment, IDisplayee, IExpandToBox3d, IMakeXmlSource, IGetAnchoredDisplayeeList, IGetProgramCl, IGetAsmb, IGetAnchor, IGetTopoIndex, IGetMachiningChain, IGetMachiningEquipment Inheritance object MachiningEquipment Implements IMachiningEquipment IDisplayee IExpandToBox3d IMakeXmlSource IGetAnchoredDisplayeeList IGetProgramCl IGetAsmb IGetAnchor IGetTopoIndex IGetMachiningChain IGetMachiningEquipment Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) MachiningEquipmentUtil.GetMcXyz_AttacherAtProgramZero(IMachiningEquipment) MachiningEquipmentUtil.GetMcXyz_AttacherAtTableBuckleZero(IMachiningEquipment) MachiningEquipmentUtil.RunByStep(IMachiningEquipment, INcStep0, MachiningToolHouse) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningEquipment() Ctor. public MachiningEquipment() MachiningEquipment(XElement, string, string) Initializes a new instance of the MachiningEquipment class from XML data. public MachiningEquipment(XElement src, string baseDirectory, string relFile) Parameters src XElement The XML element containing the equipment configuration. baseDirectory string The base directory for resolving relative file paths. relFile string The relative file path for XML serialization. Properties Asmb Asmb of the entire equipment. public Asmb Asmb { get; } Property Value Asmb BackgroundTemperature_C Gets or sets the background temperature in Celsius. This is a convenience property that converts between Celsius and Kelvin. public double BackgroundTemperature_C { get; set; } Property Value double BackgroundTemperature_K Gets or sets the background temperature in Kelvin. This represents the ambient temperature of the machining environment. public double BackgroundTemperature_K { get; set; } Property Value double CoolantHeatCondition Gets or sets the coolant heat condition settings. This includes coolant temperature and heat transfer coefficients. public CoolantHeatCondition CoolantHeatCondition { get; set; } Property Value CoolantHeatCondition Fixture Fixture. public Fixture Fixture { get; set; } Property Value Fixture MachiningChain Body of the equipment. public IMachiningChain MachiningChain { get; set; } Property Value IMachiningChain MachiningChainFile Gets or sets the file path of the solid machining chain. This is used for XML serialization and file management. public string MachiningChainFile { get; set; } Property Value string MachiningTool Milling tool. public IMachiningTool MachiningTool { get; set; } Property Value IMachiningTool SpindleCapability Gets or sets the spindle capability configuration. This defines the operational capabilities and limits of the spindle. public SpindleCapability SpindleCapability { get; set; } Property Value SpindleCapability SpindleCapabilityFile Gets or sets the file path of the spindle capability configuration. This is used for XML serialization and file management. public string SpindleCapabilityFile { get; set; } Property Value string TableToComp Transformer of the branch from table buckle to workpiece side buckle. Note that the workpiece side buckle links to Fixture if fixture exist; otherwise, it links to Workpiece if workpiece exist. If Workpiece either Fixture do not exist, this property makes no effect. public ITransformer TableToComp { get; set; } Property Value ITransformer Workpiece Workpiece. public Workpiece Workpiece { get; set; } Property Value Workpiece XName Name for XML IO. public static string XName { get; } Property Value string Methods Detect(bool) Performs collision detection. public MechCollisionResult Detect(bool addFluteAndWorkpieceDetection) Parameters addFluteAndWorkpieceDetection bool Whether to include flute and workpiece in detection. Returns MechCollisionResult Significant collision result. Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. ExpandToBox3d(Box3d) Expands the destination box. This function is usually used to compute the bounding box of elements. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d Destination box GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor GetAnchoredDisplayeeList() Gets a list of anchored displayable objects. public List GetAnchoredDisplayeeList() Returns List A list of IAnchoredDisplayee objects GetAsmb() Gets the key asmb. public Asmb GetAsmb() Returns Asmb The key asmb. GetMachiningChain() Gets the machining chain instance. public IMachiningChain GetMachiningChain() Returns IMachiningChain The machining chain instance. GetMillingEquipment() Get MachiningEquipment. public MachiningEquipment GetMillingEquipment() Returns MachiningEquipment MachiningEquipment GetProgramCl() Get CL (Cutter Location). Where Point is tool tip position; Normal is tool orientation. public DVec3d GetProgramCl() Returns DVec3d CL GetToolTipXyzOnProgramZero() Get tool tip xyz from workpiece geom anchor. public Vec3d GetToolTipXyzOnProgramZero() Returns Vec3d if no MachiningTool or no Workpiece equiping, return null; otherwise, return the XYZ from workpiece geomanchor to tool tip. GetTransformFromRootToProgramZero() Gets the transform matrix from the root coordinate system to the program zero coordinate system. public Mat4d GetTransformFromRootToProgramZero() Returns Mat4d A 4x4 transformation matrix representing the coordinate system transformation. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. PrepareCollidableItems() Prepares all collidable items for collision detection. This method should be called before performing collision detection. public void PrepareCollidableItems() ResetCollisionFlags() Resets all collision flags to their default states. This should be called after collision detection is complete. public void ResetCollisionFlags() Tooling(int, MachiningToolHouse) Set MachiningTool by toolId and toolHouse. public bool Tooling(int toolId, MachiningToolHouse toolHouse) Parameters toolId int tool ID toolHouse MachiningToolHouse tool house Returns bool true if tool changed; otherwise, false. Exceptions ToolNotFoundException Throw If toolId does not exist on toolHouse." }, "api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndex.html": { "href": "api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndex.html", @@ -1817,7 +1817,7 @@ "api/Hi.Machining.MachiningVolumeRemovalProc.html": { "href": "api/Hi.Machining.MachiningVolumeRemovalProc.html", "title": "Class MachiningVolumeRemovalProc | HiAPI-C# 2025", - "summary": "Class MachiningVolumeRemovalProc Namespace Hi.Machining Assembly HiMech.dll Handles the machining volume removal process and related operations. public class MachiningVolumeRemovalProc Inheritance object MachiningVolumeRemovalProc Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningVolumeRemovalProc() Initializes a new instance of the MachiningVolumeRemovalProc class. public MachiningVolumeRemovalProc() Properties ClMachiningValve Gets the CL machining valve used to control the machining process. public ClMachiningValve ClMachiningValve { get; } Property Value ClMachiningValve MachiningEquipment Gets or sets the machining equipment used in the volume removal process. When changed, clears the internal cache. public MachiningEquipment MachiningEquipment { get; set; } Property Value MachiningEquipment Methods ClearCache() Clears the internal cache, including the CL machining valve state and step-related caches. public void ClearCache() StepAssignDummyAttach(Workpiece, ClStrip, DVec3d) Creates a dummy attachment point in the CL strip. public static ClStripPos StepAssignDummyAttach(Workpiece workpiece, ClStrip clStrip, DVec3d programCl) Parameters workpiece Workpiece The workpiece to attach to. clStrip ClStrip The CL strip to add the attachment to. programCl DVec3d The program CL point for the attachment. Returns ClStripPos The created CL strip position. StepGetGeomBoolCache(ICutter, double, SeqPair, bool, bool?) Gets a geometric boolean cache for the current step based on cutter and motion parameters. public static GeomBoolCache StepGetGeomBoolCache(ICutter cutter, double stepPreferredCubeWidth, SeqPair seq, bool enableSweeping, bool? isFluteTouchingWorkpiece) Parameters cutter ICutter The cutter to use for the operation. stepPreferredCubeWidth double The preferred cube width for discretization. seq SeqPair The sequence pair of transformation matrices. enableSweeping bool Whether to enable sweeping operation. isFluteTouchingWorkpiece bool? Optional flag indicating if the flute is touching the workpiece. Returns GeomBoolCache A geometric boolean cache containing the operation data. Remarks Note that it is hard to know if flute is touching the workpiece by sweeping without making sweeping volume. Checking by non-sweeping geometry may miss the touching part of the sweeping volume. Hence isFluteTouchingWorkpiece should be kept null and be considered obsolete. There is no performance gain from that parameter. Events CutterChanged Event that is triggered when the cutter is changed, providing the previous and current cutter. public event Action> CutterChanged Event Type Action>" + "summary": "Class MachiningVolumeRemovalProc Namespace Hi.Machining Assembly HiMech.dll Handles the machining volume removal process and related operations. public class MachiningVolumeRemovalProc Inheritance object MachiningVolumeRemovalProc Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningVolumeRemovalProc(Func) Initializes a new instance of the MachiningVolumeRemovalProc class. public MachiningVolumeRemovalProc(Func machiningEquipmentGetter) Parameters machiningEquipmentGetter Func Properties ClMachiningValve Gets the CL machining valve used to control the machining process. public ClMachiningValve ClMachiningValve { get; } Property Value ClMachiningValve Methods ClearCache() Clears the internal cache, including the CL machining valve state and step-related caches. public void ClearCache() StepAssignDummyAttach(Workpiece, ClStrip, DVec3d) Creates a dummy attachment point in the CL strip. public static ClStripPos StepAssignDummyAttach(Workpiece workpiece, ClStrip clStrip, DVec3d programCl) Parameters workpiece Workpiece The workpiece to attach to. clStrip ClStrip The CL strip to add the attachment to. programCl DVec3d The program CL point for the attachment. Returns ClStripPos The created CL strip position. StepGetGeomBoolCache(ICutter, double, SeqPair, bool, bool?) Gets a geometric boolean cache for the current step based on cutter and motion parameters. public static GeomBoolCache StepGetGeomBoolCache(ICutter cutter, double stepPreferredCubeWidth, SeqPair seq, bool enableSweeping, bool? isFluteTouchingWorkpiece) Parameters cutter ICutter The cutter to use for the operation. stepPreferredCubeWidth double The preferred cube width for discretization. seq SeqPair The sequence pair of transformation matrices. enableSweeping bool Whether to enable sweeping operation. isFluteTouchingWorkpiece bool? Optional flag indicating if the flute is touching the workpiece. Returns GeomBoolCache A geometric boolean cache containing the operation data. Remarks Note that it is hard to know if flute is touching the workpiece by sweeping without making sweeping volume. Checking by non-sweeping geometry may miss the touching part of the sweeping volume. Hence isFluteTouchingWorkpiece should be kept null and be considered obsolete. There is no performance gain from that parameter. Events CutterChanged Event that is triggered when the cutter is changed, providing the previous and current cutter. public event Action> CutterChanged Event Type Action>" }, "api/Hi.Machining.MatInterpolationKit.html": { "href": "api/Hi.Machining.MatInterpolationKit.html", @@ -1867,7 +1867,7 @@ "api/Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.html": { "href": "api/Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.html", "title": "Class DynamicMachiningProjectDisplayee0 | HiAPI-C# 2025", - "summary": "Class DynamicMachiningProjectDisplayee0 Namespace Hi.MachiningProcs Assembly HiNc.dll Provides display capabilities for a milling course. obsoleted. public class DynamicMachiningProjectDisplayee0 : IDisplayee, IExpandToBox3d, IGetAnchor, IGetTopoIndex Inheritance object DynamicMachiningProjectDisplayee0 Implements IDisplayee IExpandToBox3d IGetAnchor IGetTopoIndex Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors DynamicMachiningProjectDisplayee0(Func) Initializes a new instance of the DynamicMachiningProjectDisplayee0 class with default settings. public DynamicMachiningProjectDisplayee0(Func machiningProjectHost) Parameters machiningProjectHost Func Function that returns the host milling course DynamicMachiningProjectDisplayee0(Func, BitArray, Action) Initializes a new instance of the DynamicMachiningProjectDisplayee0 class. public DynamicMachiningProjectDisplayee0(Func machiningProjectHost, BitArray renderingFlagBitArray, Action setRenderingFlagFunc) Parameters machiningProjectHost Func Function that returns the host milling course renderingFlagBitArray BitArray Initial rendering flag bit array setRenderingFlagFunc Action Function that sets the rendering flags Properties MachiningProject Gets the current milling course from the host function. public MachiningProject MachiningProject { get; } Property Value MachiningProject RenderingFlagBitArray Gets or sets the bit array that controls which elements are rendered. public BitArray RenderingFlagBitArray { get; set; } Property Value BitArray Methods Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. ExpandToBox3d(Box3d) Expands the destination box. This function is usually used to compute the bounding box of elements. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d Destination box GetAnchor() Gets the root anchor for the display hierarchy based on current rendering flags. public Anchor GetAnchor() Returns Anchor The root anchor to use for rendering" + "summary": "Class DynamicMachiningProjectDisplayee0 Namespace Hi.MachiningProcs Assembly HiNc.dll Provides display capabilities for a milling course. obsoleted. public class DynamicMachiningProjectDisplayee0 : IDisplayee, IExpandToBox3d, IGetAnchor, IGetTopoIndex Inheritance object DynamicMachiningProjectDisplayee0 Implements IDisplayee IExpandToBox3d IGetAnchor IGetTopoIndex Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors DynamicMachiningProjectDisplayee0(LocalProjectService) Initializes a new instance of the DynamicMachiningProjectDisplayee0 class with default settings. public DynamicMachiningProjectDisplayee0(LocalProjectService machiningProjectHost) Parameters machiningProjectHost LocalProjectService Function that returns the host milling course DynamicMachiningProjectDisplayee0(LocalProjectService, BitArray, Action) Initializes a new instance of the DynamicMachiningProjectDisplayee0 class. public DynamicMachiningProjectDisplayee0(LocalProjectService localProjectService, BitArray renderingFlagBitArray, Action setRenderingFlagFunc) Parameters localProjectService LocalProjectService Function that returns the host milling course renderingFlagBitArray BitArray Initial rendering flag bit array setRenderingFlagFunc Action Function that sets the rendering flags Properties LocalProjectService Function that returns the host milling course. public LocalProjectService LocalProjectService { get; set; } Property Value LocalProjectService MachiningProject Gets the current milling course from the host function. public MachiningProject MachiningProject { get; } Property Value MachiningProject RenderingFlagBitArray Gets or sets the bit array that controls which elements are rendered. public BitArray RenderingFlagBitArray { get; set; } Property Value BitArray Methods Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. ExpandToBox3d(Box3d) Expands the destination box. This function is usually used to compute the bounding box of elements. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d Destination box GetAnchor() Gets the root anchor for the display hierarchy based on current rendering flags. public Anchor GetAnchor() Returns Anchor The root anchor to use for rendering" }, "api/Hi.MachiningProcs.IMachiningProjectGetter.html": { "href": "api/Hi.MachiningProcs.IMachiningProjectGetter.html", @@ -1887,7 +1887,7 @@ "api/Hi.MachiningProcs.LocalProjectService.html": { "href": "api/Hi.MachiningProcs.LocalProjectService.html", "title": "Class LocalProjectService | HiAPI-C# 2025", - "summary": "Class LocalProjectService Namespace Hi.MachiningProcs Assembly HiNc.dll Root(Local) project service. Apply absolute file path. public class LocalProjectService : IProjectService, IMachiningProjectGetter Inheritance object LocalProjectService Implements IProjectService IMachiningProjectGetter Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors LocalProjectService() Ctor. public LocalProjectService() LocalProjectService(UserService, ILogger) Initializes a new instance of the LocalProjectService class. public LocalProjectService(UserService userService, ILogger logger) Parameters userService UserService The application service. logger ILogger The logger instance. Properties Logger Gets the logger instance for this service. public ILogger Logger { get; } Property Value ILogger MachiningProject Gets or sets the machining project instance. public MachiningProject MachiningProject { get; set; } Property Value MachiningProject MachiningProjectPath public string MachiningProjectPath { get; set; } Property Value string ProjectDirectory Gets the directory containing the machining project. public string ProjectDirectory { get; } Property Value string UserService Gets the application service instance. public UserService UserService { get; } Property Value UserService Methods CloseProject() Closes the current project. public void CloseProject() GetLocalProjectService() Get Local Project Service as base-service. public LocalProjectService GetLocalProjectService() Returns LocalProjectService Local Project Service GetMachiningProject() Gets the MachiningProject instance. public MachiningProject GetMachiningProject() Returns MachiningProject The MachiningProject instance. LoadProject(string) Loads a project by file path relative to the admin directory. public void LoadProject(string projectPath) Parameters projectPath string The absolute file path NewProject(string) Creates a new project by file path. public void NewProject(string projectPath) Parameters projectPath string The absolute file path ReloadProject() Reloads the current project. public Task ReloadProject() Returns Task A task representing the asynchronous operation SaveAsProject(string) Saves the current project to a specified relative file path. public void SaveAsProject(string projectPath) Parameters projectPath string The absolute file path SaveProject() Save project by project path. public void SaveProject() Events ClStrip_AbsDispEndChanged Event raised when the absolute display end position changes for ClStrip. public event EventHandler ClStrip_AbsDispEndChanged Event Type EventHandler ClStrip_DispBeginChanged Event raised when the display begin position changes for ClStrip. public event EventHandler ClStrip_DispBeginChanged Event Type EventHandler ClStrip_DispEndChanged Event raised when the display end position changes for ClStrip. public event EventHandler ClStrip_DispEndChanged Event Type EventHandler ClStrip_MachiningStepSelected The same effecting position as ClStrip_PosSelected but with more convenient arguments for the end-user for ClStrip. public event Action ClStrip_MachiningStepSelected Event Type Action ClStrip_PosAdded Event raised when a new position is added to the strip for ClStrip. public event Action ClStrip_PosAdded Event Type Action ClStrip_PosEntered Event raised when the mouse enters a position for ClStrip. public event EventHandler ClStrip_PosEntered Event Type EventHandler ClStrip_PosSelected Event raised when a position is selected for ClStrip. public event EventHandler ClStrip_PosSelected Event Type EventHandler MachiningProjectChanged Event raised when the machining project changes. public event LocalProjectService.MachiningProjectChangedDelegate MachiningProjectChanged Event Type LocalProjectService.MachiningProjectChangedDelegate MachiningStepBuilt event to configure steps. The first parameter is the previous step; the second parameter is the current step. The previous step is null if no previous step exists. public event MachiningActRunner.MachiningStepBuiltDelegate MachiningStepBuilt Event Type MachiningActRunner.MachiningStepBuiltDelegate PacePlayer_IsFinishedChangedEvent Event triggered when the finished state changes. public event Action PacePlayer_IsFinishedChangedEvent Event Type Action PacePlayer_IsLockedChangedEvent Event triggered when the lock state changes. public event Action PacePlayer_IsLockedChangedEvent Event Type Action PacePlayer_IsRunningChangedEvent Event triggered when the running state changes. public event Action PacePlayer_IsRunningChangedEvent Event Type Action PacePlayer_ResetedEvent Event triggered after the player has been reset. public event Action PacePlayer_ResetedEvent Event Type Action SessionMessageHost_CollectionCleared Event raised when the collection is cleared. public event Action SessionMessageHost_CollectionCleared Event Type Action SessionMessageHost_CollectionItemAdded Event raised when a new milling message is added to the collection. public event Action SessionMessageHost_CollectionItemAdded Event Type Action SessionMessageHost_CollectionItemChanged Event raised when a collection item is changed. public event Action SessionMessageHost_CollectionItemChanged Event Type Action" + "summary": "Class LocalProjectService Namespace Hi.MachiningProcs Assembly HiNc.dll Root(Local) project service. Apply absolute file path. public class LocalProjectService : IProjectService, IMachiningProjectGetter, IMachiningStepHost, IGetMachiningEquipment, IDisposable Inheritance object LocalProjectService Implements IProjectService IMachiningProjectGetter IMachiningStepHost IGetMachiningEquipment IDisposable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Remarks LocalProjectService handles the runtime data and cache generally not requires configuration IO. Compare to MachiningProject, LocalProjectService also handles events that does not reset on the MachiningProject been reloaded. Constructors LocalProjectService() Ctor. public LocalProjectService() LocalProjectService(UserService, ILogger) Initializes a new instance. public LocalProjectService(UserService userService, ILogger logger) Parameters userService UserService The application service. logger ILogger The logger instance. Properties BoundSelectorHost Gets the bound selector host for managing selection boundaries. public BoundSelectorHost BoundSelectorHost { get; } Property Value BoundSelectorHost ClStrip Gets the cutter location strip containing the machining steps. public ClStrip ClStrip { get; } Property Value ClStrip CoordinateEntryDisplayee Gets the displayee for coordinate entry visualization. public CoordinateEntryDisplayee CoordinateEntryDisplayee { get; } Property Value CoordinateEntryDisplayee DictionaryColorGuide Gets the color guide for dictionary-based coloring. public DictionaryColorGuide DictionaryColorGuide { get; } Property Value DictionaryColorGuide EnableCollisionDetection Gets or sets whether collision detection is enabled. When set to true, initializes collision detection mechanism. public bool EnableCollisionDetection { get; set; } Property Value bool EnablePauseOnFailure public bool EnablePauseOnFailure { get; set; } Property Value bool EnableStrokeLimitCheck public bool EnableStrokeLimitCheck { get; set; } Property Value bool Fixture Gets or sets the fixture. public Fixture Fixture { get; set; } Property Value Fixture Global global variable for RuntimeApi. Not save on XML. public Dictionary Global { get; set; } Property Value Dictionary InspectingKey Gets or sets the current inspecting key for visualization. When set, updates the inspecting quantity function. public string InspectingKey { get; set; } Property Value string InspectingQuantityFunc Gets the function that retrieves the quantity value for the current inspecting key. public Func InspectingQuantityFunc { get; } Property Value Func Logger Gets the logger instance for this service. public ILogger Logger { get; } Property Value ILogger MachiningActRunner Gets the machining act runner responsible for executing machining operations. public MachiningActRunner MachiningActRunner { get; } Property Value MachiningActRunner MachiningChain Gets or sets the machining chain. public IMachiningChain MachiningChain { get; set; } Property Value IMachiningChain MachiningChainFile Gets or sets the file path of the solid machining chain. This is used for XML serialization and file management. public string MachiningChainFile { get; set; } Property Value string MachiningEquipment Gets or sets the machining equipment used for milling. Updates related components when changed. public MachiningEquipment MachiningEquipment { get; set; } Property Value MachiningEquipment MachiningProject Gets or sets the machining project instance. public MachiningProject MachiningProject { get; set; } Property Value MachiningProject MachiningProjectPath public string MachiningProjectPath { get; set; } Property Value string MachiningSession Gets the current machining session. public MachiningSession MachiningSession { get; set; } Property Value MachiningSession MachiningTool Gets or sets the machining tool. public IMachiningTool MachiningTool { get; set; } Property Value IMachiningTool MachiningToolHouse public MachiningToolHouse MachiningToolHouse { get; set; } Property Value MachiningToolHouse MachiningToolHouseFile Gets or sets the file path to the milling tool house configuration. public string MachiningToolHouseFile { get; set; } Property Value string MillingStepLuggageReader Gets the reader for accessing milling step luggage data. public ParallelBulkReader MillingStepLuggageReader { get; } Property Value ParallelBulkReader NcOptProc Gets the NC optimization processor for optimizing NC programs. public NcOptProc NcOptProc { get; } Property Value NcOptProc NcRunner Gets the NC runner responsible for executing NC programs. public NcRunner NcRunner { get; } Property Value NcRunner PacePlayer Gets the pace player for controlling execution pace of milling operations. public PacePlayer PacePlayer { get; } Property Value PacePlayer Progress Gets the progress reporting mechanism for long-running operations. public Progress Progress { get; } Property Value Progress ProjectDirectory Gets the directory containing the machining project. public string ProjectDirectory { get; } Property Value string RuntimeApi Gets the shell API for interacting with this machining process. public RuntimeApi RuntimeApi { get; } Property Value RuntimeApi SessionMessageHost Gets the message host for displaying messages, warnings, and errors. public SessionMessageHost SessionMessageHost { get; } Property Value SessionMessageHost StepPropertyAccessDictionary Gets the dictionary mapping property keys to their access methods. public ConcurrentDictionary> StepPropertyAccessDictionary { get; } Property Value ConcurrentDictionary> TimeMapping Gets or sets the time mapping for synchronizing different time-based data streams. public TimeMapping TimeMapping { get; set; } Property Value TimeMapping UserService Gets the application service instance. public UserService UserService { get; } Property Value UserService Workpiece Gets or sets the workpiece to be machined. Ensures proper initialization of workpiece properties. public Workpiece Workpiece { get; set; } Property Value Workpiece Methods Act(IAct, IIndexedFileLine, CancellationToken?) Executes an act and collects all results. public void Act(IAct act, IIndexedFileLine sourceCommand = null, CancellationToken? cancellationToken = null) Parameters act IAct The act to execute. sourceCommand IIndexedFileLine The source command that triggered the act. cancellationToken CancellationToken? Cancellation token to cancel the operation. BeginSession() Initiate a simulation session. Clear the state from previous session (if existed). public void BeginSession() CloseProject() Closes the current project. public void CloseProject() Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() Dispose(bool) protected virtual void Dispose(bool disposing) Parameters disposing bool EndSession() Ends the current machining session and releases associated resources. public void EndSession() GetInspectingKeyPresentName(StringLocalizer) Gets the localized presentation name for the current inspecting key. public string GetInspectingKeyPresentName(StringLocalizer stringLocalizer) Parameters stringLocalizer StringLocalizer The string localizer to use for localization Returns string The localized presentation name GetLocalProjectService() Get Local Project Service as base-service. public LocalProjectService GetLocalProjectService() Returns LocalProjectService Local Project Service GetMachiningProject() Gets the MachiningProject instance. public MachiningProject GetMachiningProject() Returns MachiningProject The MachiningProject instance. GetMillingEquipment() Get MachiningEquipment. public MachiningEquipment GetMillingEquipment() Returns MachiningEquipment MachiningEquipment LoadProject(string) Loads a project by file path relative to the admin directory. public void LoadProject(string projectPath) Parameters projectPath string The absolute file path NewProject(string) Creates a new project by file path. public void NewProject(string projectPath) Parameters projectPath string The absolute file path PlayCsvFile(string, string) Plays a CSV file from the specified path. public void PlayCsvFile(string baseDirectory, string relFilePath) Parameters baseDirectory string Base directory for resolving relative paths. relFilePath string Relative path to the CSV file. PlayNc(string, string) Plays NC commands from raw text with pace control. public void PlayNc(string ncText, string fileNameAlternative = \"--\") Parameters ncText string The NC command text to execute fileNameAlternative string Alternative name to associate with the NC program PlayNcFile(string, string) Plays an NC file from the specified path with pace control. public void PlayNcFile(string baseDirectory, string relFilePath) Parameters baseDirectory string Base directory for resolving relative paths relFilePath string Relative path to the NC file ProcAct(IAct, IIndexedFileLine, CancellationToken?) Processes an act and returns the results. public IEnumerable ProcAct(IAct act, IIndexedFileLine sourceCommand = null, CancellationToken? cancellationToken = null) Parameters act IAct The act to process. sourceCommand IIndexedFileLine The source command that triggered the act. cancellationToken CancellationToken? Cancellation token to cancel the operation. Returns IEnumerable Enumerable of results from processing the act. ReTrainMillingPara(SampleFlag, double, string, CancellationToken) Train Milling Parameter. public void ReTrainMillingPara(SampleFlag sampleFlags, double outlierRatio, string dstRelFile, CancellationToken cancellationToken) Parameters sampleFlags SampleFlag outlierRatio double dstRelFile string cancellationToken CancellationToken RefreshDrawing() Refreshes the visual display of the milling course. public void RefreshDrawing() ReloadProject() Reloads the current project. public Task ReloadProject() Returns Task A task representing the asynchronous operation ResetRuntime() Reset the runtime states including: runtime geometry, collision flags, machine tool position, CL strips, message buffer and etc.. public void ResetRuntime() RunCsvFile(string, string) Runs a CSV file from the specified path. public IEnumerable RunCsvFile(string baseDirectory, string relFilePath) Parameters baseDirectory string Base directory for resolving relative paths. relFilePath string Relative path to the CSV file. Returns IEnumerable An enumerable of actions to be executed. RunNc(string, string) Runs NC commands from raw text. public IEnumerable RunNc(string ncText, string fileNameAlternative = \"--\") Parameters ncText string The NC command text to execute fileNameAlternative string Alternative name to associate with the NC program Returns IEnumerable An enumerable of actions to be executed RunNcFile(string, string) Runs an NC file from the specified path. public IEnumerable RunNcFile(string baseDirectory, string relFilePath) Parameters baseDirectory string Base directory for resolving relative paths. If the value is null, BaseDirectory substitutes the value. relFilePath string Relative path to the NC file. Returns IEnumerable An enumerable of actions to be executed. SaveAsProject(string) Saves the current project to a specified relative file path. public void SaveAsProject(string projectPath) Parameters projectPath string The absolute file path SaveProject() Save project by project path. public void SaveProject() TrainMillingPara(SampleFlag, bool, double, string, CancellationToken, ICuttingPara) Train Milling Parameter. public void TrainMillingPara(SampleFlag sampleFlags, bool enableFzOnlyDuringDrilling, double outlierRatio, string dstRelFile, CancellationToken cancellationToken, ICuttingPara paraTemplate) Parameters sampleFlags SampleFlag enableFzOnlyDuringDrilling bool outlierRatio double dstRelFile string cancellationToken CancellationToken paraTemplate ICuttingPara UpdateByMachiningChain() Updates components when the machining chain changes. public void UpdateByMachiningChain() UpdateByMachiningEquipment() Call on MachiningEquipment Or MachiningChainChanged. i.e. Update By MachiningEquipment Or MachiningChain. The function is called on MachiningEquipment and its delegate property changed. If the changing is raised outer from THIS service, this updating function should be manual called. public void UpdateByMachiningEquipment() UpdateIdealMillingToolOffsetTableByToolHouse() Updates the ideal milling tool offset table based on the current tool house configuration. public void UpdateIdealMillingToolOffsetTableByToolHouse() WriteShotFile(TimeSpan, string) Writes time-based shot data to a file with the specified sampling period. public void WriteShotFile(TimeSpan samplingPeriod, string relFileTemplate = \"Output/[NcName].shot.csv\") Parameters samplingPeriod TimeSpan The time period between samples relFileTemplate string Template for the output file path, can include [NcName] placeholder WriteStepFile(string) Writes step-based data to a file. public void WriteStepFile(string relFileTemplate = \"Output/[NcName].step.csv\") Parameters relFileTemplate string Template for the output file path, can include [NcName] placeholder Events MachiningProjectChanged Event raised when the machining project changes. public event LocalProjectService.MachiningProjectChangedDelegate MachiningProjectChanged Event Type LocalProjectService.MachiningProjectChangedDelegate MachiningStepBuilt event to configure steps. The first parameter is the previous step; the second parameter is the current step. The previous step is null if no previous step exists. public event MachiningActRunner.MachiningStepBuiltDelegate MachiningStepBuilt Event Type MachiningActRunner.MachiningStepBuiltDelegate OnRanNcBlock Event triggered after an NC block is executed. public event Action OnRanNcBlock Event Type Action OnUpdatedInspectingQuantityFunc Event triggered when the inspecting quantity function is updated. public event Action OnUpdatedInspectingQuantityFunc Event Type Action WorkpieceChanged Event that is raised when the workpiece is changed. public event Action> WorkpieceChanged Event Type Action> Remarks This event is triggered whenever the workpiece property is modified. Subscribers can use this event to respond to changes in the workpiece configuration, such as updating visualizations or recalculating machining parameters. The event provides both the previous and new workpiece values through a SeqPair." }, "api/Hi.MachiningProcs.MachiningActRunner.MachiningStepBuiltDelegate.html": { "href": "api/Hi.MachiningProcs.MachiningActRunner.MachiningStepBuiltDelegate.html", @@ -1897,7 +1897,12 @@ "api/Hi.MachiningProcs.MachiningActRunner.html": { "href": "api/Hi.MachiningProcs.MachiningActRunner.html", "title": "Class MachiningActRunner | HiAPI-C# 2025", - "summary": "Class MachiningActRunner Namespace Hi.MachiningProcs Assembly HiMech.dll Represents a runner for machining actions that manages milling steps, tool paths, and collision detection. public class MachiningActRunner : IDisposable Inheritance object MachiningActRunner Implements IDisposable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningActRunner(SessionMessageHost, MongoClient, IMongoCollection, IMongoCollection, Action, ICsScriptApi, MillingActRunnerConfig) Initializes a new instance of the MachiningActRunner class. public MachiningActRunner(SessionMessageHost messageHost, MongoClient mongoClient, IMongoCollection millingStepLuggageCollection, IMongoCollection substractionSplicDbCollection, Action resetMillingStepLuggageDbAction, ICsScriptApi shellApi, MillingActRunnerConfig config = null) Parameters messageHost SessionMessageHost The milling message host. mongoClient MongoClient The MongoDB client. millingStepLuggageCollection IMongoCollection The MongoDB collection for milling step luggage. substractionSplicDbCollection IMongoCollection The MongoDB collection for subtraction slices. resetMillingStepLuggageDbAction Action Action to reset the milling step luggage database. shellApi ICsScriptApi The C# script API for the milling session. config MillingActRunnerConfig Optional configuration for the milling act runner. Properties ActStateRunner Gets the act state runner. This property is provided as a member value getter and should not be modified. public ActStateRunner ActStateRunner { get; } Property Value ActStateRunner ClStrip Gets the cutter location strip. public ClStrip ClStrip { get; } Property Value ClStrip EnableCollisionDetection Gets or sets whether collision detection is enabled. public bool EnableCollisionDetection { get; set; } Property Value bool EnablePhysics Gets or sets whether milling force evaluation is enabled. This is a runtime configuration and is not managed in XML IO. public bool EnablePhysics { get; set; } Property Value bool EnableSweeping Gets whether sweeping is enabled based on the motion resolution type. public bool EnableSweeping { get; } Property Value bool EnableWearEffect Gets or sets whether to enable coating wear effects. Note: This function is not fully prepared yet. Only affects further wear by the wear coefficient of inner material. public bool EnableWearEffect { get; set; } Property Value bool GrpcPostStepAction Gets or sets the action to be performed after each step for GRPC service. This is for internal use only. public static Action GrpcPostStepAction { get; set; } Property Value Action MachiningEquipment Gets or sets the machining equipment. public MachiningEquipment MachiningEquipment { get; set; } Property Value MachiningEquipment MachiningMotionResolution Gets or sets the machining motion resolution. public IMachiningMotionResolution MachiningMotionResolution { get; set; } Property Value IMachiningMotionResolution MachiningToolHouse Gets or sets the machining tool house. public MachiningToolHouse MachiningToolHouse { get; set; } Property Value MachiningToolHouse MachiningVolumeRemovalProc Gets the machining volume removal processor. public MachiningVolumeRemovalProc MachiningVolumeRemovalProc { get; } Property Value MachiningVolumeRemovalProc MillingActRunnerConfig Gets or sets the runner configuration. public MillingActRunnerConfig MillingActRunnerConfig { get; set; } Property Value MillingActRunnerConfig SessionMessageHost Gets or sets the milling message host. public SessionMessageHost SessionMessageHost { get; set; } Property Value SessionMessageHost StepPreferredCubeWidth Gets or sets the preferred cube width for steps. public double StepPreferredCubeWidth { get; set; } Property Value double XyzabcChain Gets the XYZABC kinematic chain if the current machining chain supports it; otherwise null. public IXyzabcChain XyzabcChain { get; } Property Value IXyzabcChain Methods AdjustAptCutterStlResolutionByNcResolutionAndWorkpieceResolution() Adjusts the APT cutter STL resolution based on NC resolution and workpiece resolution. public void AdjustAptCutterStlResolutionByNcResolutionAndWorkpieceResolution() Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() Dispose(bool) Disposes of the resources used by the MachiningActRunner. protected virtual void Dispose(bool disposing) Parameters disposing bool True to release both managed and unmanaged resources; false to release only unmanaged resources. ExpandToActMcStep(IAct) Expands an act into machine control steps. public IEnumerable ExpandToActMcStep(IAct act) Parameters act IAct The act to expand. Returns IEnumerable A sequence of machine control steps. GetMillingActRunner() Gets the current milling act runner instance. public MachiningActRunner GetMillingActRunner() Returns MachiningActRunner The current milling act runner instance. ProcAct(IAct, MachiningSession, IMachiningStepHost, IIndexedFileLine, CancellationToken) Processes an act with the given parameters. public IEnumerable ProcAct(IAct act, MachiningSession millingSession, IMachiningStepHost host, IIndexedFileLine sourceCommand, CancellationToken cancellationToken) Parameters act IAct The act to process. millingSession MachiningSession The milling session. host IMachiningStepHost The milling step host. sourceCommand IIndexedFileLine The source command. cancellationToken CancellationToken The cancellation token. Returns IEnumerable A sequence of processed objects. ResetMillingStepLuggageDb() Resets the milling step luggage database. public void ResetMillingStepLuggageDb() ResetStateAndClStrip() Resets the state and cutter location strip. public void ResetStateAndClStrip() WaitAll() Waits for all pending operations to complete. public void WaitAll() Events MachiningStepBuilt event to configure steps. The first parameter is the previous step; the second parameter is the current step. The previous step is null if no previous step exists. public event MachiningActRunner.MachiningStepBuiltDelegate MachiningStepBuilt Event Type MachiningActRunner.MachiningStepBuiltDelegate UiPostStepAction Event raised after each step for UI updates. This is for internal use only. public event Action UiPostStepAction Event Type Action" + "summary": "Class MachiningActRunner Namespace Hi.MachiningProcs Assembly HiMech.dll Represents a runner for machining actions that manages milling steps, tool paths, and collision detection. public class MachiningActRunner : IDisposable Inheritance object MachiningActRunner Implements IDisposable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningActRunner(SessionMessageHost, MongoClient, Func, Func, IMongoCollection, IMongoCollection, Action, ICsScriptApi, MachiningActRunnerConfig) Initializes a new instance. public MachiningActRunner(SessionMessageHost messageHost, MongoClient mongoClient, Func machiningToolHouseGetter, Func machiningEquipmentGetter, IMongoCollection millingStepLuggageCollection, IMongoCollection substractionSplicDbCollection, Action resetMillingStepLuggageDbAction, ICsScriptApi shellApi, MachiningActRunnerConfig config = null) Parameters messageHost SessionMessageHost The milling message host. mongoClient MongoClient The MongoDB client. machiningToolHouseGetter Func machiningEquipmentGetter Func millingStepLuggageCollection IMongoCollection The MongoDB collection for milling step luggage. substractionSplicDbCollection IMongoCollection The MongoDB collection for subtraction slices. resetMillingStepLuggageDbAction Action Action to reset the milling step luggage database. shellApi ICsScriptApi The C# script API for the milling session. config MachiningActRunnerConfig Optional configuration for the milling act runner. Properties ActStateRunner Gets the act state runner. This property is provided as a member value getter and should not be modified. public ActStateRunner ActStateRunner { get; } Property Value ActStateRunner ClStrip Gets the cutter location strip. public ClStrip ClStrip { get; } Property Value ClStrip Config Gets or sets the runner configuration. public MachiningActRunnerConfig Config { get; set; } Property Value MachiningActRunnerConfig EnableSweeping Gets whether sweeping is enabled based on the motion resolution type. public bool EnableSweeping { get; } Property Value bool GrpcPostStepAction Gets or sets the action to be performed after each step for GRPC service. This is for internal use only. public static Action GrpcPostStepAction { get; set; } Property Value Action MachiningMotionResolution Gets or sets the machining motion resolution. public IMachiningMotionResolution MachiningMotionResolution { get; set; } Property Value IMachiningMotionResolution MachiningToolHouse Gets or sets the machining tool house. public MachiningToolHouse MachiningToolHouse { get; } Property Value MachiningToolHouse MachiningVolumeRemovalProc Gets the machining volume removal processor. public MachiningVolumeRemovalProc MachiningVolumeRemovalProc { get; } Property Value MachiningVolumeRemovalProc SessionMessageHost Gets or sets the milling message host. public SessionMessageHost SessionMessageHost { get; set; } Property Value SessionMessageHost StepPreferredCubeWidth Gets or sets the preferred cube width for steps. public double StepPreferredCubeWidth { get; set; } Property Value double XyzabcChain Gets the XYZABC kinematic chain if the current machining chain supports it; otherwise null. public IXyzabcChain XyzabcChain { get; } Property Value IXyzabcChain Methods AdjustAptCutterStlResolutionByNcResolutionAndWorkpieceResolution() Adjusts the APT cutter STL resolution based on NC resolution and workpiece resolution. public void AdjustAptCutterStlResolutionByNcResolutionAndWorkpieceResolution() Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() Dispose(bool) protected virtual void Dispose(bool disposing) Parameters disposing bool ExpandToActMcStep(IAct) Expands an act into machine control steps. public IEnumerable ExpandToActMcStep(IAct act) Parameters act IAct The act to expand. Returns IEnumerable A sequence of machine control steps. GetMillingActRunner() Gets the current milling act runner instance. public MachiningActRunner GetMillingActRunner() Returns MachiningActRunner The current milling act runner instance. ProcAct(IAct, MachiningSession, IMachiningStepHost, IIndexedFileLine, CancellationToken) Processes an act with the given parameters. public IEnumerable ProcAct(IAct act, MachiningSession millingSession, IMachiningStepHost host, IIndexedFileLine sourceCommand, CancellationToken cancellationToken) Parameters act IAct The act to process. millingSession MachiningSession The milling session. host IMachiningStepHost The milling step host. sourceCommand IIndexedFileLine The source command. cancellationToken CancellationToken The cancellation token. Returns IEnumerable A sequence of processed objects. ResetMillingStepLuggageDb() Resets the milling step luggage database. public void ResetMillingStepLuggageDb() ResetStateAndClStrip() Resets the state and cutter location strip. public void ResetStateAndClStrip() UpdateByMachiningChain() Update By MachiningChain. Internal Use Only. public void UpdateByMachiningChain() UpdateByMachiningEquipment() Update By Hi.MachiningProcs.MachiningActRunner.MachiningEquipment. Internal Use Only. public void UpdateByMachiningEquipment() WaitAll() Waits for all pending operations to complete. public void WaitAll() Events MachiningStepBuilt event to configure steps. The first parameter is the previous step; the second parameter is the current step. The previous step is null if no previous step exists. public event MachiningActRunner.MachiningStepBuiltDelegate MachiningStepBuilt Event Type MachiningActRunner.MachiningStepBuiltDelegate UiPostStepAction Event raised after each step for UI updates. This is for internal use only. public event Action UiPostStepAction Event Type Action" + }, + "api/Hi.MachiningProcs.MachiningActRunnerConfig.html": { + "href": "api/Hi.MachiningProcs.MachiningActRunnerConfig.html", + "title": "Class MachiningActRunnerConfig | HiAPI-C# 2025", + "summary": "Class MachiningActRunnerConfig Namespace Hi.MachiningProcs Assembly HiMech.dll Represents the configuration for a milling act runner. Provides settings for physics simulation, evaluation, and temperature control. public class MachiningActRunnerConfig : IMakeXmlSource Inheritance object MachiningActRunnerConfig 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 MachiningActRunnerConfig() Initializes a new instance. public MachiningActRunnerConfig() MachiningActRunnerConfig(XElement, string) Initializes a new instance of the MachiningActRunnerConfig class from XML. public MachiningActRunnerConfig(XElement src, string baseDirectory) Parameters src XElement The source XML element. baseDirectory string The base directory for resolving relative paths. Properties EnableCollisionDetection Gets or sets whether collision detection is enabled. public bool EnableCollisionDetection { get; set; } Property Value bool EnableDeflectionTransformation Gets or sets whether deflection transformation is enabled. Note: This feature is pending testing. public bool EnableDeflectionTransformation { get; set; } Property Value bool EnablePauseOnFailure Enable Pause On Failure Detected. Only take effect if the EnableStrokeLimitCheck or EnableCollisionDetection is enabled. public bool EnablePauseOnFailure { get; set; } Property Value bool EnablePhysics Gets or sets whether milling force evaluation is enabled. public bool EnablePhysics { get; set; } Property Value bool EnableStrokeLimitCheck Gets or sets whether stroke limit checking is enabled. public bool EnableStrokeLimitCheck { get; set; } Property Value bool EnableWearEffect Gets or sets whether to enable coating wear effects. Note: This function is not fully prepared yet. Only affects further wear by the wear coefficient of inner material. public bool EnableWearEffect { get; set; } Property Value bool InitSpindleTemperature_C Gets or sets the initial spindle temperature in Celsius. public double InitSpindleTemperature_C { get; set; } Property Value double InitSpindleTemperature_K Gets or sets the initial spindle temperature in Kelvin. The temperature is initialized when a working session is restarted or a new session is started. public double InitSpindleTemperature_K { get; set; } Property Value double XName Gets the XML element name for serialization. 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." }, "api/Hi.MachiningProcs.MachiningParallelProc.StepTaskBundle.html": { "href": "api/Hi.MachiningProcs.MachiningParallelProc.StepTaskBundle.html", @@ -1917,23 +1922,18 @@ "api/Hi.MachiningProcs.MachiningProject.html": { "href": "api/Hi.MachiningProcs.MachiningProject.html", "title": "Class MachiningProject | HiAPI-C# 2025", - "summary": "Class MachiningProject Namespace Hi.MachiningProcs Assembly HiNc.dll Represents a milling project that manages the execution, simulation, and analysis of NC programs. public class MachiningProject : IDisposable, IMachiningStepHost, IGetMachiningEquipment, IMakeXmlSource, IMachiningProjectGetter Inheritance object MachiningProject Implements IDisposable IMachiningStepHost IGetMachiningEquipment IMakeXmlSource IMachiningProjectGetter Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningProject(string) Initializes a new instance of the MachiningProject class with the specified directory. Uses the default MongoDB connection. public MachiningProject(string baseDirectory) Parameters baseDirectory string Base directory for file operations MachiningProject(string, MongoClient) Initializes a new instance of the MachiningProject class with the specified directory and MongoDB client. public MachiningProject(string baseDirectory, MongoClient mongoClient) Parameters baseDirectory string Base directory for file operations mongoClient MongoClient MongoDB client instance MachiningProject(XElement, string) Initializes a new instance of the MachiningProject class from XML data using MongoDB. public MachiningProject(XElement src, string baseDirectory) Parameters src XElement XML element containing configuration data baseDirectory string Base directory for resolving relative paths MachiningProject(XElement, string, MongoClient) Initializes a new instance of the MachiningProject class from XML data. public MachiningProject(XElement src, string baseDirectory, MongoClient mongoClient) Parameters src XElement XML element containing configuration data baseDirectory string Base directory for resolving relative paths mongoClient MongoClient MongoDB client instance Properties ApiVersion Gets the API version from the entry assembly. public static Version ApiVersion { get; } Property Value Version BaseDirectory Gets the base directory where project files are located. public string BaseDirectory { get; } Property Value string BoundSelectorHost Gets the bound selector host for managing selection boundaries. public BoundSelectorHost BoundSelectorHost { get; } Property Value BoundSelectorHost ClStrip Gets the cutter location strip. public ClStrip ClStrip { get; } Property Value ClStrip CoordinateEntryDisplayee Gets the displayee for coordinate entry visualization. public CoordinateEntryDisplayee CoordinateEntryDisplayee { get; } Property Value CoordinateEntryDisplayee DictionaryColorGuide Gets the color guide for dictionary-based coloring. public DictionaryColorGuide DictionaryColorGuide { get; } Property Value DictionaryColorGuide EnableCollisionDetection Gets or sets whether collision detection is enabled. When set to true, initializes collision detection mechanism. public bool EnableCollisionDetection { get; set; } Property Value bool EnablePauseOnFailure Enable Pause On Failure Detected. Only take effect if the EnableCollisionDetection or EnableStrokeLimitCheck is enabled. public bool EnablePauseOnFailure { get; set; } Property Value bool EnableStrokeLimitCheck Gets or sets whether stroke limit checking is enabled. public bool EnableStrokeLimitCheck { get; set; } Property Value bool Global global variable for RuntimeApi. Not save on XML. public Dictionary Global { get; set; } Property Value Dictionary InspectingKey Gets or sets the current inspecting key for visualization. When set, updates the inspecting quantity function. public string InspectingKey { get; set; } Property Value string InspectingQuantityFunc Gets the function that retrieves the quantity value for the current inspecting key. public Func InspectingQuantityFunc { get; } Property Value Func MachiningActRunner Gets the machining act runner responsible for executing machining operations. public MachiningActRunner MachiningActRunner { get; } Property Value MachiningActRunner MachiningEquipment Gets or sets the machining equipment used for milling. Updates related components when changed. public MachiningEquipment MachiningEquipment { get; set; } Property Value MachiningEquipment MachiningSession Gets or sets the current machining session. public MachiningSession MachiningSession { get; set; } Property Value MachiningSession MachiningToolHouse Gets or sets the milling tool house containing available tools. public MachiningToolHouse MachiningToolHouse { get; set; } Property Value MachiningToolHouse MachiningToolHouseFile Gets or sets the file path to the milling tool house configuration. public string MachiningToolHouseFile { get; set; } Property Value string MillingActRunnerConfig Gets or sets the configuration for the milling act runner. public MillingActRunnerConfig MillingActRunnerConfig { get; set; } Property Value MillingActRunnerConfig MillingGuide Gets or sets the milling guide containing visualization and analysis configurations. public MillingGuide MillingGuide { get; set; } Property Value MillingGuide MillingStepLuggageReader Gets the reader for accessing milling step luggage data. public ParallelBulkReader MillingStepLuggageReader { get; } Property Value ParallelBulkReader NcEnv Gets the NC environment from the NC runner. public NcEnv NcEnv { get; } Property Value NcEnv NcOptOptionDictionary Gets or sets the dictionary of NC optimization options. public Dictionary NcOptOptionDictionary { get; set; } Property Value Dictionary NcOptProc Gets the NC optimization processor for optimizing NC programs. public NcOptProc NcOptProc { get; } Property Value NcOptProc NcRunner Gets the NC runner responsible for executing NC programs. public NcRunner NcRunner { get; } Property Value NcRunner PacePlayer Gets the pace player for controlling execution pace of milling operations. public PacePlayer PacePlayer { get; } Property Value PacePlayer PlayerCommand Gets the command to execute when playing the machining project. public IShellCommand PlayerCommand { get; set; } Property Value IShellCommand Progress Gets the progress reporting mechanism for long-running operations. public Progress Progress { get; } Property Value Progress RuntimeApi Gets the shell API for interacting with this machining process. public RuntimeApi RuntimeApi { get; } Property Value RuntimeApi SessionMessageHost Gets the message host for displaying messages, warnings, and errors. public SessionMessageHost SessionMessageHost { get; } Property Value SessionMessageHost StepPropertyAccessDictionary Gets the dictionary mapping property keys to their access methods. public ConcurrentDictionary> StepPropertyAccessDictionary { get; } Property Value ConcurrentDictionary> TimeMapping Gets or sets the time mapping for synchronizing different time-based data streams. Creates a new time mapping if one doesn't exist. public TimeMapping TimeMapping { get; set; } Property Value TimeMapping Workpiece Gets or sets the workpiece to be machined. Ensures proper initialization of workpiece properties. public Workpiece Workpiece { get; set; } Property Value Workpiece XName Name for XML IO. public static string XName { get; } Property Value string Methods Act(IAct, IIndexedFileLine, CancellationToken?) Executes an act and collects all results. public void Act(IAct act, IIndexedFileLine sourceCommand = null, CancellationToken? cancellationToken = null) Parameters act IAct The act to execute. sourceCommand IIndexedFileLine The source command that triggered the act. cancellationToken CancellationToken? Cancellation token to cancel the operation. BeginSession() Initiate a simulation session. Clear the state from previous session (if existed). public void BeginSession() Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() Dispose(bool) protected virtual void Dispose(bool disposing) Parameters disposing bool EndSession() Ends the current machining session and releases associated resources. public void EndSession() GetInspectingKeyPresentName(StringLocalizer) Gets the localized presentation name for the current inspecting key. public string GetInspectingKeyPresentName(StringLocalizer stringLocalizer) Parameters stringLocalizer StringLocalizer The string localizer to use for localization Returns string The localized presentation name GetMachiningProject() Gets the MachiningProject instance. public MachiningProject GetMachiningProject() Returns MachiningProject The MachiningProject instance. GetMillingEquipment() Get MachiningEquipment. public MachiningEquipment GetMillingEquipment() Returns MachiningEquipment MachiningEquipment LoadFile(string) Loads a machining project from the specified file path. public static MachiningProject LoadFile(string projectFilePath) Parameters projectFilePath string Path to the project file to load Returns MachiningProject A new machining project instance loaded from the file MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. PlayCsvFile(string, string) Plays a CSV file from the specified path. public void PlayCsvFile(string baseDirectory, string relFilePath) Parameters baseDirectory string Base directory for resolving relative paths. relFilePath string Relative path to the CSV file. PlayNc(string, string) Plays NC commands from raw text with pace control. public void PlayNc(string ncText, string fileNameAlternative = \"--\") Parameters ncText string The NC command text to execute fileNameAlternative string Alternative name to associate with the NC program PlayNcFile(string, string) Plays an NC file from the specified path with pace control. public void PlayNcFile(string baseDirectory, string relFilePath) Parameters baseDirectory string Base directory for resolving relative paths relFilePath string Relative path to the NC file ProcAct(IAct, IIndexedFileLine, CancellationToken?) Processes an act and returns the results. public IEnumerable ProcAct(IAct act, IIndexedFileLine sourceCommand = null, CancellationToken? cancellationToken = null) Parameters act IAct The act to process. sourceCommand IIndexedFileLine The source command that triggered the act. cancellationToken CancellationToken? Cancellation token to cancel the operation. Returns IEnumerable Enumerable of results from processing the act. ReTrainMillingPara(SampleFlag, double, string, CancellationToken) Train Milling Parameter. public void ReTrainMillingPara(SampleFlag sampleFlags, double outlierRatio, string dstRelFile, CancellationToken cancellationToken) Parameters sampleFlags SampleFlag outlierRatio double dstRelFile string cancellationToken CancellationToken RefreshDrawing() Refreshes the visual display of the milling course. public void RefreshDrawing() ResetRuntime() Reset the runtime states including: runtime geometry, collision flags, machine tool position, CL strips, message buffer and etc.. public void ResetRuntime() RunCsvFile(string, string) Runs a CSV file from the specified path. public IEnumerable RunCsvFile(string baseDirectory, string relFilePath) Parameters baseDirectory string Base directory for resolving relative paths. relFilePath string Relative path to the CSV file. Returns IEnumerable An enumerable of actions to be executed. RunNc(string, string) Runs NC commands from raw text. public IEnumerable RunNc(string ncText, string fileNameAlternative = \"--\") Parameters ncText string The NC command text to execute fileNameAlternative string Alternative name to associate with the NC program Returns IEnumerable An enumerable of actions to be executed RunNcFile(string, string) Runs an NC file from the specified path. public IEnumerable RunNcFile(string baseDirectory, string relFilePath) Parameters baseDirectory string Base directory for resolving relative paths. If the value is null, BaseDirectory substitutes the value. relFilePath string Relative path to the NC file. Returns IEnumerable An enumerable of actions to be executed. TrainMillingPara(SampleFlag, bool, double, string, CancellationToken, ICuttingPara) Train Milling Parameter. public void TrainMillingPara(SampleFlag sampleFlags, bool enableFzOnlyDuringDrilling, double outlierRatio, string dstRelFile, CancellationToken cancellationToken, ICuttingPara paraTemplate) Parameters sampleFlags SampleFlag enableFzOnlyDuringDrilling bool outlierRatio double dstRelFile string cancellationToken CancellationToken paraTemplate ICuttingPara UpdateIdealMillingToolOffsetTableByToolHouse() Updates the ideal milling tool offset table based on the current tool house configuration. public void UpdateIdealMillingToolOffsetTableByToolHouse() WriteShotFile(TimeSpan, string) Writes time-based shot data to a file with the specified sampling period. public void WriteShotFile(TimeSpan samplingPeriod, string relFileTemplate = \"Output/[NcName].shot.csv\") Parameters samplingPeriod TimeSpan The time period between samples relFileTemplate string Template for the output file path, can include [NcName] placeholder WriteStepFile(string) Writes step-based data to a file. public void WriteStepFile(string relFileTemplate = \"Output/[NcName].step.csv\") Parameters relFileTemplate string Template for the output file path, can include [NcName] placeholder Events OnRanNcBlock Event triggered after an NC block is executed. public event Action OnRanNcBlock Event Type Action OnUpdatedInspectingQuantityFunc Event triggered when the inspecting quantity function is updated. public event Action OnUpdatedInspectingQuantityFunc Event Type Action" + "summary": "Class MachiningProject Namespace Hi.MachiningProcs Assembly HiNc.dll Represents a milling project that manages the execution, simulation, and analysis of NC programs. public class MachiningProject : IDisposable, IMakeXmlSource, IMachiningProjectGetter Inheritance object MachiningProject Implements IDisposable IMakeXmlSource IMachiningProjectGetter Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningProject(string) Initializes a new instance with the specified directory. public MachiningProject(string baseDirectory) Parameters baseDirectory string Base directory for file operations MachiningProject(XElement, string) Initializes a new instance from XML data. public MachiningProject(XElement src, string baseDirectory) Parameters src XElement XML element containing configuration data baseDirectory string Base directory for resolving relative paths Properties ApiVersion Gets the API version from the entry assembly. public static Version ApiVersion { get; } Property Value Version BaseDirectory Gets the base directory where project files are located. public string BaseDirectory { get; } Property Value string DictionaryColorGuide public DictionaryColorGuide DictionaryColorGuide { get; } Property Value DictionaryColorGuide MachiningActRunnerConfig Gets or sets the configuration for the milling act runner. public MachiningActRunnerConfig MachiningActRunnerConfig { get; set; } Property Value MachiningActRunnerConfig MachiningToolHouse public MachiningToolHouse MachiningToolHouse { get; set; } Property Value MachiningToolHouse MachiningToolHouseFile Gets or sets the file path to the milling tool house configuration. public string MachiningToolHouseFile { get; set; } Property Value string MillingGuide Gets or sets the milling guide containing visualization and analysis configurations. public MillingGuide MillingGuide { get; set; } Property Value MillingGuide NcEnv public NcEnv NcEnv { get; set; } Property Value NcEnv PlayerCommand Gets the command to execute when playing the machining project. public IShellCommand PlayerCommand { get; set; } Property Value IShellCommand TimeMapping Gets or sets the time mapping for synchronizing different time-based data streams. public TimeMapping TimeMapping { get; set; } Property Value TimeMapping XName Name for XML IO. public static string XName { get; } Property Value string Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() Dispose(bool) protected virtual void Dispose(bool disposing) Parameters disposing bool GetMachiningProject() Gets the MachiningProject instance. public MachiningProject GetMachiningProject() Returns MachiningProject The MachiningProject instance. GetMillingEquipment() public MachiningEquipment GetMillingEquipment() Returns MachiningEquipment LoadFile(string) Loads a machining project from the specified file path. public static MachiningProject LoadFile(string projectFilePath) Parameters projectFilePath string Path to the project file to load Returns MachiningProject A new machining project instance loaded from the file MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file." }, "api/Hi.MachiningProcs.MachiningProjectDisplayee.html": { "href": "api/Hi.MachiningProcs.MachiningProjectDisplayee.html", "title": "Class MachiningProjectDisplayee | HiAPI-C# 2025", - "summary": "Class MachiningProjectDisplayee Namespace Hi.MachiningProcs Assembly HiNc.dll Represents a displayable wrapper for a machining project. public class MachiningProjectDisplayee : IDisplayee, IExpandToBox3d, IGetAnchor, IGetTopoIndex Inheritance object MachiningProjectDisplayee Implements IDisplayee IExpandToBox3d IGetAnchor IGetTopoIndex Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningProjectDisplayee(MachiningProject, BitArray) Initializes a new instance of the MachiningProjectDisplayee class. public MachiningProjectDisplayee(MachiningProject machiningProject, BitArray renderingFlagBitArray) Parameters machiningProject MachiningProject The machining project to display. renderingFlagBitArray BitArray The bit array controlling rendering flags. MachiningProjectDisplayee(Func) Initializes a new instance of the MachiningProjectDisplayee class with default rendering flags. public MachiningProjectDisplayee(Func machiningProjectGetter) Parameters machiningProjectGetter Func The function that provides the machining project. Properties HeidenhainCoordinateEntryDisplayee Gets the Heidenhain coordinate entry displayee for Heidenhain-based coordinate systems. public HeidenhainCoordinateEntryDisplayee HeidenhainCoordinateEntryDisplayee { get; } Property Value HeidenhainCoordinateEntryDisplayee IsoCoordinateEntryDisplayee Gets the ISO coordinate entry displayee for ISO-based coordinate systems. public IsoCoordinateEntryDisplayee IsoCoordinateEntryDisplayee { get; } Property Value IsoCoordinateEntryDisplayee MachiningProject Gets the current milling course from the host function. public MachiningProject MachiningProject { get; } Property Value MachiningProject MachiningProjectGetter Gets or sets the function that provides the machining project. public Func MachiningProjectGetter { get; set; } Property Value Func RenderingFlagBitArray Gets or sets the bit array that controls which elements are rendered. public BitArray RenderingFlagBitArray { get; set; } Property Value BitArray Methods Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. ExpandToBox3d(Box3d) Expands the destination box. This function is usually used to compute the bounding box of elements. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d Destination box GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor" + "summary": "Class MachiningProjectDisplayee Namespace Hi.MachiningProcs Assembly HiNc.dll Represents a displayable wrapper for a machining project. public class MachiningProjectDisplayee : IDisplayee, IExpandToBox3d, IGetAnchor, IGetTopoIndex Inheritance object MachiningProjectDisplayee Implements IDisplayee IExpandToBox3d IGetAnchor IGetTopoIndex Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningProjectDisplayee(LocalProjectService) Initializes a new instance of the MachiningProjectDisplayee class with default rendering flags. public MachiningProjectDisplayee(LocalProjectService localProjectService) Parameters localProjectService LocalProjectService Properties HeidenhainCoordinateEntryDisplayee Gets the Heidenhain coordinate entry displayee for Heidenhain-based coordinate systems. public HeidenhainCoordinateEntryDisplayee HeidenhainCoordinateEntryDisplayee { get; } Property Value HeidenhainCoordinateEntryDisplayee IsoCoordinateEntryDisplayee Gets the ISO coordinate entry displayee for ISO-based coordinate systems. public IsoCoordinateEntryDisplayee IsoCoordinateEntryDisplayee { get; } Property Value IsoCoordinateEntryDisplayee LocalProjectService Gets or sets the function that provides the machining project. public LocalProjectService LocalProjectService { get; set; } Property Value LocalProjectService MachiningProject Gets the current milling course from the host function. public MachiningProject MachiningProject { get; } Property Value MachiningProject RenderingFlagBitArray Gets or sets the bit array that controls which elements are rendered. public BitArray RenderingFlagBitArray { get; set; } Property Value BitArray Methods Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. ExpandToBox3d(Box3d) Expands the destination box. This function is usually used to compute the bounding box of elements. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d Destination box GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor" }, "api/Hi.MachiningProcs.MachiningSession.html": { "href": "api/Hi.MachiningProcs.MachiningSession.html", "title": "Class MachiningSession | HiAPI-C# 2025", "summary": "Class MachiningSession Namespace Hi.MachiningProcs Assembly HiMech.dll Represents a machining session that manages the execution and optimization of machining operations. Provides functionality for controlling the machining process, handling optimization options, and managing session state. public class MachiningSession Inheritance object MachiningSession Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties CurrentSourceCommand Gets or sets the current source command being processed. public IIndexedFileLine CurrentSourceCommand { get; set; } Property Value IIndexedFileLine Data Gets or sets the data dictionary for the player session. public Dictionary Data { get; set; } Property Value Dictionary IsNcOptOptionListUpdatedByStep Internal Use Only. public bool IsNcOptOptionListUpdatedByStep { get; set; } Property Value bool NcOptOption Gets or sets the NC optimization options for UI operations. public NcOptOption NcOptOption { get; set; } Property Value NcOptOption PacePlayee Internal set only. public PacePlayee PacePlayee { get; set; } Property Value PacePlayee StepIndexToNcOptOptionSortedList Gets or sets the mapping of step indices to NC optimization options. For internal use only. Takes effect during internal optimization process. public SortedList StepIndexToNcOptOptionSortedList { get; set; } Property Value SortedList StepTaskBundle Gets or sets the current step task bundle. public MachiningParallelProc.StepTaskBundle StepTaskBundle { get; set; } Property Value MachiningParallelProc.StepTaskBundle Methods BeginPreserve() Begins a preserve section in the optimization process. public void BeginPreserve() EndPreserve() Ends a preserve section in the optimization process. public void EndPreserve() Preserve() Preserves one line of NC code in the optimization process. public void Preserve() UpdateNcOptOptionMapIfNeeded(int) Updates the NC optimization option map if needed. Internal use only. public bool UpdateNcOptOptionMapIfNeeded(int stepIndex) Parameters stepIndex int The index of the step to update. Returns bool True if the map was updated; otherwise, false. Events OnCurrentLineEnd Event raised when the current line ends. The event buffer is cleared on every line change. public event Action OnCurrentLineEnd Event Type Action" }, - "api/Hi.MachiningProcs.MillingActRunnerConfig.html": { - "href": "api/Hi.MachiningProcs.MillingActRunnerConfig.html", - "title": "Class MillingActRunnerConfig | HiAPI-C# 2025", - "summary": "Class MillingActRunnerConfig Namespace Hi.MachiningProcs Assembly HiMech.dll Represents the configuration for a milling act runner. Provides settings for physics simulation, evaluation, and temperature control. public class MillingActRunnerConfig : IMakeXmlSource Inheritance object MillingActRunnerConfig 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 MillingActRunnerConfig() Initializes a new instance of the MillingActRunnerConfig class. public MillingActRunnerConfig() MillingActRunnerConfig(XElement, string) Initializes a new instance of the MillingActRunnerConfig class from XML. public MillingActRunnerConfig(XElement src, string baseDirectory) Parameters src XElement The source XML element. baseDirectory string The base directory for resolving relative paths. Properties EnableDeflectionTransformation Gets or sets whether deflection transformation is enabled. Note: This feature is pending testing. public bool EnableDeflectionTransformation { get; set; } Property Value bool InitSpindleTemperature_C Gets or sets the initial spindle temperature in Celsius. public double InitSpindleTemperature_C { get; set; } Property Value double InitSpindleTemperature_K Gets or sets the initial spindle temperature in Kelvin. The temperature is initialized when a working session is restarted or a new session is started. public double InitSpindleTemperature_K { get; set; } Property Value double XName Gets the XML element name for serialization. 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." - }, "api/Hi.MachiningProcs.MillingUtil.html": { "href": "api/Hi.MachiningProcs.MillingUtil.html", "title": "Class MillingUtil | HiAPI-C# 2025", @@ -1952,12 +1952,12 @@ "api/Hi.MachiningProcs.RuntimeApi.html": { "href": "api/Hi.MachiningProcs.RuntimeApi.html", "title": "Class RuntimeApi | HiAPI-C# 2025", - "summary": "Class RuntimeApi Namespace Hi.MachiningProcs Assembly HiNc.dll Runtime API for machining operations. public class RuntimeApi : ICsScriptApi Inheritance object RuntimeApi Implements ICsScriptApi Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties DefaultParaTemplateDimension Gets or sets the parameter template dimension (2D or 3D). [JsAce] public int DefaultParaTemplateDimension { get; set; } Property Value int DiffVisualRadius_mm Gets or sets the visual radius in millimeters for difference visualization. Controls the radius used for highlighting differences between workpiece states. [JsAce] public double DiffVisualRadius_mm { get; set; } Property Value double DispCacheMb Gets or sets the display cache size in megabytes. public long DispCacheMb { get; set; } Property Value long DispCache_Mb Gets or sets the display cache size in megabytes. [JsAce] public long DispCache_Mb { get; set; } Property Value long EmbeddedLogMode Gets or sets the embedded log mode for NC optimization. [JsAce] public static NcOptimizationEmbeddedLogMode EmbeddedLogMode { get; set; } Property Value NcOptimizationEmbeddedLogMode EnableAutoMapOnSelectionEnd Gets or sets whether to automatically map selections when they end. [JsAce] public bool EnableAutoMapOnSelectionEnd { get; set; } Property Value bool EnableCollisionDetection Gets or sets whether collision detection is enabled. [JsAce(DocContentHtml = \"Enable Collision Detection.\")] public bool EnableCollisionDetection { get; set; } Property Value bool EnableIndividualStepAdjustmentLog Gets or sets whether to enable individual step adjustment logging. [JsAce] public static bool EnableIndividualStepAdjustmentLog { get; set; } Property Value bool EnablePauseOnCollision Obsoleted. Gets or sets whether to pause execution when a collision is detected. This property only has an effect if collision detection is enabled. public bool EnablePauseOnCollision { get; set; } Property Value bool EnablePauseOnFailure Gets or sets whether to pause on failure during execution. [JsAce(DocContentHtml = \"Enable Pause On Failure.\")] public bool EnablePauseOnFailure { get; set; } Property Value bool EnablePhysics Gets or sets whether milling force evaluation is enabled. [JsAce(DocContentHtml = \"Enable milling force evaluation.\")] public bool EnablePhysics { get; set; } Property Value bool EnableWearEffect Gets or sets whether tool wear effects are enabled in simulation. [JsAce] public bool EnableWearEffect { get; set; } Property Value bool FeedPerCycle Gets a new feed per cycle machining motion resolution instance. [JsAce] public FeedPerCycleMachiningMotionResolution FeedPerCycle { get; } Property Value FeedPerCycleMachiningMotionResolution FeedPerTooth Gets a new feed per tooth machining motion resolution instance. [JsAce] public FeedPerToothMachiningMotionResolution FeedPerTooth { get; } Property Value FeedPerToothMachiningMotionResolution Fixture Gets or sets the fixture. [JsAce] public Fixture Fixture { get; set; } Property Value Fixture Global Global variables. [JsAce(\"Global[$1key]\")] public Dictionary Global { get; } Property Value Dictionary InitSpindleTemperature_C Gets or sets the initial spindle temperature in degrees Celsius. [JsAce(DocContentHtml = \"Spindle Temperature on initialization.\")] public double InitSpindleTemperature_C { get; set; } Property Value double JsAceCompletionProfileJsonArray Internal used. public static JsonArray JsAceCompletionProfileJsonArray { get; } Property Value JsonArray MachiningMotionResolution Gets or sets the machining motion resolution. [JsAce] public IMachiningMotionResolution MachiningMotionResolution { get; set; } Property Value IMachiningMotionResolution MachiningResolution Gets or sets the machining resolution in millimeters. For legacy compatable. [JsAce] [Obsolete(\"Use MachiningResolution_mm instead.\")] public double MachiningResolution { get; set; } Property Value double MachiningResolution_mm Gets or sets the machining resolution in millimeters. [JsAce] public double MachiningResolution_mm { get; set; } Property Value double MachiningSession public MachiningSession MachiningSession { get; } Property Value MachiningSession MapTask Task tracking the status of mapping operations. public Task MapTask { get; set; } Property Value Task MillingCycleDivisionNum Gets or sets the number of divisions per cycle for milling force calculation. This property should be set before milling force evaluation if TrainMillingPara(SampleFlag, string, double, ICuttingPara) is intended to be used. [JsAce] public static int MillingCycleDivisionNum { get; set; } Property Value int MillingForceCycleDivisionNum Gets or sets the number of divisions per cycle for milling force calculation. This property should be set before milling force evaluation if TrainMillingPara(SampleFlag, string, double, ICuttingPara) is intended to be used. [JsAce] [Obsolete(\"Use MillingCycleDivisionNum instead.\")] public static int MillingForceCycleDivisionNum { get; set; } Property Value int NcOptOption Gets or sets the NC optimization options. [JsAce] public NcOptOption NcOptOption { get; set; } Property Value NcOptOption OptEnableDepthCompensation Enables or disables depth compensation during optimization. [JsAce] public bool OptEnableDepthCompensation { get; set; } Property Value bool OptEnableFeedrate Gets or sets whether to enable feed rate optimization in NC optimization. [JsAce] public bool OptEnableFeedrate { get; set; } Property Value bool OptEnableForwardCompensation Enables or disables forward compensation during optimization. [JsAce] public bool OptEnableForwardCompensation { get; set; } Property Value bool OptEnableInterpolation Enables or disables reinterpolation for optimization. [JsAce] public bool OptEnableInterpolation { get; set; } Property Value bool OptEnableSideCompensation Enables or disables side compensation during optimization. [JsAce] public bool OptEnableSideCompensation { get; set; } Property Value bool OptExtendedPostDistance_mm Gets or sets the extended post-distance in millimeters for NC optimization. This is the distance after the current segment that will be considered for optimization. [JsAce] public double OptExtendedPostDistance_mm { get; set; } Property Value double OptExtendedPreDistance_mm Gets or sets the extended pre-distance in millimeters for NC optimization. This is the distance before the current segment that will be considered for optimization. [JsAce] public double OptExtendedPreDistance_mm { get; set; } Property Value double OptFeedrateAssignmentRatio Gets or sets the feedrate assignment ratio for optimization. If the feedrate change exceeds this ratio, the feedrate in the NC line will be updated. [JsAce] public double OptFeedrateAssignmentRatio { get; set; } Property Value double OptMaxAcceleration_mmds2 Maximum acceleration in mm/s² during optimization. Only takes effect on reinterpolated section. [JsAce(DocContentHtml = \"Only take effect on reinterpolated section.\")] public double OptMaxAcceleration_mmds2 { get; set; } Property Value double OptMaxFeedPerTooth_mm Gets or sets the maximum feed per tooth in millimeters for optimization. [JsAce] public double OptMaxFeedPerTooth_mm { get; set; } Property Value double OptMaxFeedrate_mmdmin Maximum feed rate in mm/min for cutting movements during optimization. [JsAce] public double OptMaxFeedrate_mmdmin { get; set; } Property Value double OptMaxJerk_mmds3 Maximum jerk in mm/s³ during optimization. Only takes effect on reinterpolated section. [JsAce(DocContentHtml = \"Only take effect on reinterpolated section.\")] public double OptMaxJerk_mmds3 { get; set; } Property Value double OptMinFeedPerTooth_mm Gets or sets the minimum feed per tooth in millimeters for optimization. [JsAce] public double OptMinFeedPerTooth_mm { get; set; } Property Value double OptMinFeedrate_mmdmin Minimum feed rate in mm/min for cutting movements during optimization. [JsAce] public double OptMinFeedrate_mmdmin { get; set; } Property Value double OptPreferedForce_N Preferred force in N for optimization. [JsAce] public double OptPreferedForce_N { get; set; } Property Value double OptRapidFeed_mmdmin Rapid feed rate in mm/min for non-cutting movements during optimization. [JsAce] public double OptRapidFeed_mmdmin { get; set; } Property Value double OptSpindlePowerSafetyFactor Safety factor for spindle power during optimization. [JsAce] public double OptSpindlePowerSafetyFactor { get; set; } Property Value double OptSpindlePowerUtilizationFactor Utilization factor for spindle power during optimization. It is the reciprocal of the spindle power safety factor. [JsAce] public double OptSpindlePowerUtilizationFactor { get; set; } Property Value double OptSpindleTorqueSafetyFactor Gets or sets the spindle torque safety factor for NC optimization. [JsAce] public double OptSpindleTorqueSafetyFactor { get; set; } Property Value double OptSpindleTorqueUtilizationFactor Utilization factor for spindle torque during optimization. It is the reciprocal of the spindle torque safety factor. [JsAce] public double OptSpindleTorqueUtilizationFactor { get; set; } Property Value double OptThermalYieldSafetyFactor Safety factor for spindle torque during optimization. [JsAce] public double OptThermalYieldSafetyFactor { get; set; } Property Value double OptThermalYieldUtilizationFactor Utilization factor for thermal yield during optimization. It is the reciprocal of the thermal yield safety factor. [JsAce] public double OptThermalYieldUtilizationFactor { get; set; } Property Value double OptYieldingSafetyFactor Safety factor for yielding during optimization. [JsAce] public double OptYieldingSafetyFactor { get; set; } Property Value double OptYieldingUtilizationFactor Utilization factor for yielding during optimization. It is the reciprocal of the yielding safety factor. [JsAce] public double OptYieldingUtilizationFactor { get; set; } Property Value double ScriptOptions ScriptOptions. public ScriptOptions ScriptOptions { get; set; } Property Value ScriptOptions SessionMessageHost Gets the session message host for displaying messages. [JsAce] public SessionMessageHost SessionMessageHost { get; } Property Value SessionMessageHost StepCount Gets the total number of milling steps. [JsAce] public int StepCount { get; } Property Value int Workpiece Gets or sets the workpiece. [JsAce] public Workpiece Workpiece { get; set; } Property Value Workpiece Methods AddTimeDataByFile(string, string, double, double) Adds time-based data from a file to the time mapping dictionary with specified time bounds in seconds. [JsAce(\"AddTimeDataByFile($1key, $2relFile, $3beginTime, $4endTime)\")] public bool AddTimeDataByFile(string key, string relFile, double beginTime, double endTime) Parameters key string Key to identify the data relFile string Relative path to the data file beginTime double Beginning time in seconds endTime double Ending time in seconds Returns bool True if the data was successfully added, false otherwise AddTimeDataByFile(string, string, string, string) Adds time-based data from a file to the time mapping dictionary with specified time bounds. [JsAce(\"AddTimeDataByFile($1key, $2relFile, $3beginTime, $4endTime)\")] public bool AddTimeDataByFile(string key, string relFile, string beginTimeText, string endTimeText) Parameters key string Key to identify the data relFile string Relative path to the data file beginTimeText string Beginning time as text (seconds or TimeSpan format) endTimeText string Ending time as text (seconds or TimeSpan format) Returns bool True if the data was successfully added, false otherwise AppendMessagesToFile(string, params string[]) Appends messages to a file, optionally filtered by tags. [JsAce(\"AppendMessagesToFile(\\\"dstRelFile\\\",flags)\")] public void AppendMessagesToFile(string dstRelFile, params string[] flags) Parameters dstRelFile string Destination relative file path flags string[] Optional flags to filter messages by tags BeginPreserve() Begin Preserve section in optimzation process. [JsAce(\"BeginPreserve()\")] public void BeginPreserve() BeginSelection(string, AnchorMode, IStepShift) Begin mark on current line. milling step() has not triggered yet. public void BeginSelection(string key, AnchorMode anchorMode = AnchorMode.LineBegin, IStepShift shift = null) Parameters key string Identifier key for the selection anchorMode AnchorMode Mode for anchoring the beginning of selection shift IStepShift Step shift to apply BeginSession() Begins a new machining session. Not for end user. public void BeginSession() ClearTimeMappingData() Clears all time mapping data. [JsAce] public void ClearTimeMappingData() Diff(double) Performs a difference analysis on the workpiece geometry to detect variations. [JsAce(\"Diff($1detectionRadius_mm)\")] public void Diff(double detectionRadius_mm) Parameters detectionRadius_mm double Radius for detecting differences EndPreserve() End Preserve section in optimzation process. [JsAce(\"EndPreserve()\")] public void EndPreserve() EndSelection(string, AnchorMode, IStepShift) End mark on current line for selection. public void EndSelection(string key, AnchorMode anchorMode = AnchorMode.LineEnd, IStepShift shift = null) Parameters key string Identifier key for the selection anchorMode AnchorMode Mode for anchoring the end of selection shift IStepShift Step shift to apply EndSession() Ends the current machining session. Not for end user. public void EndSession() ErrorMessage(string) Displays an error message in the message host. [JsAce(\"ErrorMessage($1message)\")] public void ErrorMessage(string message) Parameters message string The error message to display FixedPace(double, double) Creates a fixed machining motion resolution with specified parameters. [JsAce(\"FixedPace($1linearResolution_mm, $2rotaryResolution_deg)\")] public FixedMachiningMotionResolution FixedPace(double linearResolution_mm, double rotaryResolution_deg) Parameters linearResolution_mm double Linear resolution in millimeters rotaryResolution_deg double Rotary resolution in degrees Returns FixedMachiningMotionResolution A new fixed machining motion resolution instance GetMillingStep(int) Retrieves a milling step at the specified index. [JsAce(Snippet = \"GetMillingStep($1\\\"stepIndex\\\")\")] public MachiningStep GetMillingStep(int stepIndex) Parameters stepIndex int Index of the milling step to retrieve Returns MachiningStep The milling step at the specified index GetStickMachiningToolObservationHeight_mm(int) Gets the observation height in millimeters for the specified stick machining tool. [JsAce(\"GetStickMachiningToolObservationHeight_mm($1toolId)\")] public double GetStickMachiningToolObservationHeight_mm(int toolId) Parameters toolId int The ID of the tool Returns double The observation height in millimeters GetUniformContourTrayShiftAngle_deg(int) Gets the shift angle in degrees for the uniform contour tray of the specified tool. [JsAce(\"GetUniformContourTrayShiftAngle_deg($1toolId)\")] public double GetUniformContourTrayShiftAngle_deg(int toolId) Parameters toolId int The ID of the tool Returns double The shift angle in degrees LineSelection(string, AnchorMode, IStepShift, AnchorMode, IStepShift) Create a line selection from begin to end mark. public void LineSelection(string key, AnchorMode beginAnchorMode = AnchorMode.LineBegin, IStepShift beginShift = null, AnchorMode endAnchorMode = AnchorMode.LineEnd, IStepShift endShift = null) Parameters key string Identifier key for the selection beginAnchorMode AnchorMode Mode for anchoring the beginning of selection beginShift IStepShift Step shift to apply at beginning endAnchorMode AnchorMode Mode for anchoring the end of selection endShift IStepShift Step shift to apply at end LoadCuttingParaByFile(string) Loads cutting parameters from a file. [JsAce(\"LoadCuttingParaByFile($1\\\"relFile\\\")\")] public void LoadCuttingParaByFile(string relFile) Parameters relFile string File path relative to BaseDirectory. Map(string, FileTimeSection, CycleSamplingMode?) Maps selection data to time section. public Task Map(string key, FileTimeSection fileTimeSection = null, StepTimeShotUtil.CycleSamplingMode? cycleSamplingMode = CycleSamplingMode.SpindleCycle) Parameters key string Identifier key for the selection fileTimeSection FileTimeSection File time section, or null to use the one associated with the key cycleSamplingMode StepTimeShotUtil.CycleSamplingMode? Cycle sampling mode Returns Task Task representing the asynchronous mapping operation MapByActualTime(string, CycleSamplingMode) Maps machining steps by actual time from a time shot file. [JsAce(\"MapByActualTime($1timeShotRelFile)\")] public void MapByActualTime(string timeShotRelFile, StepTimeShotUtil.CycleSamplingMode cycleSamplingMode = CycleSamplingMode.SpindleCycle) Parameters timeShotRelFile string Relative path to the time shot file. cycleSamplingMode StepTimeShotUtil.CycleSamplingMode The cycle sampling mode. Message(string) Displays a message in the message host. [JsAce(\"Message($1message)\")] public void Message(string message) Parameters message string The message to display OptCallPreferFuncIndexDictionary() Gets the dictionary of preferred function index for NC optimization. [JsAce(\"OptCallPreferFuncIndexDictionary()\")] public Dictionary, double> OptCallPreferFuncIndexDictionary() Returns Dictionary, double> Dictionary mapping functions to their preference indexes. OptimizeToFiles(string) Optimizes NC files and saves results using the specified file template. [JsAce(Snippet = \"OptimizeToFiles(\\\"Output/Opt-[NcName]\\\")\", DocContentHtml = \"Optimize To Files by substitude template keywoard \\\"[NcName]\\\"\")] public void OptimizeToFiles(string relFileTemplate = \"Output/Opt-[NcName]\") Parameters relFileTemplate string Template for output file path, can include [NcName] placeholder Pace() A pausable mark for the playing process. The function enables Pause() to take effect. [JsAce(\"Pace();\")] public void Pace() Remarks Waits for the player to signal the next pace. Pause() Pause Player [JsAce(DocContentHtml = \"Pause Player\")] public void Pause() PlayAct(IAct, IIndexedFileLine, CancellationToken?) Plays an act with pacing control. [JsAce] public void PlayAct(IAct act, IIndexedFileLine sourceCommand = null, CancellationToken? cancellationToken = null) Parameters act IAct The act to play. sourceCommand IIndexedFileLine The source command. cancellationToken CancellationToken? Cancellation token. PlayClTeleport(double, double, double, double, double, double) Plays a CL (cutter location) teleport operation. [JsAce] public void PlayClTeleport(double x, double y, double z, double i, double j, double k) Parameters x double X coordinate. y double Y coordinate. z double Z coordinate. i double I vector component. j double J vector component. k double K vector component. PlayCsvFile(string) Plays an Csv file with the specified relative path. [JsAce(\"PlayCsvFile($1\\\"csvFile\\\");\")] public void PlayCsvFile(string relFilePath) Parameters relFilePath string Relative path to the CSV file PlayNc(string, string) Plays NC code directly from a string, executing each action and pacing between them. [JsAce(Snippet = \"PlayNc($1\\\"ncCommand\\\",$2\\\"\\\"(Direct Command)\\\"\\\");\", DocContentHtml = \"Play NC. second parameter is the file name alternative shows in the log.\")] public void PlayNc(string ncText, string fileNameAlternative = \"--\") Parameters ncText string NC code as a string fileNameAlternative string Alternative name to display in logs PlayNcFile(string) Plays an NC file with the specified relative path. [JsAce(\"PlayNcFile($1\\\"ncFile\\\");\")] public void PlayNcFile(string relNcFilePath) Parameters relNcFilePath string Relative path to the NC file PlayToolingTeleport(int) Plays a tooling teleport operation. [JsAce] public void PlayToolingTeleport(int toolId) Parameters toolId int The tool ID to teleport. Preserve() Preserve one line NC code in optimzation process. [JsAce(\"Preserve()\")] public void Preserve() ProgressMessage(string) Displays a progress message in the message host. [JsAce(\"ProgressMessage($1message)\")] public void ProgressMessage(string message) Parameters message string The progress message to display ReTrainMillingPara(SampleFlag, string, double) Re-trains milling parameters using the specified sample flag. [JsAce(\"ReTrainMillingPara(Fx|Fy|Fz, $1dstFile)\")] public void ReTrainMillingPara(SampleFlag sampleFlag, string dstRelFile, double outlierRatio = 0.1) Parameters sampleFlag SampleFlag Sample flag indicating which components to train dstRelFile string Destination relative file path outlierRatio double Outlier ratio for data filtering ReadCsvByTimeInterpolation(string) Reads a CSV file and performs time-based interpolation to map data to milling steps. [JsAce(Snippet = \"ReadCsvByTimeInterpolation($1\\\"csvFile\\\")\")] public void ReadCsvByTimeInterpolation(string csvFile) Parameters csvFile string Path to the CSV file relative to the base directory ReadRuntimeGeom(string) Reads runtime geometry from a file. [JsAce(\"ReadRuntimeGeom($1\\\"srcFile\\\")\")] public void ReadRuntimeGeom(string relFile) Parameters relFile string Relative path to the input file RegisterStepVariable(string, string, string, string, Func) Registers a step variable for tracking during execution. [JsAce(Snippet = \"RegisterStepVariable(\\\"$1key\\\",\\\"$2name\\\",\\\"$3unit\\\",\\\"$4formatString\\\",\\\"$5variableFunc\\\")\", DocContentHtml = \"

    Register Step Variable.

    \\\"unit\\\" is nullable

    \\\"formatString\\\" is nullable

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

    Register Step Variable.

    \\\"unit\\\" is nullable

    \\\"formatString\\\" is nullable

    \")] public void RegisterStepVariable(string key, string name, string unit, string formatString, Func variableFunc = null) Parameters key string Unique key to identify the variable name string Human-readable name of the variable unit string Physical unit of the variable (can be null) formatString string Format string for displaying the variable (can be null) variableFunc Func Function to compute the variable value from a milling step (can be null) RemoveFlyPiece() Removes any disconnected or “flying” pieces from the workpiece geometry. [JsAce] public void RemoveFlyPiece() Reset() Reset Player [JsAce(DocContentHtml = \"Reset Player\")] public void Reset() ResetRuntime() Clears internal buffers. [JsAce] public void ResetRuntime() RunNc(string, string) Runs NC code directly from a string. Not for end user. [JsAce(Snippet = \"RunNc($1\\\"ncCommand\\\",$2\\\"\\\"(Direct Command)\\\"\\\");\", DocContentHtml = \"Run NC. second parameter is the file name alternative shows in the log.\")] public IEnumerable RunNc(string ncText, string fileNameAlternative = \"--\") Parameters ncText string NC code as a string fileNameAlternative string Alternative name to display in logs Returns IEnumerable Enumerable sequence of actions to be executed RunNcFile(string) Runs an NC file with the specified relative path. Not for end user. [JsAce(\"RunNcFile($1\\\"ncFile\\\");\")] public IEnumerable RunNcFile(string relNcFilePath) Parameters relNcFilePath string Relative path to the NC file Returns IEnumerable Enumerable sequence of actions to be executed SetNcResolutionFeedPerCycle() Sets NC resolution to feed per cycle mode. public void SetNcResolutionFeedPerCycle() SetNcResolutionFeedPerTooth() Sets NC resolution to feed per tooth mode. public void SetNcResolutionFeedPerTooth() SetNcResolutionFixed(double, double) Sets NC resolution to fixed mode with specified resolution values. public void SetNcResolutionFixed(double linearResolution_mm, double rotaryResolution_deg) Parameters linearResolution_mm double Linear resolution in millimeters. rotaryResolution_deg double Rotary resolution in degrees. SetStickMachiningToolObservationHeight_mm(int, double) Sets the observation height in millimeters for the specified stick machining tool. [JsAce(\"SetStickMachiningToolObservationHeight_mm($1toolId,$2height_mm)\")] public void SetStickMachiningToolObservationHeight_mm(int toolId, double height) Parameters toolId int The ID of the tool height double The observation height in millimeters to set SetUniformContourTrayShiftAngle_deg(int, double) Sets the shift angle in degrees for the uniform contour tray of the specified tool. [JsAce(\"SetUniformContourTrayShiftAngle_deg($1toolId,$2angle_deg)\")] public void SetUniformContourTrayShiftAngle_deg(int toolId, double angle_deg) Parameters toolId int The ID of the tool angle_deg double The shift angle in degrees to set ShiftDistance_mm(double) Creates a distance shift object representing the specified distance in millimeters. public DistanceShift ShiftDistance_mm(double distanceShift_mm) Parameters distanceShift_mm double Distance shift in millimeters Returns DistanceShift Distance shift object ShiftTime_s(double) Creates a time shift object representing the specified time in seconds. public TimeShift ShiftTime_s(double seconds) Parameters seconds double Time in seconds Returns TimeShift Time shift object TrainMillingPara(SampleFlag, string, double, ICuttingPara) Trains milling parameters using the specified sample flag. [JsAce(\"TrainMillingPara(Fx|Fy|Fz, $1dstFile)\")] public void TrainMillingPara(SampleFlag sampleFlag, string dstRelFile, double outlierRatio = 2, ICuttingPara paraTemplate = null) Parameters sampleFlag SampleFlag Sample flag indicating which components to train dstRelFile string Destination relative file path outlierRatio double Outlier ratio for data filtering paraTemplate ICuttingPara Optional parameter template for cutting operations. WarningMessage(string) Displays a warning message in the message host. [JsAce(\"WarningMessage($1message)\")] public void WarningMessage(string message) Parameters message string The warning message to display WriteRuntimeGeom(string) Writes the current runtime geometry to a file. [JsAce(\"WriteRuntimeGeom($1\\\"dstFile\\\")\")] public void WriteRuntimeGeom(string relFile) Parameters relFile string Relative path to the output file WriteRuntimeGeomToStl(string, double) Writes the current runtime geometry to an STL file. [JsAce(\"WriteRuntimeGeomToStl($1\\\"dstFile\\\",$2resolution_mm)\")] public void WriteRuntimeGeomToStl(string relFile, double resolution_mm = 0) Parameters relFile string Relative path to the output STL file resolution_mm double Resolution in millimeters (0 for default) WriteShotFiles(double, string) Writes time-series data to shot files with the specified resolution period (alternative parameter order). public void WriteShotFiles(double resolutionPeroid_ms, string relFileTemplate) Parameters resolutionPeroid_ms double Resolution period in milliseconds relFileTemplate string Template for output file path, can include [NcName] placeholder WriteShotFiles(string, double) Writes time-series data to shot files with the specified resolution period. [JsAce(Snippet = \"WriteShotFiles(\\\"Output/[NcName].shot.csv\\\",resolutionPeroid_ms)\", DocContentHtml = \"Write time series data by resolutionPeroid_ms\")] public void WriteShotFiles(string relFileTemplate = \"Output/[NcName].shot.csv\", double resolutionPeroid_ms = 1) Parameters relFileTemplate string Template for output file path, can include [NcName] placeholder resolutionPeroid_ms double Resolution period in milliseconds WriteStepFiles(string) Writes step-series data to files with the specified file template. [JsAce(Snippet = \"WriteStepFiles(\\\"Output/[NcName].step.csv\\\")\", DocContentHtml = \"Write step series data.\")] public void WriteStepFiles(string relFileTemplate = \"Output/[NcName].step.csv\") Parameters relFileTemplate string Template for output file path, can include [NcName] placeholder Events MachiningStepBuilt Gets or sets the action to configure steps during execution. The event will be cleared by the calling of ResetRuntime(). [JsAce(Snippet = \"MachiningStepBuilt+=($1preStep,$2curStep)=>{$3Command};\", DocContentHtml = \"Runtime Step Configuration action. preStep is the Previous Milling Step; curStep is the Current Milling Step. preStep is null if no previous step existed.\")] public event MachiningActRunner.MachiningStepBuiltDelegate MachiningStepBuilt Event Type MachiningActRunner.MachiningStepBuiltDelegate MachiningStepSelected Event that is triggered when a milling step is selected. The event will be cleared by the calling of ResetRuntime(). [JsAce(Snippet = \"MachiningStepSelected+=($1millingStep)=>{$2Command};\")] public event Action MachiningStepSelected Event Type Action" }, "api/Hi.MachiningProcs.RuntimeController.html": { "href": "api/Hi.MachiningProcs.RuntimeController.html", "title": "Class RuntimeController | HiAPI-C# 2025", - "summary": "Class RuntimeController Namespace Hi.MachiningProcs Assembly HiNc.dll Provides a C# scripting API for controlling and manipulating the milling course. Allows for runtime control of milling operations, geometry manipulation, and data analysis. [ApiController] [Route(\"api/[controller]/[action]\")] public class RuntimeController : ControllerBase Inheritance object ControllerBase RuntimeController Inherited Members ControllerBase.StatusCode(int) ControllerBase.StatusCode(int, object) ControllerBase.Content(string) ControllerBase.Content(string, string) ControllerBase.Content(string, string, Encoding) ControllerBase.Content(string, MediaTypeHeaderValue) ControllerBase.NoContent() ControllerBase.Ok() ControllerBase.Ok(object) ControllerBase.Redirect(string) ControllerBase.RedirectPermanent(string) ControllerBase.RedirectPreserveMethod(string) ControllerBase.RedirectPermanentPreserveMethod(string) ControllerBase.LocalRedirect(string) ControllerBase.LocalRedirectPermanent(string) ControllerBase.LocalRedirectPreserveMethod(string) ControllerBase.LocalRedirectPermanentPreserveMethod(string) ControllerBase.RedirectToAction() ControllerBase.RedirectToAction(string) ControllerBase.RedirectToAction(string, object) ControllerBase.RedirectToAction(string, string) ControllerBase.RedirectToAction(string, string, object) ControllerBase.RedirectToAction(string, string, string) ControllerBase.RedirectToAction(string, string, object, string) ControllerBase.RedirectToActionPreserveMethod(string, string, object, string) ControllerBase.RedirectToActionPermanent(string) ControllerBase.RedirectToActionPermanent(string, object) ControllerBase.RedirectToActionPermanent(string, string) ControllerBase.RedirectToActionPermanent(string, string, string) ControllerBase.RedirectToActionPermanent(string, string, object) ControllerBase.RedirectToActionPermanent(string, string, object, string) ControllerBase.RedirectToActionPermanentPreserveMethod(string, string, object, string) ControllerBase.RedirectToRoute(string) ControllerBase.RedirectToRoute(object) ControllerBase.RedirectToRoute(string, object) ControllerBase.RedirectToRoute(string, string) ControllerBase.RedirectToRoute(string, object, string) ControllerBase.RedirectToRoutePreserveMethod(string, object, string) ControllerBase.RedirectToRoutePermanent(string) ControllerBase.RedirectToRoutePermanent(object) ControllerBase.RedirectToRoutePermanent(string, object) ControllerBase.RedirectToRoutePermanent(string, string) ControllerBase.RedirectToRoutePermanent(string, object, string) ControllerBase.RedirectToRoutePermanentPreserveMethod(string, object, string) ControllerBase.RedirectToPage(string) ControllerBase.RedirectToPage(string, object) ControllerBase.RedirectToPage(string, string) ControllerBase.RedirectToPage(string, string, object) ControllerBase.RedirectToPage(string, string, string) ControllerBase.RedirectToPage(string, string, object, string) ControllerBase.RedirectToPagePermanent(string) ControllerBase.RedirectToPagePermanent(string, object) ControllerBase.RedirectToPagePermanent(string, string) ControllerBase.RedirectToPagePermanent(string, string, string) ControllerBase.RedirectToPagePermanent(string, string, object, string) ControllerBase.RedirectToPagePreserveMethod(string, string, object, string) ControllerBase.RedirectToPagePermanentPreserveMethod(string, string, object, string) ControllerBase.File(byte[], string) ControllerBase.File(byte[], string, bool) ControllerBase.File(byte[], string, string) ControllerBase.File(byte[], string, string, bool) ControllerBase.File(byte[], string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(byte[], string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(byte[], string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(byte[], string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(Stream, string) ControllerBase.File(Stream, string, bool) ControllerBase.File(Stream, string, string) ControllerBase.File(Stream, string, string, bool) ControllerBase.File(Stream, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(Stream, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(Stream, string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(Stream, string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(string, string) ControllerBase.File(string, string, bool) ControllerBase.File(string, string, string) ControllerBase.File(string, string, string, bool) ControllerBase.File(string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(string, string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(string, string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.PhysicalFile(string, string) ControllerBase.PhysicalFile(string, string, bool) ControllerBase.PhysicalFile(string, string, string) ControllerBase.PhysicalFile(string, string, string, bool) ControllerBase.PhysicalFile(string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.PhysicalFile(string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.PhysicalFile(string, string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.PhysicalFile(string, string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.Unauthorized() ControllerBase.Unauthorized(object) ControllerBase.NotFound() ControllerBase.NotFound(object) ControllerBase.BadRequest() ControllerBase.BadRequest(object) ControllerBase.BadRequest(ModelStateDictionary) ControllerBase.UnprocessableEntity() ControllerBase.UnprocessableEntity(object) ControllerBase.UnprocessableEntity(ModelStateDictionary) ControllerBase.Conflict() ControllerBase.Conflict(object) ControllerBase.Conflict(ModelStateDictionary) ControllerBase.Problem(string, string, int?, string, string) ControllerBase.Problem(string, string, int?, string, string, IDictionary) ControllerBase.ValidationProblem(ValidationProblemDetails) ControllerBase.ValidationProblem(ModelStateDictionary) ControllerBase.ValidationProblem() ControllerBase.ValidationProblem(string, string, int?, string, string, ModelStateDictionary) ControllerBase.ValidationProblem(string, string, int?, string, string, ModelStateDictionary, IDictionary) ControllerBase.Created() ControllerBase.Created(string, object) ControllerBase.Created(Uri, object) ControllerBase.CreatedAtAction(string, object) ControllerBase.CreatedAtAction(string, object, object) ControllerBase.CreatedAtAction(string, string, object, object) ControllerBase.CreatedAtRoute(string, object) ControllerBase.CreatedAtRoute(object, object) ControllerBase.CreatedAtRoute(string, object, object) ControllerBase.Accepted() ControllerBase.Accepted(object) ControllerBase.Accepted(Uri) ControllerBase.Accepted(string) ControllerBase.Accepted(string, object) ControllerBase.Accepted(Uri, object) ControllerBase.AcceptedAtAction(string) ControllerBase.AcceptedAtAction(string, string) ControllerBase.AcceptedAtAction(string, object) ControllerBase.AcceptedAtAction(string, string, object) ControllerBase.AcceptedAtAction(string, object, object) ControllerBase.AcceptedAtAction(string, string, object, object) ControllerBase.AcceptedAtRoute(object) ControllerBase.AcceptedAtRoute(string) ControllerBase.AcceptedAtRoute(string, object) ControllerBase.AcceptedAtRoute(object, object) ControllerBase.AcceptedAtRoute(string, object, object) ControllerBase.Challenge() ControllerBase.Challenge(params string[]) ControllerBase.Challenge(AuthenticationProperties) ControllerBase.Challenge(AuthenticationProperties, params string[]) ControllerBase.Forbid() ControllerBase.Forbid(params string[]) ControllerBase.Forbid(AuthenticationProperties) ControllerBase.Forbid(AuthenticationProperties, params string[]) ControllerBase.SignIn(ClaimsPrincipal) ControllerBase.SignIn(ClaimsPrincipal, string) ControllerBase.SignIn(ClaimsPrincipal, AuthenticationProperties) ControllerBase.SignIn(ClaimsPrincipal, AuthenticationProperties, string) ControllerBase.SignOut() ControllerBase.SignOut(AuthenticationProperties) ControllerBase.SignOut(params string[]) ControllerBase.SignOut(AuthenticationProperties, params string[]) ControllerBase.TryUpdateModelAsync(TModel) ControllerBase.TryUpdateModelAsync(TModel, string) ControllerBase.TryUpdateModelAsync(TModel, string, IValueProvider) ControllerBase.TryUpdateModelAsync(TModel, string, params Expression>[]) ControllerBase.TryUpdateModelAsync(TModel, string, Func) ControllerBase.TryUpdateModelAsync(TModel, string, IValueProvider, params Expression>[]) ControllerBase.TryUpdateModelAsync(TModel, string, IValueProvider, Func) ControllerBase.TryUpdateModelAsync(object, Type, string) ControllerBase.TryUpdateModelAsync(object, Type, string, IValueProvider, Func) ControllerBase.TryValidateModel(object) ControllerBase.TryValidateModel(object, string) ControllerBase.HttpContext ControllerBase.Request ControllerBase.Response ControllerBase.RouteData ControllerBase.ModelState ControllerBase.ControllerContext ControllerBase.MetadataProvider ControllerBase.ModelBinderFactory ControllerBase.Url ControllerBase.ObjectValidator ControllerBase.ProblemDetailsFactory ControllerBase.User ControllerBase.Empty 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 RuntimeController(IProjectService) Initializes a new instance. public RuntimeController(IProjectService projectService) Parameters projectService IProjectService Properties DiffVisualRadius_mm Gets or sets the visual radius in millimeters for difference visualization. Controls the radius used for highlighting differences between workpiece states. [JsAce] public double DiffVisualRadius_mm { get; set; } Property Value double DispCacheMb Gets or sets the display cache size in megabytes. public long DispCacheMb { get; set; } Property Value long DispCache_Mb Gets or sets the display cache size in megabytes. [JsAce] public long DispCache_Mb { get; set; } Property Value long EnableAutoMapOnSelectionEnd Gets or sets whether to automatically map selections when they end. [JsAce] public bool EnableAutoMapOnSelectionEnd { get; set; } Property Value bool EnableCollisionDetection Gets or sets whether collision detection is enabled. [JsAce(DocContentHtml = \"Enable Collision Detection.\")] public bool EnableCollisionDetection { get; set; } Property Value bool EnablePauseOnCollision Obsoleted. Gets or sets whether to pause execution when a collision is detected. This property only has an effect if collision detection is enabled. public bool EnablePauseOnCollision { get; set; } Property Value bool EnablePauseOnFailure EnablePauseOnFailure [JsAce(DocContentHtml = \"Enable Pause On Failure.\")] public bool EnablePauseOnFailure { get; set; } Property Value bool EnablePhysics Gets or sets whether milling force evaluation is enabled. [JsAce(DocContentHtml = \"Enable milling force evaluation.\")] public bool EnablePhysics { get; set; } Property Value bool EnableWearEffect Gets or sets whether tool wear effects are enabled in simulation. [JsAce] public bool EnableWearEffect { get; set; } Property Value bool FeedPerCycle Gets a new feed per cycle machining motion resolution instance. [JsAce] public FeedPerCycleMachiningMotionResolution FeedPerCycle { get; } Property Value FeedPerCycleMachiningMotionResolution FeedPerTooth Gets a new feed per tooth machining motion resolution instance. [JsAce] public FeedPerToothMachiningMotionResolution FeedPerTooth { get; } Property Value FeedPerToothMachiningMotionResolution Global [JsAce(\"Global[$1key]\")] public Dictionary Global { get; } Property Value Dictionary InitSpindleTemperature_C Gets or sets the initial spindle temperature in degrees Celsius. [JsAce(DocContentHtml = \"Spindle Temperature on initialization.\")] public double InitSpindleTemperature_C { get; set; } Property Value double JsAceCompletionProfileJsonArray Internal used. public static JsonArray JsAceCompletionProfileJsonArray { get; } Property Value JsonArray MachiningMotionResolution Gets or sets the machining motion resolution. [JsAce] public IMachiningMotionResolution MachiningMotionResolution { get; set; } Property Value IMachiningMotionResolution MachiningResolution Gets or sets the machining resolution in millimeters. For legacy compatable. [JsAce] [Obsolete] public double MachiningResolution { get; set; } Property Value double MachiningResolution_mm Gets or sets the machining resolution in millimeters. [JsAce] public double MachiningResolution_mm { get; set; } Property Value double MachiningSession public MachiningSession MachiningSession { get; } Property Value MachiningSession MapTask Task tracking the status of mapping operations. public Task MapTask { get; set; } Property Value Task MillingCycleDivisionNum Gets or sets the number of divisions per cycle for milling force calculation. This property should be set before milling force evaluation if TrainMillingPara(SampleFlag, string, double) is intended to be used. [JsAce] public static int MillingCycleDivisionNum { get; set; } Property Value int MillingForceCycleDivisionNum Gets or sets the number of divisions per cycle for milling force calculation. This property should be set before milling force evaluation if TrainMillingPara(SampleFlag, string, double) is intended to be used. [JsAce] [Obsolete] public static int MillingForceCycleDivisionNum { get; set; } Property Value int NcOptOption NcOptOption [JsAce] public NcOptOption NcOptOption { get; set; } Property Value NcOptOption OptEnableDepthCompensation Enables or disables depth compensation during optimization. [JsAce] public bool OptEnableDepthCompensation { get; set; } Property Value bool OptEnableFeedrate Gets or sets whether to enable feed rate optimization in NC optimization. [JsAce] public bool OptEnableFeedrate { get; set; } Property Value bool OptEnableForwardCompensation Enables or disables forward compensation during optimization. [JsAce] public bool OptEnableForwardCompensation { get; set; } Property Value bool OptEnableInterpolation Enables or disables reinterpolation for optimization. [JsAce] public bool OptEnableInterpolation { get; set; } Property Value bool OptEnableSideCompensation Enables or disables side compensation during optimization. [JsAce] public bool OptEnableSideCompensation { get; set; } Property Value bool OptExtendedPostDistance_mm Gets or sets the extended post-distance in millimeters for NC optimization. This is the distance after the current segment that will be considered for optimization. [JsAce] public double OptExtendedPostDistance_mm { get; set; } Property Value double OptExtendedPreDistance_mm Gets or sets the extended pre-distance in millimeters for NC optimization. This is the distance before the current segment that will be considered for optimization. [JsAce] public double OptExtendedPreDistance_mm { get; set; } Property Value double OptFeedrateAssignmentRatio Gets or sets the feedrate assignment ratio for optimization. If the feedrate change exceeds this ratio, the feedrate in the NC line will be updated. [JsAce] public double OptFeedrateAssignmentRatio { get; set; } Property Value double OptMaxAcceleration_mmds2 Maximum acceleration in mm/s² during optimization. Only takes effect on reinterpolated section. [JsAce(DocContentHtml = \"Only take effect on reinterpolated section.\")] public double OptMaxAcceleration_mmds2 { get; set; } Property Value double OptMaxFeedPerTooth_mm Gets or sets the maximum feed per tooth in millimeters for optimization. [JsAce] public double OptMaxFeedPerTooth_mm { get; set; } Property Value double OptMaxFeedrate_mmdmin Maximum feed rate in mm/min for cutting movements during optimization. [JsAce] public double OptMaxFeedrate_mmdmin { get; set; } Property Value double OptMaxJerk_mmds3 Maximum jerk in mm/s³ during optimization. Only takes effect on reinterpolated section. [JsAce(DocContentHtml = \"Only take effect on reinterpolated section.\")] public double OptMaxJerk_mmds3 { get; set; } Property Value double OptMinFeedPerTooth_mm Gets or sets the minimum feed per tooth in millimeters for optimization. [JsAce] public double OptMinFeedPerTooth_mm { get; set; } Property Value double OptMinFeedrate_mmdmin Minimum feed rate in mm/min for cutting movements during optimization. [JsAce] public double OptMinFeedrate_mmdmin { get; set; } Property Value double OptPreferedForce_N Preferred force in N for optimization. [JsAce] public double OptPreferedForce_N { get; set; } Property Value double OptRapidFeed_mmdmin Rapid feed rate in mm/min for non-cutting movements during optimization. [JsAce] public double OptRapidFeed_mmdmin { get; set; } Property Value double OptSpindlePowerSafetyFactor Safety factor for spindle power during optimization. [JsAce] public double OptSpindlePowerSafetyFactor { get; set; } Property Value double OptSpindlePowerUtilizationFactor Utilization factor for spindle power during optimization. It is the reciprocal of the spindle power safety factor. [JsAce] public double OptSpindlePowerUtilizationFactor { get; set; } Property Value double OptSpindleTorqueSafetyFactor Safety factor for spindle torque during optimization. [JsAce] public double OptSpindleTorqueSafetyFactor { get; set; } Property Value double OptSpindleTorqueUtilizationFactor Utilization factor for spindle torque during optimization. It is the reciprocal of the spindle torque safety factor. [JsAce] public double OptSpindleTorqueUtilizationFactor { get; set; } Property Value double OptThermalYieldSafetyFactor Safety factor for thermal yield during optimization. [JsAce] public double OptThermalYieldSafetyFactor { get; set; } Property Value double OptThermalYieldUtilizationFactor Utilization factor for thermal yield during optimization. It is the reciprocal of the thermal yield safety factor. [JsAce] public double OptThermalYieldUtilizationFactor { get; set; } Property Value double OptYieldingSafetyFactor Safety factor for yielding during optimization. [JsAce] public double OptYieldingSafetyFactor { get; set; } Property Value double OptYieldingUtilizationFactor Utilization factor for yielding during optimization. It is the reciprocal of the yielding safety factor. [JsAce] public double OptYieldingUtilizationFactor { get; set; } Property Value double ParaTemplateDimension DefaultParaTemplateDimension [JsAce] public int ParaTemplateDimension { get; set; } Property Value int RuntimeApi Gets the runtime API instance. public RuntimeApi RuntimeApi { get; } Property Value RuntimeApi ScriptOptions public ScriptOptions ScriptOptions { get; set; } Property Value ScriptOptions SessionMessageHost SessionMessageHost [JsAce] public SessionMessageHost SessionMessageHost { get; } Property Value SessionMessageHost StepCount Gets the total number of milling steps. [JsAce] public int StepCount { get; } Property Value int Methods AddTimeDataByFile(string, string, double, double) Adds time-based data from a file to the time mapping dictionary with specified time bounds in seconds. [JsAce(\"AddTimeDataByFile($1key, $2relFile, $3beginTime, $4endTime)\")] [NonAction] public bool AddTimeDataByFile(string key, string relFile, double beginTime, double endTime) Parameters key string Key to identify the data relFile string Relative path to the data file beginTime double Beginning time in seconds endTime double Ending time in seconds Returns bool True if the data was successfully added, false otherwise AddTimeDataByFile(string, string, string, string) Adds time-based data from a file to the time mapping dictionary with specified time bounds. [JsAce(\"AddTimeDataByFile($1key, $2relFile, $3beginTime, $4endTime)\")] [HttpPost] public bool AddTimeDataByFile(string key, string relFile, string beginTimeText, string endTimeText) Parameters key string Key to identify the data relFile string Relative path to the data file beginTimeText string Beginning time as text (seconds or TimeSpan format) endTimeText string Ending time as text (seconds or TimeSpan format) Returns bool True if the data was successfully added, false otherwise AppendMessagesToFile(string, params string[]) Appends messages to a file, optionally filtered by tags. [JsAce(\"AppendMessagesToFile(\\\"dstRelFile\\\",flags)\")] [HttpPost] public void AppendMessagesToFile(string dstRelFile, params string[] flags) Parameters dstRelFile string Destination relative file path flags string[] Optional flags to filter messages by tags BeginPreserve() Begin Preserve section in optimzation process. [JsAce(\"BeginPreserve()\")] [HttpPost] public void BeginPreserve() BeginSelection(string, AnchorMode, IStepShift) Begin mark on current line. milling step() has not triggered yet. [NonAction] public void BeginSelection(string key, AnchorMode anchorMode = AnchorMode.LineBegin, IStepShift shift = null) Parameters key string Identifier key for the selection anchorMode AnchorMode Mode for anchoring the beginning of selection shift IStepShift Step shift to apply BeginSession() BeginSession() [HttpPost] public void BeginSession() ClearTimeMappingData() Clears all time mapping data. [JsAce] [HttpPost] public void ClearTimeMappingData() Diff(double) Performs a difference analysis on the workpiece geometry to detect variations. [JsAce(\"Diff($1detectionRadius_mm)\")] [HttpPost] public void Diff(double detectionRadius_mm) Parameters detectionRadius_mm double Radius for detecting differences EndPreserve() End Preserve section in optimzation process. [JsAce(\"EndPreserve()\")] [HttpPost] public void EndPreserve() EndSelection(string, AnchorMode, IStepShift) End mark on current line for selection. [NonAction] public void EndSelection(string key, AnchorMode anchorMode = AnchorMode.LineEnd, IStepShift shift = null) Parameters key string Identifier key for the selection anchorMode AnchorMode Mode for anchoring the end of selection shift IStepShift Step shift to apply EndSession() EndSession() [HttpPost] public void EndSession() ErrorMessage(string) Displays an error message in the message host. [JsAce(\"ErrorMessage($1message)\")] [HttpPost] public void ErrorMessage(string message) Parameters message string The error message to display FixedPace(double, double) Creates a fixed machining motion resolution with specified parameters. [JsAce(\"FixedPace($1linearResolution_mm, $2rotaryResolution_deg)\")] [NonAction] public FixedMachiningMotionResolution FixedPace(double linearResolution_mm, double rotaryResolution_deg) Parameters linearResolution_mm double Linear resolution in millimeters rotaryResolution_deg double Rotary resolution in degrees Returns FixedMachiningMotionResolution A new fixed machining motion resolution instance GetMillingStep(int) Retrieves a milling step at the specified index. [JsAce(Snippet = \"GetMillingStep($1\\\"stepIndex\\\")\")] [NonAction] public MachiningStep GetMillingStep(int stepIndex) Parameters stepIndex int Index of the milling step to retrieve Returns MachiningStep The milling step at the specified index GetStickMachiningToolObservationHeight_mm(int) Gets the observation height in millimeters for the specified stick machining tool. [JsAce(\"GetStickMachiningToolObservationHeight_mm($1toolId)\")] [HttpGet] public double GetStickMachiningToolObservationHeight_mm(int toolId) Parameters toolId int The ID of the tool Returns double The observation height in millimeters GetUniformContourTrayShiftAngle_deg(int) Gets the shift angle in degrees for the uniform contour tray of the specified tool. [JsAce(\"GetUniformContourTrayShiftAngle_deg($1toolId)\")] [HttpGet] public double GetUniformContourTrayShiftAngle_deg(int toolId) Parameters toolId int The ID of the tool Returns double The shift angle in degrees LineSelection(string, AnchorMode, IStepShift, AnchorMode, IStepShift) Create a line selection from begin to end mark. [NonAction] public void LineSelection(string key, AnchorMode beginAnchorMode = AnchorMode.LineBegin, IStepShift beginShift = null, AnchorMode endAnchorMode = AnchorMode.LineEnd, IStepShift endShift = null) Parameters key string Identifier key for the selection beginAnchorMode AnchorMode Mode for anchoring the beginning of selection beginShift IStepShift Step shift to apply at beginning endAnchorMode AnchorMode Mode for anchoring the end of selection endShift IStepShift Step shift to apply at end Map(string, FileTimeSection, CycleSamplingMode?) Maps selection data to time section. [HttpPost] public Task Map(string key, FileTimeSection fileTimeSection = null, StepTimeShotUtil.CycleSamplingMode? cycleSamplingMode = CycleSamplingMode.SpindleCycle) Parameters key string Identifier key for the selection fileTimeSection FileTimeSection File time section, or null to use the one associated with the key cycleSamplingMode StepTimeShotUtil.CycleSamplingMode? Cycle sampling mode Returns Task Task representing the asynchronous mapping operation Message(string) Displays a message in the message host. [JsAce(\"Message($1message)\")] [HttpPost] public void Message(string message) Parameters message string The message to display OptimizeToFiles(string) Optimizes NC files and saves results using the specified file template. [JsAce(Snippet = \"OptimizeToFiles(\\\"Output/Opt-[NcName]\\\")\", DocContentHtml = \"Optimize To Files by substitude template keywoard \\\"[NcName]\\\"\")] [HttpPost] public void OptimizeToFiles(string relFileTemplate = \"Output/Opt-[NcName]\") Parameters relFileTemplate string Template for output file path, can include [NcName] placeholder Pace() Controls the pace of machining operations during execution. [JsAce(\"Pace();\")] [HttpPost] public void Pace() Pause() Pause Player [JsAce(DocContentHtml = \"Pause Player\")] [HttpPost] public void Pause() PlayAct(IAct, IIndexedFileLine, CancellationToken?) PlayAct(IAct, IIndexedFileLine, CancellationToken?) [JsAce] [NonAction] public void PlayAct(IAct act, IIndexedFileLine sourceCommand = null, CancellationToken? cancellationToken = null) Parameters act IAct sourceCommand IIndexedFileLine cancellationToken CancellationToken? PlayClTeleport(double, double, double, double, double, double) PlayClTeleport(double, double, double, double, double, double) [JsAce] [HttpPost] public void PlayClTeleport(double x, double y, double z, double i, double j, double k) Parameters x double y double z double i double j double k double PlayCsvFile(string) Plays an CSV file with the specified relative path. [JsAce(\"PlayCsvFile($1\\\"csvFile\\\");\")] [HttpPost] public void PlayCsvFile(string relFilePath) Parameters relFilePath string Relative path to the CSV file PlayNc(string, string) Plays NC code directly from a string, executing each action and pacing between them. [JsAce(Snippet = \"PlayNc($1\\\"ncCommand\\\",$2\\\"\\\"(Direct Command)\\\"\\\");\", DocContentHtml = \"Play NC. second parameter is the file name alternative shows in the log.\")] [HttpPost] public void PlayNc(string ncText, string fileNameAlternative = \"--\") Parameters ncText string NC code as a string fileNameAlternative string Alternative name to display in logs PlayNcFile(string) Plays an NC file with the specified relative path. [JsAce(\"PlayNcFile($1\\\"ncFile\\\");\")] [HttpPost] public void PlayNcFile(string relNcFilePath) Parameters relNcFilePath string Relative path to the NC file PlayToolingTeleport(int) PlayToolingTeleport(int) [JsAce] [HttpPost] public void PlayToolingTeleport(int toolId) Parameters toolId int Preserve() Preserve one line NC code in optimzation process. [JsAce(\"Preserve()\")] [HttpPost] public void Preserve() ProgressMessage(string) Displays a progress message in the message host. [JsAce(\"ProgressMessage($1message)\")] [HttpPost] public void ProgressMessage(string message) Parameters message string The progress message to display ReTrainMillingPara(SampleFlag, string, double) Re-trains milling parameters using the specified sample flag. [JsAce(\"ReTrainMillingPara(Fx|Fy|Fz, $1dstFile)\")] [HttpPost] public void ReTrainMillingPara(SampleFlag sampleFlag, string dstRelFile, double outlierRatio = 2) Parameters sampleFlag SampleFlag Sample flag indicating which components to train dstRelFile string Destination relative file path outlierRatio double Outlier ratio for data filtering ReadCsvByTimeInterpolation(string) Reads a CSV file and performs time-based interpolation to map data to milling steps. [JsAce(Snippet = \"ReadCsvByTimeInterpolation($1\\\"csvFile\\\")\")] [HttpPost] public void ReadCsvByTimeInterpolation(string csvFile) Parameters csvFile string Path to the CSV file relative to the base directory ReadRuntimeGeom(string) Reads runtime geometry from a file. [JsAce(\"ReadRuntimeGeom($1\\\"srcFile\\\")\")] [HttpPost] public void ReadRuntimeGeom(string relFile) Parameters relFile string Relative path to the input file RegisterStepVariable(string, string, string, string, Func) Registers a step variable for tracking during execution. [JsAce(Snippet = \"RegisterStepVariable(\\\"$1key\\\",\\\"$2name\\\",\\\"$3unit\\\",\\\"$4formatString\\\",\\\"$5variableFunc\\\")\", DocContentHtml = \"

    Register Step Variable.

    \\\"unit\\\" is nullable

    \\\"formatString\\\" is nullable

    \")] [NonAction] public void RegisterStepVariable(string key, string name, string unit, string formatString, Func variableFunc = null) Parameters key string Unique key to identify the variable name string Human-readable name of the variable unit string Physical unit of the variable (can be null) formatString string Format string for displaying the variable (can be null) variableFunc Func Function to compute the variable value from a milling step (can be null) RemoveFlyPiece() Removes any disconnected or “flying” pieces from the workpiece geometry. [JsAce] [HttpPost] public void RemoveFlyPiece() Reset() Reset Player [JsAce(DocContentHtml = \"Reset Player\")] [HttpPost] public void Reset() ResetRuntime() Clears internal buffers. [JsAce] [HttpPost] public void ResetRuntime() RunNc(string, string) Runs NC code directly from a string. [JsAce(Snippet = \"RunNc($1\\\"ncCommand\\\",$2\\\"\\\"(Direct Command)\\\"\\\");\", DocContentHtml = \"Run NC. second parameter is the file name alternative shows in the log.\")] [NonAction] public IEnumerable RunNc(string ncText, string fileNameAlternative = \"--\") Parameters ncText string NC code as a string fileNameAlternative string Alternative name to display in logs Returns IEnumerable Enumerable sequence of actions to be executed RunNcFile(string) Runs an NC file with the specified relative path. [JsAce(\"RunNcFile($1\\\"ncFile\\\");\")] [NonAction] public IEnumerable RunNcFile(string relNcFilePath) Parameters relNcFilePath string Relative path to the NC file Returns IEnumerable Enumerable sequence of actions to be executed SetNcResolutionFeedPerCycle() Sets NC resolution to feed per cycle mode. [HttpPost] public void SetNcResolutionFeedPerCycle() SetNcResolutionFeedPerTooth() Sets NC resolution to feed per tooth mode. [HttpPost] public void SetNcResolutionFeedPerTooth() SetNcResolutionFixed(double, double) Sets NC resolution to fixed mode with specified resolution values. [HttpPost] public void SetNcResolutionFixed(double linearResolution_mm, double rotaryResolution_deg) Parameters linearResolution_mm double Linear resolution in millimeters. rotaryResolution_deg double Rotary resolution in degrees. SetStickMachiningToolObservationHeight_mm(int, double) Sets the observation height in millimeters for the specified stick machining tool. [JsAce(\"SetStickMachiningToolObservationHeight_mm($1toolId,$2height_mm)\")] [HttpPost] public void SetStickMachiningToolObservationHeight_mm(int toolId, double height) Parameters toolId int The ID of the tool height double The observation height in millimeters to set SetUniformContourTrayShiftAngle_deg(int, double) Sets the shift angle in degrees for the uniform contour tray of the specified tool. [JsAce(\"SetUniformContourTrayShiftAngle_deg($1toolId,$2angle_deg)\")] [HttpPost] public void SetUniformContourTrayShiftAngle_deg(int toolId, double angle_deg) Parameters toolId int The ID of the tool angle_deg double The shift angle in degrees to set ShiftDistance_mm(double) Creates a distance shift object representing the specified distance in millimeters. [NonAction] public DistanceShift ShiftDistance_mm(double distanceShift_mm) Parameters distanceShift_mm double Distance shift in millimeters Returns DistanceShift Distance shift object ShiftTime_s(double) Creates a time shift object representing the specified time in seconds. [NonAction] public TimeShift ShiftTime_s(double seconds) Parameters seconds double Time in seconds Returns TimeShift Time shift object TrainMillingPara(SampleFlag, string, double) Trains milling parameters using the specified sample flag. [JsAce(\"TrainMillingPara(Fx|Fy|Fz, $1dstFile)\")] [HttpPost] public void TrainMillingPara(SampleFlag sampleFlag, string dstRelFile, double outlierRatio = 2) Parameters sampleFlag SampleFlag Sample flag indicating which components to train dstRelFile string Destination relative file path outlierRatio double Outlier ratio for data filtering WarningMessage(string) Displays a warning message in the message host. [JsAce(\"WarningMessage($1message)\")] [HttpPost] public void WarningMessage(string message) Parameters message string The warning message to display WriteRuntimeGeom(string) Writes the current runtime geometry to a file. [JsAce(\"WriteRuntimeGeom($1\\\"dstFile\\\")\")] [HttpPost] public void WriteRuntimeGeom(string relFile) Parameters relFile string Relative path to the output file WriteRuntimeGeomToStl(string, double) Writes the current runtime geometry to an STL file. [JsAce(\"WriteRuntimeGeomToStl($1\\\"dstFile\\\",$2resolution_mm)\")] [HttpPost] public void WriteRuntimeGeomToStl(string relFile, double resolution_mm = 0) Parameters relFile string Relative path to the output STL file resolution_mm double Resolution in millimeters (0 for default) WriteShotFiles(double, string) Writes time-series data to shot files with the specified resolution period (alternative parameter order). [NonAction] public void WriteShotFiles(double resolutionPeroid_ms, string relFileTemplate) Parameters resolutionPeroid_ms double Resolution period in milliseconds relFileTemplate string Template for output file path, can include [NcName] placeholder WriteShotFiles(string, double) Writes time-series data to shot files with the specified resolution period. [JsAce(Snippet = \"WriteShotFiles(\\\"Output/[NcName].shot.csv\\\",resolutionPeroid_ms)\", DocContentHtml = \"Write time series data by resolutionPeroid_ms\")] [HttpPost] public void WriteShotFiles(string relFileTemplate = \"Output/[NcName].shot.csv\", double resolutionPeroid_ms = 1) Parameters relFileTemplate string Template for output file path, can include [NcName] placeholder resolutionPeroid_ms double Resolution period in milliseconds WriteStepFiles(string) Writes step-series data to files with the specified file template. [JsAce(Snippet = \"WriteStepFiles(\\\"Output/[NcName].step.csv\\\")\", DocContentHtml = \"Write step series data.\")] [HttpPost] public void WriteStepFiles(string relFileTemplate = \"Output/[NcName].step.csv\") Parameters relFileTemplate string Template for output file path, can include [NcName] placeholder" + "summary": "Class RuntimeController Namespace Hi.MachiningProcs Assembly HiNc.dll Provides a C# scripting API for controlling and manipulating the milling course. Allows for runtime control of milling operations, geometry manipulation, and data analysis. [ApiController] [Route(\"api/[controller]/[action]\")] public class RuntimeController : ControllerBase Inheritance object ControllerBase RuntimeController Inherited Members ControllerBase.StatusCode(int) ControllerBase.StatusCode(int, object) ControllerBase.Content(string) ControllerBase.Content(string, string) ControllerBase.Content(string, string, Encoding) ControllerBase.Content(string, MediaTypeHeaderValue) ControllerBase.NoContent() ControllerBase.Ok() ControllerBase.Ok(object) ControllerBase.Redirect(string) ControllerBase.RedirectPermanent(string) ControllerBase.RedirectPreserveMethod(string) ControllerBase.RedirectPermanentPreserveMethod(string) ControllerBase.LocalRedirect(string) ControllerBase.LocalRedirectPermanent(string) ControllerBase.LocalRedirectPreserveMethod(string) ControllerBase.LocalRedirectPermanentPreserveMethod(string) ControllerBase.RedirectToAction() ControllerBase.RedirectToAction(string) ControllerBase.RedirectToAction(string, object) ControllerBase.RedirectToAction(string, string) ControllerBase.RedirectToAction(string, string, object) ControllerBase.RedirectToAction(string, string, string) ControllerBase.RedirectToAction(string, string, object, string) ControllerBase.RedirectToActionPreserveMethod(string, string, object, string) ControllerBase.RedirectToActionPermanent(string) ControllerBase.RedirectToActionPermanent(string, object) ControllerBase.RedirectToActionPermanent(string, string) ControllerBase.RedirectToActionPermanent(string, string, string) ControllerBase.RedirectToActionPermanent(string, string, object) ControllerBase.RedirectToActionPermanent(string, string, object, string) ControllerBase.RedirectToActionPermanentPreserveMethod(string, string, object, string) ControllerBase.RedirectToRoute(string) ControllerBase.RedirectToRoute(object) ControllerBase.RedirectToRoute(string, object) ControllerBase.RedirectToRoute(string, string) ControllerBase.RedirectToRoute(string, object, string) ControllerBase.RedirectToRoutePreserveMethod(string, object, string) ControllerBase.RedirectToRoutePermanent(string) ControllerBase.RedirectToRoutePermanent(object) ControllerBase.RedirectToRoutePermanent(string, object) ControllerBase.RedirectToRoutePermanent(string, string) ControllerBase.RedirectToRoutePermanent(string, object, string) ControllerBase.RedirectToRoutePermanentPreserveMethod(string, object, string) ControllerBase.RedirectToPage(string) ControllerBase.RedirectToPage(string, object) ControllerBase.RedirectToPage(string, string) ControllerBase.RedirectToPage(string, string, object) ControllerBase.RedirectToPage(string, string, string) ControllerBase.RedirectToPage(string, string, object, string) ControllerBase.RedirectToPagePermanent(string) ControllerBase.RedirectToPagePermanent(string, object) ControllerBase.RedirectToPagePermanent(string, string) ControllerBase.RedirectToPagePermanent(string, string, string) ControllerBase.RedirectToPagePermanent(string, string, object, string) ControllerBase.RedirectToPagePreserveMethod(string, string, object, string) ControllerBase.RedirectToPagePermanentPreserveMethod(string, string, object, string) ControllerBase.File(byte[], string) ControllerBase.File(byte[], string, bool) ControllerBase.File(byte[], string, string) ControllerBase.File(byte[], string, string, bool) ControllerBase.File(byte[], string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(byte[], string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(byte[], string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(byte[], string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(Stream, string) ControllerBase.File(Stream, string, bool) ControllerBase.File(Stream, string, string) ControllerBase.File(Stream, string, string, bool) ControllerBase.File(Stream, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(Stream, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(Stream, string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(Stream, string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(string, string) ControllerBase.File(string, string, bool) ControllerBase.File(string, string, string) ControllerBase.File(string, string, string, bool) ControllerBase.File(string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(string, string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(string, string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.PhysicalFile(string, string) ControllerBase.PhysicalFile(string, string, bool) ControllerBase.PhysicalFile(string, string, string) ControllerBase.PhysicalFile(string, string, string, bool) ControllerBase.PhysicalFile(string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.PhysicalFile(string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.PhysicalFile(string, string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.PhysicalFile(string, string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.Unauthorized() ControllerBase.Unauthorized(object) ControllerBase.NotFound() ControllerBase.NotFound(object) ControllerBase.BadRequest() ControllerBase.BadRequest(object) ControllerBase.BadRequest(ModelStateDictionary) ControllerBase.UnprocessableEntity() ControllerBase.UnprocessableEntity(object) ControllerBase.UnprocessableEntity(ModelStateDictionary) ControllerBase.Conflict() ControllerBase.Conflict(object) ControllerBase.Conflict(ModelStateDictionary) ControllerBase.Problem(string, string, int?, string, string) ControllerBase.Problem(string, string, int?, string, string, IDictionary) ControllerBase.ValidationProblem(ValidationProblemDetails) ControllerBase.ValidationProblem(ModelStateDictionary) ControllerBase.ValidationProblem() ControllerBase.ValidationProblem(string, string, int?, string, string, ModelStateDictionary) ControllerBase.ValidationProblem(string, string, int?, string, string, ModelStateDictionary, IDictionary) ControllerBase.Created() ControllerBase.Created(string, object) ControllerBase.Created(Uri, object) ControllerBase.CreatedAtAction(string, object) ControllerBase.CreatedAtAction(string, object, object) ControllerBase.CreatedAtAction(string, string, object, object) ControllerBase.CreatedAtRoute(string, object) ControllerBase.CreatedAtRoute(object, object) ControllerBase.CreatedAtRoute(string, object, object) ControllerBase.Accepted() ControllerBase.Accepted(object) ControllerBase.Accepted(Uri) ControllerBase.Accepted(string) ControllerBase.Accepted(string, object) ControllerBase.Accepted(Uri, object) ControllerBase.AcceptedAtAction(string) ControllerBase.AcceptedAtAction(string, string) ControllerBase.AcceptedAtAction(string, object) ControllerBase.AcceptedAtAction(string, string, object) ControllerBase.AcceptedAtAction(string, object, object) ControllerBase.AcceptedAtAction(string, string, object, object) ControllerBase.AcceptedAtRoute(object) ControllerBase.AcceptedAtRoute(string) ControllerBase.AcceptedAtRoute(string, object) ControllerBase.AcceptedAtRoute(object, object) ControllerBase.AcceptedAtRoute(string, object, object) ControllerBase.Challenge() ControllerBase.Challenge(params string[]) ControllerBase.Challenge(AuthenticationProperties) ControllerBase.Challenge(AuthenticationProperties, params string[]) ControllerBase.Forbid() ControllerBase.Forbid(params string[]) ControllerBase.Forbid(AuthenticationProperties) ControllerBase.Forbid(AuthenticationProperties, params string[]) ControllerBase.SignIn(ClaimsPrincipal) ControllerBase.SignIn(ClaimsPrincipal, string) ControllerBase.SignIn(ClaimsPrincipal, AuthenticationProperties) ControllerBase.SignIn(ClaimsPrincipal, AuthenticationProperties, string) ControllerBase.SignOut() ControllerBase.SignOut(AuthenticationProperties) ControllerBase.SignOut(params string[]) ControllerBase.SignOut(AuthenticationProperties, params string[]) ControllerBase.TryUpdateModelAsync(TModel) ControllerBase.TryUpdateModelAsync(TModel, string) ControllerBase.TryUpdateModelAsync(TModel, string, IValueProvider) ControllerBase.TryUpdateModelAsync(TModel, string, params Expression>[]) ControllerBase.TryUpdateModelAsync(TModel, string, Func) ControllerBase.TryUpdateModelAsync(TModel, string, IValueProvider, params Expression>[]) ControllerBase.TryUpdateModelAsync(TModel, string, IValueProvider, Func) ControllerBase.TryUpdateModelAsync(object, Type, string) ControllerBase.TryUpdateModelAsync(object, Type, string, IValueProvider, Func) ControllerBase.TryValidateModel(object) ControllerBase.TryValidateModel(object, string) ControllerBase.HttpContext ControllerBase.Request ControllerBase.Response ControllerBase.RouteData ControllerBase.ModelState ControllerBase.ControllerContext ControllerBase.MetadataProvider ControllerBase.ModelBinderFactory ControllerBase.Url ControllerBase.ObjectValidator ControllerBase.ProblemDetailsFactory ControllerBase.User ControllerBase.Empty 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 RuntimeController(LocalProjectService) Initializes a new instance. public RuntimeController(LocalProjectService projectService) Parameters projectService LocalProjectService Properties DiffVisualRadius_mm Gets or sets the visual radius in millimeters for difference visualization. Controls the radius used for highlighting differences between workpiece states. [JsAce] public double DiffVisualRadius_mm { get; set; } Property Value double DispCacheMb Gets or sets the display cache size in megabytes. public long DispCacheMb { get; set; } Property Value long DispCache_Mb Gets or sets the display cache size in megabytes. [JsAce] public long DispCache_Mb { get; set; } Property Value long EnableAutoMapOnSelectionEnd Gets or sets whether to automatically map selections when they end. [JsAce] public bool EnableAutoMapOnSelectionEnd { get; set; } Property Value bool EnableCollisionDetection Gets or sets whether collision detection is enabled. [JsAce(DocContentHtml = \"Enable Collision Detection.\")] public bool EnableCollisionDetection { get; set; } Property Value bool EnablePauseOnFailure EnablePauseOnFailure [JsAce(DocContentHtml = \"Enable Pause On Failure.\")] public bool EnablePauseOnFailure { get; set; } Property Value bool EnablePhysics Gets or sets whether milling force evaluation is enabled. [JsAce(DocContentHtml = \"Enable milling force evaluation.\")] public bool EnablePhysics { get; set; } Property Value bool EnableWearEffect Gets or sets whether tool wear effects are enabled in simulation. [JsAce] public bool EnableWearEffect { get; set; } Property Value bool FeedPerCycle Gets a new feed per cycle machining motion resolution instance. [JsAce] public FeedPerCycleMachiningMotionResolution FeedPerCycle { get; } Property Value FeedPerCycleMachiningMotionResolution FeedPerTooth Gets a new feed per tooth machining motion resolution instance. [JsAce] public FeedPerToothMachiningMotionResolution FeedPerTooth { get; } Property Value FeedPerToothMachiningMotionResolution Global [JsAce(\"Global[$1key]\")] public Dictionary Global { get; } Property Value Dictionary InitSpindleTemperature_C Gets or sets the initial spindle temperature in degrees Celsius. [JsAce(DocContentHtml = \"Spindle Temperature on initialization.\")] public double InitSpindleTemperature_C { get; set; } Property Value double JsAceCompletionProfileJsonArray Internal used. public static JsonArray JsAceCompletionProfileJsonArray { get; } Property Value JsonArray MachiningMotionResolution Gets or sets the machining motion resolution. [JsAce] public IMachiningMotionResolution MachiningMotionResolution { get; set; } Property Value IMachiningMotionResolution MachiningResolution Gets or sets the machining resolution in millimeters. For legacy compatable. [JsAce] [Obsolete] public double MachiningResolution { get; set; } Property Value double MachiningResolution_mm Gets or sets the machining resolution in millimeters. [JsAce] public double MachiningResolution_mm { get; set; } Property Value double MachiningSession public MachiningSession MachiningSession { get; } Property Value MachiningSession MapTask Task tracking the status of mapping operations. public Task MapTask { get; set; } Property Value Task MillingCycleDivisionNum Gets or sets the number of divisions per cycle for milling force calculation. This property should be set before milling force evaluation if TrainMillingPara(SampleFlag, string, double) is intended to be used. [JsAce] public static int MillingCycleDivisionNum { get; set; } Property Value int MillingForceCycleDivisionNum Gets or sets the number of divisions per cycle for milling force calculation. This property should be set before milling force evaluation if TrainMillingPara(SampleFlag, string, double) is intended to be used. [JsAce] [Obsolete] public static int MillingForceCycleDivisionNum { get; set; } Property Value int NcOptOption NcOptOption [JsAce] public NcOptOption NcOptOption { get; set; } Property Value NcOptOption OptEnableDepthCompensation Enables or disables depth compensation during optimization. [JsAce] public bool OptEnableDepthCompensation { get; set; } Property Value bool OptEnableFeedrate Gets or sets whether to enable feed rate optimization in NC optimization. [JsAce] public bool OptEnableFeedrate { get; set; } Property Value bool OptEnableForwardCompensation Enables or disables forward compensation during optimization. [JsAce] public bool OptEnableForwardCompensation { get; set; } Property Value bool OptEnableInterpolation Enables or disables reinterpolation for optimization. [JsAce] public bool OptEnableInterpolation { get; set; } Property Value bool OptEnableSideCompensation Enables or disables side compensation during optimization. [JsAce] public bool OptEnableSideCompensation { get; set; } Property Value bool OptExtendedPostDistance_mm Gets or sets the extended post-distance in millimeters for NC optimization. This is the distance after the current segment that will be considered for optimization. [JsAce] public double OptExtendedPostDistance_mm { get; set; } Property Value double OptExtendedPreDistance_mm Gets or sets the extended pre-distance in millimeters for NC optimization. This is the distance before the current segment that will be considered for optimization. [JsAce] public double OptExtendedPreDistance_mm { get; set; } Property Value double OptFeedrateAssignmentRatio Gets or sets the feedrate assignment ratio for optimization. If the feedrate change exceeds this ratio, the feedrate in the NC line will be updated. [JsAce] public double OptFeedrateAssignmentRatio { get; set; } Property Value double OptMaxAcceleration_mmds2 Maximum acceleration in mm/s² during optimization. Only takes effect on reinterpolated section. [JsAce(DocContentHtml = \"Only take effect on reinterpolated section.\")] public double OptMaxAcceleration_mmds2 { get; set; } Property Value double OptMaxFeedPerTooth_mm Gets or sets the maximum feed per tooth in millimeters for optimization. [JsAce] public double OptMaxFeedPerTooth_mm { get; set; } Property Value double OptMaxFeedrate_mmdmin Maximum feed rate in mm/min for cutting movements during optimization. [JsAce] public double OptMaxFeedrate_mmdmin { get; set; } Property Value double OptMaxJerk_mmds3 Maximum jerk in mm/s³ during optimization. Only takes effect on reinterpolated section. [JsAce(DocContentHtml = \"Only take effect on reinterpolated section.\")] public double OptMaxJerk_mmds3 { get; set; } Property Value double OptMinFeedPerTooth_mm Gets or sets the minimum feed per tooth in millimeters for optimization. [JsAce] public double OptMinFeedPerTooth_mm { get; set; } Property Value double OptMinFeedrate_mmdmin Minimum feed rate in mm/min for cutting movements during optimization. [JsAce] public double OptMinFeedrate_mmdmin { get; set; } Property Value double OptPreferedForce_N Preferred force in N for optimization. [JsAce] public double OptPreferedForce_N { get; set; } Property Value double OptRapidFeed_mmdmin Rapid feed rate in mm/min for non-cutting movements during optimization. [JsAce] public double OptRapidFeed_mmdmin { get; set; } Property Value double OptSpindlePowerSafetyFactor Safety factor for spindle power during optimization. [JsAce] public double OptSpindlePowerSafetyFactor { get; set; } Property Value double OptSpindlePowerUtilizationFactor Utilization factor for spindle power during optimization. It is the reciprocal of the spindle power safety factor. [JsAce] public double OptSpindlePowerUtilizationFactor { get; set; } Property Value double OptSpindleTorqueSafetyFactor Safety factor for spindle torque during optimization. [JsAce] public double OptSpindleTorqueSafetyFactor { get; set; } Property Value double OptSpindleTorqueUtilizationFactor Utilization factor for spindle torque during optimization. It is the reciprocal of the spindle torque safety factor. [JsAce] public double OptSpindleTorqueUtilizationFactor { get; set; } Property Value double OptThermalYieldSafetyFactor Safety factor for thermal yield during optimization. [JsAce] public double OptThermalYieldSafetyFactor { get; set; } Property Value double OptThermalYieldUtilizationFactor Utilization factor for thermal yield during optimization. It is the reciprocal of the thermal yield safety factor. [JsAce] public double OptThermalYieldUtilizationFactor { get; set; } Property Value double OptYieldingSafetyFactor Safety factor for yielding during optimization. [JsAce] public double OptYieldingSafetyFactor { get; set; } Property Value double OptYieldingUtilizationFactor Utilization factor for yielding during optimization. It is the reciprocal of the yielding safety factor. [JsAce] public double OptYieldingUtilizationFactor { get; set; } Property Value double ParaTemplateDimension DefaultParaTemplateDimension [JsAce] public int ParaTemplateDimension { get; set; } Property Value int RuntimeApi Gets the runtime API instance. public RuntimeApi RuntimeApi { get; } Property Value RuntimeApi ScriptOptions public ScriptOptions ScriptOptions { get; set; } Property Value ScriptOptions SessionMessageHost SessionMessageHost [JsAce] public SessionMessageHost SessionMessageHost { get; } Property Value SessionMessageHost StepCount Gets the total number of milling steps. [JsAce] public int StepCount { get; } Property Value int Methods AddTimeDataByFile(string, string, double, double) Adds time-based data from a file to the time mapping dictionary with specified time bounds in seconds. [JsAce(\"AddTimeDataByFile($1key, $2relFile, $3beginTime, $4endTime)\")] [NonAction] public bool AddTimeDataByFile(string key, string relFile, double beginTime, double endTime) Parameters key string Key to identify the data relFile string Relative path to the data file beginTime double Beginning time in seconds endTime double Ending time in seconds Returns bool True if the data was successfully added, false otherwise AddTimeDataByFile(string, string, string, string) Adds time-based data from a file to the time mapping dictionary with specified time bounds. [JsAce(\"AddTimeDataByFile($1key, $2relFile, $3beginTime, $4endTime)\")] [HttpPost] public bool AddTimeDataByFile(string key, string relFile, string beginTimeText, string endTimeText) Parameters key string Key to identify the data relFile string Relative path to the data file beginTimeText string Beginning time as text (seconds or TimeSpan format) endTimeText string Ending time as text (seconds or TimeSpan format) Returns bool True if the data was successfully added, false otherwise AppendMessagesToFile(string, params string[]) Appends messages to a file, optionally filtered by tags. [JsAce(\"AppendMessagesToFile(\\\"dstRelFile\\\",flags)\")] [HttpPost] public void AppendMessagesToFile(string dstRelFile, params string[] flags) Parameters dstRelFile string Destination relative file path flags string[] Optional flags to filter messages by tags BeginPreserve() Begin Preserve section in optimzation process. [JsAce(\"BeginPreserve()\")] [HttpPost] public void BeginPreserve() BeginSelection(string, AnchorMode, IStepShift) Begin mark on current line. milling step() has not triggered yet. [NonAction] public void BeginSelection(string key, AnchorMode anchorMode = AnchorMode.LineBegin, IStepShift shift = null) Parameters key string Identifier key for the selection anchorMode AnchorMode Mode for anchoring the beginning of selection shift IStepShift Step shift to apply BeginSession() BeginSession() [HttpPost] public void BeginSession() ClearTimeMappingData() Clears all time mapping data. [JsAce] [HttpPost] public void ClearTimeMappingData() Diff(double) Performs a difference analysis on the workpiece geometry to detect variations. [JsAce(\"Diff($1detectionRadius_mm)\")] [HttpPost] public void Diff(double detectionRadius_mm) Parameters detectionRadius_mm double Radius for detecting differences EndPreserve() End Preserve section in optimzation process. [JsAce(\"EndPreserve()\")] [HttpPost] public void EndPreserve() EndSelection(string, AnchorMode, IStepShift) End mark on current line for selection. [NonAction] public void EndSelection(string key, AnchorMode anchorMode = AnchorMode.LineEnd, IStepShift shift = null) Parameters key string Identifier key for the selection anchorMode AnchorMode Mode for anchoring the end of selection shift IStepShift Step shift to apply EndSession() EndSession() [HttpPost] public void EndSession() ErrorMessage(string) Displays an error message in the message host. [JsAce(\"ErrorMessage($1message)\")] [HttpPost] public void ErrorMessage(string message) Parameters message string The error message to display FixedPace(double, double) Creates a fixed machining motion resolution with specified parameters. [JsAce(\"FixedPace($1linearResolution_mm, $2rotaryResolution_deg)\")] [NonAction] public FixedMachiningMotionResolution FixedPace(double linearResolution_mm, double rotaryResolution_deg) Parameters linearResolution_mm double Linear resolution in millimeters rotaryResolution_deg double Rotary resolution in degrees Returns FixedMachiningMotionResolution A new fixed machining motion resolution instance GetMillingStep(int) Retrieves a milling step at the specified index. [JsAce(Snippet = \"GetMillingStep($1\\\"stepIndex\\\")\")] [NonAction] public MachiningStep GetMillingStep(int stepIndex) Parameters stepIndex int Index of the milling step to retrieve Returns MachiningStep The milling step at the specified index GetStickMachiningToolObservationHeight_mm(int) Gets the observation height in millimeters for the specified stick machining tool. [JsAce(\"GetStickMachiningToolObservationHeight_mm($1toolId)\")] [HttpGet] public double GetStickMachiningToolObservationHeight_mm(int toolId) Parameters toolId int The ID of the tool Returns double The observation height in millimeters GetUniformContourTrayShiftAngle_deg(int) Gets the shift angle in degrees for the uniform contour tray of the specified tool. [JsAce(\"GetUniformContourTrayShiftAngle_deg($1toolId)\")] [HttpGet] public double GetUniformContourTrayShiftAngle_deg(int toolId) Parameters toolId int The ID of the tool Returns double The shift angle in degrees LineSelection(string, AnchorMode, IStepShift, AnchorMode, IStepShift) Create a line selection from begin to end mark. [NonAction] public void LineSelection(string key, AnchorMode beginAnchorMode = AnchorMode.LineBegin, IStepShift beginShift = null, AnchorMode endAnchorMode = AnchorMode.LineEnd, IStepShift endShift = null) Parameters key string Identifier key for the selection beginAnchorMode AnchorMode Mode for anchoring the beginning of selection beginShift IStepShift Step shift to apply at beginning endAnchorMode AnchorMode Mode for anchoring the end of selection endShift IStepShift Step shift to apply at end Map(string, FileTimeSection, CycleSamplingMode?) Maps selection data to time section. [HttpPost] public Task Map(string key, FileTimeSection fileTimeSection = null, StepTimeShotUtil.CycleSamplingMode? cycleSamplingMode = CycleSamplingMode.SpindleCycle) Parameters key string Identifier key for the selection fileTimeSection FileTimeSection File time section, or null to use the one associated with the key cycleSamplingMode StepTimeShotUtil.CycleSamplingMode? Cycle sampling mode Returns Task Task representing the asynchronous mapping operation Message(string) Displays a message in the message host. [JsAce(\"Message($1message)\")] [HttpPost] public void Message(string message) Parameters message string The message to display OptimizeToFiles(string) Optimizes NC files and saves results using the specified file template. [JsAce(Snippet = \"OptimizeToFiles(\\\"Output/Opt-[NcName]\\\")\", DocContentHtml = \"Optimize To Files by substitude template keywoard \\\"[NcName]\\\"\")] [HttpPost] public void OptimizeToFiles(string relFileTemplate = \"Output/Opt-[NcName]\") Parameters relFileTemplate string Template for output file path, can include [NcName] placeholder Pace() Controls the pace of machining operations during execution. [JsAce(\"Pace();\")] [HttpPost] public void Pace() Pause() Pause Player [JsAce(DocContentHtml = \"Pause Player\")] [HttpPost] public void Pause() PlayAct(IAct, IIndexedFileLine, CancellationToken?) PlayAct(IAct, IIndexedFileLine, CancellationToken?) [JsAce] [NonAction] public void PlayAct(IAct act, IIndexedFileLine sourceCommand = null, CancellationToken? cancellationToken = null) Parameters act IAct sourceCommand IIndexedFileLine cancellationToken CancellationToken? PlayClTeleport(double, double, double, double, double, double) PlayClTeleport(double, double, double, double, double, double) [JsAce] [HttpPost] public void PlayClTeleport(double x, double y, double z, double i, double j, double k) Parameters x double y double z double i double j double k double PlayCsvFile(string) Plays an CSV file with the specified relative path. [JsAce(\"PlayCsvFile($1\\\"csvFile\\\");\")] [HttpPost] public void PlayCsvFile(string relFilePath) Parameters relFilePath string Relative path to the CSV file PlayNc(string, string) Plays NC code directly from a string, executing each action and pacing between them. [JsAce(Snippet = \"PlayNc($1\\\"ncCommand\\\",$2\\\"\\\"(Direct Command)\\\"\\\");\", DocContentHtml = \"Play NC. second parameter is the file name alternative shows in the log.\")] [HttpPost] public void PlayNc(string ncText, string fileNameAlternative = \"--\") Parameters ncText string NC code as a string fileNameAlternative string Alternative name to display in logs PlayNcFile(string) Plays an NC file with the specified relative path. [JsAce(\"PlayNcFile($1\\\"ncFile\\\");\")] [HttpPost] public void PlayNcFile(string relNcFilePath) Parameters relNcFilePath string Relative path to the NC file PlayToolingTeleport(int) PlayToolingTeleport(int) [JsAce] [HttpPost] public void PlayToolingTeleport(int toolId) Parameters toolId int Preserve() Preserve one line NC code in optimzation process. [JsAce(\"Preserve()\")] [HttpPost] public void Preserve() ProgressMessage(string) Displays a progress message in the message host. [JsAce(\"ProgressMessage($1message)\")] [HttpPost] public void ProgressMessage(string message) Parameters message string The progress message to display ReTrainMillingPara(SampleFlag, string, double) Re-trains milling parameters using the specified sample flag. [JsAce(\"ReTrainMillingPara(Fx|Fy|Fz, $1dstFile)\")] [HttpPost] public void ReTrainMillingPara(SampleFlag sampleFlag, string dstRelFile, double outlierRatio = 2) Parameters sampleFlag SampleFlag Sample flag indicating which components to train dstRelFile string Destination relative file path outlierRatio double Outlier ratio for data filtering ReadCsvByTimeInterpolation(string) Reads a CSV file and performs time-based interpolation to map data to milling steps. [JsAce(Snippet = \"ReadCsvByTimeInterpolation($1\\\"csvFile\\\")\")] [HttpPost] public void ReadCsvByTimeInterpolation(string csvFile) Parameters csvFile string Path to the CSV file relative to the base directory ReadRuntimeGeom(string) Reads runtime geometry from a file. [JsAce(\"ReadRuntimeGeom($1\\\"srcFile\\\")\")] [HttpPost] public void ReadRuntimeGeom(string relFile) Parameters relFile string Relative path to the input file RegisterStepVariable(string, string, string, string, Func) Registers a step variable for tracking during execution. [JsAce(Snippet = \"RegisterStepVariable(\\\"$1key\\\",\\\"$2name\\\",\\\"$3unit\\\",\\\"$4formatString\\\",\\\"$5variableFunc\\\")\", DocContentHtml = \"

    Register Step Variable.

    \\\"unit\\\" is nullable

    \\\"formatString\\\" is nullable

    \")] [NonAction] public void RegisterStepVariable(string key, string name, string unit, string formatString, Func variableFunc = null) Parameters key string Unique key to identify the variable name string Human-readable name of the variable unit string Physical unit of the variable (can be null) formatString string Format string for displaying the variable (can be null) variableFunc Func Function to compute the variable value from a milling step (can be null) RemoveFlyPiece() Removes any disconnected or “flying” pieces from the workpiece geometry. [JsAce] [HttpPost] public void RemoveFlyPiece() Reset() Reset Player [JsAce(DocContentHtml = \"Reset Player\")] [HttpPost] public void Reset() ResetRuntime() Clears internal buffers. [JsAce] [HttpPost] public void ResetRuntime() RunNc(string, string) Runs NC code directly from a string. [JsAce(Snippet = \"RunNc($1\\\"ncCommand\\\",$2\\\"\\\"(Direct Command)\\\"\\\");\", DocContentHtml = \"Run NC. second parameter is the file name alternative shows in the log.\")] [NonAction] public IEnumerable RunNc(string ncText, string fileNameAlternative = \"--\") Parameters ncText string NC code as a string fileNameAlternative string Alternative name to display in logs Returns IEnumerable Enumerable sequence of actions to be executed RunNcFile(string) Runs an NC file with the specified relative path. [JsAce(\"RunNcFile($1\\\"ncFile\\\");\")] [NonAction] public IEnumerable RunNcFile(string relNcFilePath) Parameters relNcFilePath string Relative path to the NC file Returns IEnumerable Enumerable sequence of actions to be executed SetNcResolutionFeedPerCycle() Sets NC resolution to feed per cycle mode. [HttpPost] public void SetNcResolutionFeedPerCycle() SetNcResolutionFeedPerTooth() Sets NC resolution to feed per tooth mode. [HttpPost] public void SetNcResolutionFeedPerTooth() SetNcResolutionFixed(double, double) Sets NC resolution to fixed mode with specified resolution values. [HttpPost] public void SetNcResolutionFixed(double linearResolution_mm, double rotaryResolution_deg) Parameters linearResolution_mm double Linear resolution in millimeters. rotaryResolution_deg double Rotary resolution in degrees. SetStickMachiningToolObservationHeight_mm(int, double) Sets the observation height in millimeters for the specified stick machining tool. [JsAce(\"SetStickMachiningToolObservationHeight_mm($1toolId,$2height_mm)\")] [HttpPost] public void SetStickMachiningToolObservationHeight_mm(int toolId, double height) Parameters toolId int The ID of the tool height double The observation height in millimeters to set SetUniformContourTrayShiftAngle_deg(int, double) Sets the shift angle in degrees for the uniform contour tray of the specified tool. [JsAce(\"SetUniformContourTrayShiftAngle_deg($1toolId,$2angle_deg)\")] [HttpPost] public void SetUniformContourTrayShiftAngle_deg(int toolId, double angle_deg) Parameters toolId int The ID of the tool angle_deg double The shift angle in degrees to set ShiftDistance_mm(double) Creates a distance shift object representing the specified distance in millimeters. [NonAction] public DistanceShift ShiftDistance_mm(double distanceShift_mm) Parameters distanceShift_mm double Distance shift in millimeters Returns DistanceShift Distance shift object ShiftTime_s(double) Creates a time shift object representing the specified time in seconds. [NonAction] public TimeShift ShiftTime_s(double seconds) Parameters seconds double Time in seconds Returns TimeShift Time shift object TrainMillingPara(SampleFlag, string, double) Trains milling parameters using the specified sample flag. [JsAce(\"TrainMillingPara(Fx|Fy|Fz, $1dstFile)\")] [HttpPost] public void TrainMillingPara(SampleFlag sampleFlag, string dstRelFile, double outlierRatio = 2) Parameters sampleFlag SampleFlag Sample flag indicating which components to train dstRelFile string Destination relative file path outlierRatio double Outlier ratio for data filtering WarningMessage(string) Displays a warning message in the message host. [JsAce(\"WarningMessage($1message)\")] [HttpPost] public void WarningMessage(string message) Parameters message string The warning message to display WriteRuntimeGeom(string) Writes the current runtime geometry to a file. [JsAce(\"WriteRuntimeGeom($1\\\"dstFile\\\")\")] [HttpPost] public void WriteRuntimeGeom(string relFile) Parameters relFile string Relative path to the output file WriteRuntimeGeomToStl(string, double) Writes the current runtime geometry to an STL file. [JsAce(\"WriteRuntimeGeomToStl($1\\\"dstFile\\\",$2resolution_mm)\")] [HttpPost] public void WriteRuntimeGeomToStl(string relFile, double resolution_mm = 0) Parameters relFile string Relative path to the output STL file resolution_mm double Resolution in millimeters (0 for default) WriteShotFiles(double, string) Writes time-series data to shot files with the specified resolution period (alternative parameter order). [NonAction] public void WriteShotFiles(double resolutionPeroid_ms, string relFileTemplate) Parameters resolutionPeroid_ms double Resolution period in milliseconds relFileTemplate string Template for output file path, can include [NcName] placeholder WriteShotFiles(string, double) Writes time-series data to shot files with the specified resolution period. [JsAce(Snippet = \"WriteShotFiles(\\\"Output/[NcName].shot.csv\\\",resolutionPeroid_ms)\", DocContentHtml = \"Write time series data by resolutionPeroid_ms\")] [HttpPost] public void WriteShotFiles(string relFileTemplate = \"Output/[NcName].shot.csv\", double resolutionPeroid_ms = 1) Parameters relFileTemplate string Template for output file path, can include [NcName] placeholder resolutionPeroid_ms double Resolution period in milliseconds WriteStepFiles(string) Writes step-series data to files with the specified file template. [JsAce(Snippet = \"WriteStepFiles(\\\"Output/[NcName].step.csv\\\")\", DocContentHtml = \"Write step series data.\")] [HttpPost] public void WriteStepFiles(string relFileTemplate = \"Output/[NcName].step.csv\") Parameters relFileTemplate string Template for output file path, can include [NcName] placeholder" }, "api/Hi.MachiningProcs.SessionMessage.html": { "href": "api/Hi.MachiningProcs.SessionMessage.html", @@ -1982,7 +1982,7 @@ "api/Hi.MachiningProcs.SetupController.html": { "href": "api/Hi.MachiningProcs.SetupController.html", "title": "Class SetupController | HiAPI-C# 2025", - "summary": "Class SetupController Namespace Hi.MachiningProcs Assembly HiNc.dll Controller for setup operations of machining projects. [ApiController] [Route(\"api/[controller]/[action]\")] public class SetupController : ControllerBase Inheritance object ControllerBase SetupController Inherited Members ControllerBase.StatusCode(int) ControllerBase.StatusCode(int, object) ControllerBase.Content(string) ControllerBase.Content(string, string) ControllerBase.Content(string, string, Encoding) ControllerBase.Content(string, MediaTypeHeaderValue) ControllerBase.NoContent() ControllerBase.Ok() ControllerBase.Ok(object) ControllerBase.Redirect(string) ControllerBase.RedirectPermanent(string) ControllerBase.RedirectPreserveMethod(string) ControllerBase.RedirectPermanentPreserveMethod(string) ControllerBase.LocalRedirect(string) ControllerBase.LocalRedirectPermanent(string) ControllerBase.LocalRedirectPreserveMethod(string) ControllerBase.LocalRedirectPermanentPreserveMethod(string) ControllerBase.RedirectToAction() ControllerBase.RedirectToAction(string) ControllerBase.RedirectToAction(string, object) ControllerBase.RedirectToAction(string, string) ControllerBase.RedirectToAction(string, string, object) ControllerBase.RedirectToAction(string, string, string) ControllerBase.RedirectToAction(string, string, object, string) ControllerBase.RedirectToActionPreserveMethod(string, string, object, string) ControllerBase.RedirectToActionPermanent(string) ControllerBase.RedirectToActionPermanent(string, object) ControllerBase.RedirectToActionPermanent(string, string) ControllerBase.RedirectToActionPermanent(string, string, string) ControllerBase.RedirectToActionPermanent(string, string, object) ControllerBase.RedirectToActionPermanent(string, string, object, string) ControllerBase.RedirectToActionPermanentPreserveMethod(string, string, object, string) ControllerBase.RedirectToRoute(string) ControllerBase.RedirectToRoute(object) ControllerBase.RedirectToRoute(string, object) ControllerBase.RedirectToRoute(string, string) ControllerBase.RedirectToRoute(string, object, string) ControllerBase.RedirectToRoutePreserveMethod(string, object, string) ControllerBase.RedirectToRoutePermanent(string) ControllerBase.RedirectToRoutePermanent(object) ControllerBase.RedirectToRoutePermanent(string, object) ControllerBase.RedirectToRoutePermanent(string, string) ControllerBase.RedirectToRoutePermanent(string, object, string) ControllerBase.RedirectToRoutePermanentPreserveMethod(string, object, string) ControllerBase.RedirectToPage(string) ControllerBase.RedirectToPage(string, object) ControllerBase.RedirectToPage(string, string) ControllerBase.RedirectToPage(string, string, object) ControllerBase.RedirectToPage(string, string, string) ControllerBase.RedirectToPage(string, string, object, string) ControllerBase.RedirectToPagePermanent(string) ControllerBase.RedirectToPagePermanent(string, object) ControllerBase.RedirectToPagePermanent(string, string) ControllerBase.RedirectToPagePermanent(string, string, string) ControllerBase.RedirectToPagePermanent(string, string, object, string) ControllerBase.RedirectToPagePreserveMethod(string, string, object, string) ControllerBase.RedirectToPagePermanentPreserveMethod(string, string, object, string) ControllerBase.File(byte[], string) ControllerBase.File(byte[], string, bool) ControllerBase.File(byte[], string, string) ControllerBase.File(byte[], string, string, bool) ControllerBase.File(byte[], string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(byte[], string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(byte[], string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(byte[], string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(Stream, string) ControllerBase.File(Stream, string, bool) ControllerBase.File(Stream, string, string) ControllerBase.File(Stream, string, string, bool) ControllerBase.File(Stream, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(Stream, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(Stream, string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(Stream, string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(string, string) ControllerBase.File(string, string, bool) ControllerBase.File(string, string, string) ControllerBase.File(string, string, string, bool) ControllerBase.File(string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(string, string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(string, string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.PhysicalFile(string, string) ControllerBase.PhysicalFile(string, string, bool) ControllerBase.PhysicalFile(string, string, string) ControllerBase.PhysicalFile(string, string, string, bool) ControllerBase.PhysicalFile(string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.PhysicalFile(string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.PhysicalFile(string, string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.PhysicalFile(string, string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.Unauthorized() ControllerBase.Unauthorized(object) ControllerBase.NotFound() ControllerBase.NotFound(object) ControllerBase.BadRequest() ControllerBase.BadRequest(object) ControllerBase.BadRequest(ModelStateDictionary) ControllerBase.UnprocessableEntity() ControllerBase.UnprocessableEntity(object) ControllerBase.UnprocessableEntity(ModelStateDictionary) ControllerBase.Conflict() ControllerBase.Conflict(object) ControllerBase.Conflict(ModelStateDictionary) ControllerBase.Problem(string, string, int?, string, string) ControllerBase.Problem(string, string, int?, string, string, IDictionary) ControllerBase.ValidationProblem(ValidationProblemDetails) ControllerBase.ValidationProblem(ModelStateDictionary) ControllerBase.ValidationProblem() ControllerBase.ValidationProblem(string, string, int?, string, string, ModelStateDictionary) ControllerBase.ValidationProblem(string, string, int?, string, string, ModelStateDictionary, IDictionary) ControllerBase.Created() ControllerBase.Created(string, object) ControllerBase.Created(Uri, object) ControllerBase.CreatedAtAction(string, object) ControllerBase.CreatedAtAction(string, object, object) ControllerBase.CreatedAtAction(string, string, object, object) ControllerBase.CreatedAtRoute(string, object) ControllerBase.CreatedAtRoute(object, object) ControllerBase.CreatedAtRoute(string, object, object) ControllerBase.Accepted() ControllerBase.Accepted(object) ControllerBase.Accepted(Uri) ControllerBase.Accepted(string) ControllerBase.Accepted(string, object) ControllerBase.Accepted(Uri, object) ControllerBase.AcceptedAtAction(string) ControllerBase.AcceptedAtAction(string, string) ControllerBase.AcceptedAtAction(string, object) ControllerBase.AcceptedAtAction(string, string, object) ControllerBase.AcceptedAtAction(string, object, object) ControllerBase.AcceptedAtAction(string, string, object, object) ControllerBase.AcceptedAtRoute(object) ControllerBase.AcceptedAtRoute(string) ControllerBase.AcceptedAtRoute(string, object) ControllerBase.AcceptedAtRoute(object, object) ControllerBase.AcceptedAtRoute(string, object, object) ControllerBase.Challenge() ControllerBase.Challenge(params string[]) ControllerBase.Challenge(AuthenticationProperties) ControllerBase.Challenge(AuthenticationProperties, params string[]) ControllerBase.Forbid() ControllerBase.Forbid(params string[]) ControllerBase.Forbid(AuthenticationProperties) ControllerBase.Forbid(AuthenticationProperties, params string[]) ControllerBase.SignIn(ClaimsPrincipal) ControllerBase.SignIn(ClaimsPrincipal, string) ControllerBase.SignIn(ClaimsPrincipal, AuthenticationProperties) ControllerBase.SignIn(ClaimsPrincipal, AuthenticationProperties, string) ControllerBase.SignOut() ControllerBase.SignOut(AuthenticationProperties) ControllerBase.SignOut(params string[]) ControllerBase.SignOut(AuthenticationProperties, params string[]) ControllerBase.TryUpdateModelAsync(TModel) ControllerBase.TryUpdateModelAsync(TModel, string) ControllerBase.TryUpdateModelAsync(TModel, string, IValueProvider) ControllerBase.TryUpdateModelAsync(TModel, string, params Expression>[]) ControllerBase.TryUpdateModelAsync(TModel, string, Func) ControllerBase.TryUpdateModelAsync(TModel, string, IValueProvider, params Expression>[]) ControllerBase.TryUpdateModelAsync(TModel, string, IValueProvider, Func) ControllerBase.TryUpdateModelAsync(object, Type, string) ControllerBase.TryUpdateModelAsync(object, Type, string, IValueProvider, Func) ControllerBase.TryValidateModel(object) ControllerBase.TryValidateModel(object, string) ControllerBase.HttpContext ControllerBase.Request ControllerBase.Response ControllerBase.RouteData ControllerBase.ModelState ControllerBase.ControllerContext ControllerBase.MetadataProvider ControllerBase.ModelBinderFactory ControllerBase.Url ControllerBase.ObjectValidator ControllerBase.ProblemDetailsFactory ControllerBase.User ControllerBase.Empty 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 SetupController(IProjectService) Initializes a new instance. public SetupController(IProjectService projectService) Parameters projectService IProjectService The project service. Properties InitResolution_mm InitResolution_mm. public double InitResolution_mm { get; set; } Property Value double Methods ApplyClMillingDevice() Applies a CL milling device to the machining equipment. [HttpPost] public void ApplyClMillingDevice() LoadFixture(string) Loads a fixture from the specified XML file path. [HttpPost] public void LoadFixture(string fixtureXmlFilePath) Parameters fixtureXmlFilePath string The XML file path of the fixture to load. LoadProject(string) Loads a machining project from the specified file path. [HttpPost] public void LoadProject(string filePath) Parameters filePath string The file path to load the project from. SaveProject() Saves the current machining project. [HttpPost] public void SaveProject()" + "summary": "Class SetupController Namespace Hi.MachiningProcs Assembly HiNc.dll Controller for setup operations of machining projects. [ApiController] [Route(\"api/[controller]/[action]\")] public class SetupController : ControllerBase Inheritance object ControllerBase SetupController Inherited Members ControllerBase.StatusCode(int) ControllerBase.StatusCode(int, object) ControllerBase.Content(string) ControllerBase.Content(string, string) ControllerBase.Content(string, string, Encoding) ControllerBase.Content(string, MediaTypeHeaderValue) ControllerBase.NoContent() ControllerBase.Ok() ControllerBase.Ok(object) ControllerBase.Redirect(string) ControllerBase.RedirectPermanent(string) ControllerBase.RedirectPreserveMethod(string) ControllerBase.RedirectPermanentPreserveMethod(string) ControllerBase.LocalRedirect(string) ControllerBase.LocalRedirectPermanent(string) ControllerBase.LocalRedirectPreserveMethod(string) ControllerBase.LocalRedirectPermanentPreserveMethod(string) ControllerBase.RedirectToAction() ControllerBase.RedirectToAction(string) ControllerBase.RedirectToAction(string, object) ControllerBase.RedirectToAction(string, string) ControllerBase.RedirectToAction(string, string, object) ControllerBase.RedirectToAction(string, string, string) ControllerBase.RedirectToAction(string, string, object, string) ControllerBase.RedirectToActionPreserveMethod(string, string, object, string) ControllerBase.RedirectToActionPermanent(string) ControllerBase.RedirectToActionPermanent(string, object) ControllerBase.RedirectToActionPermanent(string, string) ControllerBase.RedirectToActionPermanent(string, string, string) ControllerBase.RedirectToActionPermanent(string, string, object) ControllerBase.RedirectToActionPermanent(string, string, object, string) ControllerBase.RedirectToActionPermanentPreserveMethod(string, string, object, string) ControllerBase.RedirectToRoute(string) ControllerBase.RedirectToRoute(object) ControllerBase.RedirectToRoute(string, object) ControllerBase.RedirectToRoute(string, string) ControllerBase.RedirectToRoute(string, object, string) ControllerBase.RedirectToRoutePreserveMethod(string, object, string) ControllerBase.RedirectToRoutePermanent(string) ControllerBase.RedirectToRoutePermanent(object) ControllerBase.RedirectToRoutePermanent(string, object) ControllerBase.RedirectToRoutePermanent(string, string) ControllerBase.RedirectToRoutePermanent(string, object, string) ControllerBase.RedirectToRoutePermanentPreserveMethod(string, object, string) ControllerBase.RedirectToPage(string) ControllerBase.RedirectToPage(string, object) ControllerBase.RedirectToPage(string, string) ControllerBase.RedirectToPage(string, string, object) ControllerBase.RedirectToPage(string, string, string) ControllerBase.RedirectToPage(string, string, object, string) ControllerBase.RedirectToPagePermanent(string) ControllerBase.RedirectToPagePermanent(string, object) ControllerBase.RedirectToPagePermanent(string, string) ControllerBase.RedirectToPagePermanent(string, string, string) ControllerBase.RedirectToPagePermanent(string, string, object, string) ControllerBase.RedirectToPagePreserveMethod(string, string, object, string) ControllerBase.RedirectToPagePermanentPreserveMethod(string, string, object, string) ControllerBase.File(byte[], string) ControllerBase.File(byte[], string, bool) ControllerBase.File(byte[], string, string) ControllerBase.File(byte[], string, string, bool) ControllerBase.File(byte[], string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(byte[], string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(byte[], string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(byte[], string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(Stream, string) ControllerBase.File(Stream, string, bool) ControllerBase.File(Stream, string, string) ControllerBase.File(Stream, string, string, bool) ControllerBase.File(Stream, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(Stream, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(Stream, string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(Stream, string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(string, string) ControllerBase.File(string, string, bool) ControllerBase.File(string, string, string) ControllerBase.File(string, string, string, bool) ControllerBase.File(string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(string, string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(string, string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.PhysicalFile(string, string) ControllerBase.PhysicalFile(string, string, bool) ControllerBase.PhysicalFile(string, string, string) ControllerBase.PhysicalFile(string, string, string, bool) ControllerBase.PhysicalFile(string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.PhysicalFile(string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.PhysicalFile(string, string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.PhysicalFile(string, string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.Unauthorized() ControllerBase.Unauthorized(object) ControllerBase.NotFound() ControllerBase.NotFound(object) ControllerBase.BadRequest() ControllerBase.BadRequest(object) ControllerBase.BadRequest(ModelStateDictionary) ControllerBase.UnprocessableEntity() ControllerBase.UnprocessableEntity(object) ControllerBase.UnprocessableEntity(ModelStateDictionary) ControllerBase.Conflict() ControllerBase.Conflict(object) ControllerBase.Conflict(ModelStateDictionary) ControllerBase.Problem(string, string, int?, string, string) ControllerBase.Problem(string, string, int?, string, string, IDictionary) ControllerBase.ValidationProblem(ValidationProblemDetails) ControllerBase.ValidationProblem(ModelStateDictionary) ControllerBase.ValidationProblem() ControllerBase.ValidationProblem(string, string, int?, string, string, ModelStateDictionary) ControllerBase.ValidationProblem(string, string, int?, string, string, ModelStateDictionary, IDictionary) ControllerBase.Created() ControllerBase.Created(string, object) ControllerBase.Created(Uri, object) ControllerBase.CreatedAtAction(string, object) ControllerBase.CreatedAtAction(string, object, object) ControllerBase.CreatedAtAction(string, string, object, object) ControllerBase.CreatedAtRoute(string, object) ControllerBase.CreatedAtRoute(object, object) ControllerBase.CreatedAtRoute(string, object, object) ControllerBase.Accepted() ControllerBase.Accepted(object) ControllerBase.Accepted(Uri) ControllerBase.Accepted(string) ControllerBase.Accepted(string, object) ControllerBase.Accepted(Uri, object) ControllerBase.AcceptedAtAction(string) ControllerBase.AcceptedAtAction(string, string) ControllerBase.AcceptedAtAction(string, object) ControllerBase.AcceptedAtAction(string, string, object) ControllerBase.AcceptedAtAction(string, object, object) ControllerBase.AcceptedAtAction(string, string, object, object) ControllerBase.AcceptedAtRoute(object) ControllerBase.AcceptedAtRoute(string) ControllerBase.AcceptedAtRoute(string, object) ControllerBase.AcceptedAtRoute(object, object) ControllerBase.AcceptedAtRoute(string, object, object) ControllerBase.Challenge() ControllerBase.Challenge(params string[]) ControllerBase.Challenge(AuthenticationProperties) ControllerBase.Challenge(AuthenticationProperties, params string[]) ControllerBase.Forbid() ControllerBase.Forbid(params string[]) ControllerBase.Forbid(AuthenticationProperties) ControllerBase.Forbid(AuthenticationProperties, params string[]) ControllerBase.SignIn(ClaimsPrincipal) ControllerBase.SignIn(ClaimsPrincipal, string) ControllerBase.SignIn(ClaimsPrincipal, AuthenticationProperties) ControllerBase.SignIn(ClaimsPrincipal, AuthenticationProperties, string) ControllerBase.SignOut() ControllerBase.SignOut(AuthenticationProperties) ControllerBase.SignOut(params string[]) ControllerBase.SignOut(AuthenticationProperties, params string[]) ControllerBase.TryUpdateModelAsync(TModel) ControllerBase.TryUpdateModelAsync(TModel, string) ControllerBase.TryUpdateModelAsync(TModel, string, IValueProvider) ControllerBase.TryUpdateModelAsync(TModel, string, params Expression>[]) ControllerBase.TryUpdateModelAsync(TModel, string, Func) ControllerBase.TryUpdateModelAsync(TModel, string, IValueProvider, params Expression>[]) ControllerBase.TryUpdateModelAsync(TModel, string, IValueProvider, Func) ControllerBase.TryUpdateModelAsync(object, Type, string) ControllerBase.TryUpdateModelAsync(object, Type, string, IValueProvider, Func) ControllerBase.TryValidateModel(object) ControllerBase.TryValidateModel(object, string) ControllerBase.HttpContext ControllerBase.Request ControllerBase.Response ControllerBase.RouteData ControllerBase.ModelState ControllerBase.ControllerContext ControllerBase.MetadataProvider ControllerBase.ModelBinderFactory ControllerBase.Url ControllerBase.ObjectValidator ControllerBase.ProblemDetailsFactory ControllerBase.User ControllerBase.Empty 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 SetupController(LocalProjectService) Initializes a new instance. public SetupController(LocalProjectService projectService) Parameters projectService LocalProjectService The project service. Properties InitResolution_mm InitResolution_mm. public double InitResolution_mm { get; set; } Property Value double Methods ApplyClMillingDevice() Applies a CL milling device to the machining equipment. [HttpPost] public void ApplyClMillingDevice() LoadFixture(string) Loads a fixture from the specified XML file path. [HttpPost] public void LoadFixture(string fixtureXmlFilePath) Parameters fixtureXmlFilePath string The XML file path of the fixture to load. LoadProject(string) Loads a machining project from the specified file path. [HttpPost] public void LoadProject(string filePath) Parameters filePath string The file path to load the project from. SaveProject() Saves the current machining project. [HttpPost] public void SaveProject()" }, "api/Hi.MachiningProcs.SpindleSpeedCache.html": { "href": "api/Hi.MachiningProcs.SpindleSpeedCache.html", @@ -1992,7 +1992,7 @@ "api/Hi.MachiningProcs.html": { "href": "api/Hi.MachiningProcs.html", "title": "Namespace Hi.MachiningProcs | HiAPI-C# 2025", - "summary": "Namespace Hi.MachiningProcs Classes DynamicMachiningProjectDisplayee0 Provides display capabilities for a milling course. obsoleted. LocalProjectService Root(Local) project service. Apply absolute file path. MachiningActRunner Represents a runner for machining actions that manages milling steps, tool paths, and collision detection. MachiningParallelProc Represents a parallel processing system for milling operations that manages various tasks such as sweeping, subtraction, force calculation, and physics simulation. MachiningParallelProc.StepTaskBundle Represents a bundle of tasks related to a milling step. MachiningParallelProc.SubstractionResult Represents the result of a subtraction operation. MachiningProject Represents a milling project that manages the execution, simulation, and analysis of NC programs. MachiningProjectDisplayee Represents a displayable wrapper for a machining project. MachiningSession Represents a machining session that manages the execution and optimization of machining operations. Provides functionality for controlling the machining process, handling optimization options, and managing session state. MillingActRunnerConfig Represents the configuration for a milling act runner. Provides settings for physics simulation, evaluation, and temperature control. MillingUtil Provides utility methods for milling calculations and operations. ProxyProjectService Delegate (User-based) Project Service. Apply relative file path from AdminDirectory. RuntimeApi Runtime API for machining operations. RuntimeController Provides a C# scripting API for controlling and manipulating the milling course. Allows for runtime control of milling operations, geometry manipulation, and data analysis. SessionMessage Represents a message in the machining process that can contain various types of data such as source commands, machining steps, exceptions, and tagged messages. SessionMessageHost Represents a host for managing milling messages with thread-safe operations and stable index tracking. SessionMessagePack Represents a package containing a machining message and its associated context. SetupController Controller for setup operations of machining projects. SpindleSpeedCache Represents cached spindle speed information. Interfaces IMachiningProjectGetter Interface for objects that can provide a MachiningProject instance. IProjectService Interface for services that manage machining projects. Enums RenderingFlag Flags that control which elements are rendered in the visualization. SessionMessageHost.FilterFlag Filtering flags for querying messages. Delegates ConfigStepFunc Delegate for configuring a milling step with additional arguments. LocalProjectService.MachiningProjectChangedDelegate Delegate for machining project changed events. MachiningActRunner.MachiningStepBuiltDelegate Delegate for configuring a step with previous and current step information." + "summary": "Namespace Hi.MachiningProcs Classes DynamicMachiningProjectDisplayee0 Provides display capabilities for a milling course. obsoleted. LocalProjectService Root(Local) project service. Apply absolute file path. MachiningActRunner Represents a runner for machining actions that manages milling steps, tool paths, and collision detection. MachiningActRunnerConfig Represents the configuration for a milling act runner. Provides settings for physics simulation, evaluation, and temperature control. MachiningParallelProc Represents a parallel processing system for milling operations that manages various tasks such as sweeping, subtraction, force calculation, and physics simulation. MachiningParallelProc.StepTaskBundle Represents a bundle of tasks related to a milling step. MachiningParallelProc.SubstractionResult Represents the result of a subtraction operation. MachiningProject Represents a milling project that manages the execution, simulation, and analysis of NC programs. MachiningProjectDisplayee Represents a displayable wrapper for a machining project. MachiningSession Represents a machining session that manages the execution and optimization of machining operations. Provides functionality for controlling the machining process, handling optimization options, and managing session state. MillingUtil Provides utility methods for milling calculations and operations. ProxyProjectService Delegate (User-based) Project Service. Apply relative file path from AdminDirectory. RuntimeApi Runtime API for machining operations. RuntimeController Provides a C# scripting API for controlling and manipulating the milling course. Allows for runtime control of milling operations, geometry manipulation, and data analysis. SessionMessage Represents a message in the machining process that can contain various types of data such as source commands, machining steps, exceptions, and tagged messages. SessionMessageHost Represents a host for managing milling messages with thread-safe operations and stable index tracking. SessionMessagePack Represents a package containing a machining message and its associated context. SetupController Controller for setup operations of machining projects. SpindleSpeedCache Represents cached spindle speed information. Interfaces IMachiningProjectGetter Interface for objects that can provide a MachiningProject instance. IProjectService Interface for services that manage machining projects. Enums RenderingFlag Flags that control which elements are rendered in the visualization. SessionMessageHost.FilterFlag Filtering flags for querying messages. Delegates ConfigStepFunc Delegate for configuring a milling step with additional arguments. LocalProjectService.MachiningProjectChangedDelegate Delegate for machining project changed events. MachiningActRunner.MachiningStepBuiltDelegate Delegate for configuring a step with previous and current step information." }, "api/Hi.MachiningSteps.IFlagText.html": { "href": "api/Hi.MachiningSteps.IFlagText.html", @@ -2092,12 +2092,12 @@ "api/Hi.Mapping.StepTimeShotUtil.html": { "href": "api/Hi.Mapping.StepTimeShotUtil.html", "title": "Class StepTimeShotUtil | HiAPI-C# 2025", - "summary": "Class StepTimeShotUtil Namespace Hi.Mapping Assembly HiMech.dll Utility methods for working with time-based shots (measurements) and mapping them to machining steps. public static class StepTimeShotUtil Inheritance object StepTimeShotUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetStepToShotsDictionaryByActualTime(ClStrip, CycleSamplingMode, string, GetTimeShotByFileDelegate, IDictionary>, SessionMessageHost, CancellationToken?) Gets a dictionary mapping step indices to time shots based on actual time. public static void GetStepToShotsDictionaryByActualTime(ClStrip clStrip, StepTimeShotUtil.CycleSamplingMode cycleSamplingMode, string timeShotRelFile, StepTimeShotUtil.GetTimeShotByFileDelegate getTimeShotByRelFileFunc, IDictionary> dstStepToShotsDictionary, SessionMessageHost sessionMessageHost, CancellationToken? cancellationToken) Parameters clStrip ClStrip The cutter location strip. cycleSamplingMode StepTimeShotUtil.CycleSamplingMode The cycle sampling mode. timeShotRelFile string The relative file path for time shots. getTimeShotByRelFileFunc StepTimeShotUtil.GetTimeShotByFileDelegate The delegate function to get time shots by relative file path. dstStepToShotsDictionary IDictionary> The destination dictionary to store the mapping. sessionMessageHost SessionMessageHost The session message host for logging. cancellationToken CancellationToken? The cancellation token. GetTimeShotByFile(string, Action, CancellationToken?) Gets time shots from a file, reading and parsing force acceleration data. public static List GetTimeShotByFile(string file, Action lineReaded, CancellationToken? cancellationToken = null) Parameters file string The file path to read time shots from. lineReaded Action Action to call when a line is read, providing progress feedback with the current line number. cancellationToken CancellationToken? Optional cancellation token to cancel the reading operation. Returns List A list of time shots read from the file, or null if the file cannot be read or is invalid." + "summary": "Class StepTimeShotUtil Namespace Hi.Mapping Assembly HiMech.dll Utility methods for working with time-based shots (measurements) and mapping them to machining steps. public static class StepTimeShotUtil Inheritance object StepTimeShotUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetStepToShotsDictionaryByActualTime(ClStrip, CycleSamplingMode, string, GetTimeShotByFileDelegate, IDictionary>, IMessageHost, CancellationToken?) Gets a dictionary mapping step indices to time shots based on actual time. public static void GetStepToShotsDictionaryByActualTime(ClStrip clStrip, StepTimeShotUtil.CycleSamplingMode cycleSamplingMode, string timeShotRelFile, StepTimeShotUtil.GetTimeShotByFileDelegate getTimeShotByRelFileFunc, IDictionary> dstStepToShotsDictionary, IMessageHost sessionMessageHost, CancellationToken? cancellationToken) Parameters clStrip ClStrip The cutter location strip. cycleSamplingMode StepTimeShotUtil.CycleSamplingMode The cycle sampling mode. timeShotRelFile string The relative file path for time shots. getTimeShotByRelFileFunc StepTimeShotUtil.GetTimeShotByFileDelegate The delegate function to get time shots by relative file path. dstStepToShotsDictionary IDictionary> The destination dictionary to store the mapping. sessionMessageHost IMessageHost The session message host for logging. cancellationToken CancellationToken? The cancellation token. GetTimeShotByFile(string, Action, CancellationToken?) Gets time shots from a file, reading and parsing force acceleration data. public static List GetTimeShotByFile(string file, Action lineReaded, CancellationToken? cancellationToken = null) Parameters file string The file path to read time shots from. lineReaded Action Action to call when a line is read, providing progress feedback with the current line number. cancellationToken CancellationToken? Optional cancellation token to cancel the reading operation. Returns List A list of time shots read from the file, or null if the file cannot be read or is invalid." }, "api/Hi.Mapping.TimeMapping.html": { "href": "api/Hi.Mapping.TimeMapping.html", "title": "Class TimeMapping | HiAPI-C# 2025", - "summary": "Class TimeMapping Namespace Hi.Mapping Assembly HiMech.dll Provides mapping between machining steps and time-based measurements (shots), public class TimeMapping : IMakeXmlSource, IDisposable Inheritance object TimeMapping Implements IMakeXmlSource IDisposable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors TimeMapping(ClStrip, MachiningToolHouse, Func) Initializes a new instance of the TimeMapping class with the specified CL strip and tool house. public TimeMapping(ClStrip clStrip, MachiningToolHouse millingToolHouse, Func baseDirectoryGetter) Parameters clStrip ClStrip The cutter location strip containing the machining steps. millingToolHouse MachiningToolHouse The machining tool house containing available tools. baseDirectoryGetter Func The function to get the base directory for file paths. TimeMapping(XElement, Func) Initializes a new instance of the TimeMapping class from XML data. public TimeMapping(XElement src, Func baseDirectoryGetter) Parameters src XElement The XML element containing the mapping data. baseDirectoryGetter Func The function to get the base directory for resolving relative file paths. Remarks This constructor supports legacy XML formats and automatically converts them to the current format. Legacy formats include: NcMapping with MarkIdToFileTimeSection element Entries with MarkID attributes Properties BaseDirectory Gets or sets the base directory for resolving file paths. All relative file paths in the mapping are resolved against this directory. public string BaseDirectory { get; } Property Value string BaseDirectoryGetter Gets or sets the function to get the base directory for resolving file paths. public Func BaseDirectoryGetter { get; set; } Property Value Func ClStrip Gets or sets the cutter location strip containing the machining steps. This is used as a reference for mapping time shots to machining steps. public ClStrip ClStrip { get; set; } Property Value ClStrip KeyToRelFileTimeSectionDictionary Gets or sets the dictionary mapping keys to file time sections. Each entry maps a unique identifier to a file time section that specifies which portion of a measurement file corresponds to a particular machining operation. public Dictionary KeyToRelFileTimeSectionDictionary { get; set; } Property Value Dictionary LineReaded Gets or sets the callback action that is invoked when a line is read from a measurement file. This can be used to track progress during file loading operations. public Action LineReaded { get; set; } Property Value Action Remarks The parameter passed to the action is the current line number being read. MillingToolHouse Gets or sets the machining tool house containing available tools. This is used to determine tool-specific parameters during mapping. public MachiningToolHouse MillingToolHouse { get; set; } Property Value MachiningToolHouse RelFileToTimeShotListDictionary Gets or sets the cache of time shot lists loaded from files. This is a thread-safe dictionary that maps file paths to tasks that load and parse the files. The cache prevents multiple reads of the same file and enables concurrent access. public ConcurrentDictionary>> RelFileToTimeShotListDictionary { get; set; } Property Value ConcurrentDictionary>> StepToTimeShotListDictionary Gets a concurrent dictionary mapping step indices to their corresponding time shot lists. This dictionary is populated during the mapping process. public ConcurrentDictionary> StepToTimeShotListDictionary { get; } Property Value ConcurrentDictionary> XName Gets the XML element name used for serialization. public static string XName { get; } Property Value string Remarks This name is used as the root element when serializing TimeMapping instances to XML. It matches the class name to maintain consistency between code and XML representation. Methods CallTimeShotByRelFile(string, CancellationToken?) Retrieves time shots from a file, using cached results if available. public List CallTimeShotByRelFile(string relFile, CancellationToken? cancellationToken = null) Parameters relFile string The relative path to the file containing time shots. cancellationToken CancellationToken? Optional token to cancel the loading operation. Returns List A list of time shots from the file. The results are cached for subsequent calls. If the file is already being loaded by another thread, waits for that operation to complete. Remarks This method is thread-safe and ensures each file is only read once, even with concurrent access. Any exceptions during file reading are captured and can be inspected through the task's exception property. Clear() Clears all mappings and data, including the key-to-file time section dictionary. public void Clear() ClearCache() Clears the cache of loaded time shot data, including file-to-time shot list and step-to-time shot list dictionaries. public void ClearCache() Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() Dispose(bool) protected virtual void Dispose(bool disposing) Parameters disposing bool GetShots(int) Gets the time shots associated with a specific step index. public List GetShots(int stepIndex) Parameters stepIndex int The index of the step to get shots for. Returns List A list of time shots associated with the specified step, or null if no shots are found. LoadTimeShotFiles(CancellationToken?) Loads all time shot files referenced in the KeyToFileTimeSectionMapping. public void LoadTimeShotFiles(CancellationToken? cancellationToken = null) Parameters cancellationToken CancellationToken? Optional cancellation token to cancel the operation. MakeXmlSource(string, string, bool) Creates an XML representation of the time mapping data. relFile is not used in current implementation. 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 containing the complete time mapping data. Remarks The XML structure includes: A root TimeMapping element An Entrys element containing Entry elements Each Entry has a Key attribute and FileTimeSection child element Map(Range, FileTimeSection, CycleSamplingMode, CancellationToken?) Maps the specified step section to time shots using the provided file time section and cycle sampling mode. This method is thread-safe and can be called concurrently. public void Map(Range stepSection, FileTimeSection relFileTimeSection, StepTimeShotUtil.CycleSamplingMode cycleSamplingMode, CancellationToken? cancellationToken = null) Parameters stepSection Range The range of step indices to process. relFileTimeSection FileTimeSection The file time section containing file path and time range. cycleSamplingMode StepTimeShotUtil.CycleSamplingMode The cycle sampling mode to use. cancellationToken CancellationToken? Optional cancellation token to cancel the operation. MapByActualTime(string, CycleSamplingMode, SessionMessageHost, CancellationToken?) Maps steps to time shots based on actual time. public void MapByActualTime(string timeShotRelFile, StepTimeShotUtil.CycleSamplingMode cycleSamplingMode, SessionMessageHost sessionMessageHost, CancellationToken? cancellationToken = null) Parameters timeShotRelFile string The relative file path for time shots. cycleSamplingMode StepTimeShotUtil.CycleSamplingMode The cycle sampling mode. sessionMessageHost SessionMessageHost The session message host for logging. cancellationToken CancellationToken? The cancellation token. WaitMapping() Waits for all mapping operations to complete. This method blocks until all concurrent mapping tasks have finished. public void WaitMapping()" + "summary": "Class TimeMapping Namespace Hi.Mapping Assembly HiMech.dll Provides mapping between machining steps and time-based measurements (shots), public class TimeMapping : IMakeXmlSource, IDisposable Inheritance object TimeMapping Implements IMakeXmlSource IDisposable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors TimeMapping(Func) Initializes a new instance of the TimeMapping class with the specified CL strip and tool house. public TimeMapping(Func baseDirectoryGetter) Parameters baseDirectoryGetter Func The function to get the base directory for file paths. TimeMapping(XElement, Func) Initializes a new instance of the TimeMapping class from XML data. public TimeMapping(XElement src, Func baseDirectoryGetter) Parameters src XElement The XML element containing the mapping data. baseDirectoryGetter Func The function to get the base directory for resolving relative file paths. Remarks This constructor supports legacy XML formats and automatically converts them to the current format. Legacy formats include: NcMapping with MarkIdToFileTimeSection element Entries with MarkID attributes Properties BaseDirectory Gets or sets the base directory for resolving file paths. All relative file paths in the mapping are resolved against this directory. public string BaseDirectory { get; } Property Value string BaseDirectoryGetter Gets or sets the function to get the base directory for resolving file paths. public Func BaseDirectoryGetter { get; set; } Property Value Func KeyToRelFileTimeSectionDictionary Gets or sets the dictionary mapping keys to file time sections. Each entry maps a unique identifier to a file time section that specifies which portion of a measurement file corresponds to a particular machining operation. public Dictionary KeyToRelFileTimeSectionDictionary { get; set; } Property Value Dictionary RelFileToTimeShotListDictionary Gets or sets the cache of time shot lists loaded from files. This is a thread-safe dictionary that maps file paths to tasks that load and parse the files. The cache prevents multiple reads of the same file and enables concurrent access. public ConcurrentDictionary>> RelFileToTimeShotListDictionary { get; set; } Property Value ConcurrentDictionary>> StepToTimeShotListDictionary Gets a concurrent dictionary mapping step indices to their corresponding time shot lists. This dictionary is populated during the mapping process. public ConcurrentDictionary> StepToTimeShotListDictionary { get; } Property Value ConcurrentDictionary> XName Gets the XML element name used for serialization. public static string XName { get; } Property Value string Remarks This name is used as the root element when serializing TimeMapping instances to XML. It matches the class name to maintain consistency between code and XML representation. Methods CallTimeShotByRelFile(string, IMessageHost, CancellationToken?) Retrieves time shots from a file, using cached results if available. public List CallTimeShotByRelFile(string relFile, IMessageHost messageHost, CancellationToken? cancellationToken = null) Parameters relFile string The relative path to the file containing time shots. messageHost IMessageHost cancellationToken CancellationToken? Optional token to cancel the loading operation. Returns List A list of time shots from the file. The results are cached for subsequent calls. If the file is already being loaded by another thread, waits for that operation to complete. Remarks This method is thread-safe and ensures each file is only read once, even with concurrent access. Any exceptions during file reading are captured and can be inspected through the task's exception property. Clear() Clears all mappings and data, including the key-to-file time section dictionary. public void Clear() ClearCache() Clears the cache of loaded time shot data, including file-to-time shot list and step-to-time shot list dictionaries. public void ClearCache() Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() Dispose(bool) protected virtual void Dispose(bool disposing) Parameters disposing bool GetShots(int) Gets the time shots associated with a specific step index. public List GetShots(int stepIndex) Parameters stepIndex int The index of the step to get shots for. Returns List A list of time shots associated with the specified step, or null if no shots are found. LoadTimeShotFiles(IMessageHost, CancellationToken?) Loads all time shot files referenced in the KeyToFileTimeSectionMapping. public void LoadTimeShotFiles(IMessageHost messageHost, CancellationToken? cancellationToken = null) Parameters messageHost IMessageHost cancellationToken CancellationToken? Optional cancellation token to cancel the operation. MakeXmlSource(string, string, bool) Creates an XML representation of the time mapping data. relFile is not used in current implementation. 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 containing the complete time mapping data. Remarks The XML structure includes: A root TimeMapping element An Entrys element containing Entry elements Each Entry has a Key attribute and FileTimeSection child element Map(Range, FileTimeSection, CycleSamplingMode, ClStrip, IMessageHost, CancellationToken?) Maps the specified step section to time shots using the provided file time section and cycle sampling mode. This method is thread-safe and can be called concurrently. public void Map(Range stepSection, FileTimeSection relFileTimeSection, StepTimeShotUtil.CycleSamplingMode cycleSamplingMode, ClStrip clStrip, IMessageHost messageHost, CancellationToken? cancellationToken = null) Parameters stepSection Range The range of step indices to process. relFileTimeSection FileTimeSection The file time section containing file path and time range. cycleSamplingMode StepTimeShotUtil.CycleSamplingMode The cycle sampling mode to use. clStrip ClStrip messageHost IMessageHost cancellationToken CancellationToken? Optional cancellation token to cancel the operation. MapByActualTime(string, CycleSamplingMode, ClStrip, IMessageHost, CancellationToken?) Maps steps to time shots based on actual time. public void MapByActualTime(string timeShotRelFile, StepTimeShotUtil.CycleSamplingMode cycleSamplingMode, ClStrip clStrip, IMessageHost messageHost, CancellationToken? cancellationToken = null) Parameters timeShotRelFile string The relative file path for time shots. cycleSamplingMode StepTimeShotUtil.CycleSamplingMode The cycle sampling mode. clStrip ClStrip messageHost IMessageHost The session message host for logging. cancellationToken CancellationToken? The cancellation token. WaitMapping() Waits for all mapping operations to complete. This method blocks until all concurrent mapping tasks have finished. public void WaitMapping()" }, "api/Hi.Mapping.html": { "href": "api/Hi.Mapping.html", @@ -3632,7 +3632,7 @@ "api/Hi.Numerical.FilePlayers.CsvRunner.html": { "href": "api/Hi.Numerical.FilePlayers.CsvRunner.html", "title": "Class CsvRunner | HiAPI-C# 2025", - "summary": "Class CsvRunner Namespace Hi.Numerical.FilePlayers Assembly HiNc.dll Provides functionality for running and processing csv lines. public class CsvRunner : IControlRunner Inheritance object CsvRunner Implements IControlRunner Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors CsvRunner(PacePlayer, SessionMessageHost) Initializes a new instance. public CsvRunner(PacePlayer pacePlayer, SessionMessageHost sessionMessageHost) Parameters pacePlayer PacePlayer The pace player for controlling playback. sessionMessageHost SessionMessageHost The session message host for logging. Properties Config Configuration for CSV Runner. public CsvRunnerConfig Config { get; set; } Property Value CsvRunnerConfig PacePlayer Gets the pace player for controlling playback. public PacePlayer PacePlayer { get; } Property Value PacePlayer SessionMessageHost External Hosted. public SessionMessageHost SessionMessageHost { get; set; } Property Value SessionMessageHost Methods Reset() Reset runtime data. public void Reset() ResetFileIndex() Resets the file index to zero. public void ResetFileIndex() RunControlLines(string, IEnumerable, CancellationToken) Runs raw Control lines and yields source control line and Act pairs. public IEnumerable RunControlLines(string relFilePath, IEnumerable lines, CancellationToken cancellationToken) Parameters relFilePath string The relative path of the control file lines IEnumerable The enumerable collection of command (control code) lines cancellationToken CancellationToken Cancellation token to cancel the operation Returns IEnumerable Enumerable of source control line and Act pairs RunToLineEnd() Set EnumerablePlayer before use the function. public void RunToLineEnd()" + "summary": "Class CsvRunner Namespace Hi.Numerical.FilePlayers Assembly HiNc.dll Provides functionality for running and processing csv lines. public class CsvRunner : IControlRunner Inheritance object CsvRunner Implements IControlRunner Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors CsvRunner(PacePlayer, LocalProjectService, SessionMessageHost) Initializes a new instance. public CsvRunner(PacePlayer pacePlayer, LocalProjectService localProjectService, SessionMessageHost sessionMessageHost) Parameters pacePlayer PacePlayer The pace player for controlling playback. localProjectService LocalProjectService sessionMessageHost SessionMessageHost The session message host for logging. Properties Config Configuration for CSV Runner. public CsvRunnerConfig Config { get; set; } Property Value CsvRunnerConfig PacePlayer Gets the pace player for controlling playback. public PacePlayer PacePlayer { get; } Property Value PacePlayer SessionMessageHost External Hosted. public SessionMessageHost SessionMessageHost { get; set; } Property Value SessionMessageHost Methods Reset() Reset runtime data. public void Reset() ResetFileIndex() Resets the file index to zero. public void ResetFileIndex() RunControlLines(string, IEnumerable, CancellationToken) Runs raw Control lines and yields source control line and Act pairs. public IEnumerable RunControlLines(string relFilePath, IEnumerable lines, CancellationToken cancellationToken) Parameters relFilePath string The relative path of the control file lines IEnumerable The enumerable collection of command (control code) lines cancellationToken CancellationToken Cancellation token to cancel the operation Returns IEnumerable Enumerable of source control line and Act pairs RunToLineEnd() Set EnumerablePlayer before use the function. public void RunToLineEnd()" }, "api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html": { "href": "api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html", @@ -3647,7 +3647,7 @@ "api/Hi.Numerical.FilePlayers.NcRunner.html": { "href": "api/Hi.Numerical.FilePlayers.NcRunner.html", "title": "Class NcRunner | HiAPI-C# 2025", - "summary": "Class NcRunner Namespace Hi.Numerical.FilePlayers Assembly HiNc.dll Provides functionality for running and processing NC code lines. public class NcRunner : IControlRunner Inheritance object NcRunner Implements IControlRunner Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors NcRunner(PacePlayer, NcEnv, SessionMessageHost) Initializes a new instance. public NcRunner(PacePlayer pacePlayer, NcEnv ncEnv, SessionMessageHost millingProcessMessage) Parameters pacePlayer PacePlayer The pace player for controlling playback. ncEnv NcEnv The NC environment settings. millingProcessMessage SessionMessageHost The milling process message host. Properties FileIndexOnRunCommand Gets the current file index for run commands. public int FileIndexOnRunCommand { get; } Property Value int NcEnv Gets the NC environment settings. public NcEnv NcEnv { get; set; } Property Value NcEnv NcLines Gets the linked list of NC lines. public LinkedList NcLines { get; } Property Value LinkedList PacePlayer Gets the pace player for controlling playback. public PacePlayer PacePlayer { get; } Property Value PacePlayer SessionMessageHost External Hosted. public SessionMessageHost SessionMessageHost { get; set; } Property Value SessionMessageHost Methods ResetFileIndex() Resets the file index to zero. public void ResetFileIndex() RunControlLines(string, IEnumerable, CancellationToken) Runs raw NC lines and yields NcLine and Act pairs. public IEnumerable RunControlLines(string relNcFilePath, IEnumerable lines, CancellationToken cancellationToken) Parameters relNcFilePath string The relative path of the NC file lines IEnumerable The enumerable collection of NC code lines cancellationToken CancellationToken Cancellation token to cancel the operation Returns IEnumerable Enumerable of NcLine and Act pairs RunToLineEnd() Set EnumerablePlayer before use the function. public void RunToLineEnd()" + "summary": "Class NcRunner Namespace Hi.Numerical.FilePlayers Assembly HiNc.dll Provides functionality for running and processing NC code lines. public class NcRunner : IControlRunner Inheritance object NcRunner Implements IControlRunner Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties FileIndexOnRunCommand Gets the current file index for run commands. public int FileIndexOnRunCommand { get; } Property Value int NcLines Gets the linked list of NC lines. public LinkedList NcLines { get; } Property Value LinkedList PacePlayer Gets the pace player for controlling playback. public PacePlayer PacePlayer { get; } Property Value PacePlayer SessionMessageHost External Hosted. public SessionMessageHost SessionMessageHost { get; set; } Property Value SessionMessageHost Methods ResetFileIndex() Resets the file index to zero. public void ResetFileIndex() RunControlLines(string, IEnumerable, CancellationToken) Runs raw NC lines and yields NcLine and Act pairs. public IEnumerable RunControlLines(string relNcFilePath, IEnumerable lines, CancellationToken cancellationToken) Parameters relNcFilePath string The relative path of the NC file lines IEnumerable The enumerable collection of NC code lines cancellationToken CancellationToken Cancellation token to cancel the operation Returns IEnumerable Enumerable of NcLine and Act pairs RunToLineEnd() Set EnumerablePlayer before use the function. public void RunToLineEnd()" }, "api/Hi.Numerical.FilePlayers.SourceCommandActEntry.html": { "href": "api/Hi.Numerical.FilePlayers.SourceCommandActEntry.html", @@ -4594,20 +4594,20 @@ "title": "Namespace Hi.WinForm.Disp | HiAPI-C# 2025", "summary": "Namespace Hi.WinForm.Disp Classes RenderingCanvas Window Form Displayer. RenderingForm A Form contains RenderingCanvas. This class is usually used for debug due to its simplicity." }, - "api/Hi.Wpf.Disp.RenderingCanvas.html": { - "href": "api/Hi.Wpf.Disp.RenderingCanvas.html", + "api/Hi.WpfPlus.Disp.RenderingCanvas.html": { + "href": "api/Hi.WpfPlus.Disp.RenderingCanvas.html", "title": "Class RenderingCanvas | HiAPI-C# 2025", - "summary": "Class RenderingCanvas Namespace Hi.Wpf.Disp Assembly Hi.Wpf.dll Provides a WPF rendering canvas for 3D visualization of HiAPI components. Handles user interactions, rendering, and integration with the DispEngine system. public class RenderingCanvas : UserControl, IAnimatable, ISupportInitialize, IFrameworkInputElement, IInputElement, IQueryAmbient, IAddChild, IDisposable Inheritance object DispatcherObject DependencyObject Visual UIElement FrameworkElement Control ContentControl UserControl RenderingCanvas Implements IAnimatable ISupportInitialize IFrameworkInputElement IInputElement IQueryAmbient IAddChild IDisposable Inherited Members UserControl.OnCreateAutomationPeer() ContentControl.ContentProperty ContentControl.ContentStringFormatProperty ContentControl.ContentTemplateProperty ContentControl.ContentTemplateSelectorProperty ContentControl.HasContentProperty ContentControl.AddChild(object) ContentControl.AddText(string) ContentControl.OnContentChanged(object, object) ContentControl.OnContentStringFormatChanged(string, string) ContentControl.OnContentTemplateChanged(DataTemplate, DataTemplate) ContentControl.OnContentTemplateSelectorChanged(DataTemplateSelector, DataTemplateSelector) ContentControl.Content ContentControl.ContentStringFormat ContentControl.ContentTemplate ContentControl.ContentTemplateSelector ContentControl.HasContent ContentControl.LogicalChildren Control.BackgroundProperty Control.BorderBrushProperty Control.BorderThicknessProperty Control.FontFamilyProperty Control.FontSizeProperty Control.FontStretchProperty Control.FontStyleProperty Control.FontWeightProperty Control.ForegroundProperty Control.HorizontalContentAlignmentProperty Control.IsTabStopProperty Control.MouseDoubleClickEvent Control.PaddingProperty Control.PreviewMouseDoubleClickEvent Control.TabIndexProperty Control.TemplateProperty Control.VerticalContentAlignmentProperty Control.ArrangeOverride(Size) Control.MeasureOverride(Size) Control.OnMouseDoubleClick(MouseButtonEventArgs) Control.OnPreviewMouseDoubleClick(MouseButtonEventArgs) Control.OnTemplateChanged(ControlTemplate, ControlTemplate) Control.ToString() Control.Background Control.BorderBrush Control.BorderThickness Control.FontFamily Control.FontSize Control.FontStretch Control.FontStyle Control.FontWeight Control.Foreground Control.HandlesScrolling Control.HorizontalContentAlignment Control.IsTabStop Control.Padding Control.TabIndex Control.Template Control.VerticalContentAlignment Control.MouseDoubleClick Control.PreviewMouseDoubleClick FrameworkElement.ActualHeightProperty FrameworkElement.ActualWidthProperty FrameworkElement.BindingGroupProperty FrameworkElement.ContextMenuClosingEvent FrameworkElement.ContextMenuOpeningEvent FrameworkElement.ContextMenuProperty FrameworkElement.CursorProperty FrameworkElement.DataContextProperty FrameworkElement.DefaultStyleKeyProperty FrameworkElement.FlowDirectionProperty FrameworkElement.FocusVisualStyleProperty FrameworkElement.ForceCursorProperty FrameworkElement.HeightProperty FrameworkElement.HorizontalAlignmentProperty FrameworkElement.InputScopeProperty FrameworkElement.LanguageProperty FrameworkElement.LayoutTransformProperty FrameworkElement.LoadedEvent FrameworkElement.MarginProperty FrameworkElement.MaxHeightProperty FrameworkElement.MaxWidthProperty FrameworkElement.MinHeightProperty FrameworkElement.MinWidthProperty FrameworkElement.NameProperty FrameworkElement.OverridesDefaultStyleProperty FrameworkElement.RequestBringIntoViewEvent FrameworkElement.SizeChangedEvent FrameworkElement.StyleProperty FrameworkElement.TagProperty FrameworkElement.ToolTipClosingEvent FrameworkElement.ToolTipOpeningEvent FrameworkElement.ToolTipProperty FrameworkElement.UnloadedEvent FrameworkElement.UseLayoutRoundingProperty FrameworkElement.VerticalAlignmentProperty FrameworkElement.WidthProperty FrameworkElement.AddLogicalChild(object) FrameworkElement.ApplyTemplate() FrameworkElement.ArrangeCore(Rect) FrameworkElement.BeginInit() FrameworkElement.BeginStoryboard(Storyboard) FrameworkElement.BeginStoryboard(Storyboard, HandoffBehavior) FrameworkElement.BeginStoryboard(Storyboard, HandoffBehavior, bool) FrameworkElement.BringIntoView() FrameworkElement.BringIntoView(Rect) FrameworkElement.EndInit() FrameworkElement.FindName(string) FrameworkElement.FindResource(object) FrameworkElement.GetBindingExpression(DependencyProperty) FrameworkElement.GetFlowDirection(DependencyObject) FrameworkElement.GetLayoutClip(Size) FrameworkElement.GetTemplateChild(string) FrameworkElement.GetUIParentCore() FrameworkElement.GetVisualChild(int) FrameworkElement.MeasureCore(Size) FrameworkElement.MoveFocus(TraversalRequest) FrameworkElement.OnApplyTemplate() FrameworkElement.OnContextMenuClosing(ContextMenuEventArgs) FrameworkElement.OnContextMenuOpening(ContextMenuEventArgs) FrameworkElement.OnGotFocus(RoutedEventArgs) FrameworkElement.OnInitialized(EventArgs) FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs) FrameworkElement.OnRenderSizeChanged(SizeChangedInfo) FrameworkElement.OnStyleChanged(Style, Style) FrameworkElement.OnToolTipClosing(ToolTipEventArgs) FrameworkElement.OnToolTipOpening(ToolTipEventArgs) FrameworkElement.OnVisualParentChanged(DependencyObject) FrameworkElement.ParentLayoutInvalidated(UIElement) FrameworkElement.PredictFocus(FocusNavigationDirection) FrameworkElement.RegisterName(string, object) FrameworkElement.RemoveLogicalChild(object) FrameworkElement.SetBinding(DependencyProperty, string) FrameworkElement.SetBinding(DependencyProperty, BindingBase) FrameworkElement.SetFlowDirection(DependencyObject, FlowDirection) FrameworkElement.SetResourceReference(DependencyProperty, object) FrameworkElement.TryFindResource(object) FrameworkElement.UnregisterName(string) FrameworkElement.UpdateDefaultStyle() FrameworkElement.ActualHeight FrameworkElement.ActualWidth FrameworkElement.BindingGroup FrameworkElement.ContextMenu FrameworkElement.Cursor FrameworkElement.DataContext FrameworkElement.DefaultStyleKey FrameworkElement.FlowDirection FrameworkElement.FocusVisualStyle FrameworkElement.ForceCursor FrameworkElement.Height FrameworkElement.HorizontalAlignment FrameworkElement.InheritanceBehavior FrameworkElement.InputScope FrameworkElement.IsInitialized FrameworkElement.IsLoaded FrameworkElement.Language FrameworkElement.LayoutTransform FrameworkElement.Margin FrameworkElement.MaxHeight FrameworkElement.MaxWidth FrameworkElement.MinHeight FrameworkElement.MinWidth FrameworkElement.Name FrameworkElement.OverridesDefaultStyle FrameworkElement.Parent FrameworkElement.Resources FrameworkElement.Style FrameworkElement.Tag FrameworkElement.TemplatedParent FrameworkElement.ToolTip FrameworkElement.Triggers FrameworkElement.UseLayoutRounding FrameworkElement.VerticalAlignment FrameworkElement.VisualChildrenCount FrameworkElement.Width FrameworkElement.ContextMenuClosing FrameworkElement.ContextMenuOpening FrameworkElement.DataContextChanged FrameworkElement.Initialized FrameworkElement.Loaded FrameworkElement.RequestBringIntoView FrameworkElement.SizeChanged FrameworkElement.SourceUpdated FrameworkElement.TargetUpdated FrameworkElement.ToolTipClosing FrameworkElement.ToolTipOpening FrameworkElement.Unloaded UIElement.AllowDropProperty UIElement.AreAnyTouchesCapturedProperty UIElement.AreAnyTouchesCapturedWithinProperty UIElement.AreAnyTouchesDirectlyOverProperty UIElement.AreAnyTouchesOverProperty UIElement.BitmapEffectInputProperty UIElement.BitmapEffectProperty UIElement.CacheModeProperty UIElement.ClipProperty UIElement.ClipToBoundsProperty UIElement.DragEnterEvent UIElement.DragLeaveEvent UIElement.DragOverEvent UIElement.DropEvent UIElement.EffectProperty UIElement.FocusableProperty UIElement.GiveFeedbackEvent UIElement.GotFocusEvent UIElement.GotKeyboardFocusEvent UIElement.GotMouseCaptureEvent UIElement.GotStylusCaptureEvent UIElement.GotTouchCaptureEvent UIElement.IsEnabledProperty UIElement.IsFocusedProperty UIElement.IsHitTestVisibleProperty UIElement.IsKeyboardFocusedProperty UIElement.IsKeyboardFocusWithinProperty UIElement.IsManipulationEnabledProperty UIElement.IsMouseCapturedProperty UIElement.IsMouseCaptureWithinProperty UIElement.IsMouseDirectlyOverProperty UIElement.IsMouseOverProperty UIElement.IsStylusCapturedProperty UIElement.IsStylusCaptureWithinProperty UIElement.IsStylusDirectlyOverProperty UIElement.IsStylusOverProperty UIElement.IsVisibleProperty UIElement.KeyDownEvent UIElement.KeyUpEvent UIElement.LostFocusEvent UIElement.LostKeyboardFocusEvent UIElement.LostMouseCaptureEvent UIElement.LostStylusCaptureEvent UIElement.LostTouchCaptureEvent UIElement.ManipulationBoundaryFeedbackEvent UIElement.ManipulationCompletedEvent UIElement.ManipulationDeltaEvent UIElement.ManipulationInertiaStartingEvent UIElement.ManipulationStartedEvent UIElement.ManipulationStartingEvent UIElement.MouseDownEvent UIElement.MouseEnterEvent UIElement.MouseLeaveEvent UIElement.MouseLeftButtonDownEvent UIElement.MouseLeftButtonUpEvent UIElement.MouseMoveEvent UIElement.MouseRightButtonDownEvent UIElement.MouseRightButtonUpEvent UIElement.MouseUpEvent UIElement.MouseWheelEvent UIElement.OpacityMaskProperty UIElement.OpacityProperty UIElement.PreviewDragEnterEvent UIElement.PreviewDragLeaveEvent UIElement.PreviewDragOverEvent UIElement.PreviewDropEvent UIElement.PreviewGiveFeedbackEvent UIElement.PreviewGotKeyboardFocusEvent UIElement.PreviewKeyDownEvent UIElement.PreviewKeyUpEvent UIElement.PreviewLostKeyboardFocusEvent UIElement.PreviewMouseDownEvent UIElement.PreviewMouseLeftButtonDownEvent UIElement.PreviewMouseLeftButtonUpEvent UIElement.PreviewMouseMoveEvent UIElement.PreviewMouseRightButtonDownEvent UIElement.PreviewMouseRightButtonUpEvent UIElement.PreviewMouseUpEvent UIElement.PreviewMouseWheelEvent UIElement.PreviewQueryContinueDragEvent UIElement.PreviewStylusButtonDownEvent UIElement.PreviewStylusButtonUpEvent UIElement.PreviewStylusDownEvent UIElement.PreviewStylusInAirMoveEvent UIElement.PreviewStylusInRangeEvent UIElement.PreviewStylusMoveEvent UIElement.PreviewStylusOutOfRangeEvent UIElement.PreviewStylusSystemGestureEvent UIElement.PreviewStylusUpEvent UIElement.PreviewTextInputEvent UIElement.PreviewTouchDownEvent UIElement.PreviewTouchMoveEvent UIElement.PreviewTouchUpEvent UIElement.QueryContinueDragEvent UIElement.QueryCursorEvent UIElement.RenderTransformOriginProperty UIElement.RenderTransformProperty UIElement.SnapsToDevicePixelsProperty UIElement.StylusButtonDownEvent UIElement.StylusButtonUpEvent UIElement.StylusDownEvent UIElement.StylusEnterEvent UIElement.StylusInAirMoveEvent UIElement.StylusInRangeEvent UIElement.StylusLeaveEvent UIElement.StylusMoveEvent UIElement.StylusOutOfRangeEvent UIElement.StylusSystemGestureEvent UIElement.StylusUpEvent UIElement.TextInputEvent UIElement.TouchDownEvent UIElement.TouchEnterEvent UIElement.TouchLeaveEvent UIElement.TouchMoveEvent UIElement.TouchUpEvent UIElement.UidProperty UIElement.VisibilityProperty UIElement.AddHandler(RoutedEvent, Delegate) UIElement.AddHandler(RoutedEvent, Delegate, bool) UIElement.AddToEventRoute(EventRoute, RoutedEventArgs) UIElement.ApplyAnimationClock(DependencyProperty, AnimationClock) UIElement.ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior) UIElement.Arrange(Rect) UIElement.BeginAnimation(DependencyProperty, AnimationTimeline) UIElement.BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior) UIElement.CaptureMouse() UIElement.CaptureStylus() UIElement.CaptureTouch(TouchDevice) UIElement.Focus() UIElement.GetAnimationBaseValue(DependencyProperty) UIElement.HitTestCore(GeometryHitTestParameters) UIElement.HitTestCore(PointHitTestParameters) UIElement.InputHitTest(Point) UIElement.InvalidateArrange() UIElement.InvalidateMeasure() UIElement.InvalidateVisual() UIElement.Measure(Size) UIElement.OnAccessKey(AccessKeyEventArgs) UIElement.OnChildDesiredSizeChanged(UIElement) UIElement.OnDragEnter(DragEventArgs) UIElement.OnDragLeave(DragEventArgs) UIElement.OnDragOver(DragEventArgs) UIElement.OnDrop(DragEventArgs) UIElement.OnGiveFeedback(GiveFeedbackEventArgs) UIElement.OnGotKeyboardFocus(KeyboardFocusChangedEventArgs) UIElement.OnGotMouseCapture(MouseEventArgs) UIElement.OnGotStylusCapture(StylusEventArgs) UIElement.OnGotTouchCapture(TouchEventArgs) UIElement.OnIsKeyboardFocusedChanged(DependencyPropertyChangedEventArgs) UIElement.OnIsKeyboardFocusWithinChanged(DependencyPropertyChangedEventArgs) UIElement.OnIsMouseCapturedChanged(DependencyPropertyChangedEventArgs) UIElement.OnIsMouseCaptureWithinChanged(DependencyPropertyChangedEventArgs) UIElement.OnIsMouseDirectlyOverChanged(DependencyPropertyChangedEventArgs) UIElement.OnIsStylusCapturedChanged(DependencyPropertyChangedEventArgs) UIElement.OnIsStylusCaptureWithinChanged(DependencyPropertyChangedEventArgs) UIElement.OnIsStylusDirectlyOverChanged(DependencyPropertyChangedEventArgs) UIElement.OnKeyDown(KeyEventArgs) UIElement.OnKeyUp(KeyEventArgs) UIElement.OnLostFocus(RoutedEventArgs) UIElement.OnLostKeyboardFocus(KeyboardFocusChangedEventArgs) UIElement.OnLostMouseCapture(MouseEventArgs) UIElement.OnLostStylusCapture(StylusEventArgs) UIElement.OnLostTouchCapture(TouchEventArgs) UIElement.OnManipulationBoundaryFeedback(ManipulationBoundaryFeedbackEventArgs) UIElement.OnManipulationCompleted(ManipulationCompletedEventArgs) UIElement.OnManipulationDelta(ManipulationDeltaEventArgs) UIElement.OnManipulationInertiaStarting(ManipulationInertiaStartingEventArgs) UIElement.OnManipulationStarted(ManipulationStartedEventArgs) UIElement.OnManipulationStarting(ManipulationStartingEventArgs) UIElement.OnMouseDown(MouseButtonEventArgs) UIElement.OnMouseEnter(MouseEventArgs) UIElement.OnMouseLeave(MouseEventArgs) UIElement.OnMouseLeftButtonDown(MouseButtonEventArgs) UIElement.OnMouseLeftButtonUp(MouseButtonEventArgs) UIElement.OnMouseMove(MouseEventArgs) UIElement.OnMouseRightButtonDown(MouseButtonEventArgs) UIElement.OnMouseRightButtonUp(MouseButtonEventArgs) UIElement.OnMouseUp(MouseButtonEventArgs) UIElement.OnMouseWheel(MouseWheelEventArgs) UIElement.OnPreviewDragEnter(DragEventArgs) UIElement.OnPreviewDragLeave(DragEventArgs) UIElement.OnPreviewDragOver(DragEventArgs) UIElement.OnPreviewDrop(DragEventArgs) UIElement.OnPreviewGiveFeedback(GiveFeedbackEventArgs) UIElement.OnPreviewGotKeyboardFocus(KeyboardFocusChangedEventArgs) UIElement.OnPreviewKeyDown(KeyEventArgs) UIElement.OnPreviewKeyUp(KeyEventArgs) UIElement.OnPreviewLostKeyboardFocus(KeyboardFocusChangedEventArgs) UIElement.OnPreviewMouseDown(MouseButtonEventArgs) UIElement.OnPreviewMouseLeftButtonDown(MouseButtonEventArgs) UIElement.OnPreviewMouseLeftButtonUp(MouseButtonEventArgs) UIElement.OnPreviewMouseMove(MouseEventArgs) UIElement.OnPreviewMouseRightButtonDown(MouseButtonEventArgs) UIElement.OnPreviewMouseRightButtonUp(MouseButtonEventArgs) UIElement.OnPreviewMouseUp(MouseButtonEventArgs) UIElement.OnPreviewMouseWheel(MouseWheelEventArgs) UIElement.OnPreviewQueryContinueDrag(QueryContinueDragEventArgs) UIElement.OnPreviewStylusButtonDown(StylusButtonEventArgs) UIElement.OnPreviewStylusButtonUp(StylusButtonEventArgs) UIElement.OnPreviewStylusDown(StylusDownEventArgs) UIElement.OnPreviewStylusInAirMove(StylusEventArgs) UIElement.OnPreviewStylusInRange(StylusEventArgs) UIElement.OnPreviewStylusMove(StylusEventArgs) UIElement.OnPreviewStylusOutOfRange(StylusEventArgs) UIElement.OnPreviewStylusSystemGesture(StylusSystemGestureEventArgs) UIElement.OnPreviewStylusUp(StylusEventArgs) UIElement.OnPreviewTextInput(TextCompositionEventArgs) UIElement.OnPreviewTouchDown(TouchEventArgs) UIElement.OnPreviewTouchMove(TouchEventArgs) UIElement.OnPreviewTouchUp(TouchEventArgs) UIElement.OnQueryContinueDrag(QueryContinueDragEventArgs) UIElement.OnQueryCursor(QueryCursorEventArgs) UIElement.OnRender(DrawingContext) UIElement.OnStylusButtonDown(StylusButtonEventArgs) UIElement.OnStylusButtonUp(StylusButtonEventArgs) UIElement.OnStylusDown(StylusDownEventArgs) UIElement.OnStylusEnter(StylusEventArgs) UIElement.OnStylusInAirMove(StylusEventArgs) UIElement.OnStylusInRange(StylusEventArgs) UIElement.OnStylusLeave(StylusEventArgs) UIElement.OnStylusMove(StylusEventArgs) UIElement.OnStylusOutOfRange(StylusEventArgs) UIElement.OnStylusSystemGesture(StylusSystemGestureEventArgs) UIElement.OnStylusUp(StylusEventArgs) UIElement.OnTextInput(TextCompositionEventArgs) UIElement.OnTouchDown(TouchEventArgs) UIElement.OnTouchEnter(TouchEventArgs) UIElement.OnTouchLeave(TouchEventArgs) UIElement.OnTouchMove(TouchEventArgs) UIElement.OnTouchUp(TouchEventArgs) UIElement.RaiseEvent(RoutedEventArgs) UIElement.ReleaseAllTouchCaptures() UIElement.ReleaseMouseCapture() UIElement.ReleaseStylusCapture() UIElement.ReleaseTouchCapture(TouchDevice) UIElement.RemoveHandler(RoutedEvent, Delegate) UIElement.TranslatePoint(Point, UIElement) UIElement.UpdateLayout() UIElement.AllowDrop UIElement.AreAnyTouchesCaptured UIElement.AreAnyTouchesCapturedWithin UIElement.AreAnyTouchesDirectlyOver UIElement.AreAnyTouchesOver UIElement.BitmapEffect UIElement.BitmapEffectInput UIElement.CacheMode UIElement.Clip UIElement.ClipToBounds UIElement.CommandBindings UIElement.DesiredSize UIElement.Effect UIElement.Focusable UIElement.HasAnimatedProperties UIElement.HasEffectiveKeyboardFocus UIElement.InputBindings UIElement.IsArrangeValid UIElement.IsEnabled UIElement.IsEnabledCore UIElement.IsFocused UIElement.IsHitTestVisible UIElement.IsInputMethodEnabled UIElement.IsKeyboardFocused UIElement.IsKeyboardFocusWithin UIElement.IsManipulationEnabled UIElement.IsMeasureValid UIElement.IsMouseCaptured UIElement.IsMouseCaptureWithin UIElement.IsMouseDirectlyOver UIElement.IsMouseOver UIElement.IsStylusCaptured UIElement.IsStylusCaptureWithin UIElement.IsStylusDirectlyOver UIElement.IsStylusOver UIElement.IsVisible UIElement.Opacity UIElement.OpacityMask UIElement.PersistId UIElement.RenderSize UIElement.RenderTransform UIElement.RenderTransformOrigin UIElement.SnapsToDevicePixels UIElement.StylusPlugIns UIElement.TouchesCaptured UIElement.TouchesCapturedWithin UIElement.TouchesDirectlyOver UIElement.TouchesOver UIElement.Uid UIElement.Visibility UIElement.DragEnter UIElement.DragLeave UIElement.DragOver UIElement.Drop UIElement.FocusableChanged UIElement.GiveFeedback UIElement.GotFocus UIElement.GotKeyboardFocus UIElement.GotMouseCapture UIElement.GotStylusCapture UIElement.GotTouchCapture UIElement.IsEnabledChanged UIElement.IsHitTestVisibleChanged UIElement.IsKeyboardFocusedChanged UIElement.IsKeyboardFocusWithinChanged UIElement.IsMouseCapturedChanged UIElement.IsMouseCaptureWithinChanged UIElement.IsMouseDirectlyOverChanged UIElement.IsStylusCapturedChanged UIElement.IsStylusCaptureWithinChanged UIElement.IsStylusDirectlyOverChanged UIElement.IsVisibleChanged UIElement.KeyDown UIElement.KeyUp UIElement.LayoutUpdated UIElement.LostFocus UIElement.LostKeyboardFocus UIElement.LostMouseCapture UIElement.LostStylusCapture UIElement.LostTouchCapture UIElement.ManipulationBoundaryFeedback UIElement.ManipulationCompleted UIElement.ManipulationDelta UIElement.ManipulationInertiaStarting UIElement.ManipulationStarted UIElement.ManipulationStarting UIElement.MouseDown UIElement.MouseEnter UIElement.MouseLeave UIElement.MouseLeftButtonDown UIElement.MouseLeftButtonUp UIElement.MouseMove UIElement.MouseRightButtonDown UIElement.MouseRightButtonUp UIElement.MouseUp UIElement.MouseWheel UIElement.PreviewDragEnter UIElement.PreviewDragLeave UIElement.PreviewDragOver UIElement.PreviewDrop UIElement.PreviewGiveFeedback UIElement.PreviewGotKeyboardFocus UIElement.PreviewKeyDown UIElement.PreviewKeyUp UIElement.PreviewLostKeyboardFocus UIElement.PreviewMouseDown UIElement.PreviewMouseLeftButtonDown UIElement.PreviewMouseLeftButtonUp UIElement.PreviewMouseMove UIElement.PreviewMouseRightButtonDown UIElement.PreviewMouseRightButtonUp UIElement.PreviewMouseUp UIElement.PreviewMouseWheel UIElement.PreviewQueryContinueDrag UIElement.PreviewStylusButtonDown UIElement.PreviewStylusButtonUp UIElement.PreviewStylusDown UIElement.PreviewStylusInAirMove UIElement.PreviewStylusInRange UIElement.PreviewStylusMove UIElement.PreviewStylusOutOfRange UIElement.PreviewStylusSystemGesture UIElement.PreviewStylusUp UIElement.PreviewTextInput UIElement.PreviewTouchDown UIElement.PreviewTouchMove UIElement.PreviewTouchUp UIElement.QueryContinueDrag UIElement.QueryCursor UIElement.StylusButtonDown UIElement.StylusButtonUp UIElement.StylusDown UIElement.StylusEnter UIElement.StylusInAirMove UIElement.StylusInRange UIElement.StylusLeave UIElement.StylusMove UIElement.StylusOutOfRange UIElement.StylusSystemGesture UIElement.StylusUp UIElement.TextInput UIElement.TouchDown UIElement.TouchEnter UIElement.TouchLeave UIElement.TouchMove UIElement.TouchUp Visual.AddVisualChild(Visual) Visual.FindCommonVisualAncestor(DependencyObject) Visual.IsAncestorOf(DependencyObject) Visual.IsDescendantOf(DependencyObject) Visual.OnDpiChanged(DpiScale, DpiScale) Visual.OnVisualChildrenChanged(DependencyObject, DependencyObject) Visual.PointFromScreen(Point) Visual.PointToScreen(Point) Visual.RemoveVisualChild(Visual) Visual.TransformToAncestor(Visual3D) Visual.TransformToAncestor(Visual) Visual.TransformToDescendant(Visual) Visual.TransformToVisual(Visual) Visual.VisualBitmapEffect Visual.VisualBitmapEffectInput Visual.VisualBitmapScalingMode Visual.VisualCacheMode Visual.VisualClearTypeHint Visual.VisualClip Visual.VisualEdgeMode Visual.VisualEffect Visual.VisualOffset Visual.VisualOpacity Visual.VisualOpacityMask Visual.VisualParent Visual.VisualScrollableAreaClip Visual.VisualTextHintingMode Visual.VisualTextRenderingMode Visual.VisualTransform Visual.VisualXSnappingGuidelines Visual.VisualYSnappingGuidelines DependencyObject.ClearValue(DependencyProperty) DependencyObject.ClearValue(DependencyPropertyKey) DependencyObject.CoerceValue(DependencyProperty) DependencyObject.Equals(object) DependencyObject.GetHashCode() DependencyObject.GetLocalValueEnumerator() DependencyObject.GetValue(DependencyProperty) DependencyObject.InvalidateProperty(DependencyProperty) DependencyObject.ReadLocalValue(DependencyProperty) DependencyObject.SetCurrentValue(DependencyProperty, object) DependencyObject.SetValue(DependencyProperty, object) DependencyObject.SetValue(DependencyPropertyKey, object) DependencyObject.ShouldSerializeProperty(DependencyProperty) DependencyObject.DependencyObjectType DependencyObject.IsSealed DispatcherObject.Dispatcher object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Remarks This canvas provides the core rendering capabilities for WPF applications using HiAPI. It manages mouse, keyboard, and touch events, and transforms them into appropriate actions in the 3D environment. Constructors RenderingCanvas() Initializes a new instance of the RenderingCanvas public RenderingCanvas() Properties DispEngine The DispEngine instance that handles rendering and user interactions public DispEngine DispEngine { get; } Property Value DispEngine Methods Dispose() Public dispose method to free resources public void Dispose() Dispose(bool) Disposes managed resources protected virtual void Dispose(bool disposing) Parameters disposing bool" + "summary": "Class RenderingCanvas Namespace Hi.WpfPlus.Disp Assembly Hi.WpfPlus.dll Provides a WPF rendering canvas for 3D visualization of HiAPI components. Handles user interactions, rendering, and integration with the DispEngine system. public class RenderingCanvas : UserControl, IAnimatable, ISupportInitialize, IFrameworkInputElement, IInputElement, IQueryAmbient, IAddChild, IDisposable Inheritance object DispatcherObject DependencyObject Visual UIElement FrameworkElement Control ContentControl UserControl RenderingCanvas Implements IAnimatable ISupportInitialize IFrameworkInputElement IInputElement IQueryAmbient IAddChild IDisposable Inherited Members UserControl.OnCreateAutomationPeer() ContentControl.ContentProperty ContentControl.ContentStringFormatProperty ContentControl.ContentTemplateProperty ContentControl.ContentTemplateSelectorProperty ContentControl.HasContentProperty ContentControl.AddChild(object) ContentControl.AddText(string) ContentControl.OnContentChanged(object, object) ContentControl.OnContentStringFormatChanged(string, string) ContentControl.OnContentTemplateChanged(DataTemplate, DataTemplate) ContentControl.OnContentTemplateSelectorChanged(DataTemplateSelector, DataTemplateSelector) ContentControl.Content ContentControl.ContentStringFormat ContentControl.ContentTemplate ContentControl.ContentTemplateSelector ContentControl.HasContent ContentControl.LogicalChildren Control.BackgroundProperty Control.BorderBrushProperty Control.BorderThicknessProperty Control.FontFamilyProperty Control.FontSizeProperty Control.FontStretchProperty Control.FontStyleProperty Control.FontWeightProperty Control.ForegroundProperty Control.HorizontalContentAlignmentProperty Control.IsTabStopProperty Control.MouseDoubleClickEvent Control.PaddingProperty Control.PreviewMouseDoubleClickEvent Control.TabIndexProperty Control.TemplateProperty Control.VerticalContentAlignmentProperty Control.ArrangeOverride(Size) Control.MeasureOverride(Size) Control.OnMouseDoubleClick(MouseButtonEventArgs) Control.OnPreviewMouseDoubleClick(MouseButtonEventArgs) Control.OnTemplateChanged(ControlTemplate, ControlTemplate) Control.ToString() Control.Background Control.BorderBrush Control.BorderThickness Control.FontFamily Control.FontSize Control.FontStretch Control.FontStyle Control.FontWeight Control.Foreground Control.HandlesScrolling Control.HorizontalContentAlignment Control.IsTabStop Control.Padding Control.TabIndex Control.Template Control.VerticalContentAlignment Control.MouseDoubleClick Control.PreviewMouseDoubleClick FrameworkElement.ActualHeightProperty FrameworkElement.ActualWidthProperty FrameworkElement.BindingGroupProperty FrameworkElement.ContextMenuClosingEvent FrameworkElement.ContextMenuOpeningEvent FrameworkElement.ContextMenuProperty FrameworkElement.CursorProperty FrameworkElement.DataContextProperty FrameworkElement.DefaultStyleKeyProperty FrameworkElement.FlowDirectionProperty FrameworkElement.FocusVisualStyleProperty FrameworkElement.ForceCursorProperty FrameworkElement.HeightProperty FrameworkElement.HorizontalAlignmentProperty FrameworkElement.InputScopeProperty FrameworkElement.LanguageProperty FrameworkElement.LayoutTransformProperty FrameworkElement.LoadedEvent FrameworkElement.MarginProperty FrameworkElement.MaxHeightProperty FrameworkElement.MaxWidthProperty FrameworkElement.MinHeightProperty FrameworkElement.MinWidthProperty FrameworkElement.NameProperty FrameworkElement.OverridesDefaultStyleProperty FrameworkElement.RequestBringIntoViewEvent FrameworkElement.SizeChangedEvent FrameworkElement.StyleProperty FrameworkElement.TagProperty FrameworkElement.ToolTipClosingEvent FrameworkElement.ToolTipOpeningEvent FrameworkElement.ToolTipProperty FrameworkElement.UnloadedEvent FrameworkElement.UseLayoutRoundingProperty FrameworkElement.VerticalAlignmentProperty FrameworkElement.WidthProperty FrameworkElement.AddLogicalChild(object) FrameworkElement.ApplyTemplate() FrameworkElement.ArrangeCore(Rect) FrameworkElement.BeginInit() FrameworkElement.BeginStoryboard(Storyboard) FrameworkElement.BeginStoryboard(Storyboard, HandoffBehavior) FrameworkElement.BeginStoryboard(Storyboard, HandoffBehavior, bool) FrameworkElement.BringIntoView() FrameworkElement.BringIntoView(Rect) FrameworkElement.EndInit() FrameworkElement.FindName(string) FrameworkElement.FindResource(object) FrameworkElement.GetBindingExpression(DependencyProperty) FrameworkElement.GetFlowDirection(DependencyObject) FrameworkElement.GetLayoutClip(Size) FrameworkElement.GetTemplateChild(string) FrameworkElement.GetUIParentCore() FrameworkElement.GetVisualChild(int) FrameworkElement.MeasureCore(Size) FrameworkElement.MoveFocus(TraversalRequest) FrameworkElement.OnApplyTemplate() FrameworkElement.OnContextMenuClosing(ContextMenuEventArgs) FrameworkElement.OnContextMenuOpening(ContextMenuEventArgs) FrameworkElement.OnGotFocus(RoutedEventArgs) FrameworkElement.OnInitialized(EventArgs) FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs) FrameworkElement.OnRenderSizeChanged(SizeChangedInfo) FrameworkElement.OnStyleChanged(Style, Style) FrameworkElement.OnToolTipClosing(ToolTipEventArgs) FrameworkElement.OnToolTipOpening(ToolTipEventArgs) FrameworkElement.OnVisualParentChanged(DependencyObject) FrameworkElement.ParentLayoutInvalidated(UIElement) FrameworkElement.PredictFocus(FocusNavigationDirection) FrameworkElement.RegisterName(string, object) FrameworkElement.RemoveLogicalChild(object) FrameworkElement.SetBinding(DependencyProperty, string) FrameworkElement.SetBinding(DependencyProperty, BindingBase) FrameworkElement.SetFlowDirection(DependencyObject, FlowDirection) FrameworkElement.SetResourceReference(DependencyProperty, object) FrameworkElement.TryFindResource(object) FrameworkElement.UnregisterName(string) FrameworkElement.UpdateDefaultStyle() FrameworkElement.ActualHeight FrameworkElement.ActualWidth FrameworkElement.BindingGroup FrameworkElement.ContextMenu FrameworkElement.Cursor FrameworkElement.DataContext FrameworkElement.DefaultStyleKey FrameworkElement.FlowDirection FrameworkElement.FocusVisualStyle FrameworkElement.ForceCursor FrameworkElement.Height FrameworkElement.HorizontalAlignment FrameworkElement.InheritanceBehavior FrameworkElement.InputScope FrameworkElement.IsInitialized FrameworkElement.IsLoaded FrameworkElement.Language FrameworkElement.LayoutTransform FrameworkElement.Margin FrameworkElement.MaxHeight FrameworkElement.MaxWidth FrameworkElement.MinHeight FrameworkElement.MinWidth FrameworkElement.Name FrameworkElement.OverridesDefaultStyle FrameworkElement.Parent FrameworkElement.Resources FrameworkElement.Style FrameworkElement.Tag FrameworkElement.TemplatedParent FrameworkElement.ToolTip FrameworkElement.Triggers FrameworkElement.UseLayoutRounding FrameworkElement.VerticalAlignment FrameworkElement.VisualChildrenCount FrameworkElement.Width FrameworkElement.ContextMenuClosing FrameworkElement.ContextMenuOpening FrameworkElement.DataContextChanged FrameworkElement.Initialized FrameworkElement.Loaded FrameworkElement.RequestBringIntoView FrameworkElement.SizeChanged FrameworkElement.SourceUpdated FrameworkElement.TargetUpdated FrameworkElement.ToolTipClosing FrameworkElement.ToolTipOpening FrameworkElement.Unloaded UIElement.AllowDropProperty UIElement.AreAnyTouchesCapturedProperty UIElement.AreAnyTouchesCapturedWithinProperty UIElement.AreAnyTouchesDirectlyOverProperty UIElement.AreAnyTouchesOverProperty UIElement.BitmapEffectInputProperty UIElement.BitmapEffectProperty UIElement.CacheModeProperty UIElement.ClipProperty UIElement.ClipToBoundsProperty UIElement.DragEnterEvent UIElement.DragLeaveEvent UIElement.DragOverEvent UIElement.DropEvent UIElement.EffectProperty UIElement.FocusableProperty UIElement.GiveFeedbackEvent UIElement.GotFocusEvent UIElement.GotKeyboardFocusEvent UIElement.GotMouseCaptureEvent UIElement.GotStylusCaptureEvent UIElement.GotTouchCaptureEvent UIElement.IsEnabledProperty UIElement.IsFocusedProperty UIElement.IsHitTestVisibleProperty UIElement.IsKeyboardFocusedProperty UIElement.IsKeyboardFocusWithinProperty UIElement.IsManipulationEnabledProperty UIElement.IsMouseCapturedProperty UIElement.IsMouseCaptureWithinProperty UIElement.IsMouseDirectlyOverProperty UIElement.IsMouseOverProperty UIElement.IsStylusCapturedProperty UIElement.IsStylusCaptureWithinProperty UIElement.IsStylusDirectlyOverProperty UIElement.IsStylusOverProperty UIElement.IsVisibleProperty UIElement.KeyDownEvent UIElement.KeyUpEvent UIElement.LostFocusEvent UIElement.LostKeyboardFocusEvent UIElement.LostMouseCaptureEvent UIElement.LostStylusCaptureEvent UIElement.LostTouchCaptureEvent UIElement.ManipulationBoundaryFeedbackEvent UIElement.ManipulationCompletedEvent UIElement.ManipulationDeltaEvent UIElement.ManipulationInertiaStartingEvent UIElement.ManipulationStartedEvent UIElement.ManipulationStartingEvent UIElement.MouseDownEvent UIElement.MouseEnterEvent UIElement.MouseLeaveEvent UIElement.MouseLeftButtonDownEvent UIElement.MouseLeftButtonUpEvent UIElement.MouseMoveEvent UIElement.MouseRightButtonDownEvent UIElement.MouseRightButtonUpEvent UIElement.MouseUpEvent UIElement.MouseWheelEvent UIElement.OpacityMaskProperty UIElement.OpacityProperty UIElement.PreviewDragEnterEvent UIElement.PreviewDragLeaveEvent UIElement.PreviewDragOverEvent UIElement.PreviewDropEvent UIElement.PreviewGiveFeedbackEvent UIElement.PreviewGotKeyboardFocusEvent UIElement.PreviewKeyDownEvent UIElement.PreviewKeyUpEvent UIElement.PreviewLostKeyboardFocusEvent UIElement.PreviewMouseDownEvent UIElement.PreviewMouseLeftButtonDownEvent UIElement.PreviewMouseLeftButtonUpEvent UIElement.PreviewMouseMoveEvent UIElement.PreviewMouseRightButtonDownEvent UIElement.PreviewMouseRightButtonUpEvent UIElement.PreviewMouseUpEvent UIElement.PreviewMouseWheelEvent UIElement.PreviewQueryContinueDragEvent UIElement.PreviewStylusButtonDownEvent UIElement.PreviewStylusButtonUpEvent UIElement.PreviewStylusDownEvent UIElement.PreviewStylusInAirMoveEvent UIElement.PreviewStylusInRangeEvent UIElement.PreviewStylusMoveEvent UIElement.PreviewStylusOutOfRangeEvent UIElement.PreviewStylusSystemGestureEvent UIElement.PreviewStylusUpEvent UIElement.PreviewTextInputEvent UIElement.PreviewTouchDownEvent UIElement.PreviewTouchMoveEvent UIElement.PreviewTouchUpEvent UIElement.QueryContinueDragEvent UIElement.QueryCursorEvent UIElement.RenderTransformOriginProperty UIElement.RenderTransformProperty UIElement.SnapsToDevicePixelsProperty UIElement.StylusButtonDownEvent UIElement.StylusButtonUpEvent UIElement.StylusDownEvent UIElement.StylusEnterEvent UIElement.StylusInAirMoveEvent UIElement.StylusInRangeEvent UIElement.StylusLeaveEvent UIElement.StylusMoveEvent UIElement.StylusOutOfRangeEvent UIElement.StylusSystemGestureEvent UIElement.StylusUpEvent UIElement.TextInputEvent UIElement.TouchDownEvent UIElement.TouchEnterEvent UIElement.TouchLeaveEvent UIElement.TouchMoveEvent UIElement.TouchUpEvent UIElement.UidProperty UIElement.VisibilityProperty UIElement.AddHandler(RoutedEvent, Delegate) UIElement.AddHandler(RoutedEvent, Delegate, bool) UIElement.AddToEventRoute(EventRoute, RoutedEventArgs) UIElement.ApplyAnimationClock(DependencyProperty, AnimationClock) UIElement.ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior) UIElement.Arrange(Rect) UIElement.BeginAnimation(DependencyProperty, AnimationTimeline) UIElement.BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior) UIElement.CaptureMouse() UIElement.CaptureStylus() UIElement.CaptureTouch(TouchDevice) UIElement.Focus() UIElement.GetAnimationBaseValue(DependencyProperty) UIElement.HitTestCore(GeometryHitTestParameters) UIElement.HitTestCore(PointHitTestParameters) UIElement.InputHitTest(Point) UIElement.InvalidateArrange() UIElement.InvalidateMeasure() UIElement.InvalidateVisual() UIElement.Measure(Size) UIElement.OnAccessKey(AccessKeyEventArgs) UIElement.OnChildDesiredSizeChanged(UIElement) UIElement.OnDragEnter(DragEventArgs) UIElement.OnDragLeave(DragEventArgs) UIElement.OnDragOver(DragEventArgs) UIElement.OnDrop(DragEventArgs) UIElement.OnGiveFeedback(GiveFeedbackEventArgs) UIElement.OnGotKeyboardFocus(KeyboardFocusChangedEventArgs) UIElement.OnGotMouseCapture(MouseEventArgs) UIElement.OnGotStylusCapture(StylusEventArgs) UIElement.OnGotTouchCapture(TouchEventArgs) UIElement.OnIsKeyboardFocusedChanged(DependencyPropertyChangedEventArgs) UIElement.OnIsKeyboardFocusWithinChanged(DependencyPropertyChangedEventArgs) UIElement.OnIsMouseCapturedChanged(DependencyPropertyChangedEventArgs) UIElement.OnIsMouseCaptureWithinChanged(DependencyPropertyChangedEventArgs) UIElement.OnIsMouseDirectlyOverChanged(DependencyPropertyChangedEventArgs) UIElement.OnIsStylusCapturedChanged(DependencyPropertyChangedEventArgs) UIElement.OnIsStylusCaptureWithinChanged(DependencyPropertyChangedEventArgs) UIElement.OnIsStylusDirectlyOverChanged(DependencyPropertyChangedEventArgs) UIElement.OnKeyDown(KeyEventArgs) UIElement.OnKeyUp(KeyEventArgs) UIElement.OnLostFocus(RoutedEventArgs) UIElement.OnLostKeyboardFocus(KeyboardFocusChangedEventArgs) UIElement.OnLostMouseCapture(MouseEventArgs) UIElement.OnLostStylusCapture(StylusEventArgs) UIElement.OnLostTouchCapture(TouchEventArgs) UIElement.OnManipulationBoundaryFeedback(ManipulationBoundaryFeedbackEventArgs) UIElement.OnManipulationCompleted(ManipulationCompletedEventArgs) UIElement.OnManipulationDelta(ManipulationDeltaEventArgs) UIElement.OnManipulationInertiaStarting(ManipulationInertiaStartingEventArgs) UIElement.OnManipulationStarted(ManipulationStartedEventArgs) UIElement.OnManipulationStarting(ManipulationStartingEventArgs) UIElement.OnMouseDown(MouseButtonEventArgs) UIElement.OnMouseEnter(MouseEventArgs) UIElement.OnMouseLeave(MouseEventArgs) UIElement.OnMouseLeftButtonDown(MouseButtonEventArgs) UIElement.OnMouseLeftButtonUp(MouseButtonEventArgs) UIElement.OnMouseMove(MouseEventArgs) UIElement.OnMouseRightButtonDown(MouseButtonEventArgs) UIElement.OnMouseRightButtonUp(MouseButtonEventArgs) UIElement.OnMouseUp(MouseButtonEventArgs) UIElement.OnMouseWheel(MouseWheelEventArgs) UIElement.OnPreviewDragEnter(DragEventArgs) UIElement.OnPreviewDragLeave(DragEventArgs) UIElement.OnPreviewDragOver(DragEventArgs) UIElement.OnPreviewDrop(DragEventArgs) UIElement.OnPreviewGiveFeedback(GiveFeedbackEventArgs) UIElement.OnPreviewGotKeyboardFocus(KeyboardFocusChangedEventArgs) UIElement.OnPreviewKeyDown(KeyEventArgs) UIElement.OnPreviewKeyUp(KeyEventArgs) UIElement.OnPreviewLostKeyboardFocus(KeyboardFocusChangedEventArgs) UIElement.OnPreviewMouseDown(MouseButtonEventArgs) UIElement.OnPreviewMouseLeftButtonDown(MouseButtonEventArgs) UIElement.OnPreviewMouseLeftButtonUp(MouseButtonEventArgs) UIElement.OnPreviewMouseMove(MouseEventArgs) UIElement.OnPreviewMouseRightButtonDown(MouseButtonEventArgs) UIElement.OnPreviewMouseRightButtonUp(MouseButtonEventArgs) UIElement.OnPreviewMouseUp(MouseButtonEventArgs) UIElement.OnPreviewMouseWheel(MouseWheelEventArgs) UIElement.OnPreviewQueryContinueDrag(QueryContinueDragEventArgs) UIElement.OnPreviewStylusButtonDown(StylusButtonEventArgs) UIElement.OnPreviewStylusButtonUp(StylusButtonEventArgs) UIElement.OnPreviewStylusDown(StylusDownEventArgs) UIElement.OnPreviewStylusInAirMove(StylusEventArgs) UIElement.OnPreviewStylusInRange(StylusEventArgs) UIElement.OnPreviewStylusMove(StylusEventArgs) UIElement.OnPreviewStylusOutOfRange(StylusEventArgs) UIElement.OnPreviewStylusSystemGesture(StylusSystemGestureEventArgs) UIElement.OnPreviewStylusUp(StylusEventArgs) UIElement.OnPreviewTextInput(TextCompositionEventArgs) UIElement.OnPreviewTouchDown(TouchEventArgs) UIElement.OnPreviewTouchMove(TouchEventArgs) UIElement.OnPreviewTouchUp(TouchEventArgs) UIElement.OnQueryContinueDrag(QueryContinueDragEventArgs) UIElement.OnQueryCursor(QueryCursorEventArgs) UIElement.OnRender(DrawingContext) UIElement.OnStylusButtonDown(StylusButtonEventArgs) UIElement.OnStylusButtonUp(StylusButtonEventArgs) UIElement.OnStylusDown(StylusDownEventArgs) UIElement.OnStylusEnter(StylusEventArgs) UIElement.OnStylusInAirMove(StylusEventArgs) UIElement.OnStylusInRange(StylusEventArgs) UIElement.OnStylusLeave(StylusEventArgs) UIElement.OnStylusMove(StylusEventArgs) UIElement.OnStylusOutOfRange(StylusEventArgs) UIElement.OnStylusSystemGesture(StylusSystemGestureEventArgs) UIElement.OnStylusUp(StylusEventArgs) UIElement.OnTextInput(TextCompositionEventArgs) UIElement.OnTouchDown(TouchEventArgs) UIElement.OnTouchEnter(TouchEventArgs) UIElement.OnTouchLeave(TouchEventArgs) UIElement.OnTouchMove(TouchEventArgs) UIElement.OnTouchUp(TouchEventArgs) UIElement.RaiseEvent(RoutedEventArgs) UIElement.ReleaseAllTouchCaptures() UIElement.ReleaseMouseCapture() UIElement.ReleaseStylusCapture() UIElement.ReleaseTouchCapture(TouchDevice) UIElement.RemoveHandler(RoutedEvent, Delegate) UIElement.TranslatePoint(Point, UIElement) UIElement.UpdateLayout() UIElement.AllowDrop UIElement.AreAnyTouchesCaptured UIElement.AreAnyTouchesCapturedWithin UIElement.AreAnyTouchesDirectlyOver UIElement.AreAnyTouchesOver UIElement.BitmapEffect UIElement.BitmapEffectInput UIElement.CacheMode UIElement.Clip UIElement.ClipToBounds UIElement.CommandBindings UIElement.DesiredSize UIElement.Effect UIElement.Focusable UIElement.HasAnimatedProperties UIElement.HasEffectiveKeyboardFocus UIElement.InputBindings UIElement.IsArrangeValid UIElement.IsEnabled UIElement.IsEnabledCore UIElement.IsFocused UIElement.IsHitTestVisible UIElement.IsInputMethodEnabled UIElement.IsKeyboardFocused UIElement.IsKeyboardFocusWithin UIElement.IsManipulationEnabled UIElement.IsMeasureValid UIElement.IsMouseCaptured UIElement.IsMouseCaptureWithin UIElement.IsMouseDirectlyOver UIElement.IsMouseOver UIElement.IsStylusCaptured UIElement.IsStylusCaptureWithin UIElement.IsStylusDirectlyOver UIElement.IsStylusOver UIElement.IsVisible UIElement.Opacity UIElement.OpacityMask UIElement.PersistId UIElement.RenderSize UIElement.RenderTransform UIElement.RenderTransformOrigin UIElement.SnapsToDevicePixels UIElement.StylusPlugIns UIElement.TouchesCaptured UIElement.TouchesCapturedWithin UIElement.TouchesDirectlyOver UIElement.TouchesOver UIElement.Uid UIElement.Visibility UIElement.DragEnter UIElement.DragLeave UIElement.DragOver UIElement.Drop UIElement.FocusableChanged UIElement.GiveFeedback UIElement.GotFocus UIElement.GotKeyboardFocus UIElement.GotMouseCapture UIElement.GotStylusCapture UIElement.GotTouchCapture UIElement.IsEnabledChanged UIElement.IsHitTestVisibleChanged UIElement.IsKeyboardFocusedChanged UIElement.IsKeyboardFocusWithinChanged UIElement.IsMouseCapturedChanged UIElement.IsMouseCaptureWithinChanged UIElement.IsMouseDirectlyOverChanged UIElement.IsStylusCapturedChanged UIElement.IsStylusCaptureWithinChanged UIElement.IsStylusDirectlyOverChanged UIElement.IsVisibleChanged UIElement.KeyDown UIElement.KeyUp UIElement.LayoutUpdated UIElement.LostFocus UIElement.LostKeyboardFocus UIElement.LostMouseCapture UIElement.LostStylusCapture UIElement.LostTouchCapture UIElement.ManipulationBoundaryFeedback UIElement.ManipulationCompleted UIElement.ManipulationDelta UIElement.ManipulationInertiaStarting UIElement.ManipulationStarted UIElement.ManipulationStarting UIElement.MouseDown UIElement.MouseEnter UIElement.MouseLeave UIElement.MouseLeftButtonDown UIElement.MouseLeftButtonUp UIElement.MouseMove UIElement.MouseRightButtonDown UIElement.MouseRightButtonUp UIElement.MouseUp UIElement.MouseWheel UIElement.PreviewDragEnter UIElement.PreviewDragLeave UIElement.PreviewDragOver UIElement.PreviewDrop UIElement.PreviewGiveFeedback UIElement.PreviewGotKeyboardFocus UIElement.PreviewKeyDown UIElement.PreviewKeyUp UIElement.PreviewLostKeyboardFocus UIElement.PreviewMouseDown UIElement.PreviewMouseLeftButtonDown UIElement.PreviewMouseLeftButtonUp UIElement.PreviewMouseMove UIElement.PreviewMouseRightButtonDown UIElement.PreviewMouseRightButtonUp UIElement.PreviewMouseUp UIElement.PreviewMouseWheel UIElement.PreviewQueryContinueDrag UIElement.PreviewStylusButtonDown UIElement.PreviewStylusButtonUp UIElement.PreviewStylusDown UIElement.PreviewStylusInAirMove UIElement.PreviewStylusInRange UIElement.PreviewStylusMove UIElement.PreviewStylusOutOfRange UIElement.PreviewStylusSystemGesture UIElement.PreviewStylusUp UIElement.PreviewTextInput UIElement.PreviewTouchDown UIElement.PreviewTouchMove UIElement.PreviewTouchUp UIElement.QueryContinueDrag UIElement.QueryCursor UIElement.StylusButtonDown UIElement.StylusButtonUp UIElement.StylusDown UIElement.StylusEnter UIElement.StylusInAirMove UIElement.StylusInRange UIElement.StylusLeave UIElement.StylusMove UIElement.StylusOutOfRange UIElement.StylusSystemGesture UIElement.StylusUp UIElement.TextInput UIElement.TouchDown UIElement.TouchEnter UIElement.TouchLeave UIElement.TouchMove UIElement.TouchUp Visual.AddVisualChild(Visual) Visual.FindCommonVisualAncestor(DependencyObject) Visual.IsAncestorOf(DependencyObject) Visual.IsDescendantOf(DependencyObject) Visual.OnDpiChanged(DpiScale, DpiScale) Visual.OnVisualChildrenChanged(DependencyObject, DependencyObject) Visual.PointFromScreen(Point) Visual.PointToScreen(Point) Visual.RemoveVisualChild(Visual) Visual.TransformToAncestor(Visual3D) Visual.TransformToAncestor(Visual) Visual.TransformToDescendant(Visual) Visual.TransformToVisual(Visual) Visual.VisualBitmapEffect Visual.VisualBitmapEffectInput Visual.VisualBitmapScalingMode Visual.VisualCacheMode Visual.VisualClearTypeHint Visual.VisualClip Visual.VisualEdgeMode Visual.VisualEffect Visual.VisualOffset Visual.VisualOpacity Visual.VisualOpacityMask Visual.VisualParent Visual.VisualScrollableAreaClip Visual.VisualTextHintingMode Visual.VisualTextRenderingMode Visual.VisualTransform Visual.VisualXSnappingGuidelines Visual.VisualYSnappingGuidelines DependencyObject.ClearValue(DependencyProperty) DependencyObject.ClearValue(DependencyPropertyKey) DependencyObject.CoerceValue(DependencyProperty) DependencyObject.Equals(object) DependencyObject.GetHashCode() DependencyObject.GetLocalValueEnumerator() DependencyObject.GetValue(DependencyProperty) DependencyObject.InvalidateProperty(DependencyProperty) DependencyObject.ReadLocalValue(DependencyProperty) DependencyObject.SetCurrentValue(DependencyProperty, object) DependencyObject.SetValue(DependencyProperty, object) DependencyObject.SetValue(DependencyPropertyKey, object) DependencyObject.ShouldSerializeProperty(DependencyProperty) DependencyObject.DependencyObjectType DependencyObject.IsSealed DispatcherObject.Dispatcher object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Remarks This canvas provides the core rendering capabilities for WPF applications using HiAPI. It manages mouse, keyboard, and touch events, and transforms them into appropriate actions in the 3D environment. Constructors RenderingCanvas() Initializes a new instance of the RenderingCanvas public RenderingCanvas() Properties DispEngine The DispEngine instance that handles rendering and user interactions public DispEngine DispEngine { get; } Property Value DispEngine Methods Dispose() Public dispose method to free resources public void Dispose() Dispose(bool) Disposes managed resources protected virtual void Dispose(bool disposing) Parameters disposing bool" }, - "api/Hi.Wpf.Disp.RenderingWindow.html": { - "href": "api/Hi.Wpf.Disp.RenderingWindow.html", + "api/Hi.WpfPlus.Disp.RenderingWindow.html": { + "href": "api/Hi.WpfPlus.Disp.RenderingWindow.html", "title": "Class RenderingWindow | HiAPI-C# 2025", - "summary": "Class RenderingWindow Namespace Hi.Wpf.Disp Assembly Hi.Wpf.dll Window for 3D rendering. public class RenderingWindow : Window, IAnimatable, ISupportInitialize, IFrameworkInputElement, IInputElement, IQueryAmbient, IAddChild, IGetDispEngine Inheritance object DispatcherObject DependencyObject Visual UIElement FrameworkElement Control ContentControl Window RenderingWindow Implements IAnimatable ISupportInitialize IFrameworkInputElement IInputElement IQueryAmbient IAddChild IGetDispEngine Inherited Members Window.AllowsTransparencyProperty Window.DpiChangedEvent Window.IconProperty Window.IsActiveProperty Window.LeftProperty Window.ResizeModeProperty Window.ShowActivatedProperty Window.ShowInTaskbarProperty Window.SizeToContentProperty Window.TaskbarItemInfoProperty Window.TitleProperty Window.TopmostProperty Window.TopProperty Window.WindowStateProperty Window.WindowStyleProperty Window.Activate() Window.ArrangeOverride(Size) Window.Close() Window.DragMove() Window.GetWindow(DependencyObject) Window.Hide() Window.MeasureOverride(Size) Window.OnActivated(EventArgs) Window.OnClosed(EventArgs) Window.OnClosing(CancelEventArgs) Window.OnContentChanged(object, object) Window.OnContentRendered(EventArgs) Window.OnCreateAutomationPeer() Window.OnDeactivated(EventArgs) Window.OnDpiChanged(DpiScale, DpiScale) Window.OnLocationChanged(EventArgs) Window.OnManipulationBoundaryFeedback(ManipulationBoundaryFeedbackEventArgs) Window.OnSourceInitialized(EventArgs) Window.OnStateChanged(EventArgs) Window.OnVisualChildrenChanged(DependencyObject, DependencyObject) Window.OnVisualParentChanged(DependencyObject) Window.Show() Window.ShowDialog() Window.AllowsTransparency Window.DialogResult Window.Icon Window.IsActive Window.Left Window.LogicalChildren Window.OwnedWindows Window.Owner Window.ResizeMode Window.RestoreBounds Window.ShowActivated Window.ShowInTaskbar Window.SizeToContent Window.TaskbarItemInfo Window.ThemeMode Window.Title Window.Top Window.Topmost Window.WindowStartupLocation Window.WindowState Window.WindowStyle Window.Activated Window.Closed Window.Closing Window.ContentRendered Window.Deactivated Window.DpiChanged Window.LocationChanged Window.SourceInitialized Window.StateChanged ContentControl.ContentProperty ContentControl.ContentStringFormatProperty ContentControl.ContentTemplateProperty ContentControl.ContentTemplateSelectorProperty ContentControl.HasContentProperty ContentControl.AddChild(object) ContentControl.AddText(string) ContentControl.OnContentStringFormatChanged(string, string) ContentControl.OnContentTemplateChanged(DataTemplate, DataTemplate) ContentControl.OnContentTemplateSelectorChanged(DataTemplateSelector, DataTemplateSelector) ContentControl.Content ContentControl.ContentStringFormat ContentControl.ContentTemplate ContentControl.ContentTemplateSelector ContentControl.HasContent Control.BackgroundProperty Control.BorderBrushProperty Control.BorderThicknessProperty Control.FontFamilyProperty Control.FontSizeProperty Control.FontStretchProperty Control.FontStyleProperty Control.FontWeightProperty Control.ForegroundProperty Control.HorizontalContentAlignmentProperty Control.IsTabStopProperty Control.MouseDoubleClickEvent Control.PaddingProperty Control.PreviewMouseDoubleClickEvent Control.TabIndexProperty Control.TemplateProperty Control.VerticalContentAlignmentProperty Control.OnMouseDoubleClick(MouseButtonEventArgs) Control.OnPreviewMouseDoubleClick(MouseButtonEventArgs) Control.OnTemplateChanged(ControlTemplate, ControlTemplate) Control.ToString() Control.Background Control.BorderBrush Control.BorderThickness Control.FontFamily Control.FontSize Control.FontStretch Control.FontStyle Control.FontWeight Control.Foreground Control.HandlesScrolling Control.HorizontalContentAlignment Control.IsTabStop Control.Padding Control.TabIndex Control.Template Control.VerticalContentAlignment Control.MouseDoubleClick Control.PreviewMouseDoubleClick FrameworkElement.ActualHeightProperty FrameworkElement.ActualWidthProperty FrameworkElement.BindingGroupProperty FrameworkElement.ContextMenuClosingEvent FrameworkElement.ContextMenuOpeningEvent FrameworkElement.ContextMenuProperty FrameworkElement.CursorProperty FrameworkElement.DataContextProperty FrameworkElement.DefaultStyleKeyProperty FrameworkElement.FlowDirectionProperty FrameworkElement.FocusVisualStyleProperty FrameworkElement.ForceCursorProperty FrameworkElement.HeightProperty FrameworkElement.HorizontalAlignmentProperty FrameworkElement.InputScopeProperty FrameworkElement.LanguageProperty FrameworkElement.LayoutTransformProperty FrameworkElement.LoadedEvent FrameworkElement.MarginProperty FrameworkElement.MaxHeightProperty FrameworkElement.MaxWidthProperty FrameworkElement.MinHeightProperty FrameworkElement.MinWidthProperty FrameworkElement.NameProperty FrameworkElement.OverridesDefaultStyleProperty FrameworkElement.RequestBringIntoViewEvent FrameworkElement.SizeChangedEvent FrameworkElement.StyleProperty FrameworkElement.TagProperty FrameworkElement.ToolTipClosingEvent FrameworkElement.ToolTipOpeningEvent FrameworkElement.ToolTipProperty FrameworkElement.UnloadedEvent FrameworkElement.UseLayoutRoundingProperty FrameworkElement.VerticalAlignmentProperty FrameworkElement.WidthProperty FrameworkElement.AddLogicalChild(object) FrameworkElement.ApplyTemplate() FrameworkElement.ArrangeCore(Rect) FrameworkElement.BeginInit() FrameworkElement.BeginStoryboard(Storyboard) FrameworkElement.BeginStoryboard(Storyboard, HandoffBehavior) FrameworkElement.BeginStoryboard(Storyboard, HandoffBehavior, bool) FrameworkElement.BringIntoView() FrameworkElement.BringIntoView(Rect) FrameworkElement.EndInit() FrameworkElement.FindName(string) FrameworkElement.FindResource(object) FrameworkElement.GetBindingExpression(DependencyProperty) FrameworkElement.GetFlowDirection(DependencyObject) FrameworkElement.GetLayoutClip(Size) FrameworkElement.GetTemplateChild(string) FrameworkElement.GetUIParentCore() FrameworkElement.GetVisualChild(int) FrameworkElement.MeasureCore(Size) FrameworkElement.MoveFocus(TraversalRequest) FrameworkElement.OnApplyTemplate() FrameworkElement.OnContextMenuClosing(ContextMenuEventArgs) FrameworkElement.OnContextMenuOpening(ContextMenuEventArgs) FrameworkElement.OnGotFocus(RoutedEventArgs) FrameworkElement.OnInitialized(EventArgs) FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs) FrameworkElement.OnRenderSizeChanged(SizeChangedInfo) FrameworkElement.OnStyleChanged(Style, Style) FrameworkElement.OnToolTipClosing(ToolTipEventArgs) FrameworkElement.OnToolTipOpening(ToolTipEventArgs) FrameworkElement.ParentLayoutInvalidated(UIElement) FrameworkElement.PredictFocus(FocusNavigationDirection) FrameworkElement.RegisterName(string, object) FrameworkElement.RemoveLogicalChild(object) FrameworkElement.SetBinding(DependencyProperty, string) FrameworkElement.SetBinding(DependencyProperty, BindingBase) FrameworkElement.SetFlowDirection(DependencyObject, FlowDirection) FrameworkElement.SetResourceReference(DependencyProperty, object) FrameworkElement.TryFindResource(object) FrameworkElement.UnregisterName(string) FrameworkElement.UpdateDefaultStyle() FrameworkElement.ActualHeight FrameworkElement.ActualWidth FrameworkElement.BindingGroup FrameworkElement.ContextMenu FrameworkElement.Cursor FrameworkElement.DataContext FrameworkElement.DefaultStyleKey FrameworkElement.FlowDirection FrameworkElement.FocusVisualStyle FrameworkElement.ForceCursor FrameworkElement.Height FrameworkElement.HorizontalAlignment FrameworkElement.InheritanceBehavior FrameworkElement.InputScope FrameworkElement.IsInitialized FrameworkElement.IsLoaded FrameworkElement.Language FrameworkElement.LayoutTransform FrameworkElement.Margin FrameworkElement.MaxHeight FrameworkElement.MaxWidth FrameworkElement.MinHeight FrameworkElement.MinWidth FrameworkElement.Name FrameworkElement.OverridesDefaultStyle FrameworkElement.Parent FrameworkElement.Resources FrameworkElement.Style FrameworkElement.Tag FrameworkElement.TemplatedParent FrameworkElement.ToolTip FrameworkElement.Triggers FrameworkElement.UseLayoutRounding FrameworkElement.VerticalAlignment FrameworkElement.VisualChildrenCount FrameworkElement.Width FrameworkElement.ContextMenuClosing FrameworkElement.ContextMenuOpening FrameworkElement.DataContextChanged FrameworkElement.Initialized FrameworkElement.Loaded FrameworkElement.RequestBringIntoView FrameworkElement.SizeChanged FrameworkElement.SourceUpdated FrameworkElement.TargetUpdated FrameworkElement.ToolTipClosing FrameworkElement.ToolTipOpening FrameworkElement.Unloaded UIElement.AllowDropProperty UIElement.AreAnyTouchesCapturedProperty UIElement.AreAnyTouchesCapturedWithinProperty UIElement.AreAnyTouchesDirectlyOverProperty UIElement.AreAnyTouchesOverProperty UIElement.BitmapEffectInputProperty UIElement.BitmapEffectProperty UIElement.CacheModeProperty UIElement.ClipProperty UIElement.ClipToBoundsProperty UIElement.DragEnterEvent UIElement.DragLeaveEvent UIElement.DragOverEvent UIElement.DropEvent UIElement.EffectProperty UIElement.FocusableProperty UIElement.GiveFeedbackEvent UIElement.GotFocusEvent UIElement.GotKeyboardFocusEvent UIElement.GotMouseCaptureEvent UIElement.GotStylusCaptureEvent UIElement.GotTouchCaptureEvent UIElement.IsEnabledProperty UIElement.IsFocusedProperty UIElement.IsHitTestVisibleProperty UIElement.IsKeyboardFocusedProperty UIElement.IsKeyboardFocusWithinProperty UIElement.IsManipulationEnabledProperty UIElement.IsMouseCapturedProperty UIElement.IsMouseCaptureWithinProperty UIElement.IsMouseDirectlyOverProperty UIElement.IsMouseOverProperty UIElement.IsStylusCapturedProperty UIElement.IsStylusCaptureWithinProperty UIElement.IsStylusDirectlyOverProperty UIElement.IsStylusOverProperty UIElement.IsVisibleProperty UIElement.KeyDownEvent UIElement.KeyUpEvent UIElement.LostFocusEvent UIElement.LostKeyboardFocusEvent UIElement.LostMouseCaptureEvent UIElement.LostStylusCaptureEvent UIElement.LostTouchCaptureEvent UIElement.ManipulationBoundaryFeedbackEvent UIElement.ManipulationCompletedEvent UIElement.ManipulationDeltaEvent UIElement.ManipulationInertiaStartingEvent UIElement.ManipulationStartedEvent UIElement.ManipulationStartingEvent UIElement.MouseDownEvent UIElement.MouseEnterEvent UIElement.MouseLeaveEvent UIElement.MouseLeftButtonDownEvent UIElement.MouseLeftButtonUpEvent UIElement.MouseMoveEvent UIElement.MouseRightButtonDownEvent UIElement.MouseRightButtonUpEvent UIElement.MouseUpEvent UIElement.MouseWheelEvent UIElement.OpacityMaskProperty UIElement.OpacityProperty UIElement.PreviewDragEnterEvent UIElement.PreviewDragLeaveEvent UIElement.PreviewDragOverEvent UIElement.PreviewDropEvent UIElement.PreviewGiveFeedbackEvent UIElement.PreviewGotKeyboardFocusEvent UIElement.PreviewKeyDownEvent UIElement.PreviewKeyUpEvent UIElement.PreviewLostKeyboardFocusEvent UIElement.PreviewMouseDownEvent UIElement.PreviewMouseLeftButtonDownEvent UIElement.PreviewMouseLeftButtonUpEvent UIElement.PreviewMouseMoveEvent UIElement.PreviewMouseRightButtonDownEvent UIElement.PreviewMouseRightButtonUpEvent UIElement.PreviewMouseUpEvent UIElement.PreviewMouseWheelEvent UIElement.PreviewQueryContinueDragEvent UIElement.PreviewStylusButtonDownEvent UIElement.PreviewStylusButtonUpEvent UIElement.PreviewStylusDownEvent UIElement.PreviewStylusInAirMoveEvent UIElement.PreviewStylusInRangeEvent UIElement.PreviewStylusMoveEvent UIElement.PreviewStylusOutOfRangeEvent UIElement.PreviewStylusSystemGestureEvent UIElement.PreviewStylusUpEvent UIElement.PreviewTextInputEvent UIElement.PreviewTouchDownEvent UIElement.PreviewTouchMoveEvent UIElement.PreviewTouchUpEvent UIElement.QueryContinueDragEvent UIElement.QueryCursorEvent UIElement.RenderTransformOriginProperty UIElement.RenderTransformProperty UIElement.SnapsToDevicePixelsProperty UIElement.StylusButtonDownEvent UIElement.StylusButtonUpEvent UIElement.StylusDownEvent UIElement.StylusEnterEvent UIElement.StylusInAirMoveEvent UIElement.StylusInRangeEvent UIElement.StylusLeaveEvent UIElement.StylusMoveEvent UIElement.StylusOutOfRangeEvent UIElement.StylusSystemGestureEvent UIElement.StylusUpEvent UIElement.TextInputEvent UIElement.TouchDownEvent UIElement.TouchEnterEvent UIElement.TouchLeaveEvent UIElement.TouchMoveEvent UIElement.TouchUpEvent UIElement.UidProperty UIElement.VisibilityProperty UIElement.AddHandler(RoutedEvent, Delegate) UIElement.AddHandler(RoutedEvent, Delegate, bool) UIElement.AddToEventRoute(EventRoute, RoutedEventArgs) UIElement.ApplyAnimationClock(DependencyProperty, AnimationClock) UIElement.ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior) UIElement.Arrange(Rect) UIElement.BeginAnimation(DependencyProperty, AnimationTimeline) UIElement.BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior) UIElement.CaptureMouse() UIElement.CaptureStylus() UIElement.CaptureTouch(TouchDevice) UIElement.Focus() UIElement.GetAnimationBaseValue(DependencyProperty) UIElement.HitTestCore(GeometryHitTestParameters) UIElement.HitTestCore(PointHitTestParameters) UIElement.InputHitTest(Point) UIElement.InvalidateArrange() UIElement.InvalidateMeasure() UIElement.InvalidateVisual() UIElement.Measure(Size) UIElement.OnAccessKey(AccessKeyEventArgs) UIElement.OnChildDesiredSizeChanged(UIElement) UIElement.OnDragEnter(DragEventArgs) UIElement.OnDragLeave(DragEventArgs) UIElement.OnDragOver(DragEventArgs) UIElement.OnDrop(DragEventArgs) UIElement.OnGiveFeedback(GiveFeedbackEventArgs) UIElement.OnGotKeyboardFocus(KeyboardFocusChangedEventArgs) UIElement.OnGotMouseCapture(MouseEventArgs) UIElement.OnGotStylusCapture(StylusEventArgs) UIElement.OnGotTouchCapture(TouchEventArgs) UIElement.OnIsKeyboardFocusedChanged(DependencyPropertyChangedEventArgs) UIElement.OnIsKeyboardFocusWithinChanged(DependencyPropertyChangedEventArgs) UIElement.OnIsMouseCapturedChanged(DependencyPropertyChangedEventArgs) UIElement.OnIsMouseCaptureWithinChanged(DependencyPropertyChangedEventArgs) UIElement.OnIsMouseDirectlyOverChanged(DependencyPropertyChangedEventArgs) UIElement.OnIsStylusCapturedChanged(DependencyPropertyChangedEventArgs) UIElement.OnIsStylusCaptureWithinChanged(DependencyPropertyChangedEventArgs) UIElement.OnIsStylusDirectlyOverChanged(DependencyPropertyChangedEventArgs) UIElement.OnKeyDown(KeyEventArgs) UIElement.OnKeyUp(KeyEventArgs) UIElement.OnLostFocus(RoutedEventArgs) UIElement.OnLostKeyboardFocus(KeyboardFocusChangedEventArgs) UIElement.OnLostMouseCapture(MouseEventArgs) UIElement.OnLostStylusCapture(StylusEventArgs) UIElement.OnLostTouchCapture(TouchEventArgs) UIElement.OnManipulationCompleted(ManipulationCompletedEventArgs) UIElement.OnManipulationDelta(ManipulationDeltaEventArgs) UIElement.OnManipulationInertiaStarting(ManipulationInertiaStartingEventArgs) UIElement.OnManipulationStarted(ManipulationStartedEventArgs) UIElement.OnManipulationStarting(ManipulationStartingEventArgs) UIElement.OnMouseDown(MouseButtonEventArgs) UIElement.OnMouseEnter(MouseEventArgs) UIElement.OnMouseLeave(MouseEventArgs) UIElement.OnMouseLeftButtonDown(MouseButtonEventArgs) UIElement.OnMouseLeftButtonUp(MouseButtonEventArgs) UIElement.OnMouseMove(MouseEventArgs) UIElement.OnMouseRightButtonDown(MouseButtonEventArgs) UIElement.OnMouseRightButtonUp(MouseButtonEventArgs) UIElement.OnMouseUp(MouseButtonEventArgs) UIElement.OnMouseWheel(MouseWheelEventArgs) UIElement.OnPreviewDragEnter(DragEventArgs) UIElement.OnPreviewDragLeave(DragEventArgs) UIElement.OnPreviewDragOver(DragEventArgs) UIElement.OnPreviewDrop(DragEventArgs) UIElement.OnPreviewGiveFeedback(GiveFeedbackEventArgs) UIElement.OnPreviewGotKeyboardFocus(KeyboardFocusChangedEventArgs) UIElement.OnPreviewKeyDown(KeyEventArgs) UIElement.OnPreviewKeyUp(KeyEventArgs) UIElement.OnPreviewLostKeyboardFocus(KeyboardFocusChangedEventArgs) UIElement.OnPreviewMouseDown(MouseButtonEventArgs) UIElement.OnPreviewMouseLeftButtonDown(MouseButtonEventArgs) UIElement.OnPreviewMouseLeftButtonUp(MouseButtonEventArgs) UIElement.OnPreviewMouseMove(MouseEventArgs) UIElement.OnPreviewMouseRightButtonDown(MouseButtonEventArgs) UIElement.OnPreviewMouseRightButtonUp(MouseButtonEventArgs) UIElement.OnPreviewMouseUp(MouseButtonEventArgs) UIElement.OnPreviewMouseWheel(MouseWheelEventArgs) UIElement.OnPreviewQueryContinueDrag(QueryContinueDragEventArgs) UIElement.OnPreviewStylusButtonDown(StylusButtonEventArgs) UIElement.OnPreviewStylusButtonUp(StylusButtonEventArgs) UIElement.OnPreviewStylusDown(StylusDownEventArgs) UIElement.OnPreviewStylusInAirMove(StylusEventArgs) UIElement.OnPreviewStylusInRange(StylusEventArgs) UIElement.OnPreviewStylusMove(StylusEventArgs) UIElement.OnPreviewStylusOutOfRange(StylusEventArgs) UIElement.OnPreviewStylusSystemGesture(StylusSystemGestureEventArgs) UIElement.OnPreviewStylusUp(StylusEventArgs) UIElement.OnPreviewTextInput(TextCompositionEventArgs) UIElement.OnPreviewTouchDown(TouchEventArgs) UIElement.OnPreviewTouchMove(TouchEventArgs) UIElement.OnPreviewTouchUp(TouchEventArgs) UIElement.OnQueryContinueDrag(QueryContinueDragEventArgs) UIElement.OnQueryCursor(QueryCursorEventArgs) UIElement.OnRender(DrawingContext) UIElement.OnStylusButtonDown(StylusButtonEventArgs) UIElement.OnStylusButtonUp(StylusButtonEventArgs) UIElement.OnStylusDown(StylusDownEventArgs) UIElement.OnStylusEnter(StylusEventArgs) UIElement.OnStylusInAirMove(StylusEventArgs) UIElement.OnStylusInRange(StylusEventArgs) UIElement.OnStylusLeave(StylusEventArgs) UIElement.OnStylusMove(StylusEventArgs) UIElement.OnStylusOutOfRange(StylusEventArgs) UIElement.OnStylusSystemGesture(StylusSystemGestureEventArgs) UIElement.OnStylusUp(StylusEventArgs) UIElement.OnTextInput(TextCompositionEventArgs) UIElement.OnTouchDown(TouchEventArgs) UIElement.OnTouchEnter(TouchEventArgs) UIElement.OnTouchLeave(TouchEventArgs) UIElement.OnTouchMove(TouchEventArgs) UIElement.OnTouchUp(TouchEventArgs) UIElement.RaiseEvent(RoutedEventArgs) UIElement.ReleaseAllTouchCaptures() UIElement.ReleaseMouseCapture() UIElement.ReleaseStylusCapture() UIElement.ReleaseTouchCapture(TouchDevice) UIElement.RemoveHandler(RoutedEvent, Delegate) UIElement.TranslatePoint(Point, UIElement) UIElement.UpdateLayout() UIElement.AllowDrop UIElement.AreAnyTouchesCaptured UIElement.AreAnyTouchesCapturedWithin UIElement.AreAnyTouchesDirectlyOver UIElement.AreAnyTouchesOver UIElement.BitmapEffect UIElement.BitmapEffectInput UIElement.CacheMode UIElement.Clip UIElement.ClipToBounds UIElement.CommandBindings UIElement.DesiredSize UIElement.Effect UIElement.Focusable UIElement.HasAnimatedProperties UIElement.HasEffectiveKeyboardFocus UIElement.InputBindings UIElement.IsArrangeValid UIElement.IsEnabled UIElement.IsEnabledCore UIElement.IsFocused UIElement.IsHitTestVisible UIElement.IsInputMethodEnabled UIElement.IsKeyboardFocused UIElement.IsKeyboardFocusWithin UIElement.IsManipulationEnabled UIElement.IsMeasureValid UIElement.IsMouseCaptured UIElement.IsMouseCaptureWithin UIElement.IsMouseDirectlyOver UIElement.IsMouseOver UIElement.IsStylusCaptured UIElement.IsStylusCaptureWithin UIElement.IsStylusDirectlyOver UIElement.IsStylusOver UIElement.IsVisible UIElement.Opacity UIElement.OpacityMask UIElement.PersistId UIElement.RenderSize UIElement.RenderTransform UIElement.RenderTransformOrigin UIElement.SnapsToDevicePixels UIElement.StylusPlugIns UIElement.TouchesCaptured UIElement.TouchesCapturedWithin UIElement.TouchesDirectlyOver UIElement.TouchesOver UIElement.Uid UIElement.Visibility UIElement.DragEnter UIElement.DragLeave UIElement.DragOver UIElement.Drop UIElement.FocusableChanged UIElement.GiveFeedback UIElement.GotFocus UIElement.GotKeyboardFocus UIElement.GotMouseCapture UIElement.GotStylusCapture UIElement.GotTouchCapture UIElement.IsEnabledChanged UIElement.IsHitTestVisibleChanged UIElement.IsKeyboardFocusedChanged UIElement.IsKeyboardFocusWithinChanged UIElement.IsMouseCapturedChanged UIElement.IsMouseCaptureWithinChanged UIElement.IsMouseDirectlyOverChanged UIElement.IsStylusCapturedChanged UIElement.IsStylusCaptureWithinChanged UIElement.IsStylusDirectlyOverChanged UIElement.IsVisibleChanged UIElement.KeyDown UIElement.KeyUp UIElement.LayoutUpdated UIElement.LostFocus UIElement.LostKeyboardFocus UIElement.LostMouseCapture UIElement.LostStylusCapture UIElement.LostTouchCapture UIElement.ManipulationBoundaryFeedback UIElement.ManipulationCompleted UIElement.ManipulationDelta UIElement.ManipulationInertiaStarting UIElement.ManipulationStarted UIElement.ManipulationStarting UIElement.MouseDown UIElement.MouseEnter UIElement.MouseLeave UIElement.MouseLeftButtonDown UIElement.MouseLeftButtonUp UIElement.MouseMove UIElement.MouseRightButtonDown UIElement.MouseRightButtonUp UIElement.MouseUp UIElement.MouseWheel UIElement.PreviewDragEnter UIElement.PreviewDragLeave UIElement.PreviewDragOver UIElement.PreviewDrop UIElement.PreviewGiveFeedback UIElement.PreviewGotKeyboardFocus UIElement.PreviewKeyDown UIElement.PreviewKeyUp UIElement.PreviewLostKeyboardFocus UIElement.PreviewMouseDown UIElement.PreviewMouseLeftButtonDown UIElement.PreviewMouseLeftButtonUp UIElement.PreviewMouseMove UIElement.PreviewMouseRightButtonDown UIElement.PreviewMouseRightButtonUp UIElement.PreviewMouseUp UIElement.PreviewMouseWheel UIElement.PreviewQueryContinueDrag UIElement.PreviewStylusButtonDown UIElement.PreviewStylusButtonUp UIElement.PreviewStylusDown UIElement.PreviewStylusInAirMove UIElement.PreviewStylusInRange UIElement.PreviewStylusMove UIElement.PreviewStylusOutOfRange UIElement.PreviewStylusSystemGesture UIElement.PreviewStylusUp UIElement.PreviewTextInput UIElement.PreviewTouchDown UIElement.PreviewTouchMove UIElement.PreviewTouchUp UIElement.QueryContinueDrag UIElement.QueryCursor UIElement.StylusButtonDown UIElement.StylusButtonUp UIElement.StylusDown UIElement.StylusEnter UIElement.StylusInAirMove UIElement.StylusInRange UIElement.StylusLeave UIElement.StylusMove UIElement.StylusOutOfRange UIElement.StylusSystemGesture UIElement.StylusUp UIElement.TextInput UIElement.TouchDown UIElement.TouchEnter UIElement.TouchLeave UIElement.TouchMove UIElement.TouchUp Visual.AddVisualChild(Visual) Visual.FindCommonVisualAncestor(DependencyObject) Visual.IsAncestorOf(DependencyObject) Visual.IsDescendantOf(DependencyObject) Visual.PointFromScreen(Point) Visual.PointToScreen(Point) Visual.RemoveVisualChild(Visual) Visual.TransformToAncestor(Visual3D) Visual.TransformToAncestor(Visual) Visual.TransformToDescendant(Visual) Visual.TransformToVisual(Visual) Visual.VisualBitmapEffect Visual.VisualBitmapEffectInput Visual.VisualBitmapScalingMode Visual.VisualCacheMode Visual.VisualClearTypeHint Visual.VisualClip Visual.VisualEdgeMode Visual.VisualEffect Visual.VisualOffset Visual.VisualOpacity Visual.VisualOpacityMask Visual.VisualParent Visual.VisualScrollableAreaClip Visual.VisualTextHintingMode Visual.VisualTextRenderingMode Visual.VisualTransform Visual.VisualXSnappingGuidelines Visual.VisualYSnappingGuidelines DependencyObject.ClearValue(DependencyProperty) DependencyObject.ClearValue(DependencyPropertyKey) DependencyObject.CoerceValue(DependencyProperty) DependencyObject.Equals(object) DependencyObject.GetHashCode() DependencyObject.GetLocalValueEnumerator() DependencyObject.GetValue(DependencyProperty) DependencyObject.InvalidateProperty(DependencyProperty) DependencyObject.ReadLocalValue(DependencyProperty) DependencyObject.SetCurrentValue(DependencyProperty, object) DependencyObject.SetValue(DependencyProperty, object) DependencyObject.SetValue(DependencyPropertyKey, object) DependencyObject.ShouldSerializeProperty(DependencyProperty) DependencyObject.DependencyObjectType DependencyObject.IsSealed DispatcherObject.Dispatcher object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors RenderingWindow() Ctor. public RenderingWindow() Properties Displayee Gets or sets the current displayable 3D object. When setting a new displayee, the view will be reset to home position if no previous displayee was set. public IDisplayee Displayee { get; set; } Property Value IDisplayee RenderingCanvas Gets the rendering canvas control used for displaying 3D content. public RenderingCanvas RenderingCanvas { get; } Property Value RenderingCanvas Methods GetDispEngine() Get DispEngine. public DispEngine GetDispEngine() Returns DispEngine DispEngine" + "summary": "Class RenderingWindow Namespace Hi.WpfPlus.Disp Assembly Hi.WpfPlus.dll Window for 3D rendering. public class RenderingWindow : Window, IAnimatable, ISupportInitialize, IFrameworkInputElement, IInputElement, IQueryAmbient, IAddChild, IGetDispEngine Inheritance object DispatcherObject DependencyObject Visual UIElement FrameworkElement Control ContentControl Window RenderingWindow Implements IAnimatable ISupportInitialize IFrameworkInputElement IInputElement IQueryAmbient IAddChild IGetDispEngine Inherited Members Window.AllowsTransparencyProperty Window.DpiChangedEvent Window.IconProperty Window.IsActiveProperty Window.LeftProperty Window.ResizeModeProperty Window.ShowActivatedProperty Window.ShowInTaskbarProperty Window.SizeToContentProperty Window.TaskbarItemInfoProperty Window.TitleProperty Window.TopmostProperty Window.TopProperty Window.WindowStateProperty Window.WindowStyleProperty Window.Activate() Window.ArrangeOverride(Size) Window.Close() Window.DragMove() Window.GetWindow(DependencyObject) Window.Hide() Window.MeasureOverride(Size) Window.OnActivated(EventArgs) Window.OnClosed(EventArgs) Window.OnClosing(CancelEventArgs) Window.OnContentChanged(object, object) Window.OnContentRendered(EventArgs) Window.OnCreateAutomationPeer() Window.OnDeactivated(EventArgs) Window.OnDpiChanged(DpiScale, DpiScale) Window.OnLocationChanged(EventArgs) Window.OnManipulationBoundaryFeedback(ManipulationBoundaryFeedbackEventArgs) Window.OnSourceInitialized(EventArgs) Window.OnStateChanged(EventArgs) Window.OnVisualChildrenChanged(DependencyObject, DependencyObject) Window.OnVisualParentChanged(DependencyObject) Window.Show() Window.ShowDialog() Window.AllowsTransparency Window.DialogResult Window.Icon Window.IsActive Window.Left Window.LogicalChildren Window.OwnedWindows Window.Owner Window.ResizeMode Window.RestoreBounds Window.ShowActivated Window.ShowInTaskbar Window.SizeToContent Window.TaskbarItemInfo Window.ThemeMode Window.Title Window.Top Window.Topmost Window.WindowStartupLocation Window.WindowState Window.WindowStyle Window.Activated Window.Closed Window.Closing Window.ContentRendered Window.Deactivated Window.DpiChanged Window.LocationChanged Window.SourceInitialized Window.StateChanged ContentControl.ContentProperty ContentControl.ContentStringFormatProperty ContentControl.ContentTemplateProperty ContentControl.ContentTemplateSelectorProperty ContentControl.HasContentProperty ContentControl.AddChild(object) ContentControl.AddText(string) ContentControl.OnContentStringFormatChanged(string, string) ContentControl.OnContentTemplateChanged(DataTemplate, DataTemplate) ContentControl.OnContentTemplateSelectorChanged(DataTemplateSelector, DataTemplateSelector) ContentControl.Content ContentControl.ContentStringFormat ContentControl.ContentTemplate ContentControl.ContentTemplateSelector ContentControl.HasContent Control.BackgroundProperty Control.BorderBrushProperty Control.BorderThicknessProperty Control.FontFamilyProperty Control.FontSizeProperty Control.FontStretchProperty Control.FontStyleProperty Control.FontWeightProperty Control.ForegroundProperty Control.HorizontalContentAlignmentProperty Control.IsTabStopProperty Control.MouseDoubleClickEvent Control.PaddingProperty Control.PreviewMouseDoubleClickEvent Control.TabIndexProperty Control.TemplateProperty Control.VerticalContentAlignmentProperty Control.OnMouseDoubleClick(MouseButtonEventArgs) Control.OnPreviewMouseDoubleClick(MouseButtonEventArgs) Control.OnTemplateChanged(ControlTemplate, ControlTemplate) Control.ToString() Control.Background Control.BorderBrush Control.BorderThickness Control.FontFamily Control.FontSize Control.FontStretch Control.FontStyle Control.FontWeight Control.Foreground Control.HandlesScrolling Control.HorizontalContentAlignment Control.IsTabStop Control.Padding Control.TabIndex Control.Template Control.VerticalContentAlignment Control.MouseDoubleClick Control.PreviewMouseDoubleClick FrameworkElement.ActualHeightProperty FrameworkElement.ActualWidthProperty FrameworkElement.BindingGroupProperty FrameworkElement.ContextMenuClosingEvent FrameworkElement.ContextMenuOpeningEvent FrameworkElement.ContextMenuProperty FrameworkElement.CursorProperty FrameworkElement.DataContextProperty FrameworkElement.DefaultStyleKeyProperty FrameworkElement.FlowDirectionProperty FrameworkElement.FocusVisualStyleProperty FrameworkElement.ForceCursorProperty FrameworkElement.HeightProperty FrameworkElement.HorizontalAlignmentProperty FrameworkElement.InputScopeProperty FrameworkElement.LanguageProperty FrameworkElement.LayoutTransformProperty FrameworkElement.LoadedEvent FrameworkElement.MarginProperty FrameworkElement.MaxHeightProperty FrameworkElement.MaxWidthProperty FrameworkElement.MinHeightProperty FrameworkElement.MinWidthProperty FrameworkElement.NameProperty FrameworkElement.OverridesDefaultStyleProperty FrameworkElement.RequestBringIntoViewEvent FrameworkElement.SizeChangedEvent FrameworkElement.StyleProperty FrameworkElement.TagProperty FrameworkElement.ToolTipClosingEvent FrameworkElement.ToolTipOpeningEvent FrameworkElement.ToolTipProperty FrameworkElement.UnloadedEvent FrameworkElement.UseLayoutRoundingProperty FrameworkElement.VerticalAlignmentProperty FrameworkElement.WidthProperty FrameworkElement.AddLogicalChild(object) FrameworkElement.ApplyTemplate() FrameworkElement.ArrangeCore(Rect) FrameworkElement.BeginInit() FrameworkElement.BeginStoryboard(Storyboard) FrameworkElement.BeginStoryboard(Storyboard, HandoffBehavior) FrameworkElement.BeginStoryboard(Storyboard, HandoffBehavior, bool) FrameworkElement.BringIntoView() FrameworkElement.BringIntoView(Rect) FrameworkElement.EndInit() FrameworkElement.FindName(string) FrameworkElement.FindResource(object) FrameworkElement.GetBindingExpression(DependencyProperty) FrameworkElement.GetFlowDirection(DependencyObject) FrameworkElement.GetLayoutClip(Size) FrameworkElement.GetTemplateChild(string) FrameworkElement.GetUIParentCore() FrameworkElement.GetVisualChild(int) FrameworkElement.MeasureCore(Size) FrameworkElement.MoveFocus(TraversalRequest) FrameworkElement.OnApplyTemplate() FrameworkElement.OnContextMenuClosing(ContextMenuEventArgs) FrameworkElement.OnContextMenuOpening(ContextMenuEventArgs) FrameworkElement.OnGotFocus(RoutedEventArgs) FrameworkElement.OnInitialized(EventArgs) FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs) FrameworkElement.OnRenderSizeChanged(SizeChangedInfo) FrameworkElement.OnStyleChanged(Style, Style) FrameworkElement.OnToolTipClosing(ToolTipEventArgs) FrameworkElement.OnToolTipOpening(ToolTipEventArgs) FrameworkElement.ParentLayoutInvalidated(UIElement) FrameworkElement.PredictFocus(FocusNavigationDirection) FrameworkElement.RegisterName(string, object) FrameworkElement.RemoveLogicalChild(object) FrameworkElement.SetBinding(DependencyProperty, string) FrameworkElement.SetBinding(DependencyProperty, BindingBase) FrameworkElement.SetFlowDirection(DependencyObject, FlowDirection) FrameworkElement.SetResourceReference(DependencyProperty, object) FrameworkElement.TryFindResource(object) FrameworkElement.UnregisterName(string) FrameworkElement.UpdateDefaultStyle() FrameworkElement.ActualHeight FrameworkElement.ActualWidth FrameworkElement.BindingGroup FrameworkElement.ContextMenu FrameworkElement.Cursor FrameworkElement.DataContext FrameworkElement.DefaultStyleKey FrameworkElement.FlowDirection FrameworkElement.FocusVisualStyle FrameworkElement.ForceCursor FrameworkElement.Height FrameworkElement.HorizontalAlignment FrameworkElement.InheritanceBehavior FrameworkElement.InputScope FrameworkElement.IsInitialized FrameworkElement.IsLoaded FrameworkElement.Language FrameworkElement.LayoutTransform FrameworkElement.Margin FrameworkElement.MaxHeight FrameworkElement.MaxWidth FrameworkElement.MinHeight FrameworkElement.MinWidth FrameworkElement.Name FrameworkElement.OverridesDefaultStyle FrameworkElement.Parent FrameworkElement.Resources FrameworkElement.Style FrameworkElement.Tag FrameworkElement.TemplatedParent FrameworkElement.ToolTip FrameworkElement.Triggers FrameworkElement.UseLayoutRounding FrameworkElement.VerticalAlignment FrameworkElement.VisualChildrenCount FrameworkElement.Width FrameworkElement.ContextMenuClosing FrameworkElement.ContextMenuOpening FrameworkElement.DataContextChanged FrameworkElement.Initialized FrameworkElement.Loaded FrameworkElement.RequestBringIntoView FrameworkElement.SizeChanged FrameworkElement.SourceUpdated FrameworkElement.TargetUpdated FrameworkElement.ToolTipClosing FrameworkElement.ToolTipOpening FrameworkElement.Unloaded UIElement.AllowDropProperty UIElement.AreAnyTouchesCapturedProperty UIElement.AreAnyTouchesCapturedWithinProperty UIElement.AreAnyTouchesDirectlyOverProperty UIElement.AreAnyTouchesOverProperty UIElement.BitmapEffectInputProperty UIElement.BitmapEffectProperty UIElement.CacheModeProperty UIElement.ClipProperty UIElement.ClipToBoundsProperty UIElement.DragEnterEvent UIElement.DragLeaveEvent UIElement.DragOverEvent UIElement.DropEvent UIElement.EffectProperty UIElement.FocusableProperty UIElement.GiveFeedbackEvent UIElement.GotFocusEvent UIElement.GotKeyboardFocusEvent UIElement.GotMouseCaptureEvent UIElement.GotStylusCaptureEvent UIElement.GotTouchCaptureEvent UIElement.IsEnabledProperty UIElement.IsFocusedProperty UIElement.IsHitTestVisibleProperty UIElement.IsKeyboardFocusedProperty UIElement.IsKeyboardFocusWithinProperty UIElement.IsManipulationEnabledProperty UIElement.IsMouseCapturedProperty UIElement.IsMouseCaptureWithinProperty UIElement.IsMouseDirectlyOverProperty UIElement.IsMouseOverProperty UIElement.IsStylusCapturedProperty UIElement.IsStylusCaptureWithinProperty UIElement.IsStylusDirectlyOverProperty UIElement.IsStylusOverProperty UIElement.IsVisibleProperty UIElement.KeyDownEvent UIElement.KeyUpEvent UIElement.LostFocusEvent UIElement.LostKeyboardFocusEvent UIElement.LostMouseCaptureEvent UIElement.LostStylusCaptureEvent UIElement.LostTouchCaptureEvent UIElement.ManipulationBoundaryFeedbackEvent UIElement.ManipulationCompletedEvent UIElement.ManipulationDeltaEvent UIElement.ManipulationInertiaStartingEvent UIElement.ManipulationStartedEvent UIElement.ManipulationStartingEvent UIElement.MouseDownEvent UIElement.MouseEnterEvent UIElement.MouseLeaveEvent UIElement.MouseLeftButtonDownEvent UIElement.MouseLeftButtonUpEvent UIElement.MouseMoveEvent UIElement.MouseRightButtonDownEvent UIElement.MouseRightButtonUpEvent UIElement.MouseUpEvent UIElement.MouseWheelEvent UIElement.OpacityMaskProperty UIElement.OpacityProperty UIElement.PreviewDragEnterEvent UIElement.PreviewDragLeaveEvent UIElement.PreviewDragOverEvent UIElement.PreviewDropEvent UIElement.PreviewGiveFeedbackEvent UIElement.PreviewGotKeyboardFocusEvent UIElement.PreviewKeyDownEvent UIElement.PreviewKeyUpEvent UIElement.PreviewLostKeyboardFocusEvent UIElement.PreviewMouseDownEvent UIElement.PreviewMouseLeftButtonDownEvent UIElement.PreviewMouseLeftButtonUpEvent UIElement.PreviewMouseMoveEvent UIElement.PreviewMouseRightButtonDownEvent UIElement.PreviewMouseRightButtonUpEvent UIElement.PreviewMouseUpEvent UIElement.PreviewMouseWheelEvent UIElement.PreviewQueryContinueDragEvent UIElement.PreviewStylusButtonDownEvent UIElement.PreviewStylusButtonUpEvent UIElement.PreviewStylusDownEvent UIElement.PreviewStylusInAirMoveEvent UIElement.PreviewStylusInRangeEvent UIElement.PreviewStylusMoveEvent UIElement.PreviewStylusOutOfRangeEvent UIElement.PreviewStylusSystemGestureEvent UIElement.PreviewStylusUpEvent UIElement.PreviewTextInputEvent UIElement.PreviewTouchDownEvent UIElement.PreviewTouchMoveEvent UIElement.PreviewTouchUpEvent UIElement.QueryContinueDragEvent UIElement.QueryCursorEvent UIElement.RenderTransformOriginProperty UIElement.RenderTransformProperty UIElement.SnapsToDevicePixelsProperty UIElement.StylusButtonDownEvent UIElement.StylusButtonUpEvent UIElement.StylusDownEvent UIElement.StylusEnterEvent UIElement.StylusInAirMoveEvent UIElement.StylusInRangeEvent UIElement.StylusLeaveEvent UIElement.StylusMoveEvent UIElement.StylusOutOfRangeEvent UIElement.StylusSystemGestureEvent UIElement.StylusUpEvent UIElement.TextInputEvent UIElement.TouchDownEvent UIElement.TouchEnterEvent UIElement.TouchLeaveEvent UIElement.TouchMoveEvent UIElement.TouchUpEvent UIElement.UidProperty UIElement.VisibilityProperty UIElement.AddHandler(RoutedEvent, Delegate) UIElement.AddHandler(RoutedEvent, Delegate, bool) UIElement.AddToEventRoute(EventRoute, RoutedEventArgs) UIElement.ApplyAnimationClock(DependencyProperty, AnimationClock) UIElement.ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior) UIElement.Arrange(Rect) UIElement.BeginAnimation(DependencyProperty, AnimationTimeline) UIElement.BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior) UIElement.CaptureMouse() UIElement.CaptureStylus() UIElement.CaptureTouch(TouchDevice) UIElement.Focus() UIElement.GetAnimationBaseValue(DependencyProperty) UIElement.HitTestCore(GeometryHitTestParameters) UIElement.HitTestCore(PointHitTestParameters) UIElement.InputHitTest(Point) UIElement.InvalidateArrange() UIElement.InvalidateMeasure() UIElement.InvalidateVisual() UIElement.Measure(Size) UIElement.OnAccessKey(AccessKeyEventArgs) UIElement.OnChildDesiredSizeChanged(UIElement) UIElement.OnDragEnter(DragEventArgs) UIElement.OnDragLeave(DragEventArgs) UIElement.OnDragOver(DragEventArgs) UIElement.OnDrop(DragEventArgs) UIElement.OnGiveFeedback(GiveFeedbackEventArgs) UIElement.OnGotKeyboardFocus(KeyboardFocusChangedEventArgs) UIElement.OnGotMouseCapture(MouseEventArgs) UIElement.OnGotStylusCapture(StylusEventArgs) UIElement.OnGotTouchCapture(TouchEventArgs) UIElement.OnIsKeyboardFocusedChanged(DependencyPropertyChangedEventArgs) UIElement.OnIsKeyboardFocusWithinChanged(DependencyPropertyChangedEventArgs) UIElement.OnIsMouseCapturedChanged(DependencyPropertyChangedEventArgs) UIElement.OnIsMouseCaptureWithinChanged(DependencyPropertyChangedEventArgs) UIElement.OnIsMouseDirectlyOverChanged(DependencyPropertyChangedEventArgs) UIElement.OnIsStylusCapturedChanged(DependencyPropertyChangedEventArgs) UIElement.OnIsStylusCaptureWithinChanged(DependencyPropertyChangedEventArgs) UIElement.OnIsStylusDirectlyOverChanged(DependencyPropertyChangedEventArgs) UIElement.OnKeyDown(KeyEventArgs) UIElement.OnKeyUp(KeyEventArgs) UIElement.OnLostFocus(RoutedEventArgs) UIElement.OnLostKeyboardFocus(KeyboardFocusChangedEventArgs) UIElement.OnLostMouseCapture(MouseEventArgs) UIElement.OnLostStylusCapture(StylusEventArgs) UIElement.OnLostTouchCapture(TouchEventArgs) UIElement.OnManipulationCompleted(ManipulationCompletedEventArgs) UIElement.OnManipulationDelta(ManipulationDeltaEventArgs) UIElement.OnManipulationInertiaStarting(ManipulationInertiaStartingEventArgs) UIElement.OnManipulationStarted(ManipulationStartedEventArgs) UIElement.OnManipulationStarting(ManipulationStartingEventArgs) UIElement.OnMouseDown(MouseButtonEventArgs) UIElement.OnMouseEnter(MouseEventArgs) UIElement.OnMouseLeave(MouseEventArgs) UIElement.OnMouseLeftButtonDown(MouseButtonEventArgs) UIElement.OnMouseLeftButtonUp(MouseButtonEventArgs) UIElement.OnMouseMove(MouseEventArgs) UIElement.OnMouseRightButtonDown(MouseButtonEventArgs) UIElement.OnMouseRightButtonUp(MouseButtonEventArgs) UIElement.OnMouseUp(MouseButtonEventArgs) UIElement.OnMouseWheel(MouseWheelEventArgs) UIElement.OnPreviewDragEnter(DragEventArgs) UIElement.OnPreviewDragLeave(DragEventArgs) UIElement.OnPreviewDragOver(DragEventArgs) UIElement.OnPreviewDrop(DragEventArgs) UIElement.OnPreviewGiveFeedback(GiveFeedbackEventArgs) UIElement.OnPreviewGotKeyboardFocus(KeyboardFocusChangedEventArgs) UIElement.OnPreviewKeyDown(KeyEventArgs) UIElement.OnPreviewKeyUp(KeyEventArgs) UIElement.OnPreviewLostKeyboardFocus(KeyboardFocusChangedEventArgs) UIElement.OnPreviewMouseDown(MouseButtonEventArgs) UIElement.OnPreviewMouseLeftButtonDown(MouseButtonEventArgs) UIElement.OnPreviewMouseLeftButtonUp(MouseButtonEventArgs) UIElement.OnPreviewMouseMove(MouseEventArgs) UIElement.OnPreviewMouseRightButtonDown(MouseButtonEventArgs) UIElement.OnPreviewMouseRightButtonUp(MouseButtonEventArgs) UIElement.OnPreviewMouseUp(MouseButtonEventArgs) UIElement.OnPreviewMouseWheel(MouseWheelEventArgs) UIElement.OnPreviewQueryContinueDrag(QueryContinueDragEventArgs) UIElement.OnPreviewStylusButtonDown(StylusButtonEventArgs) UIElement.OnPreviewStylusButtonUp(StylusButtonEventArgs) UIElement.OnPreviewStylusDown(StylusDownEventArgs) UIElement.OnPreviewStylusInAirMove(StylusEventArgs) UIElement.OnPreviewStylusInRange(StylusEventArgs) UIElement.OnPreviewStylusMove(StylusEventArgs) UIElement.OnPreviewStylusOutOfRange(StylusEventArgs) UIElement.OnPreviewStylusSystemGesture(StylusSystemGestureEventArgs) UIElement.OnPreviewStylusUp(StylusEventArgs) UIElement.OnPreviewTextInput(TextCompositionEventArgs) UIElement.OnPreviewTouchDown(TouchEventArgs) UIElement.OnPreviewTouchMove(TouchEventArgs) UIElement.OnPreviewTouchUp(TouchEventArgs) UIElement.OnQueryContinueDrag(QueryContinueDragEventArgs) UIElement.OnQueryCursor(QueryCursorEventArgs) UIElement.OnRender(DrawingContext) UIElement.OnStylusButtonDown(StylusButtonEventArgs) UIElement.OnStylusButtonUp(StylusButtonEventArgs) UIElement.OnStylusDown(StylusDownEventArgs) UIElement.OnStylusEnter(StylusEventArgs) UIElement.OnStylusInAirMove(StylusEventArgs) UIElement.OnStylusInRange(StylusEventArgs) UIElement.OnStylusLeave(StylusEventArgs) UIElement.OnStylusMove(StylusEventArgs) UIElement.OnStylusOutOfRange(StylusEventArgs) UIElement.OnStylusSystemGesture(StylusSystemGestureEventArgs) UIElement.OnStylusUp(StylusEventArgs) UIElement.OnTextInput(TextCompositionEventArgs) UIElement.OnTouchDown(TouchEventArgs) UIElement.OnTouchEnter(TouchEventArgs) UIElement.OnTouchLeave(TouchEventArgs) UIElement.OnTouchMove(TouchEventArgs) UIElement.OnTouchUp(TouchEventArgs) UIElement.RaiseEvent(RoutedEventArgs) UIElement.ReleaseAllTouchCaptures() UIElement.ReleaseMouseCapture() UIElement.ReleaseStylusCapture() UIElement.ReleaseTouchCapture(TouchDevice) UIElement.RemoveHandler(RoutedEvent, Delegate) UIElement.TranslatePoint(Point, UIElement) UIElement.UpdateLayout() UIElement.AllowDrop UIElement.AreAnyTouchesCaptured UIElement.AreAnyTouchesCapturedWithin UIElement.AreAnyTouchesDirectlyOver UIElement.AreAnyTouchesOver UIElement.BitmapEffect UIElement.BitmapEffectInput UIElement.CacheMode UIElement.Clip UIElement.ClipToBounds UIElement.CommandBindings UIElement.DesiredSize UIElement.Effect UIElement.Focusable UIElement.HasAnimatedProperties UIElement.HasEffectiveKeyboardFocus UIElement.InputBindings UIElement.IsArrangeValid UIElement.IsEnabled UIElement.IsEnabledCore UIElement.IsFocused UIElement.IsHitTestVisible UIElement.IsInputMethodEnabled UIElement.IsKeyboardFocused UIElement.IsKeyboardFocusWithin UIElement.IsManipulationEnabled UIElement.IsMeasureValid UIElement.IsMouseCaptured UIElement.IsMouseCaptureWithin UIElement.IsMouseDirectlyOver UIElement.IsMouseOver UIElement.IsStylusCaptured UIElement.IsStylusCaptureWithin UIElement.IsStylusDirectlyOver UIElement.IsStylusOver UIElement.IsVisible UIElement.Opacity UIElement.OpacityMask UIElement.PersistId UIElement.RenderSize UIElement.RenderTransform UIElement.RenderTransformOrigin UIElement.SnapsToDevicePixels UIElement.StylusPlugIns UIElement.TouchesCaptured UIElement.TouchesCapturedWithin UIElement.TouchesDirectlyOver UIElement.TouchesOver UIElement.Uid UIElement.Visibility UIElement.DragEnter UIElement.DragLeave UIElement.DragOver UIElement.Drop UIElement.FocusableChanged UIElement.GiveFeedback UIElement.GotFocus UIElement.GotKeyboardFocus UIElement.GotMouseCapture UIElement.GotStylusCapture UIElement.GotTouchCapture UIElement.IsEnabledChanged UIElement.IsHitTestVisibleChanged UIElement.IsKeyboardFocusedChanged UIElement.IsKeyboardFocusWithinChanged UIElement.IsMouseCapturedChanged UIElement.IsMouseCaptureWithinChanged UIElement.IsMouseDirectlyOverChanged UIElement.IsStylusCapturedChanged UIElement.IsStylusCaptureWithinChanged UIElement.IsStylusDirectlyOverChanged UIElement.IsVisibleChanged UIElement.KeyDown UIElement.KeyUp UIElement.LayoutUpdated UIElement.LostFocus UIElement.LostKeyboardFocus UIElement.LostMouseCapture UIElement.LostStylusCapture UIElement.LostTouchCapture UIElement.ManipulationBoundaryFeedback UIElement.ManipulationCompleted UIElement.ManipulationDelta UIElement.ManipulationInertiaStarting UIElement.ManipulationStarted UIElement.ManipulationStarting UIElement.MouseDown UIElement.MouseEnter UIElement.MouseLeave UIElement.MouseLeftButtonDown UIElement.MouseLeftButtonUp UIElement.MouseMove UIElement.MouseRightButtonDown UIElement.MouseRightButtonUp UIElement.MouseUp UIElement.MouseWheel UIElement.PreviewDragEnter UIElement.PreviewDragLeave UIElement.PreviewDragOver UIElement.PreviewDrop UIElement.PreviewGiveFeedback UIElement.PreviewGotKeyboardFocus UIElement.PreviewKeyDown UIElement.PreviewKeyUp UIElement.PreviewLostKeyboardFocus UIElement.PreviewMouseDown UIElement.PreviewMouseLeftButtonDown UIElement.PreviewMouseLeftButtonUp UIElement.PreviewMouseMove UIElement.PreviewMouseRightButtonDown UIElement.PreviewMouseRightButtonUp UIElement.PreviewMouseUp UIElement.PreviewMouseWheel UIElement.PreviewQueryContinueDrag UIElement.PreviewStylusButtonDown UIElement.PreviewStylusButtonUp UIElement.PreviewStylusDown UIElement.PreviewStylusInAirMove UIElement.PreviewStylusInRange UIElement.PreviewStylusMove UIElement.PreviewStylusOutOfRange UIElement.PreviewStylusSystemGesture UIElement.PreviewStylusUp UIElement.PreviewTextInput UIElement.PreviewTouchDown UIElement.PreviewTouchMove UIElement.PreviewTouchUp UIElement.QueryContinueDrag UIElement.QueryCursor UIElement.StylusButtonDown UIElement.StylusButtonUp UIElement.StylusDown UIElement.StylusEnter UIElement.StylusInAirMove UIElement.StylusInRange UIElement.StylusLeave UIElement.StylusMove UIElement.StylusOutOfRange UIElement.StylusSystemGesture UIElement.StylusUp UIElement.TextInput UIElement.TouchDown UIElement.TouchEnter UIElement.TouchLeave UIElement.TouchMove UIElement.TouchUp Visual.AddVisualChild(Visual) Visual.FindCommonVisualAncestor(DependencyObject) Visual.IsAncestorOf(DependencyObject) Visual.IsDescendantOf(DependencyObject) Visual.PointFromScreen(Point) Visual.PointToScreen(Point) Visual.RemoveVisualChild(Visual) Visual.TransformToAncestor(Visual3D) Visual.TransformToAncestor(Visual) Visual.TransformToDescendant(Visual) Visual.TransformToVisual(Visual) Visual.VisualBitmapEffect Visual.VisualBitmapEffectInput Visual.VisualBitmapScalingMode Visual.VisualCacheMode Visual.VisualClearTypeHint Visual.VisualClip Visual.VisualEdgeMode Visual.VisualEffect Visual.VisualOffset Visual.VisualOpacity Visual.VisualOpacityMask Visual.VisualParent Visual.VisualScrollableAreaClip Visual.VisualTextHintingMode Visual.VisualTextRenderingMode Visual.VisualTransform Visual.VisualXSnappingGuidelines Visual.VisualYSnappingGuidelines DependencyObject.ClearValue(DependencyProperty) DependencyObject.ClearValue(DependencyPropertyKey) DependencyObject.CoerceValue(DependencyProperty) DependencyObject.Equals(object) DependencyObject.GetHashCode() DependencyObject.GetLocalValueEnumerator() DependencyObject.GetValue(DependencyProperty) DependencyObject.InvalidateProperty(DependencyProperty) DependencyObject.ReadLocalValue(DependencyProperty) DependencyObject.SetCurrentValue(DependencyProperty, object) DependencyObject.SetValue(DependencyProperty, object) DependencyObject.SetValue(DependencyPropertyKey, object) DependencyObject.ShouldSerializeProperty(DependencyProperty) DependencyObject.DependencyObjectType DependencyObject.IsSealed DispatcherObject.Dispatcher object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors RenderingWindow() Ctor. public RenderingWindow() Properties Displayee Gets or sets the current displayable 3D object. When setting a new displayee, the view will be reset to home position if no previous displayee was set. public IDisplayee Displayee { get; set; } Property Value IDisplayee RenderingCanvas Gets the rendering canvas control used for displaying 3D content. public RenderingCanvas RenderingCanvas { get; } Property Value RenderingCanvas Methods GetDispEngine() Get DispEngine. public DispEngine GetDispEngine() Returns DispEngine DispEngine" }, - "api/Hi.Wpf.Disp.html": { - "href": "api/Hi.Wpf.Disp.html", - "title": "Namespace Hi.Wpf.Disp | HiAPI-C# 2025", - "summary": "Namespace Hi.Wpf.Disp Classes RenderingCanvas Provides a WPF rendering canvas for 3D visualization of HiAPI components. Handles user interactions, rendering, and integration with the DispEngine system. RenderingWindow Window for 3D rendering." + "api/Hi.WpfPlus.Disp.html": { + "href": "api/Hi.WpfPlus.Disp.html", + "title": "Namespace Hi.WpfPlus.Disp | HiAPI-C# 2025", + "summary": "Namespace Hi.WpfPlus.Disp Classes RenderingCanvas Provides a WPF rendering canvas for 3D visualization of HiAPI components. Handles user interactions, rendering, and integration with the DispEngine system. RenderingWindow Window for 3D rendering." }, "api/HiMachining.Milling.ClMillingDevice.html": { "href": "api/HiMachining.Milling.ClMillingDevice.html", @@ -4622,7 +4622,7 @@ "api/HiNc.Grpcs.MachiningProjectGrpcServer.html": { "href": "api/HiNc.Grpcs.MachiningProjectGrpcServer.html", "title": "Class MachiningProjectGrpcServer | HiAPI-C# 2025", - "summary": "Class MachiningProjectGrpcServer Namespace HiNc.Grpcs Assembly HiNc.dll Server for exposing machining project functionality via gRPC. public class MachiningProjectGrpcServer : IDisposable, IMakeXmlSource Inheritance object MachiningProjectGrpcServer Implements IDisposable IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningProjectGrpcServer(MachiningProject) Initializes a new instance of the MachiningProjectGrpcServer class. public MachiningProjectGrpcServer(MachiningProject millingCourse) Parameters millingCourse MachiningProject The machining project to expose via gRPC MachiningProjectGrpcServer(XElement, MachiningProject) Initializes a new instance of the MachiningProjectGrpcServer class from XML. public MachiningProjectGrpcServer(XElement src, MachiningProject millingCourse) Parameters src XElement XML source element millingCourse MachiningProject The machining project to expose via gRPC Properties IsServiceRunning Gets whether the service is currently running. public bool IsServiceRunning { get; } Property Value bool ServicePort Gets or sets the port used by the gRPC service. public int ServicePort { get; set; } Property Value int WebApplication Gets the web application instance for the gRPC server. public WebApplication WebApplication { get; } Property Value WebApplication XName Name for XML IO. public static string XName { get; } Property Value string Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() Dispose(bool) protected virtual void Dispose(bool disposing) Parameters disposing bool MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. StartAsync() Starts the gRPC server asynchronously. public Task StartAsync() Returns Task A task representing the asynchronous operation StopAsync() Stops the gRPC server asynchronously. public Task StopAsync() Returns Task A task representing the asynchronous operation" + "summary": "Class MachiningProjectGrpcServer Namespace HiNc.Grpcs Assembly HiNc.dll Server for exposing machining project functionality via gRPC. public class MachiningProjectGrpcServer : IDisposable, IMakeXmlSource Inheritance object MachiningProjectGrpcServer Implements IDisposable IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningProjectGrpcServer(LocalProjectService) Initializes a new instance of the MachiningProjectGrpcServer class. public MachiningProjectGrpcServer(LocalProjectService localProjectService) Parameters localProjectService LocalProjectService MachiningProjectGrpcServer(XElement, LocalProjectService) Initializes a new instance of the MachiningProjectGrpcServer class from XML. public MachiningProjectGrpcServer(XElement src, LocalProjectService localProjectService) Parameters src XElement XML source element localProjectService LocalProjectService Properties IsServiceRunning Gets whether the service is currently running. public bool IsServiceRunning { get; } Property Value bool ServicePort Gets or sets the port used by the gRPC service. public int ServicePort { get; set; } Property Value int WebApplication Gets the web application instance for the gRPC server. public WebApplication WebApplication { get; } Property Value WebApplication XName Name for XML IO. public static string XName { get; } Property Value string Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() Dispose(bool) protected virtual void Dispose(bool disposing) Parameters disposing bool MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. StartAsync() Starts the gRPC server asynchronously. public Task StartAsync() Returns Task A task representing the asynchronous operation StopAsync() Stops the gRPC server asynchronously. public Task StopAsync() Returns Task A task representing the asynchronous operation" }, "api/HiNc.Grpcs.html": { "href": "api/HiNc.Grpcs.html", @@ -4732,12 +4732,12 @@ "brief/dev-doc/basic/rendering/rendering-canvas/custom-implementation.html": { "href": "brief/dev-doc/basic/rendering/rendering-canvas/custom-implementation.html", "title": "Building Your Own Rendering Canvas | HiAPI-C# 2025", - "summary": "Building Your Own Rendering Canvas This guide provides detailed implementation information for creating your own RenderingCanvas using the DispEngine. By understanding these implementation details, you can customize the rendering component for specific application needs or create implementations for other UI frameworks. Note For Windows Applications: If you are developing for Windows systems, it is recommended to directly use the existing RenderingCanvas implementations in the Hi.WinForm or Hi.Wpf packages, rather than creating your own. These implementations are fully tested, optimized, and maintained. The implementation details provided in this document are primarily for educational purposes or for developers who need to port RenderingCanvas to other platforms/frameworks. Basic DispEngine Usage The DispEngine is designed to display objects that implement the IDisplayee interface. This is the fundamental purpose of DispEngine - to render displayable objects. Assign IDisplayee to DispEngine.Displayee. Core Implementation Pattern When implementing a custom RenderingCanvas for a UI platform, follow these key steps: Initialize UI Component - Set up the UI control properties and event handling Configure DispEngine - Create and properly initialize the DispEngine instance Set Up Rendering Pipeline - Implement buffer swapping mechanism for visualization Handle User Input - Map platform-specific input events to DispEngine methods Manage Component Lifecycle - Ensure proper resource management and cleanup Let's examine the actual implementations in WinForm and WPF frameworks to understand these patterns in practice. WinForm Implementation Details The WinForm implementation in Hi.WinForm combines Windows Forms controls with the DispEngine rendering system. Core Properties and Fields Here are the essential properties and fields defined in the WinForm implementation: /// /// . /// public DispEngine DispEngine { get; } // Constants and structures for WM_TOUCH private const int WM_TOUCH = 0x0240; private const int TOUCHEVENTF_MOVE = 0x0001; private const int TOUCHEVENTF_DOWN = 0x0002; private const int TOUCHEVENTF_UP = 0x0004; [StructLayout(LayoutKind.Sequential)] private struct TOUCHINPUT { public int x; public int y; public IntPtr hSource; public int dwID; public int dwFlags; public int dwMask; public int dwTime; public IntPtr dwExtraInfo; public int cxContact; public int cyContact; } [DllImport(\"user32.dll\")] private static extern bool RegisterTouchWindow(IntPtr hWnd, uint ulFlags); [DllImport(\"user32.dll\")] private static extern bool GetTouchInputInfo(IntPtr hTouchInput, int cInputs, [In, Out] TOUCHINPUT[] pInputs, int cbSize); [DllImport(\"user32.dll\")] private static extern void CloseTouchInputHandle(IntPtr lParam); Initialization The initialization code sets up event handlers and creates the DispEngine: /// /// Ctor. /// /// displayees public unsafe RenderingCanvas(params IDisplayee[] displayees) { // Configure the control's visual styles SetStyle(ControlStyles.Selectable, true); SetStyle(ControlStyles.OptimizedDoubleBuffer, false); SetStyle(ControlStyles.ContainerControl, false); SetStyle(ControlStyles.ResizeRedraw, false); DoubleBuffered = true; InitializeComponent(); Dock = DockStyle.Fill; // Connect event handlers for user input and window events this.Resize += RenderingCanvas_Resize; this.VisibleChanged += RenderingCanvas_VisibleChanged; this.MouseMove += RenderingCanvas_MouseMove; this.MouseDown += RenderingCanvas_MouseDown; this.MouseUp += RenderingCanvas_MouseUp; this.MouseWheel += RenderingCanvas_MouseWheel; this.KeyDown += RenderingCanvas_KeyDown; this.KeyUp += RenderingCanvas_KeyUp; // Add focus event handler this.GotFocus += RenderingCanvas_GotFocus; this.HandleCreated += OnHandleCreated; // Enable touch input and click events for the control this.SetStyle(ControlStyles.StandardClick, true); this.SetStyle(ControlStyles.StandardDoubleClick, true); this.TabStop = true; // Initialize the DispEngine with provided displayees DispEngine = new DispEngine(displayees); DispEngine.BackgroundColor = new Vec3d(0.1, 0.1, 0.5); DispEngine.BackgroundOpacity = 0.1; DispEngine.SetViewToHomeView(); DispEngine.ImageRequestAfterBufferSwapped += DispEngine_ImageRequestAfterBufferSwapped; // Set initial size and start the rendering engine this.Size = new System.Drawing.Size(500, 300); DispEngine.Start(this.ClientSize.Width, this.ClientSize.Height); } Rendering Pipeline The rendering pipeline processes images from DispEngine and displays them: private unsafe void DispEngine_ImageRequestAfterBufferSwapped(byte* bgra_unsignedbyte_pixels, int w, int h) { // Create a bitmap from the raw pixel data provided by DispEngine Bitmap bitmap; bitmap = new Bitmap(new Bitmap(w, h, w * 4, PixelFormat.Format32bppArgb, new IntPtr(bgra_unsignedbyte_pixels))); // Update the background image and dispose the previous one Image pre = this.BackgroundImage; this.BackgroundImage = bitmap; pre?.Dispose(); } Input Handling Windows Message Handling for Touch WinForm implementation intercepts Windows touch messages and forwards them to DispEngine: protected override void WndProc(ref Message m) { if (m.Msg == WM_TOUCH) { HandleTouchInput(m.WParam, m.LParam); return; } base.WndProc(ref m); } private void OnHandleCreated(object sender, EventArgs e) { // Register window to receive touch messages RegisterTouchWindow(this.Handle, 0); } private void HandleTouchInput(IntPtr wParam, IntPtr lParam) { int inputCount = wParam.ToInt32(); TOUCHINPUT[] inputs = new TOUCHINPUT[inputCount]; if (!GetTouchInputInfo(lParam, inputCount, inputs, Marshal.SizeOf(typeof(TOUCHINPUT)))) return; try { for (int i = 0; i < inputCount; i++) { TOUCHINPUT ti = inputs[i]; int touchId = ti.dwID; // Convert touch coordinates to client coordinates Point touchPoint = PointToClient(new Point(ti.x / 100, ti.y / 100)); if ((ti.dwFlags & TOUCHEVENTF_DOWN) != 0) { // Touch down event DispEngine.TouchDown(touchId, touchPoint.X, touchPoint.Y); this.Focus(); } else if ((ti.dwFlags & TOUCHEVENTF_MOVE) != 0) { // Touch move event DispEngine.TouchMove(touchId, touchPoint.X, touchPoint.Y); } else if ((ti.dwFlags & TOUCHEVENTF_UP) != 0) { // Touch up event DispEngine.TouchUp(touchId); } } } finally { CloseTouchInputHandle(lParam); } } The key aspect is mapping Windows touch events to DispEngine's touch API: // Inside HandleTouchInput method if ((ti.dwFlags & TOUCHEVENTF_DOWN) != 0) { // Touch down event - delegate to DispEngine DispEngine.TouchDown(touchId, touchPoint.X, touchPoint.Y); this.Focus(); } else if ((ti.dwFlags & TOUCHEVENTF_MOVE) != 0) { // Touch move event - delegate to DispEngine DispEngine.TouchMove(touchId, touchPoint.X, touchPoint.Y); } else if ((ti.dwFlags & TOUCHEVENTF_UP) != 0) { // Touch up event - delegate to DispEngine DispEngine.TouchUp(touchId); } Mouse Events private void RenderingCanvas_MouseMove(object sender, MouseEventArgs e) { // Update mouse position and handle drag transforms DispEngine.MouseMove(e.Location.X, e.Location.Y); DispEngine.MouseDragTransform(e.Location.X, e.Location.Y, new mouse_button_table__transform_view_by_mouse_drag_t() { LEFT_BUTTON = (long)MouseButtons.Left, RIGHT_BUTTON = (long)MouseButtons.Right }); } private void RenderingCanvas_MouseDown(object sender, MouseEventArgs e) { // Handle mouse button press DispEngine.MouseButtonDown((long)e.Button); this.Focus(); } private void RenderingCanvas_MouseUp(object sender, MouseEventArgs e) { // Handle mouse button release DispEngine.MouseButtonUp((long)e.Button); } private void RenderingCanvas_MouseWheel(object sender, MouseEventArgs e) { // Handle mouse wheel for zoom operations DispEngine.MouseWheel(0, e.Delta / 120); DispEngine.MouseWheelTransform(0, e.Delta / 120); } Keyboard Events /// protected override bool IsInputKey(Keys keyData) { //since in default, arrow does not trigger key event(keyDown and keyUp). return true; } private void RenderingCanvas_KeyDown(object sender, KeyEventArgs e) { Focus(); DispEngine.KeyDown((long)e.KeyData); // Map specific keys for view transformation long key = (long)e.KeyData; if (key == (long)Keys.LShiftKey || key == (long)Keys.RShiftKey || key == (long)Keys.ShiftKey) key = (long)Keys.Shift; DispEngine.KeyDownTransform(key, new key_table__transform_view_by_key_pressing_t() { HOME = (long)Keys.Home, PAGE_UP = (long)Keys.PageUp, PAGE_DOWN = (long)Keys.PageDown, F1 = (long)Keys.F1, F2 = (long)Keys.F2, F3 = (long)Keys.F3, F4 = (long)Keys.F4, SHIFT = (long)Keys.Shift, ARROW_LEFT = (long)Keys.Left, ARROW_RIGHT = (long)Keys.Right, ARROW_DOWN = (long)Keys.Down, ARROW_UP = (long)Keys.Up }); } private void RenderingCanvas_KeyUp(object sender, KeyEventArgs e) { DispEngine.KeyUp((long)e.KeyData); } Lifecycle Management Window event handling ensures proper state management: private void RenderingCanvas_Resize(object sender, EventArgs e) { // Notify DispEngine of size changes DispEngine.Resize(this.ClientSize.Width, this.ClientSize.Height); } private void RenderingCanvas_VisibleChanged(object sender, EventArgs e) { // Update visibility state in DispEngine DispEngine.IsVisible = this.Visible; } Resource Cleanup /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { // Dispose the DispEngine to free resources DispEngine.Dispose(); components.Dispose(); } base.Dispose(disposing); } WPF Implementation Details The WPF implementation uses WPF-specific controls and mechanisms but follows the same core pattern. Core Properties /// /// The DispEngine instance that handles rendering and user interactions /// public DispEngine DispEngine { get; } = new DispEngine(); /// /// Internal container for rendering content /// private UserControl DisplayerPane { get; } /// /// Dictionary to store touch point information /// private Dictionary TouchingPointsMap { get; } = new Dictionary(); /// /// Dictionary to store previous positions of touch points /// private Dictionary PreviousTouchingPointsMap { get; } = new Dictionary(); Initialization /// /// Initializes a new instance of the RenderingCanvas /// public RenderingCanvas() { DispEngine.BackgroundColor = new Vec3d(0.1, 0.1, 0.5); DispEngine.BackgroundOpacity = 0.1; // Configure the main control properties HorizontalAlignment = HorizontalAlignment.Stretch; VerticalAlignment = VerticalAlignment.Stretch; Focusable = true; KeyboardNavigation.SetDirectionalNavigation(this, KeyboardNavigationMode.Cycle); DataContextChanged += CanvasDataContextChanged; // Create and configure the display pane DisplayerPane = new UserControl(); DisplayerPane.HorizontalAlignment = HorizontalAlignment.Stretch; DisplayerPane.VerticalAlignment = VerticalAlignment.Stretch; DisplayerPane.Focusable = true; DisplayerPane.IsTabStop = true; // Connect event handlers for user input and window events DisplayerPane.SizeChanged += RenderingCanvas_SizeChanged; DisplayerPane.MouseMove += RenderingCanvas_MouseMove; DisplayerPane.MouseDown += RenderingCanvas_MouseDown; DisplayerPane.MouseUp += RenderingCanvas_MouseUp; DisplayerPane.MouseWheel += RenderingCanvas_MouseWheel; DisplayerPane.KeyDown += RenderingCanvas_KeyDown; DisplayerPane.KeyUp += RenderingCanvas_KeyUp; DisplayerPane.Loaded += RenderingCanvas_Loaded; DisplayerPane.Unloaded += RenderingCanvas_Unloaded; DisplayerPane.IsVisibleChanged += DisplayerPane_IsVisibleChanged; // Add touch event handlers DisplayerPane.TouchDown += RenderingCanvas_TouchDown; DisplayerPane.TouchMove += RenderingCanvas_TouchMove; DisplayerPane.TouchUp += RenderingCanvas_TouchUp; // Enable touch support this.IsManipulationEnabled = true; // Initialize power management InitializePowerManagement(); // Add the display pane to this control's content Content = DisplayerPane; } Rendering Pipeline /// /// Handles the buffer swapped event from DispEngine /// private unsafe void RenderingCanvas_BufferSwapped(byte* data, int w, int h) { if (data == null) return; Span bgra = new Span(data, w * h * 4); // Copy pixel data from DispEngine int n = w * h * 4; byte[] arr = new byte[n]; for (int i = 0; i < n; i++) arr[i] = data[i]; // Update UI on the UI thread DisplayerPane.Dispatcher.InvokeAsync(() => { BitmapSource bitmap = BitmapSource.Create(w, h, 1, 1, PixelFormats.Bgra32, null, arr, w * 4); DisplayerPane.Background = new ImageBrush(bitmap); }); } /// /// Handles the size changed event /// private void RenderingCanvas_SizeChanged(object sender, SizeChangedEventArgs e) { // Notify DispEngine of size changes DispEngine.Resize((int)DisplayerPane.RenderSize.Width, (int)DisplayerPane.RenderSize.Height); } /// /// Handles visibility changes /// private unsafe void DisplayerPane_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e) { // Update visibility state in DispEngine DispEngine.IsVisible = IsVisible; } Mouse and Keyboard Handling /// /// Helper method to get mouse button mask /// internal static HiMouseButtonMask GetMouseButtonMask(MouseDevice device) { HiMouseButtonMask mouseButtonMask = 0; mouseButtonMask.SetLeftPressed(device.LeftButton == MouseButtonState.Pressed); mouseButtonMask.SetMiddlePressed(device.MiddleButton == MouseButtonState.Pressed); mouseButtonMask.SetRightPressed(device.RightButton == MouseButtonState.Pressed); mouseButtonMask.SetXButton1Pressed(device.XButton1 == MouseButtonState.Pressed); mouseButtonMask.SetXButton2Pressed(device.XButton2 == MouseButtonState.Pressed); return mouseButtonMask; } /// /// Handles the mouse wheel event /// private void RenderingCanvas_MouseWheel(object sender, MouseWheelEventArgs e) { // Handle mouse wheel for zoom operations DispEngine.MouseWheel(0, e.Delta / 120); DispEngine.MouseWheelTransform(0, e.Delta / 120); } /// /// Handles the mouse up event /// private void RenderingCanvas_MouseUp(object sender, MouseButtonEventArgs e) { // Handle mouse button release DispEngine.MouseButtonUp((long)e.ChangedButton); (sender as UIElement)?.ReleaseMouseCapture(); } /// /// Handles the mouse down event /// private void RenderingCanvas_MouseDown(object sender, MouseButtonEventArgs e) { // Handle mouse button press DispEngine.MouseButtonDown((long)e.ChangedButton); DisplayerPane.Focus(); (sender as UIElement)?.CaptureMouse(); } /// /// Handles the mouse move event /// private void RenderingCanvas_MouseMove(object sender, MouseEventArgs e) { // Update mouse position and handle drag transforms Point p = e.GetPosition(DisplayerPane); DispEngine.MouseMove((int)p.X, (int)p.Y); DispEngine.MouseDragTransform((int)p.X, (int)p.Y, new mouse_button_table__transform_view_by_mouse_drag_t() { LEFT_BUTTON = (long)MouseButton.Left, RIGHT_BUTTON = (long)MouseButton.Right }); } /// /// Handles the key up event /// private void RenderingCanvas_KeyUp(object sender, KeyEventArgs e) { DispEngine.KeyUp((long)e.Key); } /// /// Handles the key down event /// private void RenderingCanvas_KeyDown(object sender, KeyEventArgs e) { DispEngine.KeyDown((long)e.Key); // Map specific keys for view transformation long key = (long)e.Key; if (key == (long)Key.RightShift) key = (long)Key.LeftShift; DispEngine.KeyDownTransform(key, new key_table__transform_view_by_key_pressing_t() { HOME = (long)Key.Home, PAGE_UP = (long)Key.PageUp, PAGE_DOWN = (long)Key.PageDown, F1 = (long)Key.F1, F2 = (long)Key.F2, F3 = (long)Key.F3, F4 = (long)Key.F4, SHIFT = (long)Key.LeftShift, ARROW_LEFT = (long)Key.Left, ARROW_RIGHT = (long)Key.Right, ARROW_DOWN = (long)Key.Down, ARROW_UP = (long)Key.Up }); } Lifecycle Management /// /// Handles window state changes (maximize, minimize, etc.) /// private unsafe void RenderingCanvas_StateChanged(object sender, EventArgs e) { switch ((sender as Window).WindowState) { case WindowState.Maximized: DispEngine.IsVisible = true; break; case WindowState.Minimized: DispEngine.IsVisible = false; break; case WindowState.Normal: DispEngine.IsVisible = true; break; } } /// /// Handles data context changes /// private unsafe void CanvasDataContextChanged(object sender, DependencyPropertyChangedEventArgs e) { DispEngine pre = e.OldValue as DispEngine; DispEngine cur = e.NewValue as DispEngine; //child's binding event is triggered after IsVisible event and Load event. if (pre != null) //this section will never occur if the datacontext not set twice. { pre.Terminate(); pre.ImageRequestAfterBufferSwapped -= RenderingCanvas_BufferSwapped; } if (cur != null) { cur.ImageRequestAfterBufferSwapped += RenderingCanvas_BufferSwapped; cur.Start((int)DisplayerPane.RenderSize.Width, (int)DisplayerPane.RenderSize.Height); cur.IsVisible = IsVisible; } } /// /// Reference to the current window containing this control /// private Window currentWindow; /// /// Gets or sets the current window, connecting or disconnecting state change events /// Window CurrentWindow { get => currentWindow; set { if (currentWindow != null) currentWindow.StateChanged -= RenderingCanvas_StateChanged; currentWindow = value; if (currentWindow != null) currentWindow.StateChanged += RenderingCanvas_StateChanged; } } /// /// Handles the loaded event /// private unsafe void RenderingCanvas_Loaded(object sender, RoutedEventArgs e) { // Get the window containing this control CurrentWindow = Window.GetWindow(this); // Set up DispEngine rendering DispEngine.ImageRequestAfterBufferSwapped -= RenderingCanvas_BufferSwapped; DispEngine.ImageRequestAfterBufferSwapped += RenderingCanvas_BufferSwapped; DispEngine.Start((int)DisplayerPane.RenderSize.Width, (int)DisplayerPane.RenderSize.Height); DispEngine.IsVisible = IsVisible; } /// /// Handles the unloaded event /// private unsafe void RenderingCanvas_Unloaded(object sender, RoutedEventArgs e) { DispEngine.IsVisible = IsVisible; DispEngine.ImageRequestAfterBufferSwapped -= RenderingCanvas_BufferSwapped; CurrentWindow = null; } Resource Cleanup /// /// Flag to track disposed state /// private bool disposedValue; /// /// Disposes managed resources /// protected virtual void Dispose(bool disposing) { if (!disposedValue) { if (disposing) { // Unsubscribe from power events SystemEvents.PowerModeChanged -= SystemEvents_PowerModeChanged; // Dispose the DispEngine to free resources DispEngine.Dispose(); } disposedValue = true; } } /// /// Public dispose method to free resources /// public void Dispose() { // Do not change this code. Put cleanup code in 'Dispose(bool disposing)' method Dispose(disposing: true); GC.SuppressFinalize(this); } Core DispEngine Integration Patterns 1. Initialization Sequence // Create DispEngine (optionally with displayees) var engine = new DispEngine(displayees); // Set up image buffer callback engine.ImageRequestAfterBufferSwapped += OnBufferSwapped; // Initialize with canvas size engine.Start(width, height); // Set initial view (optional) engine.SetViewToHomeView(); 2. Render Loop The rendering process follows this pattern: DispEngine processes IDisplayee objects Buffer is swapped and callback is triggered UI framework renders the buffer to screen User input triggers view updates Process repeats 3. Complete User Input Mapping All user interactions must be mapped to DispEngine methods: User Action DispEngine Method Mouse move MouseMove(int, int) Mouse drag MouseDragTransform(int, int, mouse_button_table__transform_view_by_mouse_drag_t) Mouse button MouseButtonDown(long) / MouseButtonUp(long) Mouse wheel MouseWheel(int, int) and MouseWheelTransform(int, int, double) Key press KeyDown(long) / KeyUp(long) and KeyDownTransform(long, key_table__transform_view_by_key_pressing_t) Touch events TouchDown(int, int, int) / TouchMove(int, int, int) / TouchUp(int) 4. Proper Resource Cleanup Resource management is critical for proper operation: // In dispose method DispEngine.ImageRequestAfterBufferSwapped -= OnBufferSwapped; DispEngine.Terminate(); DispEngine.Dispose(); Advanced Implementation Considerations When creating custom implementations, consider these aspects: View Manipulation Use SketchView to directly access or modify the view matrix: // Get current view matrix Mat4d currentView = engine.SketchView; // Apply custom rotation Mat4d rotation = Mat4d.RotateX(Math.PI/4); engine.SketchView = currentView * rotation; See Also DispEngine IDisplayee Vec2d Mat4d" + "summary": "Building Your Own Rendering Canvas This guide provides detailed implementation information for creating your own RenderingCanvas using the DispEngine. By understanding these implementation details, you can customize the rendering component for specific application needs or create implementations for other UI frameworks. Note For Windows Applications: If you are developing for Windows systems, it is recommended to directly use the existing RenderingCanvas implementations in the Hi.WinForm or Hi.WpfPlus packages, rather than creating your own. These implementations are fully tested, optimized, and maintained. The implementation details provided in this document are primarily for educational purposes or for developers who need to port RenderingCanvas to other platforms/frameworks. Basic DispEngine Usage The DispEngine is designed to display objects that implement the IDisplayee interface. This is the fundamental purpose of DispEngine - to render displayable objects. Assign IDisplayee to DispEngine.Displayee. Core Implementation Pattern When implementing a custom RenderingCanvas for a UI platform, follow these key steps: Initialize UI Component - Set up the UI control properties and event handling Configure DispEngine - Create and properly initialize the DispEngine instance Set Up Rendering Pipeline - Implement buffer swapping mechanism for visualization Handle User Input - Map platform-specific input events to DispEngine methods Manage Component Lifecycle - Ensure proper resource management and cleanup Let's examine the actual implementations in WinForm and WPF frameworks to understand these patterns in practice. WinForm Implementation Details The WinForm implementation in Hi.WinForm combines Windows Forms controls with the DispEngine rendering system. Core Properties and Fields Here are the essential properties and fields defined in the WinForm implementation: /// /// . /// public DispEngine DispEngine { get; } // Constants and structures for WM_TOUCH private const int WM_TOUCH = 0x0240; private const int TOUCHEVENTF_MOVE = 0x0001; private const int TOUCHEVENTF_DOWN = 0x0002; private const int TOUCHEVENTF_UP = 0x0004; [StructLayout(LayoutKind.Sequential)] private struct TOUCHINPUT { public int x; public int y; public IntPtr hSource; public int dwID; public int dwFlags; public int dwMask; public int dwTime; public IntPtr dwExtraInfo; public int cxContact; public int cyContact; } [DllImport(\"user32.dll\")] private static extern bool RegisterTouchWindow(IntPtr hWnd, uint ulFlags); [DllImport(\"user32.dll\")] private static extern bool GetTouchInputInfo(IntPtr hTouchInput, int cInputs, [In, Out] TOUCHINPUT[] pInputs, int cbSize); [DllImport(\"user32.dll\")] private static extern void CloseTouchInputHandle(IntPtr lParam); Initialization The initialization code sets up event handlers and creates the DispEngine: /// /// Ctor. /// /// displayees public unsafe RenderingCanvas(params IDisplayee[] displayees) { // Configure the control's visual styles SetStyle(ControlStyles.Selectable, true); SetStyle(ControlStyles.OptimizedDoubleBuffer, false); SetStyle(ControlStyles.ContainerControl, false); SetStyle(ControlStyles.ResizeRedraw, false); DoubleBuffered = true; InitializeComponent(); Dock = DockStyle.Fill; // Connect event handlers for user input and window events this.Resize += RenderingCanvas_Resize; this.VisibleChanged += RenderingCanvas_VisibleChanged; this.MouseMove += RenderingCanvas_MouseMove; this.MouseDown += RenderingCanvas_MouseDown; this.MouseUp += RenderingCanvas_MouseUp; this.MouseWheel += RenderingCanvas_MouseWheel; this.KeyDown += RenderingCanvas_KeyDown; this.KeyUp += RenderingCanvas_KeyUp; // Add focus event handler this.GotFocus += RenderingCanvas_GotFocus; this.HandleCreated += OnHandleCreated; // Enable touch input and click events for the control this.SetStyle(ControlStyles.StandardClick, true); this.SetStyle(ControlStyles.StandardDoubleClick, true); this.TabStop = true; // Initialize the DispEngine with provided displayees DispEngine = new DispEngine(displayees); DispEngine.BackgroundColor = new Vec3d(0.1, 0.1, 0.5); DispEngine.BackgroundOpacity = 0.1; DispEngine.SetViewToHomeView(); DispEngine.ImageRequestAfterBufferSwapped += DispEngine_ImageRequestAfterBufferSwapped; // Set initial size and start the rendering engine this.Size = new System.Drawing.Size(500, 300); DispEngine.Start(this.ClientSize.Width, this.ClientSize.Height); } Rendering Pipeline The rendering pipeline processes images from DispEngine and displays them: private unsafe void DispEngine_ImageRequestAfterBufferSwapped(byte* bgra_unsignedbyte_pixels, int w, int h) { // Create a bitmap from the raw pixel data provided by DispEngine Bitmap bitmap; bitmap = new Bitmap(new Bitmap(w, h, w * 4, PixelFormat.Format32bppArgb, new IntPtr(bgra_unsignedbyte_pixels))); // Update the background image and dispose the previous one Image pre = this.BackgroundImage; this.BackgroundImage = bitmap; pre?.Dispose(); } Input Handling Windows Message Handling for Touch WinForm implementation intercepts Windows touch messages and forwards them to DispEngine: protected override void WndProc(ref Message m) { if (m.Msg == WM_TOUCH) { HandleTouchInput(m.WParam, m.LParam); return; } base.WndProc(ref m); } private void OnHandleCreated(object sender, EventArgs e) { // Register window to receive touch messages RegisterTouchWindow(this.Handle, 0); } private void HandleTouchInput(IntPtr wParam, IntPtr lParam) { int inputCount = wParam.ToInt32(); TOUCHINPUT[] inputs = new TOUCHINPUT[inputCount]; if (!GetTouchInputInfo(lParam, inputCount, inputs, Marshal.SizeOf(typeof(TOUCHINPUT)))) return; try { for (int i = 0; i < inputCount; i++) { TOUCHINPUT ti = inputs[i]; int touchId = ti.dwID; // Convert touch coordinates to client coordinates Point touchPoint = PointToClient(new Point(ti.x / 100, ti.y / 100)); if ((ti.dwFlags & TOUCHEVENTF_DOWN) != 0) { // Touch down event DispEngine.TouchDown(touchId, touchPoint.X, touchPoint.Y); this.Focus(); } else if ((ti.dwFlags & TOUCHEVENTF_MOVE) != 0) { // Touch move event DispEngine.TouchMove(touchId, touchPoint.X, touchPoint.Y); } else if ((ti.dwFlags & TOUCHEVENTF_UP) != 0) { // Touch up event DispEngine.TouchUp(touchId); } } } finally { CloseTouchInputHandle(lParam); } } The key aspect is mapping Windows touch events to DispEngine's touch API: // Inside HandleTouchInput method if ((ti.dwFlags & TOUCHEVENTF_DOWN) != 0) { // Touch down event - delegate to DispEngine DispEngine.TouchDown(touchId, touchPoint.X, touchPoint.Y); this.Focus(); } else if ((ti.dwFlags & TOUCHEVENTF_MOVE) != 0) { // Touch move event - delegate to DispEngine DispEngine.TouchMove(touchId, touchPoint.X, touchPoint.Y); } else if ((ti.dwFlags & TOUCHEVENTF_UP) != 0) { // Touch up event - delegate to DispEngine DispEngine.TouchUp(touchId); } Mouse Events private void RenderingCanvas_MouseMove(object sender, MouseEventArgs e) { // Update mouse position and handle drag transforms DispEngine.MouseMove(e.Location.X, e.Location.Y); DispEngine.MouseDragTransform(e.Location.X, e.Location.Y, new mouse_button_table__transform_view_by_mouse_drag_t() { LEFT_BUTTON = (long)MouseButtons.Left, RIGHT_BUTTON = (long)MouseButtons.Right }); } private void RenderingCanvas_MouseDown(object sender, MouseEventArgs e) { // Handle mouse button press DispEngine.MouseButtonDown((long)e.Button); this.Focus(); } private void RenderingCanvas_MouseUp(object sender, MouseEventArgs e) { // Handle mouse button release DispEngine.MouseButtonUp((long)e.Button); } private void RenderingCanvas_MouseWheel(object sender, MouseEventArgs e) { // Handle mouse wheel for zoom operations DispEngine.MouseWheel(0, e.Delta / 120); DispEngine.MouseWheelTransform(0, e.Delta / 120); } Keyboard Events /// protected override bool IsInputKey(Keys keyData) { //since in default, arrow does not trigger key event(keyDown and keyUp). return true; } private void RenderingCanvas_KeyDown(object sender, KeyEventArgs e) { Focus(); DispEngine.KeyDown((long)e.KeyData); // Map specific keys for view transformation long key = (long)e.KeyData; if (key == (long)Keys.LShiftKey || key == (long)Keys.RShiftKey || key == (long)Keys.ShiftKey) key = (long)Keys.Shift; DispEngine.KeyDownTransform(key, new key_table__transform_view_by_key_pressing_t() { HOME = (long)Keys.Home, PAGE_UP = (long)Keys.PageUp, PAGE_DOWN = (long)Keys.PageDown, F1 = (long)Keys.F1, F2 = (long)Keys.F2, F3 = (long)Keys.F3, F4 = (long)Keys.F4, SHIFT = (long)Keys.Shift, ARROW_LEFT = (long)Keys.Left, ARROW_RIGHT = (long)Keys.Right, ARROW_DOWN = (long)Keys.Down, ARROW_UP = (long)Keys.Up }); } private void RenderingCanvas_KeyUp(object sender, KeyEventArgs e) { DispEngine.KeyUp((long)e.KeyData); } Lifecycle Management Window event handling ensures proper state management: private void RenderingCanvas_Resize(object sender, EventArgs e) { // Notify DispEngine of size changes DispEngine.Resize(this.ClientSize.Width, this.ClientSize.Height); } private void RenderingCanvas_VisibleChanged(object sender, EventArgs e) { // Update visibility state in DispEngine DispEngine.IsVisible = this.Visible; } Resource Cleanup /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { // Dispose the DispEngine to free resources DispEngine.Dispose(); components.Dispose(); } base.Dispose(disposing); } WPF Implementation Details The WPF implementation uses WPF-specific controls and mechanisms but follows the same core pattern. Core Properties /// /// The DispEngine instance that handles rendering and user interactions /// public DispEngine DispEngine { get; } = new DispEngine(); /// /// Internal container for rendering content /// private UserControl DisplayerPane { get; } /// /// Dictionary to store touch point information /// private Dictionary TouchingPointsMap { get; } = new Dictionary(); /// /// Dictionary to store previous positions of touch points /// private Dictionary PreviousTouchingPointsMap { get; } = new Dictionary(); Initialization /// /// Initializes a new instance of the RenderingCanvas /// public RenderingCanvas() { DispEngine.BackgroundColor = new Vec3d(0.1, 0.1, 0.5); DispEngine.BackgroundOpacity = 0.1; // Configure the main control properties HorizontalAlignment = HorizontalAlignment.Stretch; VerticalAlignment = VerticalAlignment.Stretch; Focusable = true; KeyboardNavigation.SetDirectionalNavigation(this, KeyboardNavigationMode.Cycle); DataContextChanged += CanvasDataContextChanged; // Create and configure the display pane DisplayerPane = new UserControl(); DisplayerPane.HorizontalAlignment = HorizontalAlignment.Stretch; DisplayerPane.VerticalAlignment = VerticalAlignment.Stretch; DisplayerPane.Focusable = true; DisplayerPane.IsTabStop = true; // Connect event handlers for user input and window events DisplayerPane.SizeChanged += RenderingCanvas_SizeChanged; DisplayerPane.MouseMove += RenderingCanvas_MouseMove; DisplayerPane.MouseDown += RenderingCanvas_MouseDown; DisplayerPane.MouseUp += RenderingCanvas_MouseUp; DisplayerPane.MouseWheel += RenderingCanvas_MouseWheel; DisplayerPane.KeyDown += RenderingCanvas_KeyDown; DisplayerPane.KeyUp += RenderingCanvas_KeyUp; DisplayerPane.Loaded += RenderingCanvas_Loaded; DisplayerPane.Unloaded += RenderingCanvas_Unloaded; DisplayerPane.IsVisibleChanged += DisplayerPane_IsVisibleChanged; // Add touch event handlers DisplayerPane.TouchDown += RenderingCanvas_TouchDown; DisplayerPane.TouchMove += RenderingCanvas_TouchMove; DisplayerPane.TouchUp += RenderingCanvas_TouchUp; // Enable touch support this.IsManipulationEnabled = true; // Initialize power management InitializePowerManagement(); // Add the display pane to this control's content Content = DisplayerPane; } Rendering Pipeline /// /// Handles the buffer swapped event from DispEngine /// private unsafe void RenderingCanvas_BufferSwapped(byte* data, int w, int h) { if (data == null) return; Span bgra = new Span(data, w * h * 4); // Copy pixel data from DispEngine int n = w * h * 4; byte[] arr = new byte[n]; for (int i = 0; i < n; i++) arr[i] = data[i]; // Update UI on the UI thread DisplayerPane.Dispatcher.InvokeAsync(() => { BitmapSource bitmap = BitmapSource.Create(w, h, 1, 1, PixelFormats.Bgra32, null, arr, w * 4); DisplayerPane.Background = new ImageBrush(bitmap); }); } /// /// Handles the size changed event /// private void RenderingCanvas_SizeChanged(object sender, SizeChangedEventArgs e) { // Notify DispEngine of size changes DispEngine.Resize((int)DisplayerPane.RenderSize.Width, (int)DisplayerPane.RenderSize.Height); } /// /// Handles visibility changes /// private unsafe void DisplayerPane_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e) { // Update visibility state in DispEngine DispEngine.IsVisible = IsVisible; } Mouse and Keyboard Handling /// /// Helper method to get mouse button mask /// internal static HiMouseButtonMask GetMouseButtonMask(MouseDevice device) { HiMouseButtonMask mouseButtonMask = 0; mouseButtonMask.SetLeftPressed(device.LeftButton == MouseButtonState.Pressed); mouseButtonMask.SetMiddlePressed(device.MiddleButton == MouseButtonState.Pressed); mouseButtonMask.SetRightPressed(device.RightButton == MouseButtonState.Pressed); mouseButtonMask.SetXButton1Pressed(device.XButton1 == MouseButtonState.Pressed); mouseButtonMask.SetXButton2Pressed(device.XButton2 == MouseButtonState.Pressed); return mouseButtonMask; } /// /// Handles the mouse wheel event /// private void RenderingCanvas_MouseWheel(object sender, MouseWheelEventArgs e) { // Handle mouse wheel for zoom operations DispEngine.MouseWheel(0, e.Delta / 120); DispEngine.MouseWheelTransform(0, e.Delta / 120); } /// /// Handles the mouse up event /// private void RenderingCanvas_MouseUp(object sender, MouseButtonEventArgs e) { // Handle mouse button release DispEngine.MouseButtonUp((long)e.ChangedButton); (sender as UIElement)?.ReleaseMouseCapture(); } /// /// Handles the mouse down event /// private void RenderingCanvas_MouseDown(object sender, MouseButtonEventArgs e) { // Handle mouse button press DispEngine.MouseButtonDown((long)e.ChangedButton); DisplayerPane.Focus(); (sender as UIElement)?.CaptureMouse(); } /// /// Handles the mouse move event /// private void RenderingCanvas_MouseMove(object sender, MouseEventArgs e) { // Update mouse position and handle drag transforms Point p = e.GetPosition(DisplayerPane); DispEngine.MouseMove((int)p.X, (int)p.Y); DispEngine.MouseDragTransform((int)p.X, (int)p.Y, new mouse_button_table__transform_view_by_mouse_drag_t() { LEFT_BUTTON = (long)MouseButton.Left, RIGHT_BUTTON = (long)MouseButton.Right }); } /// /// Handles the key up event /// private void RenderingCanvas_KeyUp(object sender, KeyEventArgs e) { DispEngine.KeyUp((long)e.Key); } /// /// Handles the key down event /// private void RenderingCanvas_KeyDown(object sender, KeyEventArgs e) { DispEngine.KeyDown((long)e.Key); // Map specific keys for view transformation long key = (long)e.Key; if (key == (long)Key.RightShift) key = (long)Key.LeftShift; DispEngine.KeyDownTransform(key, new key_table__transform_view_by_key_pressing_t() { HOME = (long)Key.Home, PAGE_UP = (long)Key.PageUp, PAGE_DOWN = (long)Key.PageDown, F1 = (long)Key.F1, F2 = (long)Key.F2, F3 = (long)Key.F3, F4 = (long)Key.F4, SHIFT = (long)Key.LeftShift, ARROW_LEFT = (long)Key.Left, ARROW_RIGHT = (long)Key.Right, ARROW_DOWN = (long)Key.Down, ARROW_UP = (long)Key.Up }); } Lifecycle Management /// /// Handles window state changes (maximize, minimize, etc.) /// private unsafe void RenderingCanvas_StateChanged(object sender, EventArgs e) { switch ((sender as Window).WindowState) { case WindowState.Maximized: DispEngine.IsVisible = true; break; case WindowState.Minimized: DispEngine.IsVisible = false; break; case WindowState.Normal: DispEngine.IsVisible = true; break; } } /// /// Handles data context changes /// private unsafe void CanvasDataContextChanged(object sender, DependencyPropertyChangedEventArgs e) { DispEngine pre = e.OldValue as DispEngine; DispEngine cur = e.NewValue as DispEngine; //child's binding event is triggered after IsVisible event and Load event. if (pre != null) //this section will never occur if the datacontext not set twice. { pre.Terminate(); pre.ImageRequestAfterBufferSwapped -= RenderingCanvas_BufferSwapped; } if (cur != null) { cur.ImageRequestAfterBufferSwapped += RenderingCanvas_BufferSwapped; cur.Start((int)DisplayerPane.RenderSize.Width, (int)DisplayerPane.RenderSize.Height); cur.IsVisible = IsVisible; } } /// /// Reference to the current window containing this control /// private Window currentWindow; /// /// Gets or sets the current window, connecting or disconnecting state change events /// Window CurrentWindow { get => currentWindow; set { if (currentWindow != null) currentWindow.StateChanged -= RenderingCanvas_StateChanged; currentWindow = value; if (currentWindow != null) currentWindow.StateChanged += RenderingCanvas_StateChanged; } } /// /// Handles the loaded event /// private unsafe void RenderingCanvas_Loaded(object sender, RoutedEventArgs e) { // Get the window containing this control CurrentWindow = Window.GetWindow(this); // Set up DispEngine rendering DispEngine.ImageRequestAfterBufferSwapped -= RenderingCanvas_BufferSwapped; DispEngine.ImageRequestAfterBufferSwapped += RenderingCanvas_BufferSwapped; DispEngine.Start((int)DisplayerPane.RenderSize.Width, (int)DisplayerPane.RenderSize.Height); DispEngine.IsVisible = IsVisible; } /// /// Handles the unloaded event /// private unsafe void RenderingCanvas_Unloaded(object sender, RoutedEventArgs e) { DispEngine.IsVisible = IsVisible; DispEngine.ImageRequestAfterBufferSwapped -= RenderingCanvas_BufferSwapped; CurrentWindow = null; } Resource Cleanup /// /// Flag to track disposed state /// private bool disposedValue; /// /// Disposes managed resources /// protected virtual void Dispose(bool disposing) { if (!disposedValue) { if (disposing) { // Unsubscribe from power events SystemEvents.PowerModeChanged -= SystemEvents_PowerModeChanged; // Dispose the DispEngine to free resources DispEngine.Dispose(); } disposedValue = true; } } /// /// Public dispose method to free resources /// public void Dispose() { // Do not change this code. Put cleanup code in 'Dispose(bool disposing)' method Dispose(disposing: true); GC.SuppressFinalize(this); } Core DispEngine Integration Patterns 1. Initialization Sequence // Create DispEngine (optionally with displayees) var engine = new DispEngine(displayees); // Set up image buffer callback engine.ImageRequestAfterBufferSwapped += OnBufferSwapped; // Initialize with canvas size engine.Start(width, height); // Set initial view (optional) engine.SetViewToHomeView(); 2. Render Loop The rendering process follows this pattern: DispEngine processes IDisplayee objects Buffer is swapped and callback is triggered UI framework renders the buffer to screen User input triggers view updates Process repeats 3. Complete User Input Mapping All user interactions must be mapped to DispEngine methods: User Action DispEngine Method Mouse move MouseMove(int, int) Mouse drag MouseDragTransform(int, int, mouse_button_table__transform_view_by_mouse_drag_t) Mouse button MouseButtonDown(long) / MouseButtonUp(long) Mouse wheel MouseWheel(int, int) and MouseWheelTransform(int, int, double) Key press KeyDown(long) / KeyUp(long) and KeyDownTransform(long, key_table__transform_view_by_key_pressing_t) Touch events TouchDown(int, int, int) / TouchMove(int, int, int) / TouchUp(int) 4. Proper Resource Cleanup Resource management is critical for proper operation: // In dispose method DispEngine.ImageRequestAfterBufferSwapped -= OnBufferSwapped; DispEngine.Terminate(); DispEngine.Dispose(); Advanced Implementation Considerations When creating custom implementations, consider these aspects: View Manipulation Use SketchView to directly access or modify the view matrix: // Get current view matrix Mat4d currentView = engine.SketchView; // Apply custom rotation Mat4d rotation = Mat4d.RotateX(Math.PI/4); engine.SketchView = currentView * rotation; See Also DispEngine IDisplayee Vec2d Mat4d" }, "brief/dev-doc/basic/rendering/rendering-canvas/index.html": { "href": "brief/dev-doc/basic/rendering/rendering-canvas/index.html", "title": "Using RenderingCanvas with DispEngine | HiAPI-C# 2025", - "summary": "Using RenderingCanvas with DispEngine The RenderingCanvas is the primary UI component for displaying and interacting with 3D content across different platforms. This section explains how to use it with the DispEngine to create cross-platform applications. Overview The RenderingCanvas class is available in frameworks: Hi.WinForm for Windows Forms applications Hi.Wpf for WPF applications All implementations share a common architecture centered around the DispEngine class, enabling consistent rendering and interaction across platforms. Core Concept: DispEngine and IDisplayee At the heart of the rendering system is the relationship between DispEngine and IDisplayee: DispEngine: The rendering engine that manages the OpenGL context and handles user interaction IDisplayee: The interface that defines objects that can be rendered by the DispEngine This relationship is fundamental - the purpose of DispEngine is to render IDisplayee objects. graph TD A[IDisplayee Objects] -->|Rendered by| B B[DispEngine] <--> C[RenderingCanvas UI Component] Working with IDisplayee Objects implementing IDisplayee define what gets rendered. Typically, you'll use Drawing objects or compose multiple IDisplayee objects together: // Create a composite displayee public class MyCompositeDisplayee : IDisplayee { private List _displayees = new List(); public MyCompositeDisplayee() { // Add various displayees _displayees.Add(new AxesDisplayee()); _displayees.Add(new ModelDisplayee()); } public void Display(Bind bind) { // Render all contained displayees foreach (var displayee in _displayees) { displayee.Display(bind); } } public void ExpandToBox3d(Box3d box) { // Update bounding box based on all displayees foreach (var displayee in _displayees) { displayee.ExpandToBox3d(box); } } } For more detailed information on creating displayees with Drawing, see the Drawing section. Basic Usage Apply Hi.WinForm // Create a new instance with displayee objects using Hi.WinForm.Disp; // Create displayee object var displayee = new MyCompositeDisplayee(); // Initialize canvas with the displayee var canvas = new RenderingCanvas(displayee); // Access the DispEngine for direct manipulation DispEngine engine = canvas.DispEngine; // Add to a form myForm.Controls.Add(canvas); Apply Hi.WPF // Create a new instance using Hi.Wpf.Disp; // Create displayee object var displayee = new MyCompositeDisplayee(); // Initialize the canvas var canvas = new RenderingCanvas(); // Set displayee objects through the DispEngine canvas.DispEngine.Displayee = displayee; // Add to a container myGrid.Children.Add(canvas); Switching Displayees at Runtime You can dynamically change what's being displayed: // Switch to a different displayee renderingCanvas.DispEngine.Displayee = alternativeDisplayee; // Or update a DispList var displayList = new DispList(); if (showModel) displayList.Add(modelDisplayee); if (showGrid) displayList.Add(gridDisplayee); renderingCanvas.DispEngine.Displayee = displayList; Key Features of DispEngine The DispEngine provides cross-platform support for: Handles buffer swapping and image generation Mouse/pointer events Keyboard navigation Touch gestures Zoom, pan, and rotate operations Resize and Visibility changed. Camera positioning and orientation Standard views (front, top, isometric, etc.) Renders IDisplayee implementations Touch and Gesture Support The DispEngine centralizes touch handling across all platforms with a unified API that supports: Single-finger pan Two-finger rotate and scale Multi-finger specialized operations The touch API is designed to be simple for UI implementations to use. Platform-specific UI components only need to capture touch events and forward them to the DispEngine. Common Operations // Accessing DispEngine (works on all platforms) var engine = renderingCanvas.DispEngine; // Set to standard views engine.SetViewToHomeView(); engine.SetViewToFrontView(); // Manual camera manipulation engine.Translate(dx, dy); engine.Rotate(deltaX, deltaY); // Resize handling engine.Resize(width, height); Implementation Details For detailed implementation information, including: Full source code examples Implementation details for each platform Advanced touch handling Custom implementation guidance See the Building Your Own RenderingCanvas guide. See Also DispEngine IDisplayee DispList Drawing Building Your Own RenderingCanvas" + "summary": "Using RenderingCanvas with DispEngine The RenderingCanvas is the primary UI component for displaying and interacting with 3D content across different platforms. This section explains how to use it with the DispEngine to create cross-platform applications. Overview The RenderingCanvas class is available in frameworks: Hi.WinForm for Windows Forms applications Hi.WpfPlus for WPF applications All implementations share a common architecture centered around the DispEngine class, enabling consistent rendering and interaction across platforms. Core Concept: DispEngine and IDisplayee At the heart of the rendering system is the relationship between DispEngine and IDisplayee: DispEngine: The rendering engine that manages the OpenGL context and handles user interaction IDisplayee: The interface that defines objects that can be rendered by the DispEngine This relationship is fundamental - the purpose of DispEngine is to render IDisplayee objects. graph TD A[IDisplayee Objects] -->|Rendered by| B B[DispEngine] <--> C[RenderingCanvas UI Component] Working with IDisplayee Objects implementing IDisplayee define what gets rendered. Typically, you'll use Drawing objects or compose multiple IDisplayee objects together: // Create a composite displayee public class MyCompositeDisplayee : IDisplayee { private List _displayees = new List(); public MyCompositeDisplayee() { // Add various displayees _displayees.Add(new AxesDisplayee()); _displayees.Add(new ModelDisplayee()); } public void Display(Bind bind) { // Render all contained displayees foreach (var displayee in _displayees) { displayee.Display(bind); } } public void ExpandToBox3d(Box3d box) { // Update bounding box based on all displayees foreach (var displayee in _displayees) { displayee.ExpandToBox3d(box); } } } For more detailed information on creating displayees with Drawing, see the Drawing section. Basic Usage Apply Hi.WinForm // Create a new instance with displayee objects using Hi.WinForm.Disp; // Create displayee object var displayee = new MyCompositeDisplayee(); // Initialize canvas with the displayee var canvas = new RenderingCanvas(displayee); // Access the DispEngine for direct manipulation DispEngine engine = canvas.DispEngine; // Add to a form myForm.Controls.Add(canvas); Apply Hi.WPF // Create a new instance using Hi.WpfPlus.Disp; // Create displayee object var displayee = new MyCompositeDisplayee(); // Initialize the canvas var canvas = new RenderingCanvas(); // Set displayee objects through the DispEngine canvas.DispEngine.Displayee = displayee; // Add to a container myGrid.Children.Add(canvas); Switching Displayees at Runtime You can dynamically change what's being displayed: // Switch to a different displayee renderingCanvas.DispEngine.Displayee = alternativeDisplayee; // Or update a DispList var displayList = new DispList(); if (showModel) displayList.Add(modelDisplayee); if (showGrid) displayList.Add(gridDisplayee); renderingCanvas.DispEngine.Displayee = displayList; Key Features of DispEngine The DispEngine provides cross-platform support for: Handles buffer swapping and image generation Mouse/pointer events Keyboard navigation Touch gestures Zoom, pan, and rotate operations Resize and Visibility changed. Camera positioning and orientation Standard views (front, top, isometric, etc.) Renders IDisplayee implementations Touch and Gesture Support The DispEngine centralizes touch handling across all platforms with a unified API that supports: Single-finger pan Two-finger rotate and scale Multi-finger specialized operations The touch API is designed to be simple for UI implementations to use. Platform-specific UI components only need to capture touch events and forward them to the DispEngine. Common Operations // Accessing DispEngine (works on all platforms) var engine = renderingCanvas.DispEngine; // Set to standard views engine.SetViewToHomeView(); engine.SetViewToFrontView(); // Manual camera manipulation engine.Translate(dx, dy); engine.Rotate(deltaX, deltaY); // Resize handling engine.Resize(width, height); Implementation Details For detailed implementation information, including: Full source code examples Implementation details for each platform Advanced touch handling Custom implementation guidance See the Building Your Own RenderingCanvas guide. See Also DispEngine IDisplayee DispList Drawing Building Your Own RenderingCanvas" }, "brief/dev-doc/build-hinc/common/dictionary-service-pattern.html": { "href": "brief/dev-doc/build-hinc/common/dictionary-service-pattern.html", @@ -4812,7 +4812,7 @@ "brief/dev-doc/build-hinc/index.html": { "href": "brief/dev-doc/build-hinc/index.html", "title": "Sketch to Build HiNC GUI | HiAPI-C# 2025", - "summary": "Sketch to Build HiNC GUI Apply General Rules to build the HiNC GUI. WPF Application Source Code The source code of HiNC-2025-win-desktop project is at the git repository: https://superhightech-gitea.webredirect.org/HiNC-Deploy/HiNC-2025-win-desktop.git Web Service Application Source Code HiNC-2025-webservice apply vue. The source code of HiNC-2025-webservice project is at the git repository: https://superhightech-gitea.webredirect.org/HiNC-Deploy/HiNC-2025-webservice.git Web Architecture Patterns DictionaryService and DictionaryHub Pattern - Connection-scoped object indexing for hierarchical components Rendering Canvas on Web Service - WebSocket-based 3D canvas rendering architecture using SignalR Hub Step by Step Program Construction Check List Tip If you are using AI agent to build the application: Ask AI to do only one job at one time to ensure the quality. Create and config a application project. Set the project platform to x64. Create a application project. Add HiNc packages to the project. See Getting Started to config the packages. Note Add Hi.Wpf packages to the project if the building WPF project. Create Main Window, set the layout according to Main Panel Layout. Build Message Section according to Message Section on Main Panel. Initialize HiAPI at application entry point according to Initialize HiAPI. Set behavior of Navigation Menu/Project according to Behavior of Navigation Menu/Project. Create RenderingCanvas Tool Bar for later usage. Create by Player Panel the Player Panel Step by Step Program Construction Check List. Build behavior of Graphic-Cache Dropdown. Build basic GUI widget component: Vec3dControl Build Transformers Build Geometry Panels. Build Fixture Page. Build Workpiece Page. Build Controller Page. Build ToolHouse Page. Add application icon, splash screen and etc.. (The content is consturcting..) Tip Complete the check list step by step. Compile to ensure the code work on each step completed. You MUST read the cited hyperlink before you do the job. ASK if you think the hyperlink is not work." + "summary": "Sketch to Build HiNC GUI Apply General Rules to build the HiNC GUI. WPF Application Source Code The source code of HiNC-2025-win-desktop project is at the git repository: https://superhightech-gitea.webredirect.org/HiNC-Deploy/HiNC-2025-win-desktop.git Web Service Application Source Code HiNC-2025-webservice apply vue. The source code of HiNC-2025-webservice project is at the git repository: https://superhightech-gitea.webredirect.org/HiNC-Deploy/HiNC-2025-webservice.git Web Architecture Patterns DictionaryService and DictionaryHub Pattern - Connection-scoped object indexing for hierarchical components Rendering Canvas on Web Service - WebSocket-based 3D canvas rendering architecture using SignalR Hub Step by Step Program Construction Check List Tip If you are using AI agent to build the application: Ask AI to do only one job at one time to ensure the quality. Create and config a application project. Set the project platform to x64. Create a application project. Add HiNc packages to the project. See Getting Started to config the packages. Note Add Hi.WpfPlus packages to the project if the building WPF project. Create Main Window, set the layout according to Main Panel Layout. Build Message Section according to Message Section on Main Panel. Initialize HiAPI at application entry point according to Initialize HiAPI. Set behavior of Navigation Menu/Project according to Behavior of Navigation Menu/Project. Create RenderingCanvas Tool Bar for later usage. Create by Player Panel the Player Panel Step by Step Program Construction Check List. Build behavior of Graphic-Cache Dropdown. Build basic GUI widget component: Vec3dControl Build Transformers Build Geometry Panels. Build Fixture Page. Build Workpiece Page. Build Controller Page. Build ToolHouse Page. Add application icon, splash screen and etc.. (The content is consturcting..) Tip Complete the check list step by step. Compile to ensure the code work on each step completed. You MUST read the cited hyperlink before you do the job. ASK if you think the hyperlink is not work." }, "brief/dev-doc/build-hinc/initialize-hiapi.html": { "href": "brief/dev-doc/build-hinc/initialize-hiapi.html", @@ -4822,7 +4822,7 @@ "brief/dev-doc/build-hinc/main-panel.html": { "href": "brief/dev-doc/build-hinc/main-panel.html", "title": "Main Panel | HiAPI-C# 2025", - "summary": "Main Panel Key Model WPF Single-User Desktop Application: Self-hosted LocalProjectService Web Service Application: Service inherits from IProjectService Other Model: Main Panel Layout Top Navigation Menu Project Menu Dropdown Project Path Text Field New MenuItem Load MenuItem Save MenuItem Save As MenuItem Environment Menu Dropdown Machine Tool MenuItem Open Machine Tool Page Sole window in WPF app. The page manages MachiningEquipment.. Controller MenuItem Open Controller Page Tool House MenuItem Fixture MenuItem Open Fixture Page Workpiece MenuItem Open Workpiece Page Mission MenuItem Open Mission Page Player MenuItem Link to Player Panel (Not exist on WPF app.) Player Belonged Tool Bars. See Player Panel. Shows only if the Main Panel content is Player Panel. Preference Menu Dropdown Help MenuItem HiAPI Version label A label to show the HiNc library version. Log MenuItem Open Log Viewer to display application logs for the current day. The Log Viewer provides real-time access to system logs with filtering and download capabilities. It reads log files from the server's log directory and presents them in a formatted, searchable interface. Users can refresh the log content or download the current day's log file for offline analysis. Central Page Panel Message Section on Main Panel Behavior of Navigation Menu/Project Project Path Text Field Shows the Project Path if the project is assinged. Tip Project Path Text Field should not be button style. It should be a pure text field that can be selected and copied. The Project Menu Managing MachiningProject. To New (create), Save and Save As the MachiningProject, See DemoBuildGeomOnlyMachiningProject for the example. To Load MachiningProject, See DemoUseMachiningProject for the example. Show message for the actions result (successed or has exception) by MessageHost. Tip Recommmand using static function of MessageHost to do the job. Read document of MessageHost to ensure the proper usage. On project loaded (Navigation Menu/Project/Load MenuItem) , set the Player.Panel.RenderingCanvas.DispEngine to SetViewToIsometricView(). Tip Using async to comfort the process WPF Application Specification Limit the GUI that only single Page/Window existed in the application for the sub window from the Main Panel, include Mission, Workpiece and Fixture. Don't create the Player MenuItem if the target application is WPF Application. Since the Main panel is the Player Panel and the panel is fixed to the main panel. Web-Page Application Specification Apply Player Panel as the default panel. Application Specification and Source Code Path See this page for git repository. WPF Application Source Code Path MainWindow Web Page Application Source Code Path Environments/PreferenceController.cs Environments/ProjectController.cs wwwroot/app.js wwwroot/index.html wwwroot/preference/log-viewer.js Web Page Application Specification The page and URL are bi-directional." + "summary": "Main Panel Key Model WPF Single-User Desktop Application: Self-hosted LocalProjectService Web Service Application: Service inherits from IProjectService Other Model: Main Panel Layout Top Navigation Menu Project Menu Dropdown Project Path Text Field New MenuItem Load MenuItem Save MenuItem Save As MenuItem Environment Menu Dropdown Machine Tool MenuItem Open Machine Tool Page Sole window in WPF app. The page manages .. Controller MenuItem Open Controller Page Tool House MenuItem Fixture MenuItem Open Fixture Page Workpiece MenuItem Open Workpiece Page Mission MenuItem Open Mission Page Player MenuItem Link to Player Panel (Not exist on WPF app.) Player Belonged Tool Bars. See Player Panel. Shows only if the Main Panel content is Player Panel. Preference Menu Dropdown Help MenuItem HiAPI Version label A label to show the HiNc library version. Log MenuItem Open Log Viewer to display application logs for the current day. The Log Viewer provides real-time access to system logs with filtering and download capabilities. It reads log files from the server's log directory and presents them in a formatted, searchable interface. Users can refresh the log content or download the current day's log file for offline analysis. Central Page Panel Message Section on Main Panel Behavior of Navigation Menu/Project Project Path Text Field Shows the Project Path if the project is assinged. Tip Project Path Text Field should not be button style. It should be a pure text field that can be selected and copied. The Project Menu Managing MachiningProject. To New (create), Save and Save As the MachiningProject, See DemoBuildGeomOnlyMachiningProject for the example. To Load MachiningProject, See DemoUseMachiningProject for the example. Show message for the actions result (successed or has exception) by MessageHost. Tip Recommmand using static function of MessageHost to do the job. Read document of MessageHost to ensure the proper usage. On project loaded (Navigation Menu/Project/Load MenuItem) , set the Player.Panel.RenderingCanvas.DispEngine to SetViewToIsometricView(). Tip Using async to comfort the process WPF Application Specification Limit the GUI that only single Page/Window existed in the application for the sub window from the Main Panel, include Mission, Workpiece and Fixture. Don't create the Player MenuItem if the target application is WPF Application. Since the Main panel is the Player Panel and the panel is fixed to the main panel. Web-Page Application Specification Apply Player Panel as the default panel. Application Specification and Source Code Path See this page for git repository. WPF Application Source Code Path MainWindow Web Page Application Source Code Path Environments/PreferenceController.cs Environments/ProjectController.cs wwwroot/app.js wwwroot/index.html wwwroot/preference/log-viewer.js Web Page Application Specification The page and URL are bi-directional." }, "brief/dev-doc/build-hinc/mech/cutter/apt-profile-panel.html": { "href": "brief/dev-doc/build-hinc/mech/cutter/apt-profile-panel.html", @@ -4842,12 +4842,12 @@ "brief/dev-doc/build-hinc/mech/cutter/milling-cutter-panel.html": { "href": "brief/dev-doc/build-hinc/mech/cutter/milling-cutter-panel.html", "title": "Milling Cutter Panel | HiAPI-C# 2025", - "summary": "Milling Cutter Panel The key model is MillingCutter. Layout Milling Cutter Panel Tabs Flute-Profile Tab Upper-Beam Tab Geometry Management Control ExtendedCylinder option is enabled. Property Tab Insert-Cutter Tab Material Tab Flute-Contours Tab Flute-Inner-Beam Tab Optimization Tab Info Tab Name TextField (editable) AbstractNote TextField (readonly) Note TextField (editable) Flute-Profile Tab Profile Type Selection Dropdown APT General (GeneralApt) APT Ball (BallApt) APT Column (ColumnApt) APT Cone (ConeApt) APT Taper (TaperApt) Custom Spinning Profile (CustomSpinningProfile) Profile Configuration Panel Dynamic component based on selected profile type See DemoBuildMachiningProject for creating the apt profile and setting to the cutter. See APT Panel for APT-based Profile Configuration Panel. The APT series option is all wrap by AptProfile but with different property AptProfile.Apt assigned. Custom Spinning Profile Panel Geometry Management Control Property Tab Visible if . is true. Integral Mode Selection Dropdown Solid End Insert End Cutter/Shank Mass Input Field (g) Show the label ‘Cutter Mass’ if the Cutter is Solid End Integral Mode; Show the label ‘Shank Mass’ if the Cutter is Insert End Integral Mode. Value format “G4” Auto Update CheckBox The model is ShankMassAssignmentMode. When enabled: field becomes readonly and shows calculated value. When disabled: field is editable Functionality Note: The value is calculate by the volume and density. The volume is the inner beam volume and the upper beam volume. Hone Radius (μm) Input Field Relief Angle (deg) Input Field Minimum Available Cutting Thickness (μm) Readonly field with format “G4” Shows calculated value from GetMinimumUncutChipThickness_um(ICuttingPara). The argument (cutting parameter) is obtained by the MachiningProject.Workpiece.CuttingPara. Series pass the models by the GUI if needed. Note Label Show Workpiece Cutting Parameter Name. Label Text \"Reference: Workpiece Cutting Parameter - {CuttingPara.Name}\". Since the thickness depdents on the Workpiece Cutting Parameter and hone radius. Insert-Cutter Tab Visible if . is true and Integral Mode is Insert End. Insert Number Input field Insert Mass Input field (g) Format “G4” Insert Thickness Input field (mm) Format “G4” The Insert Thickness is for computing heat transfer. Material Tab Visible if . is true. Shank Material (visible only for Integral Mode is Insert End mode) Material File Selector Apply IStructureMaterial Menu Dropdown Browse Button Browse Resource Button Readonly Name TextBox (Name) ToolTip by Note from the material Flute Material Material File Selector Apply CutterMaterial Menu Dropdown Browse Button Browse Resource Button Readonly Name TextBox (Name) ToolTip by Note from the material Coating Panel Show note that the sequence starts from surface, i.e. from outer to inner. Manages CoatingLayerList Exists sequence management. The first layer has the remark: Air-Exposing Coating. ThermalLayer1D Component Tip Keep the child components to one line. After Coating Material is manual loaded, set the PreferedThickness_um to the Length_um and update the corresponding field. Coating Material Material File Selector Apply CoatingMaterial Menu Dropdown Browse Button Browse Resource Button Readonly Name TextBox (Name) ToolTip by Note from the material Thickness Input Field (um) (editable) Length_um Use format “G4” If the cutter is Solid End, the Shank Material should keep the same with Flute Material. i.e. Set the Shank Material when Flute Material set. Default Resource The default resources of Material exist in Resource folder under application folder (Not project folder). Set the corresponding default folder of the File Selector to the Resource sub folder: “Resource/StructureMaterial” “Resource/CutterMaterial” “Resource/CoatingMaterial” Flute-Contours Tab Visible if . is true. This part manages FluteContourTray. Contour Tray Selection Dropdown Uniform Contour Tray (UniformContourTray) Free Contour Tray (FreeContourTray) Unset Contour Tray Configuration Panel Dynamic component based on selected contour tray type For Uniform Contour Tray: Track Number Input Field Baseline Contour Configuration //building For Free Contour Tray: Individual contour configuration for each flute //building Add/Remove contour controls Flute-Inner-Beam Tab Visible if . is true. This part manages InnerBeamProfile. Profile Type Selection Dropdown Flute Dependent Ratio Profile (FluteDependentRatioProfile) Const Ratio Profile (ConstRatioProfile) Custom Spinning Profile (CustomSpinningProfile) Unset Profile Configuration Panel Dynamic component based on selected profile type For Flute Dependent Ratio Profile: Radius Ratio Number Field (readonly) Label also shows the additional information: ‘Dependent on flute num xxx’, the ‘xxx’ is the flute number that pass by MillingCutter.FluteContourTray. Series pass the model by the GUI if needed. For Const Ratio Profile: Radius Ratio Number Field (editable) For Custom Spinning Profile: Geometry Management Control Optimization Tab Visible if . is true. This part manages MillingCutterOptOption. Enable Optimization Checkbox Controls whether optimization limits are active When optimization is enabled: Limit by Theoretical Minimum Feed Per Tooth Checkbox Shows calculated minimum uncut chip thickness value. To get the value, MachiningProject.Workpiece.CuttingPara and MillingCutter are required. Series pass the model by the GUI if needed. When checked, enforces minimum feed constraint Min Feed Per Tooth (mm) Number Field Step (If UI supported): 0.01 Max Feed Per Tooth (mm) Number Field Step (If UI supported): 0.01 Safety Factor for Yielding Number Field Step (If UI supported): 0.1 Default value typically around 2.0 Source Code Path See this page for git repository. WPF Application Source Code Path Mech/ToolHouse/MillingCutterPanel Mech/ToolHouse/AptProfilePanel Mech/ToolHouse/MaterialTabPanel Mech/ToolHouse/PropertyTabPanel Web Page Application Source Code Path wwwroot/mech/cutter/milling-cutter-panel.js wwwroot/mech/cutter/apt-profile-panel.js wwwroot/mech/cutter/material-tab-panel.js wwwroot/mech/cutter/property-tab-panel.js Controller/Mech/MechController.cs" + "summary": "Milling Cutter Panel The key model is MillingCutter. Layout Milling Cutter Panel Tabs Flute-Profile Tab Upper-Beam Tab Geometry Management Control ExtendedCylinder option is enabled. Property Tab Insert-Cutter Tab Material Tab Flute-Contours Tab Flute-Inner-Beam Tab Optimization Tab Info Tab Name TextField (editable) AbstractNote TextField (readonly) Note TextField (editable) Flute-Profile Tab Profile Type Selection Dropdown APT General (GeneralApt) APT Ball (BallApt) APT Column (ColumnApt) APT Cone (ConeApt) APT Taper (TaperApt) Custom Spinning Profile (CustomSpinningProfile) Profile Configuration Panel Dynamic component based on selected profile type See DemoBuildMachiningProject for creating the apt profile and setting to the cutter. See APT Panel for APT-based Profile Configuration Panel. The APT series option is all wrap by AptProfile but with different property AptProfile.Apt assigned. Custom Spinning Profile Panel Geometry Management Control Property Tab Visible if . is true. Integral Mode Selection Dropdown Solid End Insert End Cutter/Shank Mass Input Field (g) Show the label ‘Cutter Mass’ if the Cutter is Solid End Integral Mode; Show the label ‘Shank Mass’ if the Cutter is Insert End Integral Mode. Value format “G4” Auto Update CheckBox The model is ShankMassAssignmentMode. When enabled: field becomes readonly and shows calculated value. When disabled: field is editable Functionality Note: The value is calculate by the volume and density. The volume is the inner beam volume and the upper beam volume. Hone Radius (μm) Input Field Relief Angle (deg) Input Field Minimum Available Cutting Thickness (μm) Readonly field with format “G4” Shows calculated value from GetMinimumUncutChipThickness_um(ICuttingPara). The argument (cutting parameter) is obtained by the MachiningProject..CuttingPara. Series pass the models by the GUI if needed. Note Label Show Workpiece Cutting Parameter Name. Label Text \"Reference: Workpiece Cutting Parameter - {CuttingPara.Name}\". Since the thickness depdents on the Workpiece Cutting Parameter and hone radius. Insert-Cutter Tab Visible if . is true and Integral Mode is Insert End. Insert Number Input field Insert Mass Input field (g) Format “G4” Insert Thickness Input field (mm) Format “G4” The Insert Thickness is for computing heat transfer. Material Tab Visible if . is true. Shank Material (visible only for Integral Mode is Insert End mode) Material File Selector Apply IStructureMaterial Menu Dropdown Browse Button Browse Resource Button Readonly Name TextBox (Name) ToolTip by Note from the material Flute Material Material File Selector Apply CutterMaterial Menu Dropdown Browse Button Browse Resource Button Readonly Name TextBox (Name) ToolTip by Note from the material Coating Panel Show note that the sequence starts from surface, i.e. from outer to inner. Manages CoatingLayerList Exists sequence management. The first layer has the remark: Air-Exposing Coating. ThermalLayer1D Component Tip Keep the child components to one line. After Coating Material is manual loaded, set the PreferedThickness_um to the Length_um and update the corresponding field. Coating Material Material File Selector Apply CoatingMaterial Menu Dropdown Browse Button Browse Resource Button Readonly Name TextBox (Name) ToolTip by Note from the material Thickness Input Field (um) (editable) Length_um Use format “G4” If the cutter is Solid End, the Shank Material should keep the same with Flute Material. i.e. Set the Shank Material when Flute Material set. Default Resource The default resources of Material exist in Resource folder under application folder (Not project folder). Set the corresponding default folder of the File Selector to the Resource sub folder: “Resource/StructureMaterial” “Resource/CutterMaterial” “Resource/CoatingMaterial” Flute-Contours Tab Visible if . is true. This part manages FluteContourTray. Contour Tray Selection Dropdown Uniform Contour Tray (UniformContourTray) Free Contour Tray (FreeContourTray) Unset Contour Tray Configuration Panel Dynamic component based on selected contour tray type For Uniform Contour Tray: Track Number Input Field Baseline Contour Configuration //building For Free Contour Tray: Individual contour configuration for each flute //building Add/Remove contour controls Flute-Inner-Beam Tab Visible if . is true. This part manages InnerBeamProfile. Profile Type Selection Dropdown Flute Dependent Ratio Profile (FluteDependentRatioProfile) Const Ratio Profile (ConstRatioProfile) Custom Spinning Profile (CustomSpinningProfile) Unset Profile Configuration Panel Dynamic component based on selected profile type For Flute Dependent Ratio Profile: Radius Ratio Number Field (readonly) Label also shows the additional information: ‘Dependent on flute num xxx’, the ‘xxx’ is the flute number that pass by MillingCutter.FluteContourTray. Series pass the model by the GUI if needed. For Const Ratio Profile: Radius Ratio Number Field (editable) For Custom Spinning Profile: Geometry Management Control Optimization Tab Visible if . is true. This part manages MillingCutterOptOption. Enable Optimization Checkbox Controls whether optimization limits are active When optimization is enabled: Limit by Theoretical Minimum Feed Per Tooth Checkbox Shows calculated minimum uncut chip thickness value. To get the value, MachiningProject..CuttingPara and MillingCutter are required. Series pass the model by the GUI if needed. When checked, enforces minimum feed constraint Min Feed Per Tooth (mm) Number Field Step (If UI supported): 0.01 Max Feed Per Tooth (mm) Number Field Step (If UI supported): 0.01 Safety Factor for Yielding Number Field Step (If UI supported): 0.1 Default value typically around 2.0 Source Code Path See this page for git repository. WPF Application Source Code Path Mech/ToolHouse/MillingCutterPanel Mech/ToolHouse/AptProfilePanel Mech/ToolHouse/MaterialTabPanel Mech/ToolHouse/PropertyTabPanel Web Page Application Source Code Path wwwroot/mech/cutter/milling-cutter-panel.js wwwroot/mech/cutter/apt-profile-panel.js wwwroot/mech/cutter/material-tab-panel.js wwwroot/mech/cutter/property-tab-panel.js Controller/Mech/MechController.cs" }, "brief/dev-doc/build-hinc/mech/fixture-page.html": { "href": "brief/dev-doc/build-hinc/mech/fixture-page.html", "title": "Fixture Page | HiAPI-C# 2025", - "summary": "Fixture Page The page triggers by Main Panel. The key model is Fixture and FixtureEditorDisplayeeConfig. Fixture is assigned from the Main Panel's MachiningProject.MachiningEquipment.Fixture. FixtureEditorDisplayeeConfig is from . which assigned from the parent component. Layout Fixture Page Management Panel Head Line Object Management Menu Button file extension is Fixture The pointed Editor Panel is Management Tabs Panel Title Label Management Tabs Panel Geometry Tab (Apply Geometry Management Control to set the Fixture.Geom.) Anchor Tab (Apply Transformer Manage Panel to set the following tabs) Geom To Workpiece Tab Geom To Table Tab Viewer Panel Viewer ToolBar RenderingCanvas Tool Bar SetupDisplayee Options ToolBar Options of FixtureEditorDisplayee RenderingCanvas The DispEngine.Displayee is FixtureEditorDisplayee (Apply the model FixtureEditorDisplayeeConfig). Tip Add a resizable splition bar between Manage Panel and Viewer Panel. Behavior Call Fixture.ClearGeomCache() on geometry set or changed. Call RenderCanvas.DispEngine.SetViewToIsometricView() on geometry set. (Since the assumption of the shape set raise larger viewer changed than content changed, only adjust view of the setter event.) Source Code Path See this page for git repository. WPF Application Source Code Path Mech/Fixtures/FixturePage Mech/Fixtures/FixtureWindow Web Page Application Source Code Path wwwroot/mech/fixture-page.js Controller/Mech/MechController.cs" + "summary": "Fixture Page The page triggers by Main Panel. The key model is Fixture and FixtureEditorDisplayeeConfig. Fixture is assigned from the Main Panel's MachiningProject..Fixture. FixtureEditorDisplayeeConfig is from . which assigned from the parent component. Layout Fixture Page Management Panel Head Line Object Management Menu Button file extension is Fixture The pointed Editor Panel is Management Tabs Panel Title Label Management Tabs Panel Geometry Tab (Apply Geometry Management Control to set the Fixture.Geom.) Anchor Tab (Apply Transformer Manage Panel to set the following tabs) Geom To Workpiece Tab Geom To Table Tab Viewer Panel Viewer ToolBar RenderingCanvas Tool Bar SetupDisplayee Options ToolBar Options of FixtureEditorDisplayee RenderingCanvas The DispEngine.Displayee is FixtureEditorDisplayee (Apply the model FixtureEditorDisplayeeConfig). Tip Add a resizable splition bar between Manage Panel and Viewer Panel. Behavior Call Fixture.ClearGeomCache() on geometry set or changed. Call RenderCanvas.DispEngine.SetViewToIsometricView() on geometry set. (Since the assumption of the shape set raise larger viewer changed than content changed, only adjust view of the setter event.) Source Code Path See this page for git repository. WPF Application Source Code Path Mech/Fixtures/FixturePage Mech/Fixtures/FixtureWindow Web Page Application Source Code Path wwwroot/mech/fixture-page.js Controller/Mech/MechController.cs" }, "brief/dev-doc/build-hinc/mech/holder/cylindroid-holder-panel.html": { "href": "brief/dev-doc/build-hinc/mech/holder/cylindroid-holder-panel.html", @@ -4887,7 +4887,7 @@ "brief/dev-doc/build-hinc/mech/workpiece-page.html": { "href": "brief/dev-doc/build-hinc/mech/workpiece-page.html", "title": "Workpiece Page | HiAPI-C# 2025", - "summary": "Workpiece Page The page triggers by Main Panel. The key model is Workpiece and WorkpieceEditorDisplayeeConfig. Which is assigned from the Main Panel's MachiningProject.Workpiece. FixtureEditorDisplayeeConfig is from . which assigned from the parent component. Layout Workpiece Page Management Panel Head Line Object Management Menu Button file extension is Workpiece The pointed Editor Panel is Management Tabs Panel Title Label Management Tabs Panel Raw Shape Tab Raw Geometry Source DropDown (Common Geometry and Runtime Geometry are EXCLUSIVE) Common Geometry Apply Geometry Management Control Runtime Geometry Apply Runtime Geometry Panel Target Shape Tab Geometry Management Control Anchor Tab Geom To Fixture Tab Transformer Manage Panel Geom To Program-Zero Tab Transformer Manage Panel Runtime Tab Initial Resolution Dropdown (powers of 2) 0.0009765625 0.001953125 0.00390625 0.0078125 0.015625 0.03125 0.0625 0.125 0.25 0.5 1 2 4 8 16 Material Tab Visible if . is true. Workpiece Material File Selector Browse Button The initial directory is the project directory. Browse Resource Button The directory is the Default Resource directory. Readonly File Path TextBox Readonly Name TextBox (Name) ToolTip: Note Cutting Parameter File Selector Browse Button The initial directory is the project directory. Browse Resource Button The directory is the Default Resource directory. Readonly File Path TextBox Readonly Name TextBox (Name) ToolTip: Note Viewer Panel Viewer ToolBar RenderingCanvas Tool Bar SetupDisplayee Options ToolBar Options of WorkpieceEditorDisplayee RenderingCanvas The DispEngine.Displayee is WorkpieceEditorDisplayee (Apply the model WorkpieceEditorDisplayeeConfig). Tip Add a resizable splition bar between Manage Panel and Viewer Panel. Default Resource The default resources of Workpiece Material and Cutting Parameter exist in Resource folder under application folder (Not project folder). Set the default folder of the File Selector to the Resource sub folder: “Resource/WorkpieceMaterial” “Resource/CuttingParameter” Behavior Call WorkpieceEditorDisplayee.ClearRawGeomCache() on Raw Shape set or changed. Call WorkpieceEditorDisplayee.ClearIdealGeomCache() on Target Shape set or changed. Call RenderCanvas.DispEngine.SetViewToIsometricView() on Raw Shape set or Target Shape set. (Since the assumption of the shape set raise larger viewer changed than content changed, only adjust view of the setter event.) Keep Portability of the Material properties. Source Code Path See this page for git repository. WPF Application Source Code Path Mech/Workpieces/WorkpiecePage Mech/Workpieces/WorkpieceWindow Web Page Application Source Code Path wwwroot/mech/workpiece-page.js Controller/Mech/MechController.cs" + "summary": "Workpiece Page The page triggers by Main Panel. The key model is Workpiece and WorkpieceEditorDisplayeeConfig. Which is assigned from the Main Panel's MachiningProject.. FixtureEditorDisplayeeConfig is from . which assigned from the parent component. Layout Workpiece Page Management Panel Head Line Object Management Menu Button file extension is Workpiece The pointed Editor Panel is Management Tabs Panel Title Label Management Tabs Panel Raw Shape Tab Raw Geometry Source DropDown (Common Geometry and Runtime Geometry are EXCLUSIVE) Common Geometry Apply Geometry Management Control Runtime Geometry Apply Runtime Geometry Panel Target Shape Tab Geometry Management Control Anchor Tab Geom To Fixture Tab Transformer Manage Panel Geom To Program-Zero Tab Transformer Manage Panel Runtime Tab Initial Resolution Dropdown (powers of 2) 0.0009765625 0.001953125 0.00390625 0.0078125 0.015625 0.03125 0.0625 0.125 0.25 0.5 1 2 4 8 16 Material Tab Visible if . is true. Workpiece Material File Selector Browse Button The initial directory is the project directory. Browse Resource Button The directory is the Default Resource directory. Readonly File Path TextBox Readonly Name TextBox (Name) ToolTip: Note Cutting Parameter File Selector Browse Button The initial directory is the project directory. Browse Resource Button The directory is the Default Resource directory. Readonly File Path TextBox Readonly Name TextBox (Name) ToolTip: Note Viewer Panel Viewer ToolBar RenderingCanvas Tool Bar SetupDisplayee Options ToolBar Options of WorkpieceEditorDisplayee RenderingCanvas The DispEngine.Displayee is WorkpieceEditorDisplayee (Apply the model WorkpieceEditorDisplayeeConfig). Tip Add a resizable splition bar between Manage Panel and Viewer Panel. Default Resource The default resources of Workpiece Material and Cutting Parameter exist in Resource folder under application folder (Not project folder). Set the default folder of the File Selector to the Resource sub folder: “Resource/WorkpieceMaterial” “Resource/CuttingParameter” Behavior Call WorkpieceEditorDisplayee.ClearRawGeomCache() on Raw Shape set or changed. Call WorkpieceEditorDisplayee.ClearIdealGeomCache() on Target Shape set or changed. Call RenderCanvas.DispEngine.SetViewToIsometricView() on Raw Shape set or Target Shape set. (Since the assumption of the shape set raise larger viewer changed than content changed, only adjust view of the setter event.) Keep Portability of the Material properties. Source Code Path See this page for git repository. WPF Application Source Code Path Mech/Workpieces/WorkpiecePage Mech/Workpieces/WorkpieceWindow Web Page Application Source Code Path wwwroot/mech/workpiece-page.js Controller/Mech/MechController.cs" }, "brief/dev-doc/build-hinc/message-section-on-main-panel.html": { "href": "brief/dev-doc/build-hinc/message-section-on-main-panel.html", @@ -4952,12 +4952,12 @@ "brief/dev-doc/build-hinc/player/player-tool-bar.html": { "href": "brief/dev-doc/build-hinc/player/player-tool-bar.html", "title": "Player Tool Bar | HiAPI-C# 2025", - "summary": "Player Tool Bar Layout Player Tool Bar Status Text Field Start Button Pause Button Run-One-Line Button Run-One-Step Button Stop Button Reset Button Behavior of Player Tool Bar See the example code to: complete the behavior of the buttons and Status Text Field. The rapidly used buttons should has hotkey. At least the following buttons: Run One Line Button Run One Step Button Start/Continue Pause Both webservice and win-desktop applications use LocalProjectService events for monitoring PacePlayer status changes. In webservice applications, the PlayerStatusService subscribes to these LocalProjectService events and broadcasts status changes via PlayerStatusHub using SignalR for real-time communication. Win-desktop applications can directly subscribe to LocalProjectService events for status updates. Alter the background color of the Status Text Field if the status changed. Warning style color Running Secondary style color Paused No Project Success style color Finished Ready The action of Reset Button should be async for user experience. Tip Use icon instead of text to the tool bar button. Run One Line Button and Run One Step Button use the same icon, use the different color to resolve them. Run One Line Button > default color with green seasoned Run One Step Button > default color with blue seasoned The other button use the default color is enough. Source Code Path See this page for git repository. WPF Application Source Code Path Play/PlayerToolBar Web Page Application Source Code Path wwwroot/player/player-tool-bar.js Players/PlayerController.cs Players/PlayerStatusHub.cs Players/PlayerStatusService.cs SignalR Implementation (Webapi Only) PlayerStatusHub provides real-time player status updates, with methods GetPlayerStatus() and event PlayerStatusUpdated. PlayerStatusService monitors LocalProjectService events (PacePlayer_IsRunningChangedEvent, PacePlayer_IsLockedChangedEvent, PacePlayer_IsFinishedChangedEvent, PacePlayer_ResetedEvent) and broadcasts changes via SignalR. The JavaScript component connects to /playerStatusHub and listens for status updates. API endpoints include /api/player/start, /api/player/pause, /api/player/resume, /api/player/run-line, /api/player/run-step, /api/player/stop, and /api/player/reset. Razor Page Source Code @using Hi.Common.PathUtils; @using Hi.HiNcKits; @using Hi.MachiningProcs @using Hi.MillingProcs; @using Hi.Numerical.FilePlayers; @inject HiNcHost hiNcHost @{ MachiningProject machiningProject = hiNcHost.MachiningProject; bool disabledByMachiningProject = machiningProject == null; }
    @if (machiningProject == null) { } else if (!machiningProject.PacePlayer.IsLocked) { } else { }
    using Hi.Common; using Hi.MachiningProcs; using Hi.Parallels; using Microsoft.AspNetCore.Components; namespace HiNcRcl.Areas.Player { public partial class PlayerButtonGroup : IAsyncDisposable { [Parameter] public string Tid { set; get; } = System.Guid.NewGuid().ToString(); StringLocalizer Loc { get; } = new StringLocalizer(typeof(PlayerDiv)); SemaphoreSlim DisposeSemaphore { get; } = new SemaphoreSlim(1); MachiningProject MachiningProject => hiNcHost.MachiningProject; bool disposedValue = false; /// protected override async Task OnAfterRenderAsync(bool firstRender) { base.OnAfterRender(firstRender); if (firstRender) { using var _ = await DisposeSemaphore.EmbraceAsync(); if (disposedValue) return; var machiningProject = MachiningProject; if (machiningProject != null) { machiningProject.PacePlayer.IsLockedChangedEvent += EnumerablePlayer_IsLockedEventHandler; machiningProject.PacePlayer.IsRunningChangedEvent += EnumerablePlayer_IsLockedEventHandler; machiningProject.PacePlayer.IsFinishedChangedEvent += EnumerablePlayer_IsLockedEventHandler; } } } /// public async ValueTask DisposeAsync() { using var _ = await DisposeSemaphore.EmbraceAsync(); var machiningProject = MachiningProject; if (machiningProject != null) { machiningProject.PacePlayer.IsLockedChangedEvent -= EnumerablePlayer_IsLockedEventHandler; machiningProject.PacePlayer.IsRunningChangedEvent -= EnumerablePlayer_IsLockedEventHandler; machiningProject.PacePlayer.IsFinishedChangedEvent -= EnumerablePlayer_IsLockedEventHandler; } disposedValue = true; await ValueTask.CompletedTask; } private void EnumerablePlayer_IsLockedEventHandler(bool obj) { InvokeAsync(StateHasChanged).ConfigureAwait(false); } public async Task StartOrContinue() { await Task.Run(() => { if (!MachiningProject.PacePlayer.IsLocked) { MachiningProject.PacePlayer.Start(); } else if (!MachiningProject.PacePlayer.IsRunning && !MachiningProject.PacePlayer.IsFinished) { MachiningProject.PacePlayer.Resume(); } }).ShowIfCatched(this); } public async Task Pause() { await Task.Run(() => { MachiningProject?.PacePlayer.Pause(); }).ShowIfCatched(this); } public async Task RunToLineEnd() { await Task.Run(() => { MachiningProject?.NcRunner.RunToLineEnd(); }).ShowIfCatched(this); } public async Task RunToNextPace() { await Task.Run(() => { MachiningProject?.PacePlayer.RunToNextPace(); }).ShowIfCatched(this); } public async Task Break() { await Task.Run(() => { MachiningProject?.PacePlayer.Terminate(); }).ShowIfCatched(this); } public async Task Reset() { await Task.Run(() => { MachiningProject?.PacePlayer.Reset(); }).ShowIfCatched(this); } } }" + "summary": "Player Tool Bar Layout Player Tool Bar Status Text Field Start Button Pause Button Run-One-Line Button Run-One-Step Button Stop Button Reset Button Behavior of Player Tool Bar See the example code to: complete the behavior of the buttons and Status Text Field. The rapidly used buttons should has hotkey. At least the following buttons: Run One Line Button Run One Step Button Start/Continue Pause Both webservice and win-desktop applications use LocalProjectService events for monitoring status changes. In webservice applications, the PlayerStatusService subscribes to these LocalProjectService events and broadcasts status changes via PlayerStatusHub using SignalR for real-time communication. Win-desktop applications can directly subscribe to LocalProjectService events for status updates. Alter the background color of the Status Text Field if the status changed. Warning style color Running Secondary style color Paused No Project Success style color Finished Ready The action of Reset Button should be async for user experience. Tip Use icon instead of text to the tool bar button. Run One Line Button and Run One Step Button use the same icon, use the different color to resolve them. Run One Line Button > default color with green seasoned Run One Step Button > default color with blue seasoned The other button use the default color is enough. Source Code Path See this page for git repository. WPF Application Source Code Path Play/PlayerToolBar Web Page Application Source Code Path wwwroot/player/player-tool-bar.js Players/PlayerController.cs Players/PlayerStatusHub.cs Players/PlayerStatusService.cs SignalR Implementation (Webapi Only) PlayerStatusHub provides real-time player status updates, with methods GetPlayerStatus() and event PlayerStatusUpdated. PlayerStatusService monitors LocalProjectService events (, , , ) and broadcasts changes via SignalR. The JavaScript component connects to /playerStatusHub and listens for status updates. API endpoints include /api/player/start, /api/player/pause, /api/player/resume, /api/player/run-line, /api/player/run-step, /api/player/stop, and /api/player/reset. Razor Page Source Code @using Hi.Common.PathUtils; @using Hi.HiNcKits; @using Hi.MachiningProcs @using Hi.MillingProcs; @using Hi.Numerical.FilePlayers; @inject HiNcHost hiNcHost @{ MachiningProject machiningProject = hiNcHost.MachiningProject; var localProjectService = hiNcHost.LocalProjectService; bool disabledByMachiningProject = machiningProject == null; }
    @if (machiningProject == null) { } else if (!localProjectService.PacePlayer.IsLocked) { } else { }
    using Hi.Common; using Hi.MachiningProcs; using Hi.Parallels; using Microsoft.AspNetCore.Components; namespace HiNcRcl.Areas.Player { public partial class PlayerButtonGroup : IAsyncDisposable { [Parameter] public string Tid { set; get; } = System.Guid.NewGuid().ToString(); StringLocalizer Loc { get; } = new StringLocalizer(typeof(PlayerDiv)); SemaphoreSlim DisposeSemaphore { get; } = new SemaphoreSlim(1); MachiningProject MachiningProject => hiNcHost.MachiningProject; LocalProjectService LocalProjectService => hiNcHost.LocalProjectService; bool disposedValue = false; /// protected override async Task OnAfterRenderAsync(bool firstRender) { base.OnAfterRender(firstRender); if (firstRender) { using var _ = await DisposeSemaphore.EmbraceAsync(); if (disposedValue) return; var machiningProject = MachiningProject; if (machiningProject != null) { LocalProjectService.PacePlayer.IsLockedChangedEvent += EnumerablePlayer_IsLockedEventHandler; LocalProjectService.PacePlayer.IsRunningChangedEvent += EnumerablePlayer_IsLockedEventHandler; LocalProjectService.PacePlayer.IsFinishedChangedEvent += EnumerablePlayer_IsLockedEventHandler; } } } /// public async ValueTask DisposeAsync() { using var _ = await DisposeSemaphore.EmbraceAsync(); var machiningProject = MachiningProject; if (machiningProject != null) { LocalProjectService.PacePlayer.IsLockedChangedEvent -= EnumerablePlayer_IsLockedEventHandler; LocalProjectService.PacePlayer.IsRunningChangedEvent -= EnumerablePlayer_IsLockedEventHandler; LocalProjectService.PacePlayer.IsFinishedChangedEvent -= EnumerablePlayer_IsLockedEventHandler; } disposedValue = true; await ValueTask.CompletedTask; } private void EnumerablePlayer_IsLockedEventHandler(bool obj) { InvokeAsync(StateHasChanged).ConfigureAwait(false); } public async Task StartOrContinue() { await Task.Run(() => { var pacePlayer = LocalProjectService.PacePlayer; if (!pacePlayer.IsLocked) { pacePlayer.Start(); } else if (!pacePlayer.IsRunning && !pacePlayer.IsFinished) { pacePlayer.Resume(); } }).ShowIfCatched(this); } public async Task Pause() { await Task.Run(() => { LocalProjectService.PacePlayer.Pause(); }).ShowIfCatched(this); } public async Task RunToLineEnd() { await Task.Run(() => { LocalProjectService.NcRunner.RunToLineEnd(); }).ShowIfCatched(this); } public async Task RunToNextPace() { await Task.Run(() => { LocalProjectService.PacePlayer.RunToNextPace(); }).ShowIfCatched(this); } public async Task Break() { await Task.Run(() => { LocalProjectService.PacePlayer.Terminate(); }).ShowIfCatched(this); } public async Task Reset() { await Task.Run(() => { LocalProjectService.PacePlayer.Reset(); }).ShowIfCatched(this); } } }" }, "brief/dev-doc/build-hinc/player/selected-step-info-panel.html": { "href": "brief/dev-doc/build-hinc/player/selected-step-info-panel.html", "title": "Selected-Step Info Panel | HiAPI-C# 2025", - "summary": "Selected-Step Info Panel The panel locates on the Player Panel. The model is MachiningStep and . The MachiningStep is assigned by ClStrip.PosSelected. Show step infomation from .. The resx of MachiningStep contains the translation of PresentAttribute.Name, apply the translation to the GUI. If the translation not existed, use the original value. See Also Step Present Preference Page. Sample Code Refer the code to show step infomation. internal static void ShowStepPresent( UserService userEnv, MachiningStep machiningStep) { foreach (var entry in userEnv.DisplayedStepPresentAccessList) { var present = entry.Value.Present; var valueText = string.Format(\"{0:\" + present.DataFormatString + \"}\", entry.Value.GetValueFunc.Invoke(machiningStep)); Console.WriteLine($\"{present.ShortName}: {valueText} {present.TailUnitString} ({present.Name} [{entry.Key}])\"); } } SignalR Implementation (Webapi Only) SelectedStepInfoHub provides real-time step updates with method GetSelectedStepInfo() and event SelectedStepInfoUpdated. SelectedStepInfoService monitors ClStrip_PosSelected and ClStrip_MachiningStepSelected events and broadcasts updates. The JavaScript component connects to /selectedStepInfoHub to receive step change notifications and update the UI accordingly. Source Code Path See this page for git repository. WPF Application Source Code Path Play/SelectedStepInfoPanel Web Page Application Source Code Path wwwroot/player/selected-step-info-panel.js (Vue component) wwwroot/player/selected-step-info-panel.css (Styles) Players/PlayerController.cs (REST API - GetSelectedStepInfo endpoint) Players/SelectedStepInfoService.cs (Business logic) Players/SelectedStepInfoHub.cs (SignalR Hub for real-time updates)" + "summary": "Selected-Step Info Panel The panel locates on the Player Panel. The model is MachiningStep and . The MachiningStep is assigned by .PosSelected. Show step infomation from .. The resx of MachiningStep contains the translation of PresentAttribute.Name, apply the translation to the GUI. If the translation not existed, use the original value. See Also Step Present Preference Page. Sample Code Refer the code to show step infomation. internal static void ShowStepPresent( UserService userEnv, MachiningStep machiningStep) { foreach (var entry in userEnv.DisplayedStepPresentAccessList) { var present = entry.Value.Present; var valueText = string.Format(\"{0:\" + present.DataFormatString + \"}\", entry.Value.GetValueFunc.Invoke(machiningStep)); Console.WriteLine($\"{present.ShortName}: {valueText} {present.TailUnitString} ({present.Name} [{entry.Key}])\"); } } SignalR Implementation (Webapi Only) SelectedStepInfoHub provides real-time step updates with method GetSelectedStepInfo() and event SelectedStepInfoUpdated. SelectedStepInfoService monitors and events and broadcasts updates. The JavaScript component connects to /selectedStepInfoHub to receive step change notifications and update the UI accordingly. Source Code Path See this page for git repository. WPF Application Source Code Path Play/SelectedStepInfoPanel Web Page Application Source Code Path wwwroot/player/selected-step-info-panel.js (Vue component) wwwroot/player/selected-step-info-panel.css (Styles) Players/PlayerController.cs (REST API - GetSelectedStepInfo endpoint) Players/SelectedStepInfoService.cs (Business logic) Players/SelectedStepInfoHub.cs (SignalR Hub for real-time updates)" }, "brief/dev-doc/build-hinc/preference/graphic-cache-dropdown.html": { "href": "brief/dev-doc/build-hinc/preference/graphic-cache-dropdown.html", @@ -4977,7 +4977,7 @@ "brief/dev-doc/build-hinc/preference/step-present-preference-page.html": { "href": "brief/dev-doc/build-hinc/preference/step-present-preference-page.html", "title": "Step Present Preference Page | HiAPI-C# 2025", - "summary": "Step Present Preference Page The model is from its parent component. The . is rapidly used. The model of Candidate Keys Panel is . The model of Displayed Keys Panel is . Layout Step Present Preference Page (or window) Candidate Keys Panel Category A Panel Key a ToggleButton Key b ToggleButton ... Category B Panel ... ... Category Other Panel Displayed Keys Panel Key 1 Key 2 ... The categories are not defined for programming logic but only for user experience. So decide and define the categories in the GUI here only. Since the Keys are not all come from the properties of MachiningStep, a category panel (Category Other Panel) for the uncategoried keys is required. The keys in the Displayed Keys Panel is in sequence of . User tune the sequence and remove key by the Displayed Keys Panel. User add and remove the key from the ToggleButtons in Candidate Keys Panel. Those UI control items are required. To both Candidate Keys Panel and Displayed Keys Panel: Apply PresentAttribute.Name as Key label by . Apply the key to the button tooltip. The resx of MachiningStep contains the translation of PresentAttribute.Name, apply the translation to the GUI. If the translation not existed, use the original value. Categories Refer the code to design Categories: @using Hi.Common @using Hi.Geom @using Hi.Mech.Topo @{ string pCalss = \"d-flex flex-wrap gap-2\"; string cardTextClass = $\"card-text {pCalss}\"; }
    @Loc[\"File\"] / @Loc[\"Command\"] / @Loc[\"Flag\"] / @Loc[\"Time\"] / @Loc[\"System\"]
    @Loc[\"F.L.No.\"] @MillingStep?.FileNo : @MillingStep?.LineNo
    @Loc[\"File\"] @MillingStep?.FilePath
    @Loc[\"Accumulated Time\"] @(MillingStep?.AccumulatedTime.ToString(\"G\"))
    @Loc[\"Line Text\"] @MillingStep?.LineText
    @Loc[\"Flags\"] @MillingStep?.FlagsText
    @Loc[\"Step Index\"] @MillingStep?.StepIndex
    @Loc[\"Tool\"] / @Loc[\"Feedrate\"] / @Loc[\"Spindle Speed\"]
    @Loc[\"T\"] @MillingStep?.ToolId
    @Loc[\"S\"] (rpm) @(MillingStep?.SpindleSpeed_rpm.ToString(\"G5\"))
    @Loc[\"F\"] (mm/min) @(MillingStep?.Feedrate_mmdmin.ToString(\"G5\"))
    @Loc[\"Feed per Tooth\"] (mm) @(MillingStep?.FeedPerTooth_mm.ToString(\"G5\"))
    @Loc[\"Feed per Cycle\"] (mm) @(MillingStep?.FeedPerCycle_mm.ToString(\"G5\"))
    @Loc[\"Tooth Arc Duration\"] (s) @(MillingStep?.ToothArcDuration_s.ToString(\"G4\"))
    @Loc[\"Spindle Cycle Period\"] (s) @(MillingStep?.SpindleCyclePeriod_s.ToString(\"G4\"))
    @Loc[\"Cutting Speed\"] (mm/s) @(MillingStep?.CuttingSpeed_mmds?.ToString(\"G4\"))
    @Loc[\"Coordinate\"] / @Loc[\"Move\"]

    @{ var mcCodes = HostMachiningProject?.MachiningEquipment?.GetMachiningChain()?.McCodes; if (mcCodes != null) { var mcTransformers = HostMachiningProject ?.MachiningEquipment?.GetMachiningChain()?.McTransformers; for (int i = 0; i < mcCodes.Length; i++) { if (mcTransformers[i] == null) continue; if (mcTransformers[i] is DynamicRotation) {

    MC.@mcCodes[i] (deg) @MillingStep?.GetMcValue(i)?.SelfInvoke(v => MathUtil.ToDeg(v)).ToString(\"F5\")
    } else {
    MC.@mcCodes[i] (mm) @MillingStep?.GetMcValue(i)?.ToString(\"F5\")
    } } } }

    CL.XYZ (mm) @(MillingStep?.Cl?.Point?.ToString(\"F5\"))
    CL.IJK @(MillingStep?.Cl?.Normal?.ToString(\"F5\"))
    @{ var moveDirection = MillingStep?.MoveOnProgramCoordinate.GetNormalized();
    @Loc[\"Move Direction\"] [W] @(moveDirection?.ToString(\"F4\"))
    }
    @Loc[\"Cutting Geometry\"] / @Loc[\"Chip\"] / @Loc[\"Bias\"] / @Loc[\"Roughness\"]
    @Loc[\"Is Touched\"] @Loc[(MillingStep?.IsTouched)?.ToString()]
    ae (mm) @(MillingStep?.CuttingWidth_mm.ToString(\"G3\"))
    ap (mm) @(MillingStep?.CuttingDepth_mm.ToString(\"G3\"))
    MRR (mm3/s) @(MillingStep?.Mrr_mm3ds.ToString(\"G3\"))
    @Loc[\"Chip Thickness\"] (um) @(MillingStep?.ChipThickness_um?.ToString(\"G3\"))
    @Loc[\"Chip Volume\"] (mm3) @(MillingStep?.ChipVolume_mm3?.ToString(\"G3\"))
    @Loc[\"Chip Mass\"] (mg) @(MillingStep?.ChipMass_mg?.ToString(\"G3\"))
    @Loc[\"Program Side Cusp\"] (um) @(MillingStep?.ProgramSideCusp_um.ToString(\"G4\"))
    @Loc[\"Re-Cut Depth\"] (um) @(MillingStep?.ReCutDepth_um.ToString(\"G4\"))
    @Loc[\"Delta Tip Deflection\"] [TR] (um) @(MillingStep?.DeltaTipDeflectionOnToolRunningCoordinate_um?.ToString(\"G3\"))
    @Loc[\"Max Tip Deflection\"] [TR] (um) @(MillingStep?.MaxTipDeflectionOnToolRunningCoordinate_um?.ToString(\"G3\"))
    @Loc[\"Mechanics\"] / @Loc[\"Power\"] / @Loc[\"Energy\"]
    @Loc[\"Max Force\"] (N) @MillingStep?.MaxAbsForce_N?.ToString(\"G4\")
    @Loc[\"Max Force\"] [TR] (N) @MillingStep?.MaxForceOnToolRunningCoordinate_N?.ToString(\"G4\")
    @Loc[\"Avg Moment about Sensor\"] [SR] (Nm) @MillingStep?.AvgMomentAboutSensor_Nm?.ToString(\"G4\")
    @Loc[\"Avg Abs Moment about Sensor\"] [SR] (Nm) @MillingStep?.AvgAbsMomentAboutSensorVec3d_Nm?.ToString(\"G4\")
    @Loc[\"Thermal Stress\"] (MPa) @MillingStep?.ThermalStress_MPa?.ToString(\"G4\")
    @Loc[\"Workpiece Plastic Depth\"] (um) @MillingStep?.WorkpiecePlasticDepth_um.ToString(\"G4\")
    @Loc[\"Spindle Input Power\"] (W) @MillingStep?.SpindleInputPower_W.ToString(\"G4\")
    @Loc[\"Spindle Output Power\"] (W) @MillingStep?.SpindleOutputPower_W.ToString(\"G4\")
    @Loc[\"Accumulated Spindle Energy Consumption\"] (kWh) @MillingStep?.AccumulatedSpindleEnergyConsumption_kWh.ToString(\"G6\")
    @Loc[\"Temperature\"] / @Loc[\"Wear\"]
    @Loc[\"Chip Temperature\"] (oC) @MillingStep?.ChipTemperature_C?.ToString(\"G4\")
    @Loc[\"Cutter Dermis Temperature\"] (oC) @MillingStep?.CutterDermisTemperature_C?.ToString(\"G4\")
    @Loc[\"Cutter Body Temperature\"] (oC) @MillingStep?.CutterBodyTemperature_C?.ToString(\"G4\")
    @Loc[\"Workpiece Dermis Temperature\"] (oC) @MillingStep?.WorkpieceDermisTemperature_C?.ToString(\"G4\")
    @Loc[\"Instant Crater Wear\"] (um) @MillingStep?.InstantCraterWear_um?.ToString(\"G3\")
    @Loc[\"Accumulated Crater Wear\"] (um) @MillingStep?.AccumulatedCraterWear_um.ToString(\"G4\")
    @Loc[\"Accumulated Flank Wear Depth\"] (um) @MillingStep?.AccumulatedFlankWearDepth_um.ToString(\"G4\")
    VB (um) @MillingStep?.AccumulatedFlankWearWidth_um.ToString(\"G4\")
    @Loc[\"Custom\"]
    @{ var flexDictionary=MillingStep?.FlexDictionary; if (flexDictionary != null) { foreach(var entry in flexDictionary) { if(HostMachiningProject?.StepPropertyAccessDictionary.TryGetValue( entry.Key, out var stepPropertyAccess)==true) {
    @(stepPropertyAccess.PresentAttribute?.ShortName) @(stepPropertyAccess.GetValueText(MillingStep))
    } else {
    @(entry.Key) @(entry.Value)
    } } } }
    Refer the code to apply PresentAttribute. internal static void ShowStepPresent( UserService userEnv, MachiningStep machiningStep) { foreach (var entry in userEnv.DisplayedStepPresentAccessList) { var present = entry.Value.Present; var valueText = string.Format(\"{0:\" + present.DataFormatString + \"}\", entry.Value.GetValueFunc.Invoke(machiningStep)); Console.WriteLine($\"{present.ShortName}: {valueText} {present.TailUnitString} ({present.Name} [{entry.Key}])\"); } } Source Code Path See this page for git repository. WPF Application Source Code Path Preference/StepPresentPreferenceWindow Web Page Application Source Code Path wwwroot/preference/step-present-preference.js Environments/PreferenceController.cs" + "summary": "Step Present Preference Page The model is from its parent component. The . is rapidly used. The model of Candidate Keys Panel is . The model of Displayed Keys Panel is . Layout Step Present Preference Page (or window) Candidate Keys Panel Category A Panel Key a ToggleButton Key b ToggleButton ... Category B Panel ... ... Category Other Panel Displayed Keys Panel Key 1 Key 2 ... The categories are not defined for programming logic but only for user experience. So decide and define the categories in the GUI here only. Since the Keys are not all come from the properties of MachiningStep, a category panel (Category Other Panel) for the uncategoried keys is required. The keys in the Displayed Keys Panel is in sequence of . User tune the sequence and remove key by the Displayed Keys Panel. User add and remove the key from the ToggleButtons in Candidate Keys Panel. Those UI control items are required. To both Candidate Keys Panel and Displayed Keys Panel: Apply PresentAttribute.Name as Key label by . Apply the key to the button tooltip. The resx of MachiningStep contains the translation of PresentAttribute.Name, apply the translation to the GUI. If the translation not existed, use the original value. Categories Refer the code to design Categories: @using Hi.Common @using Hi.Geom @using Hi.Mech.Topo @{ string pCalss = \"d-flex flex-wrap gap-2\"; string cardTextClass = $\"card-text {pCalss}\"; }
    @Loc[\"File\"] / @Loc[\"Command\"] / @Loc[\"Flag\"] / @Loc[\"Time\"] / @Loc[\"System\"]
    @Loc[\"F.L.No.\"] @MillingStep?.FileNo : @MillingStep?.LineNo
    @Loc[\"File\"] @MillingStep?.FilePath
    @Loc[\"Accumulated Time\"] @(MillingStep?.AccumulatedTime.ToString(\"G\"))
    @Loc[\"Line Text\"] @MillingStep?.LineText
    @Loc[\"Flags\"] @MillingStep?.FlagsText
    @Loc[\"Step Index\"] @MillingStep?.StepIndex
    @Loc[\"Tool\"] / @Loc[\"Feedrate\"] / @Loc[\"Spindle Speed\"]
    @Loc[\"T\"] @MillingStep?.ToolId
    @Loc[\"S\"] (rpm) @(MillingStep?.SpindleSpeed_rpm.ToString(\"G5\"))
    @Loc[\"F\"] (mm/min) @(MillingStep?.Feedrate_mmdmin.ToString(\"G5\"))
    @Loc[\"Feed per Tooth\"] (mm) @(MillingStep?.FeedPerTooth_mm.ToString(\"G5\"))
    @Loc[\"Feed per Cycle\"] (mm) @(MillingStep?.FeedPerCycle_mm.ToString(\"G5\"))
    @Loc[\"Tooth Arc Duration\"] (s) @(MillingStep?.ToothArcDuration_s.ToString(\"G4\"))
    @Loc[\"Spindle Cycle Period\"] (s) @(MillingStep?.SpindleCyclePeriod_s.ToString(\"G4\"))
    @Loc[\"Cutting Speed\"] (mm/s) @(MillingStep?.CuttingSpeed_mmds?.ToString(\"G4\"))
    @Loc[\"Coordinate\"] / @Loc[\"Move\"]

    @{ var mcCodes = LocalProjectService.MachiningEquipment?.GetMachiningChain()?.McCodes; if (mcCodes != null) { var mcTransformers = LocalProjectService ?.MachiningEquipment?.GetMachiningChain()?.McTransformers; for (int i = 0; i < mcCodes.Length; i++) { if (mcTransformers[i] == null) continue; if (mcTransformers[i] is DynamicRotation) {

    MC.@mcCodes[i] (deg) @MillingStep?.GetMcValue(i)?.SelfInvoke(v => MathUtil.ToDeg(v)).ToString(\"F5\")
    } else {
    MC.@mcCodes[i] (mm) @MillingStep?.GetMcValue(i)?.ToString(\"F5\")
    } } } }

    CL.XYZ (mm) @(MillingStep?.Cl?.Point?.ToString(\"F5\"))
    CL.IJK @(MillingStep?.Cl?.Normal?.ToString(\"F5\"))
    @{ var moveDirection = MillingStep?.MoveOnProgramCoordinate.GetNormalized();
    @Loc[\"Move Direction\"] [W] @(moveDirection?.ToString(\"F4\"))
    }
    @Loc[\"Cutting Geometry\"] / @Loc[\"Chip\"] / @Loc[\"Bias\"] / @Loc[\"Roughness\"]
    @Loc[\"Is Touched\"] @Loc[(MillingStep?.IsTouched)?.ToString()]
    ae (mm) @(MillingStep?.CuttingWidth_mm.ToString(\"G3\"))
    ap (mm) @(MillingStep?.CuttingDepth_mm.ToString(\"G3\"))
    MRR (mm3/s) @(MillingStep?.Mrr_mm3ds.ToString(\"G3\"))
    @Loc[\"Chip Thickness\"] (um) @(MillingStep?.ChipThickness_um?.ToString(\"G3\"))
    @Loc[\"Chip Volume\"] (mm3) @(MillingStep?.ChipVolume_mm3?.ToString(\"G3\"))
    @Loc[\"Chip Mass\"] (mg) @(MillingStep?.ChipMass_mg?.ToString(\"G3\"))
    @Loc[\"Program Side Cusp\"] (um) @(MillingStep?.ProgramSideCusp_um.ToString(\"G4\"))
    @Loc[\"Re-Cut Depth\"] (um) @(MillingStep?.ReCutDepth_um.ToString(\"G4\"))
    @Loc[\"Delta Tip Deflection\"] [TR] (um) @(MillingStep?.DeltaTipDeflectionOnToolRunningCoordinate_um?.ToString(\"G3\"))
    @Loc[\"Max Tip Deflection\"] [TR] (um) @(MillingStep?.MaxTipDeflectionOnToolRunningCoordinate_um?.ToString(\"G3\"))
    @Loc[\"Mechanics\"] / @Loc[\"Power\"] / @Loc[\"Energy\"]
    @Loc[\"Max Force\"] (N) @MillingStep?.MaxAbsForce_N?.ToString(\"G4\")
    @Loc[\"Max Force\"] [TR] (N) @MillingStep?.MaxForceOnToolRunningCoordinate_N?.ToString(\"G4\")
    @Loc[\"Avg Moment about Sensor\"] [SR] (Nm) @MillingStep?.AvgMomentAboutSensor_Nm?.ToString(\"G4\")
    @Loc[\"Avg Abs Moment about Sensor\"] [SR] (Nm) @MillingStep?.AvgAbsMomentAboutSensorVec3d_Nm?.ToString(\"G4\")
    @Loc[\"Thermal Stress\"] (MPa) @MillingStep?.ThermalStress_MPa?.ToString(\"G4\")
    @Loc[\"Workpiece Plastic Depth\"] (um) @MillingStep?.WorkpiecePlasticDepth_um.ToString(\"G4\")
    @Loc[\"Spindle Input Power\"] (W) @MillingStep?.SpindleInputPower_W.ToString(\"G4\")
    @Loc[\"Spindle Output Power\"] (W) @MillingStep?.SpindleOutputPower_W.ToString(\"G4\")
    @Loc[\"Accumulated Spindle Energy Consumption\"] (kWh) @MillingStep?.AccumulatedSpindleEnergyConsumption_kWh.ToString(\"G6\")
    @Loc[\"Temperature\"] / @Loc[\"Wear\"]
    @Loc[\"Chip Temperature\"] (oC) @MillingStep?.ChipTemperature_C?.ToString(\"G4\")
    @Loc[\"Cutter Dermis Temperature\"] (oC) @MillingStep?.CutterDermisTemperature_C?.ToString(\"G4\")
    @Loc[\"Cutter Body Temperature\"] (oC) @MillingStep?.CutterBodyTemperature_C?.ToString(\"G4\")
    @Loc[\"Workpiece Dermis Temperature\"] (oC) @MillingStep?.WorkpieceDermisTemperature_C?.ToString(\"G4\")
    @Loc[\"Instant Crater Wear\"] (um) @MillingStep?.InstantCraterWear_um?.ToString(\"G3\")
    @Loc[\"Accumulated Crater Wear\"] (um) @MillingStep?.AccumulatedCraterWear_um.ToString(\"G4\")
    @Loc[\"Accumulated Flank Wear Depth\"] (um) @MillingStep?.AccumulatedFlankWearDepth_um.ToString(\"G4\")
    VB (um) @MillingStep?.AccumulatedFlankWearWidth_um.ToString(\"G4\")
    @Loc[\"Custom\"]
    @{ var flexDictionary=MillingStep?.FlexDictionary; if (flexDictionary != null) { foreach(var entry in flexDictionary) { if(LocalProjectService.StepPropertyAccessDictionary.TryGetValue( entry.Key, out var stepPropertyAccess)==true) {
    @(stepPropertyAccess.PresentAttribute?.ShortName) @(stepPropertyAccess.GetValueText(MillingStep))
    } else {
    @(entry.Key) @(entry.Value)
    } } } }
    Refer the code to apply PresentAttribute. internal static void ShowStepPresent( UserService userEnv, MachiningStep machiningStep) { foreach (var entry in userEnv.DisplayedStepPresentAccessList) { var present = entry.Value.Present; var valueText = string.Format(\"{0:\" + present.DataFormatString + \"}\", entry.Value.GetValueFunc.Invoke(machiningStep)); Console.WriteLine($\"{present.ShortName}: {valueText} {present.TailUnitString} ({present.Name} [{entry.Key}])\"); } } Source Code Path See this page for git repository. WPF Application Source Code Path Preference/StepPresentPreferenceWindow Web Page Application Source Code Path wwwroot/preference/step-present-preference.js Environments/PreferenceController.cs" }, "brief/dev-doc/build-hinc/renderingcanvas-tool-bar.html": { "href": "brief/dev-doc/build-hinc/renderingcanvas-tool-bar.html", @@ -4987,7 +4987,7 @@ "brief/dev-doc/build-hinc/session-message-panel/index.html": { "href": "brief/dev-doc/build-hinc/session-message-panel/index.html", "title": "Session Message Panel | HiAPI-C# 2025", - "summary": "Session Message Panel The model is MachiningProject.SessionMessageHost. MachiningProject is assigned from the Player Panel. Layout Top Message Filter ToolBar Message Type Filter SubMenu NC CheckBox Progress CheckBox Error CheckBox Message Text Filter Input Message Text Filter Input Text Area Message Text Filter Reset Button Export Button Central Message Table Central Message Table The model of Central Message Table is SessionMessageHost.MessageCollection. Only take last 1000 filtered elements in the MessageCollection by GetFliteredList(FilterFlag, string) to show for user experience. Find the usage example in the code: internal static void DemoUseSessionMessageHost(MachiningProject project) { SessionMessageHost sessionMessageHost = project.SessionMessageHost; SessionMessageHost.FilterFlag filterFlags = SessionMessageHost.FilterFlag.NC | SessionMessageHost.FilterFlag.Progress | SessionMessageHost.FilterFlag.Error; string filterText = null; var filteredSessionMessageList = sessionMessageHost .GetFliteredList(filterFlags, filterText); foreach (var sessionMessage in filteredSessionMessageList) { //M.I.: Message Index. Console.Write($\"M.I.: {sessionMessage.Index}; Role: {sessionMessage.MessageRoleText}\"); // For SessionMessageHost.FilterFlag.NC var nc = sessionMessage.DirectInstantSourceCommand; if (nc != null) Console.Write($\"Message/NC: {nc.Line}; File: {nc.FilePath}; LineNo: {nc.GetLineNo()}; \"); // For SessionMessageHost.FilterFlag.Progress or Error. var multiTagMessage = sessionMessage.MultiTagMessage; if (multiTagMessage != null) Console.WriteLine($\"Message/NC: {multiTagMessage.Message}\"); var exception = sessionMessage.Exception; if (exception != null) Console.WriteLine($\"Message/NC: {exception.Message}\"); } File.WriteAllLines(\"output-session-messages.txt\", filteredSessionMessageList.Select(m => $\"Msg[{m.Index}][{m.MessageRoleText}]: {m}\")); } In the table, show the columns: Role, NC/Message. Add update table event to CollectionItemChanged. The updating process has to be called by Loose Manner for user experience. Tip On window desktop application (WPF), consider use textarea instead of datagrid to MessageTable for better performance. Use padding to show the different columns. And use the font in the textarea that with consistent width. Note The message display should be real-time. Behavior of Export Button Export ALL filtered elements in the MessageCollection by GetFliteredList(FilterFlag, string). SignalR Implementation (Webapi Only) SessionMessageHub provides real-time message updates with method GetSessionMessages(string filterFlags, string filterText, int limit) and event SessionMessagesUpdated. SessionMessageService monitors SessionMessageHost_CollectionItemChanged and broadcasts updates. The service uses LooseRunner for non-blocking async operations. The JavaScript component connects to /sessionMessageHub to receive real-time message updates. Source Code Path See this page for git repository. WPF Application Source Code Path Play/SessionMessagePanel Web Page Application Source Code Path wwwroot/player/session-message-panel.js (Vue component) Players/PlayerController.cs (REST API - GetSessionMessages endpoint) Players/SessionMessageService.cs (Business logic) Players/SessionMessageHub.cs (SignalR Hub for real-time updates)" + "summary": "Session Message Panel The model is MachiningProject.. MachiningProject is assigned from the Player Panel. Layout Top Message Filter ToolBar Message Type Filter SubMenu NC CheckBox Progress CheckBox Error CheckBox Message Text Filter Input Message Text Filter Input Text Area Message Text Filter Reset Button Export Button Central Message Table Central Message Table The model of Central Message Table is SessionMessageHost.MessageCollection. Only take last 1000 filtered elements in the MessageCollection by GetFliteredList(FilterFlag, string) to show for user experience. Find the usage example in the code: internal static void DemoUseSessionMessageHost(LocalProjectService localProjectService) { SessionMessageHost sessionMessageHost = localProjectService.SessionMessageHost; SessionMessageHost.FilterFlag filterFlags = SessionMessageHost.FilterFlag.NC | SessionMessageHost.FilterFlag.Progress | SessionMessageHost.FilterFlag.Error; string filterText = null; var filteredSessionMessageList = sessionMessageHost .GetFliteredList(filterFlags, filterText); foreach (var sessionMessage in filteredSessionMessageList) { //M.I.: Message Index. Console.Write($\"M.I.: {sessionMessage.Index}; Role: {sessionMessage.MessageRoleText}\"); // For SessionMessageHost.FilterFlag.NC var nc = sessionMessage.DirectInstantSourceCommand; if (nc != null) Console.Write($\"Message/NC: {nc.Line}; File: {nc.FilePath}; LineNo: {nc.GetLineNo()}; \"); // For SessionMessageHost.FilterFlag.Progress or Error. var multiTagMessage = sessionMessage.MultiTagMessage; if (multiTagMessage != null) Console.WriteLine($\"Message/NC: {multiTagMessage.Message}\"); var exception = sessionMessage.Exception; if (exception != null) Console.WriteLine($\"Message/NC: {exception.Message}\"); } File.WriteAllLines(\"output-session-messages.txt\", filteredSessionMessageList.Select(m => $\"Msg[{m.Index}][{m.MessageRoleText}]: {m}\")); } In the table, show the columns: Role, NC/Message. Add update table event to CollectionItemChanged. The updating process has to be called by Loose Manner for user experience. Tip On window desktop application (WPF), consider use textarea instead of datagrid to MessageTable for better performance. Use padding to show the different columns. And use the font in the textarea that with consistent width. Note The message display should be real-time. Behavior of Export Button Export ALL filtered elements in the MessageCollection by GetFliteredList(FilterFlag, string). SignalR Implementation (Webapi Only) SessionMessageHub provides real-time message updates with method GetSessionMessages(string filterFlags, string filterText, int limit) and event SessionMessagesUpdated. SessionMessageService monitors and broadcasts updates. The service uses LooseRunner for non-blocking async operations. The JavaScript component connects to /sessionMessageHub to receive real-time message updates. Source Code Path See this page for git repository. WPF Application Source Code Path Play/SessionMessagePanel Web Page Application Source Code Path wwwroot/player/session-message-panel.js (Vue component) Players/PlayerController.cs (REST API - GetSessionMessages endpoint) Players/SessionMessageService.cs (Business logic) Players/SessionMessageHub.cs (SignalR Hub for real-time updates)" }, "brief/dev-doc/build-hinc/translation-remarks.html": { "href": "brief/dev-doc/build-hinc/translation-remarks.html", @@ -5037,17 +5037,17 @@ "brief/dev-doc/general-hinc-workflow/index.html": { "href": "brief/dev-doc/general-hinc-workflow/index.html", "title": "General HiNC Workflow | HiAPI-C# 2025", - "summary": "General HiNC Workflow The following diagram illustrates the overall HiNC workflow: graph TD A[\"Create MachiningProject\"] --> B[\"Setting Environment\"] B --> C[\"Setting Project Tasks\"] C --> D[\"Run Tasks\"] D --> E[\"View Analysis Results\"] For a complete implementation example, see: DemoBuildMachiningProject 1. Create MachiningProject Creating a machining project is the first step in the HiNC workflow, accomplished by initializing a MachiningProject object. 2. Setting Environment In MachiningProject Set MachiningEquipment: Usually one-time settings: MachiningChain - Configure the complete machine tool including geometry, kinematic chain, and coordinate transformations SpindleCapability - Configure SpindleCapability CoolantHeatCondition - Configure coolant heat conditions BackgroundTemperature - Configure environment background temperature Variable settings: Fixture - Configure fixture Workpiece - Configure workpiece Set MachiningToolHouse - Configure tool house Set NcEnv (Controller) - Configure NC system environment parameters 3. Setting Project Tasks Set sequential tasks using PlayerCommand: Set NC Files - Set the file path and customize simulation and optimization settings for each NC file Configure NC optimization - Configure NC code optimization parameters Set GeomDiffCommand - Configure geometry comparison functionality to compare target workpiece shape with simulated shape Set MillingTraining - Configure milling parameter training to calibrate simulation parameters based on actual machining data Other task configurations… The PlayerCommand is typically a ListCommand that contains a sequence of command entries to be executed during the simulation. 4. Run the Tasks (Simulation and Optimization) Run PlayerCommand through PacePlayer. At this stage, the simulation process is similar to video playback, which can be: Started Stopped Paused Run one line Run one step Reset The PacePlayer controls the execution pace of the simulation, allowing you to observe the machining process in detail or run it at full speed. View the Analysis During Process or Result SessionMessageHost contains a sequence of simulation messages and step data, which can be used to monitor and analyze the simulation process and results. UI Pattern The user interface navigation bar matches the workflow. Top-level navigation items include: MachiningProject New Save Load Environment ... Task ... Sim (Simulation) This UI structure makes it intuitive to follow the HiNC workflow from project creation to simulation execution." + "summary": "General HiNC Workflow The following diagram illustrates the overall HiNC workflow: graph TD A[\"Create MachiningProject\"] --> B[\"Setting Environment\"] B --> C[\"Setting Project Tasks\"] C --> D[\"Run Tasks\"] D --> E[\"View Analysis Results\"] For a complete implementation example, see: DemoBuildMachiningProject 1. Create MachiningProject Creating a machining project is the first step in the HiNC workflow, accomplished by initializing a MachiningProject object. 2. Setting Environment In MachiningProject Set MachiningEquipment: Usually one-time settings: MachiningChain - Configure the complete machine tool including geometry, kinematic chain, and coordinate transformations SpindleCapability - Configure SpindleCapability CoolantHeatCondition - Configure coolant heat conditions BackgroundTemperature - Configure environment background temperature Variable settings: Fixture - Configure fixture Workpiece - Configure workpiece Set MachiningToolHouse - Configure tool house Set NcEnv (Controller) - Configure NC system environment parameters 3. Setting Project Tasks Set sequential tasks using PlayerCommand: Set NC Files - Set the file path and customize simulation and optimization settings for each NC file Configure NC optimization - Configure NC code optimization parameters Set GeomDiffCommand - Configure geometry comparison functionality to compare target workpiece shape with simulated shape Set MillingTraining - Configure milling parameter training to calibrate simulation parameters based on actual machining data Other task configurations… The PlayerCommand is typically a ListCommand that contains a sequence of command entries to be executed during the simulation. 4. Run the Tasks (Simulation and Optimization) Run PlayerCommand through . At this stage, the simulation process is similar to video playback, which can be: Started Stopped Paused Run one line Run one step Reset The controls the execution pace of the simulation, allowing you to observe the machining process in detail or run it at full speed. View the Analysis During Process or Result SessionMessageHost contains a sequence of simulation messages and step data, which can be used to monitor and analyze the simulation process and results. UI Pattern The user interface navigation bar matches the workflow. Top-level navigation items include: MachiningProject New Save Load Environment ... Task ... Sim (Simulation) This UI structure makes it intuitive to follow the HiNC workflow from project creation to simulation execution." }, "brief/dev-doc/getting-started/index.html": { "href": "brief/dev-doc/getting-started/index.html", "title": "Getting Started with HiAPI | HiAPI-C# 2025", - "summary": "Getting Started with HiAPI This guide will help you get started with HiAPI development. Installation Create a dotnet project. Setting the nuget server and account. The HiAPI installation is typical Nuget Package installation. You can apply global or local nuget setting. Here apply the local solution for startup. Create a file and name it to nuget.config in the same folder of your dotnet project file. the content of the file is as the following: In the dotnet project file, add the package reference. In the program file, setting the HiNC application initialization and finalization. using Hi.Disp; using Hi.HiNcKits; using Hi.Licenses; using Hi.MongoUtils; using System; namespace Sample { /// /// A sample class demonstrating initialization and usage of the HiAPI framework. /// Shows the basic setup of display engine, MongoDB server, licensing, and other core functionality. /// /// /// This example serves as an entry point for those getting started with HiAPI. /// It demonstrates proper initialization and teardown of key components. /// ### Source Code /// [!code-csharp[SampleCode](~/../Hi.Sample/HelloHiAPI.cs)] /// public static class HelloHiAPI { static int Main(string[] args) { Console.WriteLine(\"HiAPI starting.\"); LocalApp.AppBegin(); Console.WriteLine(\"Hello World! HiAPI.\"); LocalApp.AppEnd(); Console.WriteLine(\"HiAPI exited.\"); return 0; } } } Sample Code to Start a MachiningProject See the following sample code to start a HiAPI application. DemoBuildMachiningProject Build a MachiningProject. DemoUseMachiningProject Load a MachiningProject and run NC simulation. DemoRenderingMachiningProcessAndStripPosSelection Apply MachiningProject to 3D canvas with user-interaction in windows platform." + "summary": "Getting Started with HiAPI This guide will help you get started with HiAPI development. Installation Create a dotnet project. Setting the nuget server and account. The HiAPI installation is typical Nuget Package installation. You can apply global or local nuget setting. Here apply the local solution for startup. Create a file and name it to nuget.config in the same folder of your dotnet project file. the content of the file is as the following: In the dotnet project file, add the package reference. In the program file, setting the HiNC application initialization and finalization. using Hi.Disp; using Hi.HiNcKits; using Hi.Licenses; using Hi.MongoUtils; using System; namespace Sample { /// /// A sample class demonstrating initialization and usage of the HiAPI framework. /// Shows the basic setup of display engine, MongoDB server, licensing, and other core functionality. /// /// /// This example serves as an entry point for those getting started with HiAPI. /// It demonstrates proper initialization and teardown of key components. /// ### Source Code /// [!code-csharp[SampleCode](~/../Hi.Sample/HelloHiAPI.cs)] /// public static class HelloHiAPI { static int Main(string[] args) { Console.WriteLine(\"HiAPI starting.\"); LocalApp.AppBegin(); Console.WriteLine(\"Hello World! HiAPI.\"); LocalApp.AppEnd(); Console.WriteLine(\"HiAPI exited.\"); return 0; } } } Sample Code to Start a MachiningProject See the following sample code to start a HiAPI application. DemoBuildMachiningProject Build a MachiningProject. DemoUseMachiningProject Load a MachiningProject and run NC simulation. DemoRenderingMachiningProcessAndStripPosSelection Apply MachiningProject to 3D canvas with user-interaction in windows platform." }, "brief/dev-doc/index.html": { "href": "brief/dev-doc/index.html", "title": "HiAPI Overview | HiAPI-C# 2025", - "summary": "HiAPI Overview HiAPI is a C# software development kit for machining simulation. It provides libraries for NC motion simulation, collision detection, geometry removal simulation, milling force simulation, optimization, and more. Nuget Packages The HiAPI is applied by the form of Nuget Packages. You have to apply HiNc nuget package and its dependencies. They include all the functionality of the HiNC software, but do not include the GUI components. The packages can be downloaded and installed from the HiAPI NuGet Server. The server URL is: https://superhightech-gitea.webredirect.org/api/packages/HiAPI/nuget/index.json Note Authentication is required to access the server (username and password) Direct browser access to the URL will not show meaningful content. Since the server is designed for Visual Studio NuGet package management. For more information about NuGet, visit NuGet.org Package Dependencies The HiNc package has the following dependency chain: graph LR HiGeom --> HiDisp HiDisp --> HiCbtr HiCbtr --> HiMech HiMech --> HiUniNc HiUniNc --> HiNc HiDisp --> Hi.WinForm HiDisp --> Hi.Wpf style HiNc fill:#d3d,stroke:#333,stroke-width:2px UI Framework Support If you need to develop Windows desktop applications: For Windows Forms applications, use the Hi.WinForm package. For WPF applications, use the Hi.Wpf package. Note See Building Your Own Rendering Canvas to build the rendering canvas cross-platform. Rendering Canvas Source Code Repositories Hi.WinForm https://superhightech-gitea.webredirect.org/HiNC-Deploy/Hi.WinForm.git Hi.Wpf https://superhightech-gitea.webredirect.org/HiNC-Deploy/Hi.WinForm.git HiAPI Sample Code See Sample Code or download the repositories to get more samples. The following sample repository demonstrate various aspects of using HiAPI for machining simulation: Hi.Sample https://superhightech-gitea.webredirect.org/HiNC-Deploy/Hi.Sample.git The repository generally contains the sample codes without using rendering canvas. Hi.Sample.Wpf https://superhightech-gitea.webredirect.org/HiNC-Deploy/Hi.Sample.Wpf.git The repository generally contains the sample code that requires rendering canvas." + "summary": "HiAPI Overview HiAPI is a C# software development kit for machining simulation. It provides libraries for NC motion simulation, collision detection, geometry removal simulation, milling force simulation, optimization, and more. Nuget Packages The HiAPI is applied by the form of Nuget Packages. You have to apply HiNc nuget package and its dependencies. They include all the functionality of the HiNC software, but do not include the GUI components. The packages can be downloaded and installed from the HiAPI NuGet Server. The server URL is: https://superhightech-gitea.webredirect.org/api/packages/HiAPI/nuget/index.json Note Authentication is required to access the server (username and password) Direct browser access to the URL will not show meaningful content. Since the server is designed for Visual Studio NuGet package management. For more information about NuGet, visit NuGet.org Package Dependencies The HiNc package has the following dependency chain: graph LR HiGeom --> HiDisp HiDisp --> HiCbtr HiCbtr --> HiMech HiMech --> HiUniNc HiUniNc --> HiNc HiDisp --> Hi.WinForm HiDisp --> Hi.WpfPlus style HiNc fill:#d3d,stroke:#333,stroke-width:2px UI Framework Support If you need to develop Windows desktop applications: For Windows Forms applications, use the Hi.WinForm package. For WPF applications, use the Hi.WpfPlus package. Note See Building Your Own Rendering Canvas to build the rendering canvas cross-platform. Rendering Canvas Source Code Repositories Hi.WinForm https://superhightech-gitea.webredirect.org/HiNC-Deploy/Hi.WinForm.git Hi.WpfPlus https://superhightech-gitea.webredirect.org/HiNC-Deploy/Hi.WpfPlus.git HiAPI Sample Code See Sample Code or download the repositories to get more samples. The following sample repository demonstrate various aspects of using HiAPI for machining simulation: Hi.Sample https://superhightech-gitea.webredirect.org/HiNC-Deploy/Hi.Sample.git The repository generally contains the sample codes without using rendering canvas. Hi.Sample.Wpf https://superhightech-gitea.webredirect.org/HiNC-Deploy/Hi.Sample.Wpf.git The repository generally contains the sample code that requires rendering canvas." }, "brief/dev-doc/release-note/index.html": { "href": "brief/dev-doc/release-note/index.html", @@ -5072,7 +5072,7 @@ "brief/sample/Sample.Common.DemoSessionMessage.html": { "href": "brief/sample/Sample.Common.DemoSessionMessage.html", "title": "Class DemoSessionMessage | HiAPI-C# 2025", - "summary": "Class DemoSessionMessage Namespace Sample.Common Assembly Hi.Sample.dll public static class DemoSessionMessage Inheritance object DemoSessionMessage Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Remarks Source Code using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Reflection; using Hi.Common; using Hi.Common.FileLines; using Hi.Geom; using Hi.HiNcKits; using Hi.MachiningProcs; using Hi.MachiningSteps; using Hi.Mech; using Hi.Mech.Topo; using Hi.Numerical; namespace Sample.Common { /// /// ### Source Code /// [!code-csharp[SampleCode](~/../Hi.Sample/Common/DemoSessionMessage.cs)] /// public static class DemoSessionMessage { #region Demo_UseSessionMessageHost internal static void DemoUseSessionMessageHost(MachiningProject project) { SessionMessageHost sessionMessageHost = project.SessionMessageHost; SessionMessageHost.FilterFlag filterFlags = SessionMessageHost.FilterFlag.NC | SessionMessageHost.FilterFlag.Progress | SessionMessageHost.FilterFlag.Error; string filterText = null; var filteredSessionMessageList = sessionMessageHost .GetFliteredList(filterFlags, filterText); foreach (var sessionMessage in filteredSessionMessageList) { //M.I.: Message Index. Console.Write($\"M.I.: {sessionMessage.Index}; Role: {sessionMessage.MessageRoleText}\"); // For SessionMessageHost.FilterFlag.NC var nc = sessionMessage.DirectInstantSourceCommand; if (nc != null) Console.Write($\"Message/NC: {nc.Line}; File: {nc.FilePath}; LineNo: {nc.GetLineNo()}; \"); // For SessionMessageHost.FilterFlag.Progress or Error. var multiTagMessage = sessionMessage.MultiTagMessage; if (multiTagMessage != null) Console.WriteLine($\"Message/NC: {multiTagMessage.Message}\"); var exception = sessionMessage.Exception; if (exception != null) Console.WriteLine($\"Message/NC: {exception.Message}\"); } File.WriteAllLines(\"output-session-messages.txt\", filteredSessionMessageList.Select(m => $\"Msg[{m.Index}][{m.MessageRoleText}]: {m}\")); } #endregion internal static void DemoUseSessionMessageHost2(MachiningProject project) { SessionMessageHost sessionMessageHost = project.SessionMessageHost; IMachiningChain machiningChain = project.MachiningEquipment?.MachiningChain; PresentAttribute mrrPresent = typeof(MachiningStep).GetProperty(nameof(MachiningStep.Mrr_mm3ds)).GetCustomAttribute(); string mrrUnit = mrrPresent?.TailUnitString; string mrrFormat = mrrPresent?.DataFormatString; PresentAttribute torquePresent = typeof(MachiningStep).GetProperty(nameof(MachiningStep.AvgAbsTorque_Nm)).GetCustomAttribute(); string torqueUnit = torquePresent?.TailUnitString; string torqueFormat = torquePresent?.DataFormatString; SessionMessageHost.FilterFlag filterFlags = SessionMessageHost.FilterFlag.Step | SessionMessageHost.FilterFlag.NC | SessionMessageHost.FilterFlag.Progress | SessionMessageHost.FilterFlag.Error; string filterText = null; var filteredSessionMessageList = sessionMessageHost .GetFliteredList(filterFlags, filterText); foreach (var sessionMessage in filteredSessionMessageList) { //M.I.: Message Index. Console.Write($\"M.I.: {sessionMessage.Index}; Role: {sessionMessage.MessageRoleText}\"); // For SessionMessageHost.FilterFlag.Step var step = sessionMessage.MachiningStep; if (step != null) { string[] machineCoordinateValueTexts = GetMachineCoordinateValueTexts(step, machiningChain); var machineCoordinatesText = string.Join(\"; \", Enumerable.Range(0, machiningChain.McCodes.Length) .Select(i => $\"MC.{machiningChain.McCodes[i]}: {machineCoordinateValueTexts[i]}\")); Console.Write($\"Time: {step.AccumulatedTime:G}; MRR = {step.Mrr_mm3ds.ToString(mrrFormat)} {mrrUnit}; Torque = {step.AvgAbsTorque_Nm?.ToString(torqueFormat)} {torqueUnit}; {machineCoordinatesText}; \"); var nc_ = sessionMessageHost.GetSourceCommand(sessionMessage); Console.WriteLine($\"Message/NC: {nc_.Line}; File: {nc_.FilePath}; LineNo: {nc_.GetLineNo()}\"); } // For SessionMessageHost.FilterFlag.NC var nc = sessionMessage.DirectInstantSourceCommand; if (nc != null) { Console.Write($\"Message/NC: {nc.Line}; File: {nc.FilePath}; LineNo: {nc.GetLineNo()}; \"); if (nc is NcLine ncLine) Console.WriteLine($\"T: {ncLine.T}; S: {ncLine.S}; F: {ncLine.F}; NC-Flags: {ncLine.FlagsText}\"); } // For SessionMessageHost.FilterFlag.Progress or Error. var multiTagMessage = sessionMessage.MultiTagMessage; if (multiTagMessage != null) Console.WriteLine($\"Message/NC: {multiTagMessage.Message}\"); var exception = sessionMessage.Exception; if (exception != null) Console.WriteLine($\"Message/NC: {exception.Message}\"); } } static string[] GetMachineCoordinateValueTexts(MachiningStep step, IMachiningChain machiningChain) { var mcTransformers = machiningChain.McTransformers; string[] dst = new string[mcTransformers.Length]; if (mcTransformers != null) { for (int i = 0; i < mcTransformers.Length; i++) { if (mcTransformers[i] == null) continue; if (mcTransformers[i] is DynamicRotation) dst[i] = MathUtil.ToDeg(step.GetMcValue(i).Value).ToString(\"F4\"); else dst[i] = step.GetMcValue(i)?.ToString(\"F5\"); } } return dst; } #region ShowStepPresent internal static void ShowStepPresent( UserService userEnv, MachiningStep machiningStep) { foreach (var entry in userEnv.DisplayedStepPresentAccessList) { var present = entry.Value.Present; var valueText = string.Format(\"{0:\" + present.DataFormatString + \"}\", entry.Value.GetValueFunc.Invoke(machiningStep)); Console.WriteLine($\"{present.ShortName}: {valueText} {present.TailUnitString} ({present.Name} [{entry.Key}])\"); } } #endregion } }" + "summary": "Class DemoSessionMessage Namespace Sample.Common Assembly Hi.Sample.dll public static class DemoSessionMessage Inheritance object DemoSessionMessage Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Remarks Source Code using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Reflection; using Hi.Common; using Hi.Common.FileLines; using Hi.Geom; using Hi.HiNcKits; using Hi.MachiningProcs; using Hi.MachiningSteps; using Hi.Mech; using Hi.Mech.Topo; using Hi.Numerical; namespace Sample.Common { /// /// ### Source Code /// [!code-csharp[SampleCode](~/../Hi.Sample/Common/DemoSessionMessage.cs)] /// public static class DemoSessionMessage { #region Demo_UseSessionMessageHost internal static void DemoUseSessionMessageHost(LocalProjectService localProjectService) { SessionMessageHost sessionMessageHost = localProjectService.SessionMessageHost; SessionMessageHost.FilterFlag filterFlags = SessionMessageHost.FilterFlag.NC | SessionMessageHost.FilterFlag.Progress | SessionMessageHost.FilterFlag.Error; string filterText = null; var filteredSessionMessageList = sessionMessageHost .GetFliteredList(filterFlags, filterText); foreach (var sessionMessage in filteredSessionMessageList) { //M.I.: Message Index. Console.Write($\"M.I.: {sessionMessage.Index}; Role: {sessionMessage.MessageRoleText}\"); // For SessionMessageHost.FilterFlag.NC var nc = sessionMessage.DirectInstantSourceCommand; if (nc != null) Console.Write($\"Message/NC: {nc.Line}; File: {nc.FilePath}; LineNo: {nc.GetLineNo()}; \"); // For SessionMessageHost.FilterFlag.Progress or Error. var multiTagMessage = sessionMessage.MultiTagMessage; if (multiTagMessage != null) Console.WriteLine($\"Message/NC: {multiTagMessage.Message}\"); var exception = sessionMessage.Exception; if (exception != null) Console.WriteLine($\"Message/NC: {exception.Message}\"); } File.WriteAllLines(\"output-session-messages.txt\", filteredSessionMessageList.Select(m => $\"Msg[{m.Index}][{m.MessageRoleText}]: {m}\")); } #endregion internal static void DemoUseSessionMessageHost2(LocalProjectService localProjectService) { SessionMessageHost sessionMessageHost = localProjectService.SessionMessageHost; IMachiningChain machiningChain = localProjectService.MachiningChain; PresentAttribute mrrPresent = typeof(MachiningStep).GetProperty(nameof(MachiningStep.Mrr_mm3ds)).GetCustomAttribute(); string mrrUnit = mrrPresent?.TailUnitString; string mrrFormat = mrrPresent?.DataFormatString; PresentAttribute torquePresent = typeof(MachiningStep).GetProperty(nameof(MachiningStep.AvgAbsTorque_Nm)).GetCustomAttribute(); string torqueUnit = torquePresent?.TailUnitString; string torqueFormat = torquePresent?.DataFormatString; SessionMessageHost.FilterFlag filterFlags = SessionMessageHost.FilterFlag.Step | SessionMessageHost.FilterFlag.NC | SessionMessageHost.FilterFlag.Progress | SessionMessageHost.FilterFlag.Error; string filterText = null; var filteredSessionMessageList = sessionMessageHost .GetFliteredList(filterFlags, filterText); foreach (var sessionMessage in filteredSessionMessageList) { //M.I.: Message Index. Console.Write($\"M.I.: {sessionMessage.Index}; Role: {sessionMessage.MessageRoleText}\"); // For SessionMessageHost.FilterFlag.Step var step = sessionMessage.MachiningStep; if (step != null) { string[] machineCoordinateValueTexts = GetMachineCoordinateValueTexts(step, machiningChain); var machineCoordinatesText = string.Join(\"; \", Enumerable.Range(0, machiningChain.McCodes.Length) .Select(i => $\"MC.{machiningChain.McCodes[i]}: {machineCoordinateValueTexts[i]}\")); Console.Write($\"Time: {step.AccumulatedTime:G}; MRR = {step.Mrr_mm3ds.ToString(mrrFormat)} {mrrUnit}; Torque = {step.AvgAbsTorque_Nm?.ToString(torqueFormat)} {torqueUnit}; {machineCoordinatesText}; \"); var nc_ = sessionMessageHost.GetSourceCommand(sessionMessage); Console.WriteLine($\"Message/NC: {nc_.Line}; File: {nc_.FilePath}; LineNo: {nc_.GetLineNo()}\"); } // For SessionMessageHost.FilterFlag.NC var nc = sessionMessage.DirectInstantSourceCommand; if (nc != null) { Console.Write($\"Message/NC: {nc.Line}; File: {nc.FilePath}; LineNo: {nc.GetLineNo()}; \"); if (nc is NcLine ncLine) Console.WriteLine($\"T: {ncLine.T}; S: {ncLine.S}; F: {ncLine.F}; NC-Flags: {ncLine.FlagsText}\"); } // For SessionMessageHost.FilterFlag.Progress or Error. var multiTagMessage = sessionMessage.MultiTagMessage; if (multiTagMessage != null) Console.WriteLine($\"Message/NC: {multiTagMessage.Message}\"); var exception = sessionMessage.Exception; if (exception != null) Console.WriteLine($\"Message/NC: {exception.Message}\"); } } static string[] GetMachineCoordinateValueTexts(MachiningStep step, IMachiningChain machiningChain) { var mcTransformers = machiningChain.McTransformers; string[] dst = new string[mcTransformers.Length]; if (mcTransformers != null) { for (int i = 0; i < mcTransformers.Length; i++) { if (mcTransformers[i] == null) continue; if (mcTransformers[i] is DynamicRotation) dst[i] = MathUtil.ToDeg(step.GetMcValue(i).Value).ToString(\"F4\"); else dst[i] = step.GetMcValue(i)?.ToString(\"F5\"); } } return dst; } #region ShowStepPresent internal static void ShowStepPresent( UserService userEnv, MachiningStep machiningStep) { foreach (var entry in userEnv.DisplayedStepPresentAccessList) { var present = entry.Value.Present; var valueText = string.Format(\"{0:\" + present.DataFormatString + \"}\", entry.Value.GetValueFunc.Invoke(machiningStep)); Console.WriteLine($\"{present.ShortName}: {valueText} {present.TailUnitString} ({present.Name} [{entry.Key}])\"); } } #endregion } }" }, "brief/sample/Sample.Common.html": { "href": "brief/sample/Sample.Common.html", @@ -5122,7 +5122,7 @@ "brief/sample/Sample.Disp.DemoUtil.html": { "href": "brief/sample/Sample.Disp.DemoUtil.html", "title": "Class DemoUtil | HiAPI-C# 2025", - "summary": "Class DemoUtil Namespace Sample.Disp Assembly Hi.Sample.Wpf.dll Provides utility functions for running HiAPI display examples in a WPF environment. Contains helper methods that simplify the setup and execution of WPF applications with HiAPI rendering. Handles common initialization and cleanup tasks for visualization examples. public static class DemoUtil Inheritance object DemoUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Remarks Source Code using Hi.Disp; using Hi.HiNcKits; using Hi.Licenses; using Hi.MongoUtils; using Hi.Wpf.Disp; using System.Windows; namespace Sample.Disp { /// /// Provides utility functions for running HiAPI display examples in a WPF environment. /// Contains helper methods that simplify the setup and execution of WPF applications with HiAPI rendering. /// Handles common initialization and cleanup tasks for visualization examples. /// /// /// ### Source Code /// [!code-csharp[SampleCode](~/../Hi.Sample.Wpf/Disp/DemoUtil.cs)] /// public static class DemoUtil { /// /// Creates and runs a WPF application with a RenderingWindow to display 3D content. /// Handles proper initialization and cleanup of HiAPI resources including MongoDB server, /// display engine, and licensing. /// /// The title for the application window /// The object that implements IDisplayee to be rendered public static void RunApplication(string title, IDisplayee displayee) { LocalApp.AppBegin(); Application app = new Application(); app.Exit += (o, e) => { LocalApp.AppEnd(); }; app.Run(new RenderingWindow() { Title = title, Displayee = displayee }); } } } Methods RunApplication(string, IDisplayee) Creates and runs a WPF application with a RenderingWindow to display 3D content. Handles proper initialization and cleanup of HiAPI resources including MongoDB server, display engine, and licensing. public static void RunApplication(string title, IDisplayee displayee) Parameters title string The title for the application window displayee IDisplayee The object that implements IDisplayee to be rendered" + "summary": "Class DemoUtil Namespace Sample.Disp Assembly Hi.Sample.Wpf.dll Provides utility functions for running HiAPI display examples in a WPF environment. Contains helper methods that simplify the setup and execution of WPF applications with HiAPI rendering. Handles common initialization and cleanup tasks for visualization examples. public static class DemoUtil Inheritance object DemoUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Remarks Source Code using Hi.Disp; using Hi.HiNcKits; using Hi.Licenses; using Hi.MongoUtils; using Hi.WpfPlus.Disp; using System.Windows; namespace Sample.Disp { /// /// Provides utility functions for running HiAPI display examples in a WPF environment. /// Contains helper methods that simplify the setup and execution of WPF applications with HiAPI rendering. /// Handles common initialization and cleanup tasks for visualization examples. /// /// /// ### Source Code /// [!code-csharp[SampleCode](~/../Hi.Sample.Wpf/Disp/DemoUtil.cs)] /// public static class DemoUtil { /// /// Creates and runs a WPF application with a RenderingWindow to display 3D content. /// Handles proper initialization and cleanup of HiAPI resources including MongoDB server, /// display engine, and licensing. /// /// The title for the application window /// The object that implements IDisplayee to be rendered public static void RunApplication(string title, IDisplayee displayee) { LocalApp.AppBegin(); Application app = new Application(); app.Exit += (o, e) => { LocalApp.AppEnd(); }; app.Run(new RenderingWindow() { Title = title, Displayee = displayee }); } } } Methods RunApplication(string, IDisplayee) Creates and runs a WPF application with a RenderingWindow to display 3D content. Handles proper initialization and cleanup of HiAPI resources including MongoDB server, display engine, and licensing. public static void RunApplication(string title, IDisplayee displayee) Parameters title string The title for the application window displayee IDisplayee The object that implements IDisplayee to be rendered" }, "brief/sample/Sample.Disp.html": { "href": "brief/sample/Sample.Disp.html", @@ -5167,27 +5167,27 @@ "brief/sample/Sample.Machining.DemoBuildGeomOnlyMachiningProject.html": { "href": "brief/sample/Sample.Machining.DemoBuildGeomOnlyMachiningProject.html", "title": "Class DemoBuildGeomOnlyMachiningProject | HiAPI-C# 2025", - "summary": "Class DemoBuildGeomOnlyMachiningProject Namespace Sample.Machining Assembly Hi.Sample.dll public static class DemoBuildGeomOnlyMachiningProject Inheritance object DemoBuildGeomOnlyMachiningProject Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Remarks Source Code using Hi.Common.XmlUtils; using Hi.Geom; using Hi.MachiningProcs; using Hi.Mech.Topo; using Hi.Milling.Apts; using Hi.Milling.Cutters; using Hi.NcMech.Fixtures; using Hi.NcMech.Workpieces; using Hi.NcMech.Xyzabc; using System.Collections.Generic; using System.IO; using System; using Hi.NcMech.Holders; using Hi.Machining; using Hi.HiNcKits; using Hi.Milling.MillingTools; namespace Sample.Machining { /// /// ### Source Code /// [!code-csharp[SampleCode](~/../Hi.Sample/Machining/DemoBuildGeomOnlyMachiningProject.cs)] /// public static class DemoBuildGeomOnlyMachiningProject { internal static MillingCutter CreateGeomOnlyMillingCutter() { MillingCutter millingCutter = new MillingCutter() { UpperBeamGeom = new Cylindroid( [new PairZr(40,6), new PairZr(90,6)]), ShaperProfile = new AptProfile( new ColumnApt() { Diameter_mm = 12, FluteHeight_mm = 40 }) }; return millingCutter; } static void Main() { LocalApp.AppBegin(); var projectPath = \"C:/HiNC-Projects/NewProject/Main.hincproj\"; var projectDirectory = Path.GetDirectoryName(projectPath); Console.WriteLine($\"Directory of the New Project: {projectDirectory}\"); MachiningProject machiningProject = new MachiningProject(projectDirectory); CylindroidHolder cylindroidHolder = new CylindroidHolder() { Note = \"BT40\", Cylindroid = new Cylindroid([ new PairZr(0,12),new PairZr(20,12), new PairZr(20,16),new PairZr(30,16)]) }; machiningProject.MachiningToolHouse = new MachiningToolHouse() { [1] = new MillingTool() { Note = \"T1\", PreservedDistanceBetweenFluteAndSpindleNose_mm = 8, Holder = cylindroidHolder, Cutter = CreateGeomOnlyMillingCutter() }, }; machiningProject.MachiningEquipment.Fixture = new Fixture() { Geom = new Box3d(new Vec3d(-40, -40, 0), new Vec3d(40, 40, 10)), GeomToWorkpieceTransformer = new StaticTranslation(new Vec3d(0, 0, 10)), }; machiningProject.MachiningEquipment.Workpiece = new Workpiece() { InitResolution = 0.25, InitGeom = new Box3d(0, 0, -50, 70, 50, 0), IdealGeom = null, WorkpieceGeomToFixtureBuckleTransformer = new StaticTranslation(new Vec3d(0, 0, 0)), }; machiningProject.MachiningEquipment.MachiningChain = XFactory.GenByFile( \"Resource\", \"MachineTool/PMC-B1/PMC-B1.mt\", GenMode.Default); machiningProject.MachiningEquipment.MachiningChainFile = \"PMC-B1/PMC-B1.mt\"; machiningProject.MakeXmlSourceFile(projectPath); machiningProject.Dispose(); LocalApp.AppEnd(); } } }" + "summary": "Class DemoBuildGeomOnlyMachiningProject Namespace Sample.Machining Assembly Hi.Sample.dll public static class DemoBuildGeomOnlyMachiningProject Inheritance object DemoBuildGeomOnlyMachiningProject Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Remarks Source Code using Hi.Common.XmlUtils; using Hi.Geom; using Hi.MachiningProcs; using Hi.Mech.Topo; using Hi.Milling.Apts; using Hi.Milling.Cutters; using Hi.NcMech.Fixtures; using Hi.NcMech.Workpieces; using Hi.NcMech.Xyzabc; using System.Collections.Generic; using System.IO; using System; using Hi.NcMech.Holders; using Hi.Machining; using Hi.HiNcKits; using Hi.Milling.MillingTools; namespace Sample.Machining { /// /// ### Source Code /// [!code-csharp[SampleCode](~/../Hi.Sample/Machining/DemoBuildGeomOnlyMachiningProject.cs)] /// public static class DemoBuildGeomOnlyMachiningProject { internal static MillingCutter CreateGeomOnlyMillingCutter() { MillingCutter millingCutter = new MillingCutter() { UpperBeamGeom = new Cylindroid( [new PairZr(40,6), new PairZr(90,6)]), ShaperProfile = new AptProfile( new ColumnApt() { Diameter_mm = 12, FluteHeight_mm = 40 }) }; return millingCutter; } static void Main() { LocalApp.AppBegin(); LocalProjectService localProjectService = new LocalProjectService(); var projectPath = \"C:/HiNC-Projects/NewProject/Main.hincproj\"; var projectDirectory = Path.GetDirectoryName(projectPath); Console.WriteLine($\"Directory of the New Project: {projectDirectory}\"); localProjectService.LoadProject(projectPath); MachiningProject machiningProject = localProjectService.MachiningProject; CylindroidHolder cylindroidHolder = new CylindroidHolder() { Note = \"BT40\", Cylindroid = new Cylindroid([ new PairZr(0,12),new PairZr(20,12), new PairZr(20,16),new PairZr(30,16)]) }; localProjectService.MachiningToolHouse = new MachiningToolHouse() { [1] = new MillingTool() { Note = \"T1\", PreservedDistanceBetweenFluteAndSpindleNose_mm = 8, Holder = cylindroidHolder, Cutter = CreateGeomOnlyMillingCutter() }, }; localProjectService.Fixture = new Fixture() { Geom = new Box3d(new Vec3d(-40, -40, 0), new Vec3d(40, 40, 10)), GeomToWorkpieceTransformer = new StaticTranslation(new Vec3d(0, 0, 10)), }; localProjectService.Workpiece = new Workpiece() { InitResolution = 0.25, InitGeom = new Box3d(0, 0, -50, 70, 50, 0), IdealGeom = null, WorkpieceGeomToFixtureBuckleTransformer = new StaticTranslation(new Vec3d(0, 0, 0)), }; localProjectService.MachiningChain = XFactory.GenByFile( \"Resource\", \"MachineTool/PMC-B1/PMC-B1.mt\", GenMode.Default); localProjectService.MachiningChainFile = \"PMC-B1/PMC-B1.mt\"; localProjectService.SaveProject(); machiningProject.Dispose(); LocalApp.AppEnd(); } } }" }, "brief/sample/Sample.Machining.DemoBuildMachiningProject.html": { "href": "brief/sample/Sample.Machining.DemoBuildMachiningProject.html", "title": "Class DemoBuildMachiningProject | HiAPI-C# 2025", - "summary": "Class DemoBuildMachiningProject Namespace Sample.Machining Assembly Hi.Sample.dll Demonstrates how to create and configure a MachiningProject programmatically. This sample shows how to set up MillingCutter, CylindroidHolder, MillingTool, Fixture, Workpiece, and save the project configuration to a file. public static class DemoBuildMachiningProject Inheritance object DemoBuildMachiningProject Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Remarks Source Code using System; using Hi.Milling.Apts; using Hi.Common.XmlUtils; using Hi.Geom; using Hi.Machining; using Hi.Mech.Topo; using Hi.Milling.Cutters; using Hi.Milling.FluteContours; using Hi.MillingForces.Fittings; using Hi.NcMech.Fixtures; using Hi.NcMech.Holders; using Hi.NcMech.Workpieces; using Hi.NcMech.Xyzabc; using Hi.NcOpt; using Hi.Physics; using Hi.MachiningProcs; using System.IO; using Hi.HiNcKits; using Hi.Milling.MillingTools; namespace Sample.Machining { /// /// Demonstrates how to create and configure a programmatically. /// This sample shows how to set up , , /// , , , /// and save the project configuration to a file. /// /// /// ### Source Code /// [!code-csharp[SampleCode](~/../Hi.Sample/Machining/DemoBuildMachiningProject.cs)] /// public static class DemoBuildMachiningProject { internal static CylindroidHolder CreateCylindroidHolder() { #region ConfigureHolder CylindroidHolder cylindroidHolder = new CylindroidHolder() { Note = \"BT40\", Cylindroid = new Cylindroid([ new PairZr(0,12),new PairZr(20,12), new PairZr(20,16),new PairZr(30,16)]) }; #endregion return cylindroidHolder; } #region CreateMillingCutter1 internal static MillingCutter CreateMillingCutter1() { double diameter_mm = 12; double roundRadius_mm = 0.5; MillingCutter millingCutter = new MillingCutter() { ShaperProfile = new AptProfile( new ColumnApt() { Diameter_mm = diameter_mm, Rc_mm = roundRadius_mm, FluteHeight_mm = 40 }), UpperBeamGeom = new ExtendedCylinder(90), InnerBeamProfile = new FluteDependentRatioProfile(), MillingCutterOptLimit = new MillingCutterOptOption(), }; //build FluteContourTray property double helixAngle_deg = 50; double radialRakeAngle_deg = 15; double bottomOuterRadius_mm = diameter_mm / 2 - roundRadius_mm; millingCutter.FluteContourTray = new UniformContourTray() { TrackNum = 3, BaselineOneContour = new FluteContour() { BaseSideContour = new ConstHelixSideContour(millingCutter) { Helix_deg = helixAngle_deg, RadialRakeAngle_deg = radialRakeAngle_deg }, BaseBottomContour = new SlideBottomContour() { //In most case, helix angle from side equal to rake angle from bottom. AxialRakeAngle_deg = MathUtil.ToDeg(helixAngle_deg), DiskAngle_deg = 1.5, //In most case, rake angle from side equal to eccentric angle from bottom. EccentricAngle_deg = radialRakeAngle_deg, CutterLengthOnBottomProjection_mm = bottomOuterRadius_mm * 0.9, OuterRadius_mm = bottomOuterRadius_mm } } }; return millingCutter; } #endregion #region CreateMillingCutter2 internal static MillingCutter CreateMillingCutter2() { MillingCutter millingCutter = new MillingCutter() { ShaperProfile = new AptProfile(new ColumnApt() { Diameter_mm = 12, FluteHeight_mm = 40 }), UpperBeamGeom = new Cylindroid( [new PairZr(40, 6), new PairZr(90, 6)]), InnerBeamProfile = new FluteDependentRatioProfile(), MillingCutterOptLimit = new MillingCutterOptOption() }; //build FluteContourTray property double helixAngle_deg = 50; double radialRakeAngle_deg = 15; millingCutter.FluteContourTray = new UniformContourTray() { TrackNum = 3, BaselineOneContour = new FluteContour() { BaseSideContour = new ConstHelixSideContour(millingCutter) { Helix_deg = helixAngle_deg, RadialRakeAngle_deg = radialRakeAngle_deg }, //since no bottom cut, set bottom contour to null. BaseBottomContour = null } }; return millingCutter; } #endregion internal static CustomSpinningProfile CreateCustomSpinningProfile() { return new CustomSpinningProfile( new Cylindroid(new PairZr(0, 4), new PairZr(50, 4))); } #region TestMethod [STAThread] static void Main() { LocalApp.AppBegin(); var projectPath = \"C:/HiNC-Projects/NewProject/Main.hincproj\"; var projectDirectory = Path.GetDirectoryName(projectPath); Console.WriteLine($\"Directory of the New Project: {projectDirectory}\"); MachiningProject machiningProject = new MachiningProject(projectDirectory); #region ConfigureMachiningToolHouse machiningProject.MachiningToolHouse = new MachiningToolHouse() { [1] = new MillingTool() { Note = \"T1\", PreservedDistanceBetweenFluteAndSpindleNose_mm = 8, Holder = CreateCylindroidHolder(), Cutter = CreateMillingCutter1() }, [2] = new MillingTool() { Note = \"T2\", PreservedDistanceBetweenFluteAndSpindleNose_mm = 8, Holder = CreateCylindroidHolder(), Cutter = CreateMillingCutter2() }, [3] = new MillingTool() { Note = \"T3\", PreservedDistanceBetweenFluteAndSpindleNose_mm = 8, Holder = CreateCylindroidHolder(), Cutter = CreateMillingCutter1() }, }; #endregion #region ConfigureFixture machiningProject.MachiningEquipment.Fixture = new Fixture() { Geom = new Box3d(new Vec3d(-40, -40, 0), new Vec3d(40, 40, 10)), GeomToWorkpieceTransformer = new StaticTranslation(new Vec3d(0, 0, 10)), }; #endregion #region ConfigureWorkpiece machiningProject.MachiningEquipment.Workpiece = new Workpiece() { InitResolution = 0.25, InitGeom = new Box3d(0, 0, -50, 70, 50, 0), IdealGeom = null, WorkpieceGeomToFixtureBuckleTransformer = new StaticTranslation(new Vec3d(0, 0, 0)), CuttingPara = XFactory.GenByFile( \"Resource/CuttingParameter\", \"Al6061T6.mp\", GenMode.Default), WorkpieceMaterial = XFactory.GenByFile( \"Resource/WorkpieceMaterial\", \"Al6061T6.WorkpieceMaterial\", GenMode.Default), }; #endregion #region ConfigureMachineChain machiningProject.MachiningEquipment.MachiningChain = XFactory.GenByFile( \"Resource\", \"MachineTool/PMC-B1/PMC-B1.mt\", GenMode.Default); #endregion machiningProject.MakeXmlSourceFile(projectPath); machiningProject.Dispose(); LocalApp.AppEnd(); } #endregion } }" + "summary": "Class DemoBuildMachiningProject Namespace Sample.Machining Assembly Hi.Sample.dll Demonstrates how to create and configure a MachiningProject programmatically. This sample shows how to set up MillingCutter, CylindroidHolder, MillingTool, Fixture, Workpiece, and save the project configuration to a file. public static class DemoBuildMachiningProject Inheritance object DemoBuildMachiningProject Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Remarks Source Code using System; using Hi.Milling.Apts; using Hi.Common.XmlUtils; using Hi.Geom; using Hi.Machining; using Hi.Mech.Topo; using Hi.Milling.Cutters; using Hi.Milling.FluteContours; using Hi.MillingForces.Fittings; using Hi.NcMech.Fixtures; using Hi.NcMech.Holders; using Hi.NcMech.Workpieces; using Hi.NcMech.Xyzabc; using Hi.NcOpt; using Hi.Physics; using Hi.MachiningProcs; using System.IO; using Hi.HiNcKits; using Hi.Milling.MillingTools; namespace Sample.Machining { /// /// Demonstrates how to create and configure a programmatically. /// This sample shows how to set up , , /// , , , /// and save the project configuration to a file. /// /// /// ### Source Code /// [!code-csharp[SampleCode](~/../Hi.Sample/Machining/DemoBuildMachiningProject.cs)] /// public static class DemoBuildMachiningProject { internal static CylindroidHolder CreateCylindroidHolder() { #region ConfigureHolder CylindroidHolder cylindroidHolder = new CylindroidHolder() { Note = \"BT40\", Cylindroid = new Cylindroid([ new PairZr(0,12),new PairZr(20,12), new PairZr(20,16),new PairZr(30,16)]) }; #endregion return cylindroidHolder; } #region CreateMillingCutter1 internal static MillingCutter CreateMillingCutter1() { double diameter_mm = 12; double roundRadius_mm = 0.5; MillingCutter millingCutter = new MillingCutter() { ShaperProfile = new AptProfile( new ColumnApt() { Diameter_mm = diameter_mm, Rc_mm = roundRadius_mm, FluteHeight_mm = 40 }), UpperBeamGeom = new ExtendedCylinder(90), InnerBeamProfile = new FluteDependentRatioProfile(), MillingCutterOptLimit = new MillingCutterOptOption(), }; //build FluteContourTray property double helixAngle_deg = 50; double radialRakeAngle_deg = 15; double bottomOuterRadius_mm = diameter_mm / 2 - roundRadius_mm; millingCutter.FluteContourTray = new UniformContourTray() { TrackNum = 3, BaselineOneContour = new FluteContour() { BaseSideContour = new ConstHelixSideContour(millingCutter) { Helix_deg = helixAngle_deg, RadialRakeAngle_deg = radialRakeAngle_deg }, BaseBottomContour = new SlideBottomContour() { //In most case, helix angle from side equal to rake angle from bottom. AxialRakeAngle_deg = MathUtil.ToDeg(helixAngle_deg), DiskAngle_deg = 1.5, //In most case, rake angle from side equal to eccentric angle from bottom. EccentricAngle_deg = radialRakeAngle_deg, CutterLengthOnBottomProjection_mm = bottomOuterRadius_mm * 0.9, OuterRadius_mm = bottomOuterRadius_mm } } }; return millingCutter; } #endregion #region CreateMillingCutter2 internal static MillingCutter CreateMillingCutter2() { MillingCutter millingCutter = new MillingCutter() { ShaperProfile = new AptProfile(new ColumnApt() { Diameter_mm = 12, FluteHeight_mm = 40 }), UpperBeamGeom = new Cylindroid( [new PairZr(40, 6), new PairZr(90, 6)]), InnerBeamProfile = new FluteDependentRatioProfile(), MillingCutterOptLimit = new MillingCutterOptOption() }; //build FluteContourTray property double helixAngle_deg = 50; double radialRakeAngle_deg = 15; millingCutter.FluteContourTray = new UniformContourTray() { TrackNum = 3, BaselineOneContour = new FluteContour() { BaseSideContour = new ConstHelixSideContour(millingCutter) { Helix_deg = helixAngle_deg, RadialRakeAngle_deg = radialRakeAngle_deg }, //since no bottom cut, set bottom contour to null. BaseBottomContour = null } }; return millingCutter; } #endregion internal static CustomSpinningProfile CreateCustomSpinningProfile() { return new CustomSpinningProfile( new Cylindroid(new PairZr(0, 4), new PairZr(50, 4))); } #region TestMethod [STAThread] static void Main() { LocalApp.AppBegin(); LocalProjectService localProjectService = new LocalProjectService(); var projectPath = \"C:/HiNC-Projects/NewProject/Main.hincproj\"; var projectDirectory = Path.GetDirectoryName(projectPath); Console.WriteLine($\"Directory of the New Project: {projectDirectory}\"); localProjectService.LoadProject(projectPath); MachiningProject machiningProject = localProjectService.MachiningProject; #region ConfigureMachiningToolHouse localProjectService.MachiningToolHouse = new MachiningToolHouse() { [1] = new MillingTool() { Note = \"T1\", PreservedDistanceBetweenFluteAndSpindleNose_mm = 8, Holder = CreateCylindroidHolder(), Cutter = CreateMillingCutter1() }, [2] = new MillingTool() { Note = \"T2\", PreservedDistanceBetweenFluteAndSpindleNose_mm = 8, Holder = CreateCylindroidHolder(), Cutter = CreateMillingCutter2() }, [3] = new MillingTool() { Note = \"T3\", PreservedDistanceBetweenFluteAndSpindleNose_mm = 8, Holder = CreateCylindroidHolder(), Cutter = CreateMillingCutter1() }, }; #endregion #region ConfigureFixture localProjectService.Fixture = new Fixture() { Geom = new Box3d(new Vec3d(-40, -40, 0), new Vec3d(40, 40, 10)), GeomToWorkpieceTransformer = new StaticTranslation(new Vec3d(0, 0, 10)), }; #endregion #region ConfigureWorkpiece localProjectService.Workpiece = new Workpiece() { InitResolution = 0.25, InitGeom = new Box3d(0, 0, -50, 70, 50, 0), IdealGeom = null, WorkpieceGeomToFixtureBuckleTransformer = new StaticTranslation(new Vec3d(0, 0, 0)), CuttingPara = XFactory.GenByFile( \"Resource/CuttingParameter\", \"Al6061T6.mp\", GenMode.Default), WorkpieceMaterial = XFactory.GenByFile( \"Resource/WorkpieceMaterial\", \"Al6061T6.WorkpieceMaterial\", GenMode.Default), }; #endregion #region ConfigureMachineChain localProjectService.MachiningChain = XFactory.GenByFile( \"Resource\", \"MachineTool/PMC-B1/PMC-B1.mt\", GenMode.Default); #endregion machiningProject.MakeXmlSourceFile(projectPath); machiningProject.Dispose(); LocalApp.AppEnd(); } #endregion } }" }, "brief/sample/Sample.Machining.DemoMillingByCutterLocation.html": { "href": "brief/sample/Sample.Machining.DemoMillingByCutterLocation.html", "title": "Class DemoMillingByCutterLocation | HiAPI-C# 2025", - "summary": "Class DemoMillingByCutterLocation Namespace Sample.Machining Assembly Hi.Sample.Wpf.dll public static class DemoMillingByCutterLocation Inheritance object DemoMillingByCutterLocation Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Remarks Source Code using Hi.Common; using Hi.Disp; using Hi.Geom; using Hi.Geom.Resolution; using Hi.HiNcKits; using Hi.MachiningProcs; using Hi.Numerical.Acts; using Hi.Wpf.Disp; using HiMachining.Milling; using System; using System.IO; using System.Threading.Tasks; using System.Windows; namespace Sample.Machining { /// /// ### Source Code /// [!code-csharp[SampleCode](~/../Hi.Sample.Wpf/Machining/DemoMillingByCutterLocation.cs)] /// public static class DemoMillingByCutterLocation { [STAThread] static void Main() { int h = 2; string stlFile_CylinderR20 = $\"Cache/CylinderH{h}R20.stl\"; string stlFile_CylinderR19 = $\"Cache/CylinderH{h}R19.stl\"; string stlFile_CylinderR18 = $\"Cache/CylinderH{h}R18.stl\"; new Cylindroid(new PairZr(-h, 20), new PairZr(0, 20)) .GenStl(new PolarResolution2d(1, MathUtil.ToRad(15))).WriteBin(stlFile_CylinderR20); new Cylindroid(new PairZr(-h, 19), new PairZr(0, 19)) .GenStl(new PolarResolution2d(1, MathUtil.ToRad(15))).WriteBin(stlFile_CylinderR19); new Cylindroid(new PairZr(-h, 18), new PairZr(0, 18)) .GenStl(new PolarResolution2d(1, MathUtil.ToRad(15))).WriteBin(stlFile_CylinderR18); LocalApp.AppBegin(); LocalProjectService localProjectService = new LocalProjectService(); #region ProjectLoading //var projectPath = \"C:/HiNC-Projects/DemoStandardPath/Main.hincproj\"; var projectPath = \"C:/HiNC-Projects/demo-test-1/Main.hincproj\"; Console.WriteLine($\"Load Project: {projectPath}\"); localProjectService.LoadProject(projectPath).ShowIfCatched(null); var project = localProjectService.MachiningProject; #endregion var projectDisplayee = new MachiningProjectDisplayee(()=> localProjectService.MachiningProject); var device = new ClMillingDevice(); project.MachiningEquipment.MachiningChain = device; project.ClStrip.IsShowDot = true; double resolution_mm = 0.5; var projectDir = Path.GetDirectoryName(projectPath); project.Workpiece.InitGeom = new StlFile(stlFile_CylinderR20, projectDir); project.Workpiece.IdealGeom = new StlFile(stlFile_CylinderR19, projectDir); project.Workpiece.InitResolution = resolution_mm; RuntimeApi runtimeApi = project.RuntimeApi; runtimeApi.SetNcResolutionFixed(9999, 15); runtimeApi.EnableCollisionDetection = false; runtimeApi.EnablePhysics = false; runtimeApi.MachiningResolution_mm = resolution_mm; //RunConsole(project, projectDisplayee, resolution_mm); RunWindow(localProjectService, projectDisplayee, resolution_mm); } static void RunConsole(IProjectService projectService, MachiningProjectDisplayee projectDisplayee, double resolution_mm) { RunSession(projectService, resolution_mm); DispEngine dispEngine = new DispEngine(projectDisplayee); dispEngine.SetViewToIsometricView(); dispEngine.SketchView = projectService.MachiningProject.ClStrip.GetFittingView(dispEngine.SketchView); dispEngine.SketchView = dispEngine.SketchView.Scale(0.5); dispEngine.Snapshot($\"Cache/result.bmp\", 1000, 1000); projectService.GetLocalProjectService().CloseProject(); LocalApp.AppEnd(); Console.WriteLine($\"App exit.\"); } static void RunWindow(IProjectService projectService, MachiningProjectDisplayee projectDisplayee, double resolution_mm) { var task = Task.Run(() => { RunSession(projectService, resolution_mm); Console.WriteLine($\"task done.\"); }).ShowIfCatched(null); #region Create and Run WPF Application Application app = new Application { ShutdownMode = ShutdownMode.OnMainWindowClose }; app.Exit += (o, e) => { projectService.GetLocalProjectService().CloseProject(); LocalApp.AppEnd(); Console.WriteLine($\"App exit.\"); }; app.Run(new RenderingWindow() { Title = \"Demo\", Displayee = projectDisplayee }); #endregion } static void RunSession(IProjectService projectService, double resolution_mm) { var project=projectService.MachiningProject; RuntimeApi runtimeApi = project.RuntimeApi; project.BeginSession(); double radius = 20; double z = -1; project.Act(new ActToolingTeleport(1));//equip tool project.Act(new ActClTeleport(new DVec3d(radius, 0, z, 0, 0, 1)));//goto initial position //run an arbitrary contour. int divNum = 36; for (int i = 0; i <= divNum; i++) { var cl = new DVec3d( radius * Math.Cos(i * Math.PI * 2 / divNum), radius * Math.Sin(i * Math.PI * 2 / divNum), z, 0, 0, 1); Console.WriteLine($\"{cl.Point.CsvText},{cl.Normal.CsvText},\"); project.Act(new ActClStep(cl)); } double diffLimit_mm = resolution_mm * 2; runtimeApi.Diff(resolution_mm * 2); Console.WriteLine($\"IsDifferenceAceptable: {IsDifferenceAceptable(project, diffLimit_mm)}\"); project.EndSession(); } static bool IsDifferenceAceptable(MachiningProject project, double diffLimit) { foreach (var attachment in project.Workpiece.DiffAttachmentBag) { if (double.IsNaN(attachment.Diff) || Math.Abs(attachment.Diff) > diffLimit) { Console.WriteLine($\"Diff: {attachment.Diff}\"); return false; } } return true; } } }" + "summary": "Class DemoMillingByCutterLocation Namespace Sample.Machining Assembly Hi.Sample.Wpf.dll public static class DemoMillingByCutterLocation Inheritance object DemoMillingByCutterLocation Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Remarks Source Code using Hi.Common; using Hi.Disp; using Hi.Geom; using Hi.Geom.Resolution; using Hi.HiNcKits; using Hi.MachiningProcs; using Hi.Numerical.Acts; using Hi.WpfPlus.Disp; using HiMachining.Milling; using System; using System.IO; using System.Threading.Tasks; using System.Windows; namespace Sample.Machining { /// /// ### Source Code /// [!code-csharp[SampleCode](~/../Hi.Sample.Wpf/Machining/DemoMillingByCutterLocation.cs)] /// public static class DemoMillingByCutterLocation { [STAThread] static void Main() { int h = 2; string stlFile_CylinderR20 = $\"Cache/CylinderH{h}R20.stl\"; string stlFile_CylinderR19 = $\"Cache/CylinderH{h}R19.stl\"; string stlFile_CylinderR18 = $\"Cache/CylinderH{h}R18.stl\"; new Cylindroid(new PairZr(-h, 20), new PairZr(0, 20)) .GenStl(new PolarResolution2d(1, MathUtil.ToRad(15))).WriteBin(stlFile_CylinderR20); new Cylindroid(new PairZr(-h, 19), new PairZr(0, 19)) .GenStl(new PolarResolution2d(1, MathUtil.ToRad(15))).WriteBin(stlFile_CylinderR19); new Cylindroid(new PairZr(-h, 18), new PairZr(0, 18)) .GenStl(new PolarResolution2d(1, MathUtil.ToRad(15))).WriteBin(stlFile_CylinderR18); LocalApp.AppBegin(); LocalProjectService localProjectService = new LocalProjectService(); #region ProjectLoading //var projectPath = \"C:/HiNC-Projects/DemoStandardPath/Main.hincproj\"; var projectPath = \"C:/HiNC-Projects/demo-test-1/Main.hincproj\"; Console.WriteLine($\"Load Project: {projectPath}\"); localProjectService.LoadProject(projectPath); var project = localProjectService.MachiningProject; #endregion var projectDisplayee = new MachiningProjectDisplayee(localProjectService); var device = new ClMillingDevice(); localProjectService.MachiningEquipment.MachiningChain = device; localProjectService.ClStrip.IsShowDot = true; double resolution_mm = 0.5; var projectDir = Path.GetDirectoryName(projectPath); localProjectService.Workpiece.InitGeom = new StlFile(stlFile_CylinderR20, projectDir); localProjectService.Workpiece.IdealGeom = new StlFile(stlFile_CylinderR19, projectDir); localProjectService.Workpiece.InitResolution = resolution_mm; RuntimeApi runtimeApi = localProjectService.RuntimeApi; runtimeApi.SetNcResolutionFixed(9999, 15); runtimeApi.EnableCollisionDetection = false; runtimeApi.EnablePhysics = false; runtimeApi.MachiningResolution_mm = resolution_mm; //RunConsole(project, projectDisplayee, resolution_mm); RunWindow(localProjectService, projectDisplayee, resolution_mm); } static void RunConsole(LocalProjectService projectService, MachiningProjectDisplayee projectDisplayee, double resolution_mm) { RunSession(projectService, resolution_mm); DispEngine dispEngine = new DispEngine(projectDisplayee); dispEngine.SetViewToIsometricView(); dispEngine.SketchView = projectService.ClStrip.GetFittingView(dispEngine.SketchView); dispEngine.SketchView = dispEngine.SketchView.Scale(0.5); dispEngine.Snapshot($\"Cache/result.bmp\", 1000, 1000); projectService.GetLocalProjectService().CloseProject(); LocalApp.AppEnd(); Console.WriteLine($\"App exit.\"); } static void RunWindow(LocalProjectService projectService, MachiningProjectDisplayee projectDisplayee, double resolution_mm) { var task = Task.Run(() => { RunSession(projectService, resolution_mm); Console.WriteLine($\"task done.\"); }).ShowIfCatched(null); #region Create and Run WPF Application Application app = new Application { ShutdownMode = ShutdownMode.OnMainWindowClose }; app.Exit += (o, e) => { projectService.GetLocalProjectService().CloseProject(); LocalApp.AppEnd(); Console.WriteLine($\"App exit.\"); }; app.Run(new RenderingWindow() { Title = \"Demo\", Displayee = projectDisplayee }); #endregion } static void RunSession(LocalProjectService localProjectService, double resolution_mm) { var project=localProjectService.MachiningProject; RuntimeApi runtimeApi = localProjectService.RuntimeApi; localProjectService.BeginSession(); double radius = 20; double z = -1; localProjectService.Act(new ActToolingTeleport(1));//equip tool localProjectService.Act(new ActClTeleport(new DVec3d(radius, 0, z, 0, 0, 1)));//goto initial position //run an arbitrary contour. int divNum = 36; for (int i = 0; i <= divNum; i++) { var cl = new DVec3d( radius * Math.Cos(i * Math.PI * 2 / divNum), radius * Math.Sin(i * Math.PI * 2 / divNum), z, 0, 0, 1); Console.WriteLine($\"{cl.Point.CsvText},{cl.Normal.CsvText},\"); localProjectService.Act(new ActClStep(cl)); } double diffLimit_mm = resolution_mm * 2; runtimeApi.Diff(resolution_mm * 2); Console.WriteLine($\"IsDifferenceAceptable: {IsDifferenceAceptable(localProjectService, diffLimit_mm)}\"); localProjectService.EndSession(); } static bool IsDifferenceAceptable(LocalProjectService localProjectService, double diffLimit) { foreach (var attachment in localProjectService.Workpiece.DiffAttachmentBag) { if (double.IsNaN(attachment.Diff) || Math.Abs(attachment.Diff) > diffLimit) { Console.WriteLine($\"Diff: {attachment.Diff}\"); return false; } } return true; } } }" }, "brief/sample/Sample.Machining.DemoRenderingMachiningProcessAndStripPosSelection.html": { "href": "brief/sample/Sample.Machining.DemoRenderingMachiningProcessAndStripPosSelection.html", "title": "Class DemoRenderingMachiningProcessAndStripPosSelection | HiAPI-C# 2025", - "summary": "Class DemoRenderingMachiningProcessAndStripPosSelection Namespace Sample.Machining Assembly Hi.Sample.Wpf.dll Demonstrates integration of machining process visualization with interactive strip position selection. Shows how to load a machining project, configure rendering options, and implement user interaction. Provides a complete example of a 3D visualization application with HiAPI and WPF. public static class DemoRenderingMachiningProcessAndStripPosSelection Inheritance object DemoRenderingMachiningProcessAndStripPosSelection Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Remarks Source Code using Hi.Wpf.Disp; using System; using Hi.MachiningProcs; using Hi.Common.FileLines; using System.Windows; using Hi.MachiningSteps; using Hi.HiNcKits; namespace Sample.Machining { /// /// Demonstrates integration of machining process visualization with interactive strip position selection. /// Shows how to load a machining project, configure rendering options, and implement user interaction. /// Provides a complete example of a 3D visualization application with HiAPI and WPF. /// /// /// ### Source Code /// [!code-csharp[SampleCode](~/../Hi.Sample.Wpf/Machining/DemoRenderingMachiningProcessAndStripPosSelection.cs)] /// public static class DemoRenderingMachiningProcessAndStripPosSelection { [STAThread] static void Main(string[] args) { LocalApp.AppBegin(); #region Load Machining Project var projectPath = \"C:/HiNC-Projects/DemoStandardPath/Main.hincproj\"; Console.WriteLine($\"Load Project: {projectPath}\"); MachiningProject machiningProject = MachiningProject.LoadFile(projectPath); machiningProject.RuntimeApi.MachiningStepSelected += (MachiningStep step) => { var sourceCommand = step.SourceCommand; Console.WriteLine($\"Step Selected: MRR = {step.Mrr_mm3ds} At \\\"{sourceCommand?.FilePath}\\\" (Line {sourceCommand?.GetLineNo()}) \\\"{sourceCommand?.Line}\\\"\"); }; machiningProject.PacePlayer.Start(); #endregion #region Configure Rendering Options var projectDisplayee = new MachiningProjectDisplayee(()=>machiningProject); projectDisplayee.RenderingFlagBitArray[(int)RenderingFlag.Mech] = true; projectDisplayee.RenderingFlagBitArray[(int)RenderingFlag.Fixture] = true; projectDisplayee.RenderingFlagBitArray[(int)RenderingFlag.WorkpieceGeom] = true; projectDisplayee.RenderingFlagBitArray[(int)RenderingFlag.Tool] = true; projectDisplayee.RenderingFlagBitArray[(int)RenderingFlag.ClStrip] = true; projectDisplayee.RenderingFlagBitArray[(int)RenderingFlag.DimensionBar] = true; #endregion #region Create and Run WPF Application Application app = new Application { ShutdownMode = ShutdownMode.OnMainWindowClose }; app.Exit += (o, e) => { machiningProject.Dispose(); LocalApp.AppEnd(); Console.WriteLine($\"App exit.\"); }; app.Run(new RenderingWindow() { Title = \"Demo\", Displayee = projectDisplayee }); #endregion } } }" + "summary": "Class DemoRenderingMachiningProcessAndStripPosSelection Namespace Sample.Machining Assembly Hi.Sample.Wpf.dll Demonstrates integration of machining process visualization with interactive strip position selection. Shows how to load a machining project, configure rendering options, and implement user interaction. Provides a complete example of a 3D visualization application with HiAPI and WPF. public static class DemoRenderingMachiningProcessAndStripPosSelection Inheritance object DemoRenderingMachiningProcessAndStripPosSelection Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Remarks Source Code using Hi.WpfPlus.Disp; using System; using Hi.MachiningProcs; using Hi.Common.FileLines; using System.Windows; using Hi.MachiningSteps; using Hi.HiNcKits; namespace Sample.Machining { /// /// Demonstrates integration of machining process visualization with interactive strip position selection. /// Shows how to load a machining project, configure rendering options, and implement user interaction. /// Provides a complete example of a 3D visualization application with HiAPI and WPF. /// /// /// ### Source Code /// [!code-csharp[SampleCode](~/../Hi.Sample.Wpf/Machining/DemoRenderingMachiningProcessAndStripPosSelection.cs)] /// public static class DemoRenderingMachiningProcessAndStripPosSelection { [STAThread] static void Main(string[] args) { LocalApp.AppBegin(); LocalProjectService localProjectService = new LocalProjectService(); #region Load Machining Project var projectPath = \"C:/HiNC-Projects/DemoStandardPath/Main.hincproj\"; Console.WriteLine($\"Load Project: {projectPath}\"); localProjectService.LoadProject(projectPath); MachiningProject machiningProject = localProjectService.MachiningProject; localProjectService.RuntimeApi.MachiningStepSelected += (MachiningStep step) => { var sourceCommand = step.SourceCommand; Console.WriteLine($\"Step Selected: MRR = {step.Mrr_mm3ds} At \\\"{sourceCommand?.FilePath}\\\" (Line {sourceCommand?.GetLineNo()}) \\\"{sourceCommand?.Line}\\\"\"); }; localProjectService.PacePlayer.Start(); #endregion #region Configure Rendering Options var projectDisplayee = new MachiningProjectDisplayee(localProjectService); projectDisplayee.RenderingFlagBitArray[(int)RenderingFlag.Mech] = true; projectDisplayee.RenderingFlagBitArray[(int)RenderingFlag.Fixture] = true; projectDisplayee.RenderingFlagBitArray[(int)RenderingFlag.WorkpieceGeom] = true; projectDisplayee.RenderingFlagBitArray[(int)RenderingFlag.Tool] = true; projectDisplayee.RenderingFlagBitArray[(int)RenderingFlag.ClStrip] = true; projectDisplayee.RenderingFlagBitArray[(int)RenderingFlag.DimensionBar] = true; #endregion #region Create and Run WPF Application Application app = new Application { ShutdownMode = ShutdownMode.OnMainWindowClose }; app.Exit += (o, e) => { machiningProject.Dispose(); LocalApp.AppEnd(); Console.WriteLine($\"App exit.\"); }; app.Run(new RenderingWindow() { Title = \"Demo\", Displayee = projectDisplayee }); #endregion } } }" }, "brief/sample/Sample.Machining.DemoUseMachiningProject.html": { "href": "brief/sample/Sample.Machining.DemoUseMachiningProject.html", "title": "Class DemoUseMachiningProject | HiAPI-C# 2025", - "summary": "Class DemoUseMachiningProject Namespace Sample.Machining Assembly Hi.Sample.dll Demonstrates how to load and use an existing MachiningProject instance. This sample shows how to set up event handlers for messages and machining step objects, execute NC files, and properly manage project resources using Dispose(). public static class DemoUseMachiningProject Inheritance object DemoUseMachiningProject Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Remarks Source Code using Hi.Common.FileLines; using Hi.Common.Messages; using Hi.HiNcKits; using Hi.MachiningProcs; using System; using System.IO; namespace Sample.Machining { /// /// Demonstrates how to load and use an existing instance. /// This sample shows how to set up event handlers for messages and machining step objects, /// execute NC files, and properly manage project resources using /// . /// /// /// ### Source Code /// [!code-csharp[SampleCode](~/../Hi.Sample/Machining/DemoUseMachiningProject.cs)] /// public static class DemoUseMachiningProject { static void Main() { LocalApp.AppBegin(); #region ProjectLoading var projectPath = \"C:/HiNC-Projects/DemoStandardPath/Main.hincproj\"; Console.WriteLine($\"Load Project: {projectPath}\"); MachiningProject machiningProject = MachiningProject.LoadFile(projectPath); #endregion #region EventHandling Console.WriteLine($\"Set message event.\"); using StreamWriter writer = new StreamWriter(\"msg.txt\"); //show message if something abnormal. machiningProject.SessionMessageHost.CollectionItemAdded += pack => { if (pack.Tags.Contains(MessageFlag.Warning.ToString()) || pack.Tags.Contains(MessageFlag.Error.ToString()) || pack.Tags.Contains(MessageFlag.Exception.ToString())) { var sourceCommand = pack.SourceCommand; writer.WriteLine($\"{pack.Message} At \\\"{sourceCommand?.FilePath}\\\" (Line {sourceCommand?.GetLineNo()}) \\\"{sourceCommand?.Line}\\\"\"); } }; Console.WriteLine($\"Set machining step event.\"); //show MRR. machiningProject.RuntimeApi.MachiningStepBuilt += (preStep, curStep) => { var sourceCommand = curStep.SourceCommand; if (curStep.Mrr_mm3ds > 500) //show only the step that contains large MRR. Console.WriteLine($\"MRR = {curStep.Mrr_mm3ds} At \\\"{sourceCommand?.FilePath}\\\" (Line {sourceCommand?.GetLineNo()}) \\\"{sourceCommand?.Line}\\\"\"); }; #endregion #region MachiningExecution Console.WriteLine($\"Reset runtime status.\"); machiningProject.ResetRuntime(); Console.WriteLine($\"Session begin.\"); machiningProject.BeginSession(); machiningProject.RuntimeApi.MachiningResolution_mm = 1; machiningProject.RuntimeApi.EnableCollisionDetection = true; machiningProject.RuntimeApi.EnablePauseOnFailure = false; machiningProject.RuntimeApi.EnablePhysics = false; //the path from Shell-API is relative by project directory. machiningProject.RuntimeApi.PlayNcFile(\"NC/side.ptp\"); machiningProject.RuntimeApi.PlayNcFile(\"NC/circle.ptp\"); machiningProject.EndSession(); Console.WriteLine($\"Session end.\"); #endregion #region CleanupResources Console.WriteLine($\"Close Project: {projectPath}\"); machiningProject.Dispose(); LocalApp.AppEnd(); Console.WriteLine($\"Program end.\"); #endregion } } }" + "summary": "Class DemoUseMachiningProject Namespace Sample.Machining Assembly Hi.Sample.dll Demonstrates how to load and use an existing MachiningProject instance. This sample shows how to set up event handlers for messages and machining step objects, execute NC files, and properly manage project resources using Dispose(). public static class DemoUseMachiningProject Inheritance object DemoUseMachiningProject Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Remarks Source Code using Hi.Common.FileLines; using Hi.Common.Messages; using Hi.HiNcKits; using Hi.MachiningProcs; using System; using System.IO; namespace Sample.Machining { /// /// Demonstrates how to load and use an existing instance. /// This sample shows how to set up event handlers for messages and machining step objects, /// execute NC files, and properly manage project resources using /// . /// /// /// ### Source Code /// [!code-csharp[SampleCode](~/../Hi.Sample/Machining/DemoUseMachiningProject.cs)] /// public static class DemoUseMachiningProject { static void Main() { LocalApp.AppBegin(); LocalProjectService localProjectService = new LocalProjectService(); #region ProjectLoading var projectPath = \"C:/HiNC-Projects/DemoStandardPath/Main.hincproj\"; Console.WriteLine($\"Load Project: {projectPath}\"); localProjectService.LoadProject(projectPath); MachiningProject machiningProject = localProjectService.MachiningProject; #endregion #region EventHandling Console.WriteLine($\"Set message event.\"); using StreamWriter writer = new StreamWriter(\"msg.txt\"); //show message if something abnormal. localProjectService.SessionMessageHost.CollectionItemAdded += pack => { if (pack.Tags.Contains(MessageFlag.Warning.ToString()) || pack.Tags.Contains(MessageFlag.Error.ToString()) || pack.Tags.Contains(MessageFlag.Exception.ToString())) { var sourceCommand = pack.SourceCommand; writer.WriteLine($\"{pack.Message} At \\\"{sourceCommand?.FilePath}\\\" (Line {sourceCommand?.GetLineNo()}) \\\"{sourceCommand?.Line}\\\"\"); } }; Console.WriteLine($\"Set machining step event.\"); //show MRR. localProjectService.RuntimeApi.MachiningStepBuilt += (preStep, curStep) => { var sourceCommand = curStep.SourceCommand; if (curStep.Mrr_mm3ds > 500) //show only the step that contains large MRR. Console.WriteLine($\"MRR = {curStep.Mrr_mm3ds} At \\\"{sourceCommand?.FilePath}\\\" (Line {sourceCommand?.GetLineNo()}) \\\"{sourceCommand?.Line}\\\"\"); }; #endregion #region MachiningExecution Console.WriteLine($\"Reset runtime status.\"); localProjectService.ResetRuntime(); Console.WriteLine($\"Session begin.\"); localProjectService.BeginSession(); localProjectService.RuntimeApi.MachiningResolution_mm = 1; localProjectService.RuntimeApi.EnableCollisionDetection = true; localProjectService.RuntimeApi.EnablePauseOnFailure = false; localProjectService.RuntimeApi.EnablePhysics = false; //the path from Shell-API is relative by project directory. localProjectService.RuntimeApi.PlayNcFile(\"NC/side.ptp\"); localProjectService.RuntimeApi.PlayNcFile(\"NC/circle.ptp\"); localProjectService.EndSession(); Console.WriteLine($\"Session end.\"); #endregion #region CleanupResources Console.WriteLine($\"Close Project: {projectPath}\"); machiningProject.Dispose(); LocalApp.AppEnd(); Console.WriteLine($\"Program end.\"); #endregion } } }" }, "brief/sample/Sample.Machining.html": { "href": "brief/sample/Sample.Machining.html", @@ -5459,6 +5459,11 @@ "title": "刀具壽命與磨耗 | HiAPI-C# 2025", "summary": "刀具壽命與磨耗 刀刃損傷模式繁多,可歸因於瞬間失效的模式,含斷刀、熱崩刃,見本文;而歸因於長時間消耗而失效的模式, 建議以刀面磨耗作為評估刀具壽命的標的 。 HiNC採用磨耗模式1: \\(W(T) = \\frac{k(T) L P}{H(T)}\\) 其中W為磨耗量、k為磨耗係數、L為接觸長度、P為壓力、H為硬度、T為溫度。 HiNC計算的磨耗包含: 刀面磨耗(Crater Wear) 刀緣磨耗寬度(Flank Wear Width) 刀緣磨耗深度(Flank Wear Depth) 此處刀面磨耗係指刀面磨耗深度。 刀緣磨耗寬度在論文中最常用來作為評估標的,因它有量測標準。刀具在平面運動中,會先磨刀峰再磨刀緣,所以在實驗室可以刀緣磨耗寬度評估總磨耗。 但若銑削中刀具有上下運動,刀緣會在刀峰磨完前發生隨機碰撞,此時刀緣磨耗寬度就不具評估總磨耗的價值。 HiNC 計算的 刀緣磨耗寬度,假設刀緣沒有隨機碰撞,僅適用於平面切削,HiNC保留這項數值於研究用途。 Lee, R. S, and J. L Jou. “Application of Numerical Simulation for Wear Analysis of Warm Forging Die.” Journal of Materials Processing Technology, Proceedings of the 6th Asia Pacific Conference on materials Processing, 140, no. 1 (September 22, 2003): 43–48.↩" }, + "brief/user-guide/zh-Hant/theory-and-technique/cpu-usage/index.html": { + "href": "brief/user-guide/zh-Hant/theory-and-technique/cpu-usage/index.html", + "title": "關於仿真過程CPU的使用率 | HiAPI-C# 2025", + "summary": "關於仿真過程CPU的使用率 仿真的運算線程 時序資料的計算是單線程(同一時間只使用一個CPU核心),其他資料則可以平行計算。 幾何移除 幾何移除是單線程,因為按照次序切削才能得到正確的CWE(刀具工件接觸面)。幾何移除後的工件幾何表面是淡粉色,通常代表該處的物理量尚未計算完成。 物理計算 切削力的計算在取得CWE之後,因其不受計算次序影響,一般模式下為多線程計算。力矩等物理量也會在這個步驟多線程計算。 溫度的計算必須是時序,所以又會收斂至單線程。 整個加工仿真的計算過程就這樣分分合合,一個步被計算完成後會在該步著上指定指標的顏色。 CPU的使用率 幾何解析度大時 幾何解析度大的時候,幾何移除較物理計算快,所以仿真過程會看到一大片的淡粉色跟在刀具後面跑。未計算完成的步數有數量限制,幾何移除在該數量內才會運行。 這種情況主要是CPU的多核運算(物理計算),比較容易看到CPU多核使用率偏高。 幾何解析度小時 幾何解析度小的時候,幾何移除較物理計算慢,所以幾乎看不到淡粉色。 這種情況主要是CPU的單核運算(幾何計算)。 平衡狀態 如果幾何解析度剛好使得幾何計算與物理計算不互相拖累,那淡粉色區域會出現但快速消失。此時物理計算不會拖累幾何計算,通常幾何計算才是運算速度的瓶頸。 CPU未跑滿的情況 至於CPU沒有跑滿,可能是作業系統為了確保GUI能即時反應,所以預留空間不讓跑。這部分目前沒有解法。" + }, "brief/user-guide/zh-Hant/theory-and-technique/milling-physics-coordinates.html": { "href": "brief/user-guide/zh-Hant/theory-and-technique/milling-physics-coordinates.html", "title": "銑削物理座標系 | HiAPI-C# 2025", diff --git a/App/wwwroot/HiAPI-docsite/manifest.json b/App/wwwroot/HiAPI-docsite/manifest.json index e403e05..a6ce08a 100644 --- a/App/wwwroot/HiAPI-docsite/manifest.json +++ b/App/wwwroot/HiAPI-docsite/manifest.json @@ -5330,6 +5330,20 @@ "Title": "Hi.MachiningProcs.MachiningActRunner", "Summary": "

    Represents a runner for machining actions that manages milling steps, tool paths, and collision detection.

    \n" }, + { + "type": "ManagedReference", + "source_relative_path": "api/Hi.MachiningProcs.MachiningActRunnerConfig.yml", + "output": { + ".html": { + "relative_path": "api/Hi.MachiningProcs.MachiningActRunnerConfig.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "Hi.MachiningProcs.MachiningActRunnerConfig", + "Summary": "

    Represents the configuration for a milling act runner.\nProvides settings for physics simulation, evaluation, and temperature control.

    \n" + }, { "type": "ManagedReference", "source_relative_path": "api/Hi.MachiningProcs.MachiningParallelProc.StepTaskBundle.yml", @@ -5414,20 +5428,6 @@ "Title": "Hi.MachiningProcs.MachiningSession", "Summary": "

    Represents a machining session that manages the execution and optimization of machining operations.\nProvides functionality for controlling the machining process, handling optimization options,\nand managing session state.

    \n" }, - { - "type": "ManagedReference", - "source_relative_path": "api/Hi.MachiningProcs.MillingActRunnerConfig.yml", - "output": { - ".html": { - "relative_path": "api/Hi.MachiningProcs.MillingActRunnerConfig.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "Hi.MachiningProcs.MillingActRunnerConfig", - "Summary": "

    Represents the configuration for a milling act runner.\nProvides settings for physics simulation, evaluation, and temperature control.

    \n" - }, { "type": "ManagedReference", "source_relative_path": "api/Hi.MachiningProcs.MillingUtil.yml", @@ -12878,44 +12878,44 @@ }, { "type": "ManagedReference", - "source_relative_path": "api/Hi.Wpf.Disp.RenderingCanvas.yml", + "source_relative_path": "api/Hi.WpfPlus.Disp.RenderingCanvas.yml", "output": { ".html": { - "relative_path": "api/Hi.Wpf.Disp.RenderingCanvas.html" + "relative_path": "api/Hi.WpfPlus.Disp.RenderingCanvas.html" } }, "version": "", "Uid": null, "IsMRef": true, - "Title": "Hi.Wpf.Disp.RenderingCanvas", - "Summary": "

    Provides a WPF rendering canvas for 3D visualization of HiAPI components.\nHandles user interactions, rendering, and integration with the DispEngine system.

    \n" + "Title": "Hi.WpfPlus.Disp.RenderingCanvas", + "Summary": "

    Provides a WPF rendering canvas for 3D visualization of HiAPI components.\nHandles user interactions, rendering, and integration with the DispEngine system.

    \n" }, { "type": "ManagedReference", - "source_relative_path": "api/Hi.Wpf.Disp.RenderingWindow.yml", + "source_relative_path": "api/Hi.WpfPlus.Disp.RenderingWindow.yml", "output": { ".html": { - "relative_path": "api/Hi.Wpf.Disp.RenderingWindow.html" + "relative_path": "api/Hi.WpfPlus.Disp.RenderingWindow.html" } }, "version": "", "Uid": null, "IsMRef": true, - "Title": "Hi.Wpf.Disp.RenderingWindow", - "Summary": "

    Window for 3D rendering.

    \n" + "Title": "Hi.WpfPlus.Disp.RenderingWindow", + "Summary": "

    Window for 3D rendering.

    \n" }, { "type": "ManagedReference", - "source_relative_path": "api/Hi.Wpf.Disp.yml", + "source_relative_path": "api/Hi.WpfPlus.Disp.yml", "output": { ".html": { - "relative_path": "api/Hi.Wpf.Disp.html" + "relative_path": "api/Hi.WpfPlus.Disp.html" } }, "version": "", "Uid": null, "IsMRef": true, - "Title": "Hi.Wpf.Disp", + "Title": "Hi.WpfPlus.Disp", "Summary": null }, { @@ -15213,6 +15213,36 @@ }, "version": "" }, + { + "type": "Resource", + "source_relative_path": "brief/user-guide/zh-Hant/theory-and-technique/cpu-usage/geom-quick.png", + "output": { + "resource": { + "relative_path": "brief/user-guide/zh-Hant/theory-and-technique/cpu-usage/geom-quick.png" + } + }, + "version": "" + }, + { + "type": "Resource", + "source_relative_path": "brief/user-guide/zh-Hant/theory-and-technique/cpu-usage/geom-slow.png", + "output": { + "resource": { + "relative_path": "brief/user-guide/zh-Hant/theory-and-technique/cpu-usage/geom-slow.png" + } + }, + "version": "" + }, + { + "type": "Conceptual", + "source_relative_path": "brief/user-guide/zh-Hant/theory-and-technique/cpu-usage/index.md", + "output": { + ".html": { + "relative_path": "brief/user-guide/zh-Hant/theory-and-technique/cpu-usage/index.html" + } + }, + "version": "" + }, { "type": "Resource", "source_relative_path": "brief/user-guide/zh-Hant/theory-and-technique/img/Machining-3-Coordinate.png", diff --git a/App/wwwroot/HiAPI-docsite/xrefmap.yml b/App/wwwroot/HiAPI-docsite/xrefmap.yml index 7fdb489..b172c3b 100644 --- a/App/wwwroot/HiAPI-docsite/xrefmap.yml +++ b/App/wwwroot/HiAPI-docsite/xrefmap.yml @@ -14798,6 +14798,19 @@ references: isSpec: "True" fullName: Hi.CutterLocations.ClStrips.ClStrip.CallRefreshDrawing nameWithType: ClStrip.CallRefreshDrawing +- uid: Hi.CutterLocations.ClStrips.ClStrip.ChartRange + name: ChartRange + href: api/Hi.CutterLocations.ClStrips.ClStrip.html#Hi_CutterLocations_ClStrips_ClStrip_ChartRange + commentId: P:Hi.CutterLocations.ClStrips.ClStrip.ChartRange + fullName: Hi.CutterLocations.ClStrips.ClStrip.ChartRange + nameWithType: ClStrip.ChartRange +- uid: Hi.CutterLocations.ClStrips.ClStrip.ChartRange* + name: ChartRange + href: api/Hi.CutterLocations.ClStrips.ClStrip.html#Hi_CutterLocations_ClStrips_ClStrip_ChartRange_ + commentId: Overload:Hi.CutterLocations.ClStrips.ClStrip.ChartRange + isSpec: "True" + fullName: Hi.CutterLocations.ClStrips.ClStrip.ChartRange + nameWithType: ClStrip.ChartRange - uid: Hi.CutterLocations.ClStrips.ClStrip.Clear(System.Object) name: Clear(object) href: api/Hi.CutterLocations.ClStrips.ClStrip.html#Hi_CutterLocations_ClStrips_ClStrip_Clear_System_Object_ @@ -15072,22 +15085,22 @@ references: isSpec: "True" fullName: Hi.CutterLocations.ClStrips.ClStrip.SetDispEnd nameWithType: ClStrip.SetDispEnd -- uid: Hi.CutterLocations.ClStrips.ClStrip.SetDispRange(System.Int32,System.Int32,System.Object,System.Int32) - name: SetDispRange(int, int, object, int) - href: api/Hi.CutterLocations.ClStrips.ClStrip.html#Hi_CutterLocations_ClStrips_ClStrip_SetDispRange_System_Int32_System_Int32_System_Object_System_Int32_ - commentId: M:Hi.CutterLocations.ClStrips.ClStrip.SetDispRange(System.Int32,System.Int32,System.Object,System.Int32) - name.vb: SetDispRange(Integer, Integer, Object, Integer) - fullName: Hi.CutterLocations.ClStrips.ClStrip.SetDispRange(int, int, object, int) - fullName.vb: Hi.CutterLocations.ClStrips.ClStrip.SetDispRange(Integer, Integer, Object, Integer) - nameWithType: ClStrip.SetDispRange(int, int, object, int) - nameWithType.vb: ClStrip.SetDispRange(Integer, Integer, Object, Integer) -- uid: Hi.CutterLocations.ClStrips.ClStrip.SetDispRange* - name: SetDispRange - href: api/Hi.CutterLocations.ClStrips.ClStrip.html#Hi_CutterLocations_ClStrips_ClStrip_SetDispRange_ - commentId: Overload:Hi.CutterLocations.ClStrips.ClStrip.SetDispRange +- uid: Hi.CutterLocations.ClStrips.ClStrip.SetDispSegment(System.Int32,System.Int32,System.Object,System.Int32) + name: SetDispSegment(int, int, object, int) + href: api/Hi.CutterLocations.ClStrips.ClStrip.html#Hi_CutterLocations_ClStrips_ClStrip_SetDispSegment_System_Int32_System_Int32_System_Object_System_Int32_ + commentId: M:Hi.CutterLocations.ClStrips.ClStrip.SetDispSegment(System.Int32,System.Int32,System.Object,System.Int32) + name.vb: SetDispSegment(Integer, Integer, Object, Integer) + fullName: Hi.CutterLocations.ClStrips.ClStrip.SetDispSegment(int, int, object, int) + fullName.vb: Hi.CutterLocations.ClStrips.ClStrip.SetDispSegment(Integer, Integer, Object, Integer) + nameWithType: ClStrip.SetDispSegment(int, int, object, int) + nameWithType.vb: ClStrip.SetDispSegment(Integer, Integer, Object, Integer) +- uid: Hi.CutterLocations.ClStrips.ClStrip.SetDispSegment* + name: SetDispSegment + href: api/Hi.CutterLocations.ClStrips.ClStrip.html#Hi_CutterLocations_ClStrips_ClStrip_SetDispSegment_ + commentId: Overload:Hi.CutterLocations.ClStrips.ClStrip.SetDispSegment isSpec: "True" - fullName: Hi.CutterLocations.ClStrips.ClStrip.SetDispRange - nameWithType: ClStrip.SetDispRange + fullName: Hi.CutterLocations.ClStrips.ClStrip.SetDispSegment + nameWithType: ClStrip.SetDispSegment - uid: Hi.CutterLocations.ClStrips.ClStrip.SetEnteredPos(Hi.CutterLocations.ClStrips.ClStripPos,System.Object) name: SetEnteredPos(ClStripPos, object) href: api/Hi.CutterLocations.ClStrips.ClStrip.html#Hi_CutterLocations_ClStrips_ClStrip_SetEnteredPos_Hi_CutterLocations_ClStrips_ClStripPos_System_Object_ @@ -15194,6 +15207,35 @@ references: fullName.vb: Hi.CutterLocations.ClStrips.ClStrip.StripPosesThreadSafeSelect(Of T)(System.Func(Of Hi.CutterLocations.ClStrips.ClStripPos, T)) nameWithType: ClStrip.StripPosesThreadSafeSelect(Func) nameWithType.vb: ClStrip.StripPosesThreadSafeSelect(Of T)(Func(Of ClStripPos, T)) +- uid: Hi.CutterLocations.ClStrips.ClStrip.UpdateChartRangeByDispSegment + name: UpdateChartRangeByDispSegment() + href: api/Hi.CutterLocations.ClStrips.ClStrip.html#Hi_CutterLocations_ClStrips_ClStrip_UpdateChartRangeByDispSegment + commentId: M:Hi.CutterLocations.ClStrips.ClStrip.UpdateChartRangeByDispSegment + fullName: Hi.CutterLocations.ClStrips.ClStrip.UpdateChartRangeByDispSegment() + nameWithType: ClStrip.UpdateChartRangeByDispSegment() +- uid: Hi.CutterLocations.ClStrips.ClStrip.UpdateChartRangeByDispSegment* + name: UpdateChartRangeByDispSegment + href: api/Hi.CutterLocations.ClStrips.ClStrip.html#Hi_CutterLocations_ClStrips_ClStrip_UpdateChartRangeByDispSegment_ + commentId: Overload:Hi.CutterLocations.ClStrips.ClStrip.UpdateChartRangeByDispSegment + isSpec: "True" + fullName: Hi.CutterLocations.ClStrips.ClStrip.UpdateChartRangeByDispSegment + nameWithType: ClStrip.UpdateChartRangeByDispSegment +- uid: Hi.CutterLocations.ClStrips.ClStrip.UpdateDispSegmentByChartRange(System.Object) + name: UpdateDispSegmentByChartRange(object) + href: api/Hi.CutterLocations.ClStrips.ClStrip.html#Hi_CutterLocations_ClStrips_ClStrip_UpdateDispSegmentByChartRange_System_Object_ + commentId: M:Hi.CutterLocations.ClStrips.ClStrip.UpdateDispSegmentByChartRange(System.Object) + name.vb: UpdateDispSegmentByChartRange(Object) + fullName: Hi.CutterLocations.ClStrips.ClStrip.UpdateDispSegmentByChartRange(object) + fullName.vb: Hi.CutterLocations.ClStrips.ClStrip.UpdateDispSegmentByChartRange(Object) + nameWithType: ClStrip.UpdateDispSegmentByChartRange(object) + nameWithType.vb: ClStrip.UpdateDispSegmentByChartRange(Object) +- uid: Hi.CutterLocations.ClStrips.ClStrip.UpdateDispSegmentByChartRange* + name: UpdateDispSegmentByChartRange + href: api/Hi.CutterLocations.ClStrips.ClStrip.html#Hi_CutterLocations_ClStrips_ClStrip_UpdateDispSegmentByChartRange_ + commentId: Overload:Hi.CutterLocations.ClStrips.ClStrip.UpdateDispSegmentByChartRange + isSpec: "True" + fullName: Hi.CutterLocations.ClStrips.ClStrip.UpdateDispSegmentByChartRange + nameWithType: ClStrip.UpdateDispSegmentByChartRange - uid: Hi.CutterLocations.ClStrips.ClStrip.slice_distance name: slice_distance href: api/Hi.CutterLocations.ClStrips.ClStrip.html#Hi_CutterLocations_ClStrips_ClStrip_slice_distance @@ -63398,6 +63440,22 @@ references: isSpec: "True" fullName: Hi.Geom.MathUtil.Cbrt nameWithType: MathUtil.Cbrt +- uid: Hi.Geom.MathUtil.Clamp* + name: Clamp + href: api/Hi.Geom.MathUtil.html#Hi_Geom_MathUtil_Clamp_ + commentId: Overload:Hi.Geom.MathUtil.Clamp + isSpec: "True" + fullName: Hi.Geom.MathUtil.Clamp + nameWithType: MathUtil.Clamp +- uid: Hi.Geom.MathUtil.Clamp``1(``0,``0,``0) + name: Clamp(T, T, T) + href: api/Hi.Geom.MathUtil.html#Hi_Geom_MathUtil_Clamp__1___0___0___0_ + commentId: M:Hi.Geom.MathUtil.Clamp``1(``0,``0,``0) + name.vb: Clamp(Of T)(T, T, T) + fullName: Hi.Geom.MathUtil.Clamp(T, T, T) + fullName.vb: Hi.Geom.MathUtil.Clamp(Of T)(T, T, T) + nameWithType: MathUtil.Clamp(T, T, T) + nameWithType.vb: MathUtil.Clamp(Of T)(T, T, T) - uid: Hi.Geom.MathUtil.Convert_inchdmin_To_mmds(System.Double) name: Convert_inchdmin_To_mmds(double) href: api/Hi.Geom.MathUtil.html#Hi_Geom_MathUtil_Convert_inchdmin_To_mmds_System_Double_ @@ -72183,15 +72241,15 @@ references: commentId: T:Hi.Grpcs.ClStripServiceRunner fullName: Hi.Grpcs.ClStripServiceRunner nameWithType: ClStripServiceRunner -- uid: Hi.Grpcs.ClStripServiceRunner.#ctor(System.Func{Hi.MachiningProcs.MachiningProject}) - name: ClStripServiceRunner(Func) - href: api/Hi.Grpcs.ClStripServiceRunner.html#Hi_Grpcs_ClStripServiceRunner__ctor_System_Func_Hi_MachiningProcs_MachiningProject__ - commentId: M:Hi.Grpcs.ClStripServiceRunner.#ctor(System.Func{Hi.MachiningProcs.MachiningProject}) - name.vb: New(Func(Of MachiningProject)) - fullName: Hi.Grpcs.ClStripServiceRunner.ClStripServiceRunner(System.Func) - fullName.vb: Hi.Grpcs.ClStripServiceRunner.New(System.Func(Of Hi.MachiningProcs.MachiningProject)) - nameWithType: ClStripServiceRunner.ClStripServiceRunner(Func) - nameWithType.vb: ClStripServiceRunner.New(Func(Of MachiningProject)) +- uid: Hi.Grpcs.ClStripServiceRunner.#ctor(Hi.MachiningProcs.LocalProjectService) + name: ClStripServiceRunner(LocalProjectService) + href: api/Hi.Grpcs.ClStripServiceRunner.html#Hi_Grpcs_ClStripServiceRunner__ctor_Hi_MachiningProcs_LocalProjectService_ + commentId: M:Hi.Grpcs.ClStripServiceRunner.#ctor(Hi.MachiningProcs.LocalProjectService) + name.vb: New(LocalProjectService) + fullName: Hi.Grpcs.ClStripServiceRunner.ClStripServiceRunner(Hi.MachiningProcs.LocalProjectService) + fullName.vb: Hi.Grpcs.ClStripServiceRunner.New(Hi.MachiningProcs.LocalProjectService) + nameWithType: ClStripServiceRunner.ClStripServiceRunner(LocalProjectService) + nameWithType.vb: ClStripServiceRunner.New(LocalProjectService) - uid: Hi.Grpcs.ClStripServiceRunner.#ctor* name: ClStripServiceRunner href: api/Hi.Grpcs.ClStripServiceRunner.html#Hi_Grpcs_ClStripServiceRunner__ctor_ @@ -72781,15 +72839,15 @@ references: commentId: T:Hi.Grpcs.PlayerServiceRunner fullName: Hi.Grpcs.PlayerServiceRunner nameWithType: PlayerServiceRunner -- uid: Hi.Grpcs.PlayerServiceRunner.#ctor(System.Func{Hi.MachiningProcs.MachiningProject}) - name: PlayerServiceRunner(Func) - href: api/Hi.Grpcs.PlayerServiceRunner.html#Hi_Grpcs_PlayerServiceRunner__ctor_System_Func_Hi_MachiningProcs_MachiningProject__ - commentId: M:Hi.Grpcs.PlayerServiceRunner.#ctor(System.Func{Hi.MachiningProcs.MachiningProject}) - name.vb: New(Func(Of MachiningProject)) - fullName: Hi.Grpcs.PlayerServiceRunner.PlayerServiceRunner(System.Func) - fullName.vb: Hi.Grpcs.PlayerServiceRunner.New(System.Func(Of Hi.MachiningProcs.MachiningProject)) - nameWithType: PlayerServiceRunner.PlayerServiceRunner(Func) - nameWithType.vb: PlayerServiceRunner.New(Func(Of MachiningProject)) +- uid: Hi.Grpcs.PlayerServiceRunner.#ctor(Hi.MachiningProcs.LocalProjectService) + name: PlayerServiceRunner(LocalProjectService) + href: api/Hi.Grpcs.PlayerServiceRunner.html#Hi_Grpcs_PlayerServiceRunner__ctor_Hi_MachiningProcs_LocalProjectService_ + commentId: M:Hi.Grpcs.PlayerServiceRunner.#ctor(Hi.MachiningProcs.LocalProjectService) + name.vb: New(LocalProjectService) + fullName: Hi.Grpcs.PlayerServiceRunner.PlayerServiceRunner(Hi.MachiningProcs.LocalProjectService) + fullName.vb: Hi.Grpcs.PlayerServiceRunner.New(Hi.MachiningProcs.LocalProjectService) + nameWithType: PlayerServiceRunner.PlayerServiceRunner(LocalProjectService) + nameWithType.vb: PlayerServiceRunner.New(LocalProjectService) - uid: Hi.Grpcs.PlayerServiceRunner.#ctor* name: PlayerServiceRunner href: api/Hi.Grpcs.PlayerServiceRunner.html#Hi_Grpcs_PlayerServiceRunner__ctor_ @@ -73162,6 +73220,19 @@ references: isSpec: "True" fullName: Hi.HiNcKits.HiNcHost.LoadProjectByRelativePath nameWithType: HiNcHost.LoadProjectByRelativePath +- uid: Hi.HiNcKits.HiNcHost.LocalProjectService + name: LocalProjectService + href: api/Hi.HiNcKits.HiNcHost.html#Hi_HiNcKits_HiNcHost_LocalProjectService + commentId: P:Hi.HiNcKits.HiNcHost.LocalProjectService + fullName: Hi.HiNcKits.HiNcHost.LocalProjectService + nameWithType: HiNcHost.LocalProjectService +- uid: Hi.HiNcKits.HiNcHost.LocalProjectService* + name: LocalProjectService + href: api/Hi.HiNcKits.HiNcHost.html#Hi_HiNcKits_HiNcHost_LocalProjectService_ + commentId: Overload:Hi.HiNcKits.HiNcHost.LocalProjectService + isSpec: "True" + fullName: Hi.HiNcKits.HiNcHost.LocalProjectService + nameWithType: HiNcHost.LocalProjectService - uid: Hi.HiNcKits.HiNcHost.MachiningProject name: MachiningProject href: api/Hi.HiNcKits.HiNcHost.html#Hi_HiNcKits_HiNcHost_MachiningProject @@ -75395,12 +75466,6 @@ references: isSpec: "True" fullName: Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.MachiningChain nameWithType: MachiningEquipment.MachiningChain -- uid: Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.MachiningChainChanged - name: MachiningChainChanged - href: api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html#Hi_Machining_MachiningEquipmentUtils_MachiningEquipment_MachiningChainChanged - commentId: E:Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.MachiningChainChanged - fullName: Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.MachiningChainChanged - nameWithType: MachiningEquipment.MachiningChainChanged - uid: Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.MachiningChainFile name: MachiningChainFile href: api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html#Hi_Machining_MachiningEquipmentUtils_MachiningEquipment_MachiningChainFile @@ -75537,12 +75602,6 @@ references: isSpec: "True" fullName: Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.Workpiece nameWithType: MachiningEquipment.Workpiece -- uid: Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.WorkpieceChanged - name: WorkpieceChanged - href: api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html#Hi_Machining_MachiningEquipmentUtils_MachiningEquipment_WorkpieceChanged - commentId: E:Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.WorkpieceChanged - fullName: Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.WorkpieceChanged - nameWithType: MachiningEquipment.WorkpieceChanged - uid: Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.XName name: XName href: api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html#Hi_Machining_MachiningEquipmentUtils_MachiningEquipment_XName @@ -75952,15 +76011,15 @@ references: commentId: T:Hi.Machining.MachiningVolumeRemovalProc fullName: Hi.Machining.MachiningVolumeRemovalProc nameWithType: MachiningVolumeRemovalProc -- uid: Hi.Machining.MachiningVolumeRemovalProc.#ctor - name: MachiningVolumeRemovalProc() - href: api/Hi.Machining.MachiningVolumeRemovalProc.html#Hi_Machining_MachiningVolumeRemovalProc__ctor - commentId: M:Hi.Machining.MachiningVolumeRemovalProc.#ctor - name.vb: New() - fullName: Hi.Machining.MachiningVolumeRemovalProc.MachiningVolumeRemovalProc() - fullName.vb: Hi.Machining.MachiningVolumeRemovalProc.New() - nameWithType: MachiningVolumeRemovalProc.MachiningVolumeRemovalProc() - nameWithType.vb: MachiningVolumeRemovalProc.New() +- uid: Hi.Machining.MachiningVolumeRemovalProc.#ctor(System.Func{Hi.Machining.MachiningEquipmentUtils.MachiningEquipment}) + name: MachiningVolumeRemovalProc(Func) + href: api/Hi.Machining.MachiningVolumeRemovalProc.html#Hi_Machining_MachiningVolumeRemovalProc__ctor_System_Func_Hi_Machining_MachiningEquipmentUtils_MachiningEquipment__ + commentId: M:Hi.Machining.MachiningVolumeRemovalProc.#ctor(System.Func{Hi.Machining.MachiningEquipmentUtils.MachiningEquipment}) + name.vb: New(Func(Of MachiningEquipment)) + fullName: Hi.Machining.MachiningVolumeRemovalProc.MachiningVolumeRemovalProc(System.Func) + fullName.vb: Hi.Machining.MachiningVolumeRemovalProc.New(System.Func(Of Hi.Machining.MachiningEquipmentUtils.MachiningEquipment)) + nameWithType: MachiningVolumeRemovalProc.MachiningVolumeRemovalProc(Func) + nameWithType.vb: MachiningVolumeRemovalProc.New(Func(Of MachiningEquipment)) - uid: Hi.Machining.MachiningVolumeRemovalProc.#ctor* name: MachiningVolumeRemovalProc href: api/Hi.Machining.MachiningVolumeRemovalProc.html#Hi_Machining_MachiningVolumeRemovalProc__ctor_ @@ -76003,19 +76062,6 @@ references: commentId: E:Hi.Machining.MachiningVolumeRemovalProc.CutterChanged fullName: Hi.Machining.MachiningVolumeRemovalProc.CutterChanged nameWithType: MachiningVolumeRemovalProc.CutterChanged -- uid: Hi.Machining.MachiningVolumeRemovalProc.MachiningEquipment - name: MachiningEquipment - href: api/Hi.Machining.MachiningVolumeRemovalProc.html#Hi_Machining_MachiningVolumeRemovalProc_MachiningEquipment - commentId: P:Hi.Machining.MachiningVolumeRemovalProc.MachiningEquipment - fullName: Hi.Machining.MachiningVolumeRemovalProc.MachiningEquipment - nameWithType: MachiningVolumeRemovalProc.MachiningEquipment -- uid: Hi.Machining.MachiningVolumeRemovalProc.MachiningEquipment* - name: MachiningEquipment - href: api/Hi.Machining.MachiningVolumeRemovalProc.html#Hi_Machining_MachiningVolumeRemovalProc_MachiningEquipment_ - commentId: Overload:Hi.Machining.MachiningVolumeRemovalProc.MachiningEquipment - isSpec: "True" - fullName: Hi.Machining.MachiningVolumeRemovalProc.MachiningEquipment - nameWithType: MachiningVolumeRemovalProc.MachiningEquipment - uid: Hi.Machining.MachiningVolumeRemovalProc.StepAssignDummyAttach(Hi.NcMech.Workpieces.Workpiece,Hi.CutterLocations.ClStrips.ClStrip,Hi.Geom.DVec3d) name: StepAssignDummyAttach(Workpiece, ClStrip, DVec3d) href: api/Hi.Machining.MachiningVolumeRemovalProc.html#Hi_Machining_MachiningVolumeRemovalProc_StepAssignDummyAttach_Hi_NcMech_Workpieces_Workpiece_Hi_CutterLocations_ClStrips_ClStrip_Hi_Geom_DVec3d_ @@ -76672,24 +76718,24 @@ references: commentId: T:Hi.MachiningProcs.DynamicMachiningProjectDisplayee0 fullName: Hi.MachiningProcs.DynamicMachiningProjectDisplayee0 nameWithType: DynamicMachiningProjectDisplayee0 -- uid: Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.#ctor(System.Func{Hi.MachiningProcs.MachiningProject}) - name: DynamicMachiningProjectDisplayee0(Func) - href: api/Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.html#Hi_MachiningProcs_DynamicMachiningProjectDisplayee0__ctor_System_Func_Hi_MachiningProcs_MachiningProject__ - commentId: M:Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.#ctor(System.Func{Hi.MachiningProcs.MachiningProject}) - name.vb: New(Func(Of MachiningProject)) - fullName: Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.DynamicMachiningProjectDisplayee0(System.Func) - fullName.vb: Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.New(System.Func(Of Hi.MachiningProcs.MachiningProject)) - nameWithType: DynamicMachiningProjectDisplayee0.DynamicMachiningProjectDisplayee0(Func) - nameWithType.vb: DynamicMachiningProjectDisplayee0.New(Func(Of MachiningProject)) -- uid: Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.#ctor(System.Func{Hi.MachiningProcs.MachiningProject},System.Collections.BitArray,System.Action{System.Collections.BitArray}) - name: DynamicMachiningProjectDisplayee0(Func, BitArray, Action) - href: api/Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.html#Hi_MachiningProcs_DynamicMachiningProjectDisplayee0__ctor_System_Func_Hi_MachiningProcs_MachiningProject__System_Collections_BitArray_System_Action_System_Collections_BitArray__ - commentId: M:Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.#ctor(System.Func{Hi.MachiningProcs.MachiningProject},System.Collections.BitArray,System.Action{System.Collections.BitArray}) - name.vb: New(Func(Of MachiningProject), BitArray, Action(Of BitArray)) - fullName: Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.DynamicMachiningProjectDisplayee0(System.Func, System.Collections.BitArray, System.Action) - fullName.vb: Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.New(System.Func(Of Hi.MachiningProcs.MachiningProject), System.Collections.BitArray, System.Action(Of System.Collections.BitArray)) - nameWithType: DynamicMachiningProjectDisplayee0.DynamicMachiningProjectDisplayee0(Func, BitArray, Action) - nameWithType.vb: DynamicMachiningProjectDisplayee0.New(Func(Of MachiningProject), BitArray, Action(Of BitArray)) +- uid: Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.#ctor(Hi.MachiningProcs.LocalProjectService) + name: DynamicMachiningProjectDisplayee0(LocalProjectService) + href: api/Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.html#Hi_MachiningProcs_DynamicMachiningProjectDisplayee0__ctor_Hi_MachiningProcs_LocalProjectService_ + commentId: M:Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.#ctor(Hi.MachiningProcs.LocalProjectService) + name.vb: New(LocalProjectService) + fullName: Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.DynamicMachiningProjectDisplayee0(Hi.MachiningProcs.LocalProjectService) + fullName.vb: Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.New(Hi.MachiningProcs.LocalProjectService) + nameWithType: DynamicMachiningProjectDisplayee0.DynamicMachiningProjectDisplayee0(LocalProjectService) + nameWithType.vb: DynamicMachiningProjectDisplayee0.New(LocalProjectService) +- uid: Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.#ctor(Hi.MachiningProcs.LocalProjectService,System.Collections.BitArray,System.Action{System.Collections.BitArray}) + name: DynamicMachiningProjectDisplayee0(LocalProjectService, BitArray, Action) + href: api/Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.html#Hi_MachiningProcs_DynamicMachiningProjectDisplayee0__ctor_Hi_MachiningProcs_LocalProjectService_System_Collections_BitArray_System_Action_System_Collections_BitArray__ + commentId: M:Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.#ctor(Hi.MachiningProcs.LocalProjectService,System.Collections.BitArray,System.Action{System.Collections.BitArray}) + name.vb: New(LocalProjectService, BitArray, Action(Of BitArray)) + fullName: Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.DynamicMachiningProjectDisplayee0(Hi.MachiningProcs.LocalProjectService, System.Collections.BitArray, System.Action) + fullName.vb: Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.New(Hi.MachiningProcs.LocalProjectService, System.Collections.BitArray, System.Action(Of System.Collections.BitArray)) + nameWithType: DynamicMachiningProjectDisplayee0.DynamicMachiningProjectDisplayee0(LocalProjectService, BitArray, Action) + nameWithType.vb: DynamicMachiningProjectDisplayee0.New(LocalProjectService, BitArray, Action(Of BitArray)) - uid: Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.#ctor* name: DynamicMachiningProjectDisplayee0 href: api/Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.html#Hi_MachiningProcs_DynamicMachiningProjectDisplayee0__ctor_ @@ -76739,6 +76785,19 @@ references: isSpec: "True" fullName: Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.GetAnchor nameWithType: DynamicMachiningProjectDisplayee0.GetAnchor +- uid: Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.LocalProjectService + name: LocalProjectService + href: api/Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.html#Hi_MachiningProcs_DynamicMachiningProjectDisplayee0_LocalProjectService + commentId: P:Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.LocalProjectService + fullName: Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.LocalProjectService + nameWithType: DynamicMachiningProjectDisplayee0.LocalProjectService +- uid: Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.LocalProjectService* + name: LocalProjectService + href: api/Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.html#Hi_MachiningProcs_DynamicMachiningProjectDisplayee0_LocalProjectService_ + commentId: Overload:Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.LocalProjectService + isSpec: "True" + fullName: Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.LocalProjectService + nameWithType: DynamicMachiningProjectDisplayee0.LocalProjectService - uid: Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.MachiningProject name: MachiningProject href: api/Hi.MachiningProcs.DynamicMachiningProjectDisplayee0.html#Hi_MachiningProcs_DynamicMachiningProjectDisplayee0_MachiningProject @@ -76850,48 +76909,58 @@ references: fullName.vb: Hi.MachiningProcs.LocalProjectService.New nameWithType: LocalProjectService.LocalProjectService nameWithType.vb: LocalProjectService.New -- uid: Hi.MachiningProcs.LocalProjectService.ClStrip_AbsDispEndChanged - name: ClStrip_AbsDispEndChanged - href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_ClStrip_AbsDispEndChanged - commentId: E:Hi.MachiningProcs.LocalProjectService.ClStrip_AbsDispEndChanged - fullName: Hi.MachiningProcs.LocalProjectService.ClStrip_AbsDispEndChanged - nameWithType: LocalProjectService.ClStrip_AbsDispEndChanged -- uid: Hi.MachiningProcs.LocalProjectService.ClStrip_DispBeginChanged - name: ClStrip_DispBeginChanged - href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_ClStrip_DispBeginChanged - commentId: E:Hi.MachiningProcs.LocalProjectService.ClStrip_DispBeginChanged - fullName: Hi.MachiningProcs.LocalProjectService.ClStrip_DispBeginChanged - nameWithType: LocalProjectService.ClStrip_DispBeginChanged -- uid: Hi.MachiningProcs.LocalProjectService.ClStrip_DispEndChanged - name: ClStrip_DispEndChanged - href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_ClStrip_DispEndChanged - commentId: E:Hi.MachiningProcs.LocalProjectService.ClStrip_DispEndChanged - fullName: Hi.MachiningProcs.LocalProjectService.ClStrip_DispEndChanged - nameWithType: LocalProjectService.ClStrip_DispEndChanged -- uid: Hi.MachiningProcs.LocalProjectService.ClStrip_MachiningStepSelected - name: ClStrip_MachiningStepSelected - href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_ClStrip_MachiningStepSelected - commentId: E:Hi.MachiningProcs.LocalProjectService.ClStrip_MachiningStepSelected - fullName: Hi.MachiningProcs.LocalProjectService.ClStrip_MachiningStepSelected - nameWithType: LocalProjectService.ClStrip_MachiningStepSelected -- uid: Hi.MachiningProcs.LocalProjectService.ClStrip_PosAdded - name: ClStrip_PosAdded - href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_ClStrip_PosAdded - commentId: E:Hi.MachiningProcs.LocalProjectService.ClStrip_PosAdded - fullName: Hi.MachiningProcs.LocalProjectService.ClStrip_PosAdded - nameWithType: LocalProjectService.ClStrip_PosAdded -- uid: Hi.MachiningProcs.LocalProjectService.ClStrip_PosEntered - name: ClStrip_PosEntered - href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_ClStrip_PosEntered - commentId: E:Hi.MachiningProcs.LocalProjectService.ClStrip_PosEntered - fullName: Hi.MachiningProcs.LocalProjectService.ClStrip_PosEntered - nameWithType: LocalProjectService.ClStrip_PosEntered -- uid: Hi.MachiningProcs.LocalProjectService.ClStrip_PosSelected - name: ClStrip_PosSelected - href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_ClStrip_PosSelected - commentId: E:Hi.MachiningProcs.LocalProjectService.ClStrip_PosSelected - fullName: Hi.MachiningProcs.LocalProjectService.ClStrip_PosSelected - nameWithType: LocalProjectService.ClStrip_PosSelected +- uid: Hi.MachiningProcs.LocalProjectService.Act(Hi.Numerical.Acts.IAct,Hi.Common.FileLines.IIndexedFileLine,System.Nullable{System.Threading.CancellationToken}) + name: Act(IAct, IIndexedFileLine, CancellationToken?) + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_Act_Hi_Numerical_Acts_IAct_Hi_Common_FileLines_IIndexedFileLine_System_Nullable_System_Threading_CancellationToken__ + commentId: M:Hi.MachiningProcs.LocalProjectService.Act(Hi.Numerical.Acts.IAct,Hi.Common.FileLines.IIndexedFileLine,System.Nullable{System.Threading.CancellationToken}) + fullName: Hi.MachiningProcs.LocalProjectService.Act(Hi.Numerical.Acts.IAct, Hi.Common.FileLines.IIndexedFileLine, System.Threading.CancellationToken?) + nameWithType: LocalProjectService.Act(IAct, IIndexedFileLine, CancellationToken?) +- uid: Hi.MachiningProcs.LocalProjectService.Act* + name: Act + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_Act_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.Act + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.Act + nameWithType: LocalProjectService.Act +- uid: Hi.MachiningProcs.LocalProjectService.BeginSession + name: BeginSession() + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_BeginSession + commentId: M:Hi.MachiningProcs.LocalProjectService.BeginSession + fullName: Hi.MachiningProcs.LocalProjectService.BeginSession() + nameWithType: LocalProjectService.BeginSession() +- uid: Hi.MachiningProcs.LocalProjectService.BeginSession* + name: BeginSession + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_BeginSession_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.BeginSession + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.BeginSession + nameWithType: LocalProjectService.BeginSession +- uid: Hi.MachiningProcs.LocalProjectService.BoundSelectorHost + name: BoundSelectorHost + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_BoundSelectorHost + commentId: P:Hi.MachiningProcs.LocalProjectService.BoundSelectorHost + fullName: Hi.MachiningProcs.LocalProjectService.BoundSelectorHost + nameWithType: LocalProjectService.BoundSelectorHost +- uid: Hi.MachiningProcs.LocalProjectService.BoundSelectorHost* + name: BoundSelectorHost + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_BoundSelectorHost_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.BoundSelectorHost + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.BoundSelectorHost + nameWithType: LocalProjectService.BoundSelectorHost +- uid: Hi.MachiningProcs.LocalProjectService.ClStrip + name: ClStrip + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_ClStrip + commentId: P:Hi.MachiningProcs.LocalProjectService.ClStrip + fullName: Hi.MachiningProcs.LocalProjectService.ClStrip + nameWithType: LocalProjectService.ClStrip +- uid: Hi.MachiningProcs.LocalProjectService.ClStrip* + name: ClStrip + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_ClStrip_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.ClStrip + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.ClStrip + nameWithType: LocalProjectService.ClStrip - uid: Hi.MachiningProcs.LocalProjectService.CloseProject name: CloseProject() href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_CloseProject @@ -76905,6 +76974,132 @@ references: isSpec: "True" fullName: Hi.MachiningProcs.LocalProjectService.CloseProject nameWithType: LocalProjectService.CloseProject +- uid: Hi.MachiningProcs.LocalProjectService.CoordinateEntryDisplayee + name: CoordinateEntryDisplayee + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_CoordinateEntryDisplayee + commentId: P:Hi.MachiningProcs.LocalProjectService.CoordinateEntryDisplayee + fullName: Hi.MachiningProcs.LocalProjectService.CoordinateEntryDisplayee + nameWithType: LocalProjectService.CoordinateEntryDisplayee +- uid: Hi.MachiningProcs.LocalProjectService.CoordinateEntryDisplayee* + name: CoordinateEntryDisplayee + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_CoordinateEntryDisplayee_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.CoordinateEntryDisplayee + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.CoordinateEntryDisplayee + nameWithType: LocalProjectService.CoordinateEntryDisplayee +- uid: Hi.MachiningProcs.LocalProjectService.DictionaryColorGuide + name: DictionaryColorGuide + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_DictionaryColorGuide + commentId: P:Hi.MachiningProcs.LocalProjectService.DictionaryColorGuide + fullName: Hi.MachiningProcs.LocalProjectService.DictionaryColorGuide + nameWithType: LocalProjectService.DictionaryColorGuide +- uid: Hi.MachiningProcs.LocalProjectService.DictionaryColorGuide* + name: DictionaryColorGuide + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_DictionaryColorGuide_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.DictionaryColorGuide + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.DictionaryColorGuide + nameWithType: LocalProjectService.DictionaryColorGuide +- uid: Hi.MachiningProcs.LocalProjectService.Dispose + name: Dispose() + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_Dispose + commentId: M:Hi.MachiningProcs.LocalProjectService.Dispose + fullName: Hi.MachiningProcs.LocalProjectService.Dispose() + nameWithType: LocalProjectService.Dispose() +- uid: Hi.MachiningProcs.LocalProjectService.Dispose(System.Boolean) + name: Dispose(bool) + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_Dispose_System_Boolean_ + commentId: M:Hi.MachiningProcs.LocalProjectService.Dispose(System.Boolean) + name.vb: Dispose(Boolean) + fullName: Hi.MachiningProcs.LocalProjectService.Dispose(bool) + fullName.vb: Hi.MachiningProcs.LocalProjectService.Dispose(Boolean) + nameWithType: LocalProjectService.Dispose(bool) + nameWithType.vb: LocalProjectService.Dispose(Boolean) +- uid: Hi.MachiningProcs.LocalProjectService.Dispose* + name: Dispose + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_Dispose_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.Dispose + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.Dispose + nameWithType: LocalProjectService.Dispose +- uid: Hi.MachiningProcs.LocalProjectService.EnableCollisionDetection + name: EnableCollisionDetection + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_EnableCollisionDetection + commentId: P:Hi.MachiningProcs.LocalProjectService.EnableCollisionDetection + fullName: Hi.MachiningProcs.LocalProjectService.EnableCollisionDetection + nameWithType: LocalProjectService.EnableCollisionDetection +- uid: Hi.MachiningProcs.LocalProjectService.EnableCollisionDetection* + name: EnableCollisionDetection + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_EnableCollisionDetection_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.EnableCollisionDetection + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.EnableCollisionDetection + nameWithType: LocalProjectService.EnableCollisionDetection +- uid: Hi.MachiningProcs.LocalProjectService.EnablePauseOnFailure + name: EnablePauseOnFailure + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_EnablePauseOnFailure + commentId: P:Hi.MachiningProcs.LocalProjectService.EnablePauseOnFailure + fullName: Hi.MachiningProcs.LocalProjectService.EnablePauseOnFailure + nameWithType: LocalProjectService.EnablePauseOnFailure +- uid: Hi.MachiningProcs.LocalProjectService.EnablePauseOnFailure* + name: EnablePauseOnFailure + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_EnablePauseOnFailure_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.EnablePauseOnFailure + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.EnablePauseOnFailure + nameWithType: LocalProjectService.EnablePauseOnFailure +- uid: Hi.MachiningProcs.LocalProjectService.EnableStrokeLimitCheck + name: EnableStrokeLimitCheck + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_EnableStrokeLimitCheck + commentId: P:Hi.MachiningProcs.LocalProjectService.EnableStrokeLimitCheck + fullName: Hi.MachiningProcs.LocalProjectService.EnableStrokeLimitCheck + nameWithType: LocalProjectService.EnableStrokeLimitCheck +- uid: Hi.MachiningProcs.LocalProjectService.EnableStrokeLimitCheck* + name: EnableStrokeLimitCheck + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_EnableStrokeLimitCheck_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.EnableStrokeLimitCheck + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.EnableStrokeLimitCheck + nameWithType: LocalProjectService.EnableStrokeLimitCheck +- uid: Hi.MachiningProcs.LocalProjectService.EndSession + name: EndSession() + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_EndSession + commentId: M:Hi.MachiningProcs.LocalProjectService.EndSession + fullName: Hi.MachiningProcs.LocalProjectService.EndSession() + nameWithType: LocalProjectService.EndSession() +- uid: Hi.MachiningProcs.LocalProjectService.EndSession* + name: EndSession + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_EndSession_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.EndSession + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.EndSession + nameWithType: LocalProjectService.EndSession +- uid: Hi.MachiningProcs.LocalProjectService.Fixture + name: Fixture + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_Fixture + commentId: P:Hi.MachiningProcs.LocalProjectService.Fixture + fullName: Hi.MachiningProcs.LocalProjectService.Fixture + nameWithType: LocalProjectService.Fixture +- uid: Hi.MachiningProcs.LocalProjectService.Fixture* + name: Fixture + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_Fixture_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.Fixture + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.Fixture + nameWithType: LocalProjectService.Fixture +- uid: Hi.MachiningProcs.LocalProjectService.GetInspectingKeyPresentName(Hi.Common.StringLocalizer) + name: GetInspectingKeyPresentName(StringLocalizer) + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_GetInspectingKeyPresentName_Hi_Common_StringLocalizer_ + commentId: M:Hi.MachiningProcs.LocalProjectService.GetInspectingKeyPresentName(Hi.Common.StringLocalizer) + fullName: Hi.MachiningProcs.LocalProjectService.GetInspectingKeyPresentName(Hi.Common.StringLocalizer) + nameWithType: LocalProjectService.GetInspectingKeyPresentName(StringLocalizer) +- uid: Hi.MachiningProcs.LocalProjectService.GetInspectingKeyPresentName* + name: GetInspectingKeyPresentName + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_GetInspectingKeyPresentName_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.GetInspectingKeyPresentName + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.GetInspectingKeyPresentName + nameWithType: LocalProjectService.GetInspectingKeyPresentName - uid: Hi.MachiningProcs.LocalProjectService.GetLocalProjectService name: GetLocalProjectService() href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_GetLocalProjectService @@ -76931,6 +77126,58 @@ references: isSpec: "True" fullName: Hi.MachiningProcs.LocalProjectService.GetMachiningProject nameWithType: LocalProjectService.GetMachiningProject +- uid: Hi.MachiningProcs.LocalProjectService.GetMillingEquipment + name: GetMillingEquipment() + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_GetMillingEquipment + commentId: M:Hi.MachiningProcs.LocalProjectService.GetMillingEquipment + fullName: Hi.MachiningProcs.LocalProjectService.GetMillingEquipment() + nameWithType: LocalProjectService.GetMillingEquipment() +- uid: Hi.MachiningProcs.LocalProjectService.GetMillingEquipment* + name: GetMillingEquipment + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_GetMillingEquipment_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.GetMillingEquipment + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.GetMillingEquipment + nameWithType: LocalProjectService.GetMillingEquipment +- uid: Hi.MachiningProcs.LocalProjectService.Global + name: Global + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_Global + commentId: P:Hi.MachiningProcs.LocalProjectService.Global + fullName: Hi.MachiningProcs.LocalProjectService.Global + nameWithType: LocalProjectService.Global +- uid: Hi.MachiningProcs.LocalProjectService.Global* + name: Global + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_Global_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.Global + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.Global + nameWithType: LocalProjectService.Global +- uid: Hi.MachiningProcs.LocalProjectService.InspectingKey + name: InspectingKey + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_InspectingKey + commentId: P:Hi.MachiningProcs.LocalProjectService.InspectingKey + fullName: Hi.MachiningProcs.LocalProjectService.InspectingKey + nameWithType: LocalProjectService.InspectingKey +- uid: Hi.MachiningProcs.LocalProjectService.InspectingKey* + name: InspectingKey + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_InspectingKey_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.InspectingKey + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.InspectingKey + nameWithType: LocalProjectService.InspectingKey +- uid: Hi.MachiningProcs.LocalProjectService.InspectingQuantityFunc + name: InspectingQuantityFunc + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_InspectingQuantityFunc + commentId: P:Hi.MachiningProcs.LocalProjectService.InspectingQuantityFunc + fullName: Hi.MachiningProcs.LocalProjectService.InspectingQuantityFunc + nameWithType: LocalProjectService.InspectingQuantityFunc +- uid: Hi.MachiningProcs.LocalProjectService.InspectingQuantityFunc* + name: InspectingQuantityFunc + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_InspectingQuantityFunc_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.InspectingQuantityFunc + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.InspectingQuantityFunc + nameWithType: LocalProjectService.InspectingQuantityFunc - uid: Hi.MachiningProcs.LocalProjectService.LoadProject(System.String) name: LoadProject(string) href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_LoadProject_System_String_ @@ -76960,6 +77207,58 @@ references: isSpec: "True" fullName: Hi.MachiningProcs.LocalProjectService.Logger nameWithType: LocalProjectService.Logger +- uid: Hi.MachiningProcs.LocalProjectService.MachiningActRunner + name: MachiningActRunner + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_MachiningActRunner + commentId: P:Hi.MachiningProcs.LocalProjectService.MachiningActRunner + fullName: Hi.MachiningProcs.LocalProjectService.MachiningActRunner + nameWithType: LocalProjectService.MachiningActRunner +- uid: Hi.MachiningProcs.LocalProjectService.MachiningActRunner* + name: MachiningActRunner + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_MachiningActRunner_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.MachiningActRunner + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.MachiningActRunner + nameWithType: LocalProjectService.MachiningActRunner +- uid: Hi.MachiningProcs.LocalProjectService.MachiningChain + name: MachiningChain + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_MachiningChain + commentId: P:Hi.MachiningProcs.LocalProjectService.MachiningChain + fullName: Hi.MachiningProcs.LocalProjectService.MachiningChain + nameWithType: LocalProjectService.MachiningChain +- uid: Hi.MachiningProcs.LocalProjectService.MachiningChain* + name: MachiningChain + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_MachiningChain_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.MachiningChain + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.MachiningChain + nameWithType: LocalProjectService.MachiningChain +- uid: Hi.MachiningProcs.LocalProjectService.MachiningChainFile + name: MachiningChainFile + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_MachiningChainFile + commentId: P:Hi.MachiningProcs.LocalProjectService.MachiningChainFile + fullName: Hi.MachiningProcs.LocalProjectService.MachiningChainFile + nameWithType: LocalProjectService.MachiningChainFile +- uid: Hi.MachiningProcs.LocalProjectService.MachiningChainFile* + name: MachiningChainFile + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_MachiningChainFile_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.MachiningChainFile + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.MachiningChainFile + nameWithType: LocalProjectService.MachiningChainFile +- uid: Hi.MachiningProcs.LocalProjectService.MachiningEquipment + name: MachiningEquipment + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_MachiningEquipment + commentId: P:Hi.MachiningProcs.LocalProjectService.MachiningEquipment + fullName: Hi.MachiningProcs.LocalProjectService.MachiningEquipment + nameWithType: LocalProjectService.MachiningEquipment +- uid: Hi.MachiningProcs.LocalProjectService.MachiningEquipment* + name: MachiningEquipment + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_MachiningEquipment_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.MachiningEquipment + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.MachiningEquipment + nameWithType: LocalProjectService.MachiningEquipment - uid: Hi.MachiningProcs.LocalProjectService.MachiningProject name: MachiningProject href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_MachiningProject @@ -76998,12 +77297,103 @@ references: isSpec: "True" fullName: Hi.MachiningProcs.LocalProjectService.MachiningProjectPath nameWithType: LocalProjectService.MachiningProjectPath +- uid: Hi.MachiningProcs.LocalProjectService.MachiningSession + name: MachiningSession + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_MachiningSession + commentId: P:Hi.MachiningProcs.LocalProjectService.MachiningSession + fullName: Hi.MachiningProcs.LocalProjectService.MachiningSession + nameWithType: LocalProjectService.MachiningSession +- uid: Hi.MachiningProcs.LocalProjectService.MachiningSession* + name: MachiningSession + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_MachiningSession_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.MachiningSession + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.MachiningSession + nameWithType: LocalProjectService.MachiningSession - uid: Hi.MachiningProcs.LocalProjectService.MachiningStepBuilt name: MachiningStepBuilt href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_MachiningStepBuilt commentId: E:Hi.MachiningProcs.LocalProjectService.MachiningStepBuilt fullName: Hi.MachiningProcs.LocalProjectService.MachiningStepBuilt nameWithType: LocalProjectService.MachiningStepBuilt +- uid: Hi.MachiningProcs.LocalProjectService.MachiningTool + name: MachiningTool + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_MachiningTool + commentId: P:Hi.MachiningProcs.LocalProjectService.MachiningTool + fullName: Hi.MachiningProcs.LocalProjectService.MachiningTool + nameWithType: LocalProjectService.MachiningTool +- uid: Hi.MachiningProcs.LocalProjectService.MachiningTool* + name: MachiningTool + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_MachiningTool_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.MachiningTool + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.MachiningTool + nameWithType: LocalProjectService.MachiningTool +- uid: Hi.MachiningProcs.LocalProjectService.MachiningToolHouse + name: MachiningToolHouse + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_MachiningToolHouse + commentId: P:Hi.MachiningProcs.LocalProjectService.MachiningToolHouse + fullName: Hi.MachiningProcs.LocalProjectService.MachiningToolHouse + nameWithType: LocalProjectService.MachiningToolHouse +- uid: Hi.MachiningProcs.LocalProjectService.MachiningToolHouse* + name: MachiningToolHouse + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_MachiningToolHouse_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.MachiningToolHouse + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.MachiningToolHouse + nameWithType: LocalProjectService.MachiningToolHouse +- uid: Hi.MachiningProcs.LocalProjectService.MachiningToolHouseFile + name: MachiningToolHouseFile + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_MachiningToolHouseFile + commentId: P:Hi.MachiningProcs.LocalProjectService.MachiningToolHouseFile + fullName: Hi.MachiningProcs.LocalProjectService.MachiningToolHouseFile + nameWithType: LocalProjectService.MachiningToolHouseFile +- uid: Hi.MachiningProcs.LocalProjectService.MachiningToolHouseFile* + name: MachiningToolHouseFile + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_MachiningToolHouseFile_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.MachiningToolHouseFile + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.MachiningToolHouseFile + nameWithType: LocalProjectService.MachiningToolHouseFile +- uid: Hi.MachiningProcs.LocalProjectService.MillingStepLuggageReader + name: MillingStepLuggageReader + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_MillingStepLuggageReader + commentId: P:Hi.MachiningProcs.LocalProjectService.MillingStepLuggageReader + fullName: Hi.MachiningProcs.LocalProjectService.MillingStepLuggageReader + nameWithType: LocalProjectService.MillingStepLuggageReader +- uid: Hi.MachiningProcs.LocalProjectService.MillingStepLuggageReader* + name: MillingStepLuggageReader + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_MillingStepLuggageReader_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.MillingStepLuggageReader + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.MillingStepLuggageReader + nameWithType: LocalProjectService.MillingStepLuggageReader +- uid: Hi.MachiningProcs.LocalProjectService.NcOptProc + name: NcOptProc + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_NcOptProc + commentId: P:Hi.MachiningProcs.LocalProjectService.NcOptProc + fullName: Hi.MachiningProcs.LocalProjectService.NcOptProc + nameWithType: LocalProjectService.NcOptProc +- uid: Hi.MachiningProcs.LocalProjectService.NcOptProc* + name: NcOptProc + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_NcOptProc_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.NcOptProc + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.NcOptProc + nameWithType: LocalProjectService.NcOptProc +- uid: Hi.MachiningProcs.LocalProjectService.NcRunner + name: NcRunner + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_NcRunner + commentId: P:Hi.MachiningProcs.LocalProjectService.NcRunner + fullName: Hi.MachiningProcs.LocalProjectService.NcRunner + nameWithType: LocalProjectService.NcRunner +- uid: Hi.MachiningProcs.LocalProjectService.NcRunner* + name: NcRunner + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_NcRunner_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.NcRunner + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.NcRunner + nameWithType: LocalProjectService.NcRunner - uid: Hi.MachiningProcs.LocalProjectService.NewProject(System.String) name: NewProject(string) href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_NewProject_System_String_ @@ -77020,30 +77410,105 @@ references: isSpec: "True" fullName: Hi.MachiningProcs.LocalProjectService.NewProject nameWithType: LocalProjectService.NewProject -- uid: Hi.MachiningProcs.LocalProjectService.PacePlayer_IsFinishedChangedEvent - name: PacePlayer_IsFinishedChangedEvent - href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_PacePlayer_IsFinishedChangedEvent - commentId: E:Hi.MachiningProcs.LocalProjectService.PacePlayer_IsFinishedChangedEvent - fullName: Hi.MachiningProcs.LocalProjectService.PacePlayer_IsFinishedChangedEvent - nameWithType: LocalProjectService.PacePlayer_IsFinishedChangedEvent -- uid: Hi.MachiningProcs.LocalProjectService.PacePlayer_IsLockedChangedEvent - name: PacePlayer_IsLockedChangedEvent - href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_PacePlayer_IsLockedChangedEvent - commentId: E:Hi.MachiningProcs.LocalProjectService.PacePlayer_IsLockedChangedEvent - fullName: Hi.MachiningProcs.LocalProjectService.PacePlayer_IsLockedChangedEvent - nameWithType: LocalProjectService.PacePlayer_IsLockedChangedEvent -- uid: Hi.MachiningProcs.LocalProjectService.PacePlayer_IsRunningChangedEvent - name: PacePlayer_IsRunningChangedEvent - href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_PacePlayer_IsRunningChangedEvent - commentId: E:Hi.MachiningProcs.LocalProjectService.PacePlayer_IsRunningChangedEvent - fullName: Hi.MachiningProcs.LocalProjectService.PacePlayer_IsRunningChangedEvent - nameWithType: LocalProjectService.PacePlayer_IsRunningChangedEvent -- uid: Hi.MachiningProcs.LocalProjectService.PacePlayer_ResetedEvent - name: PacePlayer_ResetedEvent - href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_PacePlayer_ResetedEvent - commentId: E:Hi.MachiningProcs.LocalProjectService.PacePlayer_ResetedEvent - fullName: Hi.MachiningProcs.LocalProjectService.PacePlayer_ResetedEvent - nameWithType: LocalProjectService.PacePlayer_ResetedEvent +- uid: Hi.MachiningProcs.LocalProjectService.OnRanNcBlock + name: OnRanNcBlock + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_OnRanNcBlock + commentId: E:Hi.MachiningProcs.LocalProjectService.OnRanNcBlock + fullName: Hi.MachiningProcs.LocalProjectService.OnRanNcBlock + nameWithType: LocalProjectService.OnRanNcBlock +- uid: Hi.MachiningProcs.LocalProjectService.OnUpdatedInspectingQuantityFunc + name: OnUpdatedInspectingQuantityFunc + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_OnUpdatedInspectingQuantityFunc + commentId: E:Hi.MachiningProcs.LocalProjectService.OnUpdatedInspectingQuantityFunc + fullName: Hi.MachiningProcs.LocalProjectService.OnUpdatedInspectingQuantityFunc + nameWithType: LocalProjectService.OnUpdatedInspectingQuantityFunc +- uid: Hi.MachiningProcs.LocalProjectService.PacePlayer + name: PacePlayer + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_PacePlayer + commentId: P:Hi.MachiningProcs.LocalProjectService.PacePlayer + fullName: Hi.MachiningProcs.LocalProjectService.PacePlayer + nameWithType: LocalProjectService.PacePlayer +- uid: Hi.MachiningProcs.LocalProjectService.PacePlayer* + name: PacePlayer + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_PacePlayer_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.PacePlayer + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.PacePlayer + nameWithType: LocalProjectService.PacePlayer +- uid: Hi.MachiningProcs.LocalProjectService.PlayCsvFile(System.String,System.String) + name: PlayCsvFile(string, string) + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_PlayCsvFile_System_String_System_String_ + commentId: M:Hi.MachiningProcs.LocalProjectService.PlayCsvFile(System.String,System.String) + name.vb: PlayCsvFile(String, String) + fullName: Hi.MachiningProcs.LocalProjectService.PlayCsvFile(string, string) + fullName.vb: Hi.MachiningProcs.LocalProjectService.PlayCsvFile(String, String) + nameWithType: LocalProjectService.PlayCsvFile(string, string) + nameWithType.vb: LocalProjectService.PlayCsvFile(String, String) +- uid: Hi.MachiningProcs.LocalProjectService.PlayCsvFile* + name: PlayCsvFile + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_PlayCsvFile_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.PlayCsvFile + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.PlayCsvFile + nameWithType: LocalProjectService.PlayCsvFile +- uid: Hi.MachiningProcs.LocalProjectService.PlayNc(System.String,System.String) + name: PlayNc(string, string) + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_PlayNc_System_String_System_String_ + commentId: M:Hi.MachiningProcs.LocalProjectService.PlayNc(System.String,System.String) + name.vb: PlayNc(String, String) + fullName: Hi.MachiningProcs.LocalProjectService.PlayNc(string, string) + fullName.vb: Hi.MachiningProcs.LocalProjectService.PlayNc(String, String) + nameWithType: LocalProjectService.PlayNc(string, string) + nameWithType.vb: LocalProjectService.PlayNc(String, String) +- uid: Hi.MachiningProcs.LocalProjectService.PlayNc* + name: PlayNc + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_PlayNc_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.PlayNc + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.PlayNc + nameWithType: LocalProjectService.PlayNc +- uid: Hi.MachiningProcs.LocalProjectService.PlayNcFile(System.String,System.String) + name: PlayNcFile(string, string) + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_PlayNcFile_System_String_System_String_ + commentId: M:Hi.MachiningProcs.LocalProjectService.PlayNcFile(System.String,System.String) + name.vb: PlayNcFile(String, String) + fullName: Hi.MachiningProcs.LocalProjectService.PlayNcFile(string, string) + fullName.vb: Hi.MachiningProcs.LocalProjectService.PlayNcFile(String, String) + nameWithType: LocalProjectService.PlayNcFile(string, string) + nameWithType.vb: LocalProjectService.PlayNcFile(String, String) +- uid: Hi.MachiningProcs.LocalProjectService.PlayNcFile* + name: PlayNcFile + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_PlayNcFile_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.PlayNcFile + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.PlayNcFile + nameWithType: LocalProjectService.PlayNcFile +- uid: Hi.MachiningProcs.LocalProjectService.ProcAct(Hi.Numerical.Acts.IAct,Hi.Common.FileLines.IIndexedFileLine,System.Nullable{System.Threading.CancellationToken}) + name: ProcAct(IAct, IIndexedFileLine, CancellationToken?) + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_ProcAct_Hi_Numerical_Acts_IAct_Hi_Common_FileLines_IIndexedFileLine_System_Nullable_System_Threading_CancellationToken__ + commentId: M:Hi.MachiningProcs.LocalProjectService.ProcAct(Hi.Numerical.Acts.IAct,Hi.Common.FileLines.IIndexedFileLine,System.Nullable{System.Threading.CancellationToken}) + fullName: Hi.MachiningProcs.LocalProjectService.ProcAct(Hi.Numerical.Acts.IAct, Hi.Common.FileLines.IIndexedFileLine, System.Threading.CancellationToken?) + nameWithType: LocalProjectService.ProcAct(IAct, IIndexedFileLine, CancellationToken?) +- uid: Hi.MachiningProcs.LocalProjectService.ProcAct* + name: ProcAct + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_ProcAct_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.ProcAct + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.ProcAct + nameWithType: LocalProjectService.ProcAct +- uid: Hi.MachiningProcs.LocalProjectService.Progress + name: Progress + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_Progress + commentId: P:Hi.MachiningProcs.LocalProjectService.Progress + fullName: Hi.MachiningProcs.LocalProjectService.Progress + nameWithType: LocalProjectService.Progress +- uid: Hi.MachiningProcs.LocalProjectService.Progress* + name: Progress + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_Progress_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.Progress + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.Progress + nameWithType: LocalProjectService.Progress - uid: Hi.MachiningProcs.LocalProjectService.ProjectDirectory name: ProjectDirectory href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_ProjectDirectory @@ -77057,6 +77522,35 @@ references: isSpec: "True" fullName: Hi.MachiningProcs.LocalProjectService.ProjectDirectory nameWithType: LocalProjectService.ProjectDirectory +- uid: Hi.MachiningProcs.LocalProjectService.ReTrainMillingPara(Hi.MillingForces.Fittings.SampleFlag,System.Double,System.String,System.Threading.CancellationToken) + name: ReTrainMillingPara(SampleFlag, double, string, CancellationToken) + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_ReTrainMillingPara_Hi_MillingForces_Fittings_SampleFlag_System_Double_System_String_System_Threading_CancellationToken_ + commentId: M:Hi.MachiningProcs.LocalProjectService.ReTrainMillingPara(Hi.MillingForces.Fittings.SampleFlag,System.Double,System.String,System.Threading.CancellationToken) + name.vb: ReTrainMillingPara(SampleFlag, Double, String, CancellationToken) + fullName: Hi.MachiningProcs.LocalProjectService.ReTrainMillingPara(Hi.MillingForces.Fittings.SampleFlag, double, string, System.Threading.CancellationToken) + fullName.vb: Hi.MachiningProcs.LocalProjectService.ReTrainMillingPara(Hi.MillingForces.Fittings.SampleFlag, Double, String, System.Threading.CancellationToken) + nameWithType: LocalProjectService.ReTrainMillingPara(SampleFlag, double, string, CancellationToken) + nameWithType.vb: LocalProjectService.ReTrainMillingPara(SampleFlag, Double, String, CancellationToken) +- uid: Hi.MachiningProcs.LocalProjectService.ReTrainMillingPara* + name: ReTrainMillingPara + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_ReTrainMillingPara_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.ReTrainMillingPara + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.ReTrainMillingPara + nameWithType: LocalProjectService.ReTrainMillingPara +- uid: Hi.MachiningProcs.LocalProjectService.RefreshDrawing + name: RefreshDrawing() + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_RefreshDrawing + commentId: M:Hi.MachiningProcs.LocalProjectService.RefreshDrawing + fullName: Hi.MachiningProcs.LocalProjectService.RefreshDrawing() + nameWithType: LocalProjectService.RefreshDrawing() +- uid: Hi.MachiningProcs.LocalProjectService.RefreshDrawing* + name: RefreshDrawing + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_RefreshDrawing_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.RefreshDrawing + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.RefreshDrawing + nameWithType: LocalProjectService.RefreshDrawing - uid: Hi.MachiningProcs.LocalProjectService.ReloadProject name: ReloadProject() href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_ReloadProject @@ -77070,6 +77564,80 @@ references: isSpec: "True" fullName: Hi.MachiningProcs.LocalProjectService.ReloadProject nameWithType: LocalProjectService.ReloadProject +- uid: Hi.MachiningProcs.LocalProjectService.ResetRuntime + name: ResetRuntime() + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_ResetRuntime + commentId: M:Hi.MachiningProcs.LocalProjectService.ResetRuntime + fullName: Hi.MachiningProcs.LocalProjectService.ResetRuntime() + nameWithType: LocalProjectService.ResetRuntime() +- uid: Hi.MachiningProcs.LocalProjectService.ResetRuntime* + name: ResetRuntime + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_ResetRuntime_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.ResetRuntime + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.ResetRuntime + nameWithType: LocalProjectService.ResetRuntime +- uid: Hi.MachiningProcs.LocalProjectService.RunCsvFile(System.String,System.String) + name: RunCsvFile(string, string) + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_RunCsvFile_System_String_System_String_ + commentId: M:Hi.MachiningProcs.LocalProjectService.RunCsvFile(System.String,System.String) + name.vb: RunCsvFile(String, String) + fullName: Hi.MachiningProcs.LocalProjectService.RunCsvFile(string, string) + fullName.vb: Hi.MachiningProcs.LocalProjectService.RunCsvFile(String, String) + nameWithType: LocalProjectService.RunCsvFile(string, string) + nameWithType.vb: LocalProjectService.RunCsvFile(String, String) +- uid: Hi.MachiningProcs.LocalProjectService.RunCsvFile* + name: RunCsvFile + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_RunCsvFile_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.RunCsvFile + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.RunCsvFile + nameWithType: LocalProjectService.RunCsvFile +- uid: Hi.MachiningProcs.LocalProjectService.RunNc(System.String,System.String) + name: RunNc(string, string) + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_RunNc_System_String_System_String_ + commentId: M:Hi.MachiningProcs.LocalProjectService.RunNc(System.String,System.String) + name.vb: RunNc(String, String) + fullName: Hi.MachiningProcs.LocalProjectService.RunNc(string, string) + fullName.vb: Hi.MachiningProcs.LocalProjectService.RunNc(String, String) + nameWithType: LocalProjectService.RunNc(string, string) + nameWithType.vb: LocalProjectService.RunNc(String, String) +- uid: Hi.MachiningProcs.LocalProjectService.RunNc* + name: RunNc + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_RunNc_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.RunNc + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.RunNc + nameWithType: LocalProjectService.RunNc +- uid: Hi.MachiningProcs.LocalProjectService.RunNcFile(System.String,System.String) + name: RunNcFile(string, string) + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_RunNcFile_System_String_System_String_ + commentId: M:Hi.MachiningProcs.LocalProjectService.RunNcFile(System.String,System.String) + name.vb: RunNcFile(String, String) + fullName: Hi.MachiningProcs.LocalProjectService.RunNcFile(string, string) + fullName.vb: Hi.MachiningProcs.LocalProjectService.RunNcFile(String, String) + nameWithType: LocalProjectService.RunNcFile(string, string) + nameWithType.vb: LocalProjectService.RunNcFile(String, String) +- uid: Hi.MachiningProcs.LocalProjectService.RunNcFile* + name: RunNcFile + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_RunNcFile_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.RunNcFile + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.RunNcFile + nameWithType: LocalProjectService.RunNcFile +- uid: Hi.MachiningProcs.LocalProjectService.RuntimeApi + name: RuntimeApi + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_RuntimeApi + commentId: P:Hi.MachiningProcs.LocalProjectService.RuntimeApi + fullName: Hi.MachiningProcs.LocalProjectService.RuntimeApi + nameWithType: LocalProjectService.RuntimeApi +- uid: Hi.MachiningProcs.LocalProjectService.RuntimeApi* + name: RuntimeApi + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_RuntimeApi_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.RuntimeApi + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.RuntimeApi + nameWithType: LocalProjectService.RuntimeApi - uid: Hi.MachiningProcs.LocalProjectService.SaveAsProject(System.String) name: SaveAsProject(string) href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_SaveAsProject_System_String_ @@ -77099,24 +77667,100 @@ references: isSpec: "True" fullName: Hi.MachiningProcs.LocalProjectService.SaveProject nameWithType: LocalProjectService.SaveProject -- uid: Hi.MachiningProcs.LocalProjectService.SessionMessageHost_CollectionCleared - name: SessionMessageHost_CollectionCleared - href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_SessionMessageHost_CollectionCleared - commentId: E:Hi.MachiningProcs.LocalProjectService.SessionMessageHost_CollectionCleared - fullName: Hi.MachiningProcs.LocalProjectService.SessionMessageHost_CollectionCleared - nameWithType: LocalProjectService.SessionMessageHost_CollectionCleared -- uid: Hi.MachiningProcs.LocalProjectService.SessionMessageHost_CollectionItemAdded - name: SessionMessageHost_CollectionItemAdded - href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_SessionMessageHost_CollectionItemAdded - commentId: E:Hi.MachiningProcs.LocalProjectService.SessionMessageHost_CollectionItemAdded - fullName: Hi.MachiningProcs.LocalProjectService.SessionMessageHost_CollectionItemAdded - nameWithType: LocalProjectService.SessionMessageHost_CollectionItemAdded -- uid: Hi.MachiningProcs.LocalProjectService.SessionMessageHost_CollectionItemChanged - name: SessionMessageHost_CollectionItemChanged - href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_SessionMessageHost_CollectionItemChanged - commentId: E:Hi.MachiningProcs.LocalProjectService.SessionMessageHost_CollectionItemChanged - fullName: Hi.MachiningProcs.LocalProjectService.SessionMessageHost_CollectionItemChanged - nameWithType: LocalProjectService.SessionMessageHost_CollectionItemChanged +- uid: Hi.MachiningProcs.LocalProjectService.SessionMessageHost + name: SessionMessageHost + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_SessionMessageHost + commentId: P:Hi.MachiningProcs.LocalProjectService.SessionMessageHost + fullName: Hi.MachiningProcs.LocalProjectService.SessionMessageHost + nameWithType: LocalProjectService.SessionMessageHost +- uid: Hi.MachiningProcs.LocalProjectService.SessionMessageHost* + name: SessionMessageHost + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_SessionMessageHost_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.SessionMessageHost + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.SessionMessageHost + nameWithType: LocalProjectService.SessionMessageHost +- uid: Hi.MachiningProcs.LocalProjectService.StepPropertyAccessDictionary + name: StepPropertyAccessDictionary + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_StepPropertyAccessDictionary + commentId: P:Hi.MachiningProcs.LocalProjectService.StepPropertyAccessDictionary + fullName: Hi.MachiningProcs.LocalProjectService.StepPropertyAccessDictionary + nameWithType: LocalProjectService.StepPropertyAccessDictionary +- uid: Hi.MachiningProcs.LocalProjectService.StepPropertyAccessDictionary* + name: StepPropertyAccessDictionary + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_StepPropertyAccessDictionary_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.StepPropertyAccessDictionary + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.StepPropertyAccessDictionary + nameWithType: LocalProjectService.StepPropertyAccessDictionary +- uid: Hi.MachiningProcs.LocalProjectService.TimeMapping + name: TimeMapping + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_TimeMapping + commentId: P:Hi.MachiningProcs.LocalProjectService.TimeMapping + fullName: Hi.MachiningProcs.LocalProjectService.TimeMapping + nameWithType: LocalProjectService.TimeMapping +- uid: Hi.MachiningProcs.LocalProjectService.TimeMapping* + name: TimeMapping + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_TimeMapping_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.TimeMapping + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.TimeMapping + nameWithType: LocalProjectService.TimeMapping +- uid: Hi.MachiningProcs.LocalProjectService.TrainMillingPara(Hi.MillingForces.Fittings.SampleFlag,System.Boolean,System.Double,System.String,System.Threading.CancellationToken,Hi.MillingForces.Fittings.ICuttingPara) + name: TrainMillingPara(SampleFlag, bool, double, string, CancellationToken, ICuttingPara) + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_TrainMillingPara_Hi_MillingForces_Fittings_SampleFlag_System_Boolean_System_Double_System_String_System_Threading_CancellationToken_Hi_MillingForces_Fittings_ICuttingPara_ + commentId: M:Hi.MachiningProcs.LocalProjectService.TrainMillingPara(Hi.MillingForces.Fittings.SampleFlag,System.Boolean,System.Double,System.String,System.Threading.CancellationToken,Hi.MillingForces.Fittings.ICuttingPara) + name.vb: TrainMillingPara(SampleFlag, Boolean, Double, String, CancellationToken, ICuttingPara) + fullName: Hi.MachiningProcs.LocalProjectService.TrainMillingPara(Hi.MillingForces.Fittings.SampleFlag, bool, double, string, System.Threading.CancellationToken, Hi.MillingForces.Fittings.ICuttingPara) + fullName.vb: Hi.MachiningProcs.LocalProjectService.TrainMillingPara(Hi.MillingForces.Fittings.SampleFlag, Boolean, Double, String, System.Threading.CancellationToken, Hi.MillingForces.Fittings.ICuttingPara) + nameWithType: LocalProjectService.TrainMillingPara(SampleFlag, bool, double, string, CancellationToken, ICuttingPara) + nameWithType.vb: LocalProjectService.TrainMillingPara(SampleFlag, Boolean, Double, String, CancellationToken, ICuttingPara) +- uid: Hi.MachiningProcs.LocalProjectService.TrainMillingPara* + name: TrainMillingPara + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_TrainMillingPara_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.TrainMillingPara + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.TrainMillingPara + nameWithType: LocalProjectService.TrainMillingPara +- uid: Hi.MachiningProcs.LocalProjectService.UpdateByMachiningChain + name: UpdateByMachiningChain() + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_UpdateByMachiningChain + commentId: M:Hi.MachiningProcs.LocalProjectService.UpdateByMachiningChain + fullName: Hi.MachiningProcs.LocalProjectService.UpdateByMachiningChain() + nameWithType: LocalProjectService.UpdateByMachiningChain() +- uid: Hi.MachiningProcs.LocalProjectService.UpdateByMachiningChain* + name: UpdateByMachiningChain + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_UpdateByMachiningChain_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.UpdateByMachiningChain + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.UpdateByMachiningChain + nameWithType: LocalProjectService.UpdateByMachiningChain +- uid: Hi.MachiningProcs.LocalProjectService.UpdateByMachiningEquipment + name: UpdateByMachiningEquipment() + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_UpdateByMachiningEquipment + commentId: M:Hi.MachiningProcs.LocalProjectService.UpdateByMachiningEquipment + fullName: Hi.MachiningProcs.LocalProjectService.UpdateByMachiningEquipment() + nameWithType: LocalProjectService.UpdateByMachiningEquipment() +- uid: Hi.MachiningProcs.LocalProjectService.UpdateByMachiningEquipment* + name: UpdateByMachiningEquipment + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_UpdateByMachiningEquipment_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.UpdateByMachiningEquipment + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.UpdateByMachiningEquipment + nameWithType: LocalProjectService.UpdateByMachiningEquipment +- uid: Hi.MachiningProcs.LocalProjectService.UpdateIdealMillingToolOffsetTableByToolHouse + name: UpdateIdealMillingToolOffsetTableByToolHouse() + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_UpdateIdealMillingToolOffsetTableByToolHouse + commentId: M:Hi.MachiningProcs.LocalProjectService.UpdateIdealMillingToolOffsetTableByToolHouse + fullName: Hi.MachiningProcs.LocalProjectService.UpdateIdealMillingToolOffsetTableByToolHouse() + nameWithType: LocalProjectService.UpdateIdealMillingToolOffsetTableByToolHouse() +- uid: Hi.MachiningProcs.LocalProjectService.UpdateIdealMillingToolOffsetTableByToolHouse* + name: UpdateIdealMillingToolOffsetTableByToolHouse + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_UpdateIdealMillingToolOffsetTableByToolHouse_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.UpdateIdealMillingToolOffsetTableByToolHouse + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.UpdateIdealMillingToolOffsetTableByToolHouse + nameWithType: LocalProjectService.UpdateIdealMillingToolOffsetTableByToolHouse - uid: Hi.MachiningProcs.LocalProjectService.UserService name: UserService href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_UserService @@ -77130,21 +77774,72 @@ references: isSpec: "True" fullName: Hi.MachiningProcs.LocalProjectService.UserService nameWithType: LocalProjectService.UserService +- uid: Hi.MachiningProcs.LocalProjectService.Workpiece + name: Workpiece + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_Workpiece + commentId: P:Hi.MachiningProcs.LocalProjectService.Workpiece + fullName: Hi.MachiningProcs.LocalProjectService.Workpiece + nameWithType: LocalProjectService.Workpiece +- uid: Hi.MachiningProcs.LocalProjectService.Workpiece* + name: Workpiece + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_Workpiece_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.Workpiece + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.Workpiece + nameWithType: LocalProjectService.Workpiece +- uid: Hi.MachiningProcs.LocalProjectService.WorkpieceChanged + name: WorkpieceChanged + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_WorkpieceChanged + commentId: E:Hi.MachiningProcs.LocalProjectService.WorkpieceChanged + fullName: Hi.MachiningProcs.LocalProjectService.WorkpieceChanged + nameWithType: LocalProjectService.WorkpieceChanged +- uid: Hi.MachiningProcs.LocalProjectService.WriteShotFile(System.TimeSpan,System.String) + name: WriteShotFile(TimeSpan, string) + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_WriteShotFile_System_TimeSpan_System_String_ + commentId: M:Hi.MachiningProcs.LocalProjectService.WriteShotFile(System.TimeSpan,System.String) + name.vb: WriteShotFile(TimeSpan, String) + fullName: Hi.MachiningProcs.LocalProjectService.WriteShotFile(System.TimeSpan, string) + fullName.vb: Hi.MachiningProcs.LocalProjectService.WriteShotFile(System.TimeSpan, String) + nameWithType: LocalProjectService.WriteShotFile(TimeSpan, string) + nameWithType.vb: LocalProjectService.WriteShotFile(TimeSpan, String) +- uid: Hi.MachiningProcs.LocalProjectService.WriteShotFile* + name: WriteShotFile + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_WriteShotFile_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.WriteShotFile + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.WriteShotFile + nameWithType: LocalProjectService.WriteShotFile +- uid: Hi.MachiningProcs.LocalProjectService.WriteStepFile(System.String) + name: WriteStepFile(string) + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_WriteStepFile_System_String_ + commentId: M:Hi.MachiningProcs.LocalProjectService.WriteStepFile(System.String) + name.vb: WriteStepFile(String) + fullName: Hi.MachiningProcs.LocalProjectService.WriteStepFile(string) + fullName.vb: Hi.MachiningProcs.LocalProjectService.WriteStepFile(String) + nameWithType: LocalProjectService.WriteStepFile(string) + nameWithType.vb: LocalProjectService.WriteStepFile(String) +- uid: Hi.MachiningProcs.LocalProjectService.WriteStepFile* + name: WriteStepFile + href: api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_WriteStepFile_ + commentId: Overload:Hi.MachiningProcs.LocalProjectService.WriteStepFile + isSpec: "True" + fullName: Hi.MachiningProcs.LocalProjectService.WriteStepFile + nameWithType: LocalProjectService.WriteStepFile - uid: Hi.MachiningProcs.MachiningActRunner name: MachiningActRunner href: api/Hi.MachiningProcs.MachiningActRunner.html commentId: T:Hi.MachiningProcs.MachiningActRunner fullName: Hi.MachiningProcs.MachiningActRunner nameWithType: MachiningActRunner -- uid: Hi.MachiningProcs.MachiningActRunner.#ctor(Hi.MachiningProcs.SessionMessageHost,MongoDB.Driver.MongoClient,MongoDB.Driver.IMongoCollection{Hi.MillingSteps.MillingStepLuggage},MongoDB.Driver.IMongoCollection{Hi.Common.Slice},System.Action,Hi.ScriptApiUtils.ICsScriptApi,Hi.MachiningProcs.MillingActRunnerConfig) - name: MachiningActRunner(SessionMessageHost, MongoClient, IMongoCollection, IMongoCollection, Action, ICsScriptApi, MillingActRunnerConfig) - href: api/Hi.MachiningProcs.MachiningActRunner.html#Hi_MachiningProcs_MachiningActRunner__ctor_Hi_MachiningProcs_SessionMessageHost_MongoDB_Driver_MongoClient_MongoDB_Driver_IMongoCollection_Hi_MillingSteps_MillingStepLuggage__MongoDB_Driver_IMongoCollection_Hi_Common_Slice__System_Action_Hi_ScriptApiUtils_ICsScriptApi_Hi_MachiningProcs_MillingActRunnerConfig_ - commentId: M:Hi.MachiningProcs.MachiningActRunner.#ctor(Hi.MachiningProcs.SessionMessageHost,MongoDB.Driver.MongoClient,MongoDB.Driver.IMongoCollection{Hi.MillingSteps.MillingStepLuggage},MongoDB.Driver.IMongoCollection{Hi.Common.Slice},System.Action,Hi.ScriptApiUtils.ICsScriptApi,Hi.MachiningProcs.MillingActRunnerConfig) - name.vb: New(SessionMessageHost, MongoClient, IMongoCollection(Of MillingStepLuggage), IMongoCollection(Of Slice), Action, ICsScriptApi, MillingActRunnerConfig) - fullName: Hi.MachiningProcs.MachiningActRunner.MachiningActRunner(Hi.MachiningProcs.SessionMessageHost, MongoDB.Driver.MongoClient, MongoDB.Driver.IMongoCollection, MongoDB.Driver.IMongoCollection, System.Action, Hi.ScriptApiUtils.ICsScriptApi, Hi.MachiningProcs.MillingActRunnerConfig) - fullName.vb: Hi.MachiningProcs.MachiningActRunner.New(Hi.MachiningProcs.SessionMessageHost, MongoDB.Driver.MongoClient, MongoDB.Driver.IMongoCollection(Of Hi.MillingSteps.MillingStepLuggage), MongoDB.Driver.IMongoCollection(Of Hi.Common.Slice), System.Action, Hi.ScriptApiUtils.ICsScriptApi, Hi.MachiningProcs.MillingActRunnerConfig) - nameWithType: MachiningActRunner.MachiningActRunner(SessionMessageHost, MongoClient, IMongoCollection, IMongoCollection, Action, ICsScriptApi, MillingActRunnerConfig) - nameWithType.vb: MachiningActRunner.New(SessionMessageHost, MongoClient, IMongoCollection(Of MillingStepLuggage), IMongoCollection(Of Slice), Action, ICsScriptApi, MillingActRunnerConfig) +- uid: Hi.MachiningProcs.MachiningActRunner.#ctor(Hi.MachiningProcs.SessionMessageHost,MongoDB.Driver.MongoClient,System.Func{Hi.Machining.MachiningToolHouse},System.Func{Hi.Machining.MachiningEquipmentUtils.MachiningEquipment},MongoDB.Driver.IMongoCollection{Hi.MillingSteps.MillingStepLuggage},MongoDB.Driver.IMongoCollection{Hi.Common.Slice},System.Action,Hi.ScriptApiUtils.ICsScriptApi,Hi.MachiningProcs.MachiningActRunnerConfig) + name: MachiningActRunner(SessionMessageHost, MongoClient, Func, Func, IMongoCollection, IMongoCollection, Action, ICsScriptApi, MachiningActRunnerConfig) + href: api/Hi.MachiningProcs.MachiningActRunner.html#Hi_MachiningProcs_MachiningActRunner__ctor_Hi_MachiningProcs_SessionMessageHost_MongoDB_Driver_MongoClient_System_Func_Hi_Machining_MachiningToolHouse__System_Func_Hi_Machining_MachiningEquipmentUtils_MachiningEquipment__MongoDB_Driver_IMongoCollection_Hi_MillingSteps_MillingStepLuggage__MongoDB_Driver_IMongoCollection_Hi_Common_Slice__System_Action_Hi_ScriptApiUtils_ICsScriptApi_Hi_MachiningProcs_MachiningActRunnerConfig_ + commentId: M:Hi.MachiningProcs.MachiningActRunner.#ctor(Hi.MachiningProcs.SessionMessageHost,MongoDB.Driver.MongoClient,System.Func{Hi.Machining.MachiningToolHouse},System.Func{Hi.Machining.MachiningEquipmentUtils.MachiningEquipment},MongoDB.Driver.IMongoCollection{Hi.MillingSteps.MillingStepLuggage},MongoDB.Driver.IMongoCollection{Hi.Common.Slice},System.Action,Hi.ScriptApiUtils.ICsScriptApi,Hi.MachiningProcs.MachiningActRunnerConfig) + name.vb: New(SessionMessageHost, MongoClient, Func(Of MachiningToolHouse), Func(Of MachiningEquipment), IMongoCollection(Of MillingStepLuggage), IMongoCollection(Of Slice), Action, ICsScriptApi, MachiningActRunnerConfig) + fullName: Hi.MachiningProcs.MachiningActRunner.MachiningActRunner(Hi.MachiningProcs.SessionMessageHost, MongoDB.Driver.MongoClient, System.Func, System.Func, MongoDB.Driver.IMongoCollection, MongoDB.Driver.IMongoCollection, System.Action, Hi.ScriptApiUtils.ICsScriptApi, Hi.MachiningProcs.MachiningActRunnerConfig) + fullName.vb: Hi.MachiningProcs.MachiningActRunner.New(Hi.MachiningProcs.SessionMessageHost, MongoDB.Driver.MongoClient, System.Func(Of Hi.Machining.MachiningToolHouse), System.Func(Of Hi.Machining.MachiningEquipmentUtils.MachiningEquipment), MongoDB.Driver.IMongoCollection(Of Hi.MillingSteps.MillingStepLuggage), MongoDB.Driver.IMongoCollection(Of Hi.Common.Slice), System.Action, Hi.ScriptApiUtils.ICsScriptApi, Hi.MachiningProcs.MachiningActRunnerConfig) + nameWithType: MachiningActRunner.MachiningActRunner(SessionMessageHost, MongoClient, Func, Func, IMongoCollection, IMongoCollection, Action, ICsScriptApi, MachiningActRunnerConfig) + nameWithType.vb: MachiningActRunner.New(SessionMessageHost, MongoClient, Func(Of MachiningToolHouse), Func(Of MachiningEquipment), IMongoCollection(Of MillingStepLuggage), IMongoCollection(Of Slice), Action, ICsScriptApi, MachiningActRunnerConfig) - uid: Hi.MachiningProcs.MachiningActRunner.#ctor* name: MachiningActRunner href: api/Hi.MachiningProcs.MachiningActRunner.html#Hi_MachiningProcs_MachiningActRunner__ctor_ @@ -77194,6 +77889,19 @@ references: isSpec: "True" fullName: Hi.MachiningProcs.MachiningActRunner.ClStrip nameWithType: MachiningActRunner.ClStrip +- uid: Hi.MachiningProcs.MachiningActRunner.Config + name: Config + href: api/Hi.MachiningProcs.MachiningActRunner.html#Hi_MachiningProcs_MachiningActRunner_Config + commentId: P:Hi.MachiningProcs.MachiningActRunner.Config + fullName: Hi.MachiningProcs.MachiningActRunner.Config + nameWithType: MachiningActRunner.Config +- uid: Hi.MachiningProcs.MachiningActRunner.Config* + name: Config + href: api/Hi.MachiningProcs.MachiningActRunner.html#Hi_MachiningProcs_MachiningActRunner_Config_ + commentId: Overload:Hi.MachiningProcs.MachiningActRunner.Config + isSpec: "True" + fullName: Hi.MachiningProcs.MachiningActRunner.Config + nameWithType: MachiningActRunner.Config - uid: Hi.MachiningProcs.MachiningActRunner.Dispose name: Dispose() href: api/Hi.MachiningProcs.MachiningActRunner.html#Hi_MachiningProcs_MachiningActRunner_Dispose @@ -77216,32 +77924,6 @@ references: isSpec: "True" fullName: Hi.MachiningProcs.MachiningActRunner.Dispose nameWithType: MachiningActRunner.Dispose -- uid: Hi.MachiningProcs.MachiningActRunner.EnableCollisionDetection - name: EnableCollisionDetection - href: api/Hi.MachiningProcs.MachiningActRunner.html#Hi_MachiningProcs_MachiningActRunner_EnableCollisionDetection - commentId: P:Hi.MachiningProcs.MachiningActRunner.EnableCollisionDetection - fullName: Hi.MachiningProcs.MachiningActRunner.EnableCollisionDetection - nameWithType: MachiningActRunner.EnableCollisionDetection -- uid: Hi.MachiningProcs.MachiningActRunner.EnableCollisionDetection* - name: EnableCollisionDetection - href: api/Hi.MachiningProcs.MachiningActRunner.html#Hi_MachiningProcs_MachiningActRunner_EnableCollisionDetection_ - commentId: Overload:Hi.MachiningProcs.MachiningActRunner.EnableCollisionDetection - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningActRunner.EnableCollisionDetection - nameWithType: MachiningActRunner.EnableCollisionDetection -- uid: Hi.MachiningProcs.MachiningActRunner.EnablePhysics - name: EnablePhysics - href: api/Hi.MachiningProcs.MachiningActRunner.html#Hi_MachiningProcs_MachiningActRunner_EnablePhysics - commentId: P:Hi.MachiningProcs.MachiningActRunner.EnablePhysics - fullName: Hi.MachiningProcs.MachiningActRunner.EnablePhysics - nameWithType: MachiningActRunner.EnablePhysics -- uid: Hi.MachiningProcs.MachiningActRunner.EnablePhysics* - name: EnablePhysics - href: api/Hi.MachiningProcs.MachiningActRunner.html#Hi_MachiningProcs_MachiningActRunner_EnablePhysics_ - commentId: Overload:Hi.MachiningProcs.MachiningActRunner.EnablePhysics - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningActRunner.EnablePhysics - nameWithType: MachiningActRunner.EnablePhysics - uid: Hi.MachiningProcs.MachiningActRunner.EnableSweeping name: EnableSweeping href: api/Hi.MachiningProcs.MachiningActRunner.html#Hi_MachiningProcs_MachiningActRunner_EnableSweeping @@ -77255,19 +77937,6 @@ references: isSpec: "True" fullName: Hi.MachiningProcs.MachiningActRunner.EnableSweeping nameWithType: MachiningActRunner.EnableSweeping -- uid: Hi.MachiningProcs.MachiningActRunner.EnableWearEffect - name: EnableWearEffect - href: api/Hi.MachiningProcs.MachiningActRunner.html#Hi_MachiningProcs_MachiningActRunner_EnableWearEffect - commentId: P:Hi.MachiningProcs.MachiningActRunner.EnableWearEffect - fullName: Hi.MachiningProcs.MachiningActRunner.EnableWearEffect - nameWithType: MachiningActRunner.EnableWearEffect -- uid: Hi.MachiningProcs.MachiningActRunner.EnableWearEffect* - name: EnableWearEffect - href: api/Hi.MachiningProcs.MachiningActRunner.html#Hi_MachiningProcs_MachiningActRunner_EnableWearEffect_ - commentId: Overload:Hi.MachiningProcs.MachiningActRunner.EnableWearEffect - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningActRunner.EnableWearEffect - nameWithType: MachiningActRunner.EnableWearEffect - uid: Hi.MachiningProcs.MachiningActRunner.ExpandToActMcStep(Hi.Numerical.Acts.IAct) name: ExpandToActMcStep(IAct) href: api/Hi.MachiningProcs.MachiningActRunner.html#Hi_MachiningProcs_MachiningActRunner_ExpandToActMcStep_Hi_Numerical_Acts_IAct_ @@ -77307,19 +77976,6 @@ references: isSpec: "True" fullName: Hi.MachiningProcs.MachiningActRunner.GrpcPostStepAction nameWithType: MachiningActRunner.GrpcPostStepAction -- uid: Hi.MachiningProcs.MachiningActRunner.MachiningEquipment - name: MachiningEquipment - href: api/Hi.MachiningProcs.MachiningActRunner.html#Hi_MachiningProcs_MachiningActRunner_MachiningEquipment - commentId: P:Hi.MachiningProcs.MachiningActRunner.MachiningEquipment - fullName: Hi.MachiningProcs.MachiningActRunner.MachiningEquipment - nameWithType: MachiningActRunner.MachiningEquipment -- uid: Hi.MachiningProcs.MachiningActRunner.MachiningEquipment* - name: MachiningEquipment - href: api/Hi.MachiningProcs.MachiningActRunner.html#Hi_MachiningProcs_MachiningActRunner_MachiningEquipment_ - commentId: Overload:Hi.MachiningProcs.MachiningActRunner.MachiningEquipment - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningActRunner.MachiningEquipment - nameWithType: MachiningActRunner.MachiningEquipment - uid: Hi.MachiningProcs.MachiningActRunner.MachiningMotionResolution name: MachiningMotionResolution href: api/Hi.MachiningProcs.MachiningActRunner.html#Hi_MachiningProcs_MachiningActRunner_MachiningMotionResolution @@ -77371,19 +78027,6 @@ references: isSpec: "True" fullName: Hi.MachiningProcs.MachiningActRunner.MachiningVolumeRemovalProc nameWithType: MachiningActRunner.MachiningVolumeRemovalProc -- uid: Hi.MachiningProcs.MachiningActRunner.MillingActRunnerConfig - name: MillingActRunnerConfig - href: api/Hi.MachiningProcs.MachiningActRunner.html#Hi_MachiningProcs_MachiningActRunner_MillingActRunnerConfig - commentId: P:Hi.MachiningProcs.MachiningActRunner.MillingActRunnerConfig - fullName: Hi.MachiningProcs.MachiningActRunner.MillingActRunnerConfig - nameWithType: MachiningActRunner.MillingActRunnerConfig -- uid: Hi.MachiningProcs.MachiningActRunner.MillingActRunnerConfig* - name: MillingActRunnerConfig - href: api/Hi.MachiningProcs.MachiningActRunner.html#Hi_MachiningProcs_MachiningActRunner_MillingActRunnerConfig_ - commentId: Overload:Hi.MachiningProcs.MachiningActRunner.MillingActRunnerConfig - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningActRunner.MillingActRunnerConfig - nameWithType: MachiningActRunner.MillingActRunnerConfig - uid: Hi.MachiningProcs.MachiningActRunner.ProcAct(Hi.Numerical.Acts.IAct,Hi.MachiningProcs.MachiningSession,Hi.MachiningSteps.IMachiningStepHost,Hi.Common.FileLines.IIndexedFileLine,System.Threading.CancellationToken) name: ProcAct(IAct, MachiningSession, IMachiningStepHost, IIndexedFileLine, CancellationToken) href: api/Hi.MachiningProcs.MachiningActRunner.html#Hi_MachiningProcs_MachiningActRunner_ProcAct_Hi_Numerical_Acts_IAct_Hi_MachiningProcs_MachiningSession_Hi_MachiningSteps_IMachiningStepHost_Hi_Common_FileLines_IIndexedFileLine_System_Threading_CancellationToken_ @@ -77455,6 +78098,32 @@ references: commentId: E:Hi.MachiningProcs.MachiningActRunner.UiPostStepAction fullName: Hi.MachiningProcs.MachiningActRunner.UiPostStepAction nameWithType: MachiningActRunner.UiPostStepAction +- uid: Hi.MachiningProcs.MachiningActRunner.UpdateByMachiningChain + name: UpdateByMachiningChain() + href: api/Hi.MachiningProcs.MachiningActRunner.html#Hi_MachiningProcs_MachiningActRunner_UpdateByMachiningChain + commentId: M:Hi.MachiningProcs.MachiningActRunner.UpdateByMachiningChain + fullName: Hi.MachiningProcs.MachiningActRunner.UpdateByMachiningChain() + nameWithType: MachiningActRunner.UpdateByMachiningChain() +- uid: Hi.MachiningProcs.MachiningActRunner.UpdateByMachiningChain* + name: UpdateByMachiningChain + href: api/Hi.MachiningProcs.MachiningActRunner.html#Hi_MachiningProcs_MachiningActRunner_UpdateByMachiningChain_ + commentId: Overload:Hi.MachiningProcs.MachiningActRunner.UpdateByMachiningChain + isSpec: "True" + fullName: Hi.MachiningProcs.MachiningActRunner.UpdateByMachiningChain + nameWithType: MachiningActRunner.UpdateByMachiningChain +- uid: Hi.MachiningProcs.MachiningActRunner.UpdateByMachiningEquipment + name: UpdateByMachiningEquipment() + href: api/Hi.MachiningProcs.MachiningActRunner.html#Hi_MachiningProcs_MachiningActRunner_UpdateByMachiningEquipment + commentId: M:Hi.MachiningProcs.MachiningActRunner.UpdateByMachiningEquipment + fullName: Hi.MachiningProcs.MachiningActRunner.UpdateByMachiningEquipment() + nameWithType: MachiningActRunner.UpdateByMachiningEquipment() +- uid: Hi.MachiningProcs.MachiningActRunner.UpdateByMachiningEquipment* + name: UpdateByMachiningEquipment + href: api/Hi.MachiningProcs.MachiningActRunner.html#Hi_MachiningProcs_MachiningActRunner_UpdateByMachiningEquipment_ + commentId: Overload:Hi.MachiningProcs.MachiningActRunner.UpdateByMachiningEquipment + isSpec: "True" + fullName: Hi.MachiningProcs.MachiningActRunner.UpdateByMachiningEquipment + nameWithType: MachiningActRunner.UpdateByMachiningEquipment - uid: Hi.MachiningProcs.MachiningActRunner.WaitAll name: WaitAll() href: api/Hi.MachiningProcs.MachiningActRunner.html#Hi_MachiningProcs_MachiningActRunner_WaitAll @@ -77481,6 +78150,173 @@ references: isSpec: "True" fullName: Hi.MachiningProcs.MachiningActRunner.XyzabcChain nameWithType: MachiningActRunner.XyzabcChain +- uid: Hi.MachiningProcs.MachiningActRunnerConfig + name: MachiningActRunnerConfig + href: api/Hi.MachiningProcs.MachiningActRunnerConfig.html + commentId: T:Hi.MachiningProcs.MachiningActRunnerConfig + fullName: Hi.MachiningProcs.MachiningActRunnerConfig + nameWithType: MachiningActRunnerConfig +- uid: Hi.MachiningProcs.MachiningActRunnerConfig.#ctor + name: MachiningActRunnerConfig() + href: api/Hi.MachiningProcs.MachiningActRunnerConfig.html#Hi_MachiningProcs_MachiningActRunnerConfig__ctor + commentId: M:Hi.MachiningProcs.MachiningActRunnerConfig.#ctor + name.vb: New() + fullName: Hi.MachiningProcs.MachiningActRunnerConfig.MachiningActRunnerConfig() + fullName.vb: Hi.MachiningProcs.MachiningActRunnerConfig.New() + nameWithType: MachiningActRunnerConfig.MachiningActRunnerConfig() + nameWithType.vb: MachiningActRunnerConfig.New() +- uid: Hi.MachiningProcs.MachiningActRunnerConfig.#ctor(System.Xml.Linq.XElement,System.String) + name: MachiningActRunnerConfig(XElement, string) + href: api/Hi.MachiningProcs.MachiningActRunnerConfig.html#Hi_MachiningProcs_MachiningActRunnerConfig__ctor_System_Xml_Linq_XElement_System_String_ + commentId: M:Hi.MachiningProcs.MachiningActRunnerConfig.#ctor(System.Xml.Linq.XElement,System.String) + name.vb: New(XElement, String) + fullName: Hi.MachiningProcs.MachiningActRunnerConfig.MachiningActRunnerConfig(System.Xml.Linq.XElement, string) + fullName.vb: Hi.MachiningProcs.MachiningActRunnerConfig.New(System.Xml.Linq.XElement, String) + nameWithType: MachiningActRunnerConfig.MachiningActRunnerConfig(XElement, string) + nameWithType.vb: MachiningActRunnerConfig.New(XElement, String) +- uid: Hi.MachiningProcs.MachiningActRunnerConfig.#ctor* + name: MachiningActRunnerConfig + href: api/Hi.MachiningProcs.MachiningActRunnerConfig.html#Hi_MachiningProcs_MachiningActRunnerConfig__ctor_ + commentId: Overload:Hi.MachiningProcs.MachiningActRunnerConfig.#ctor + isSpec: "True" + name.vb: New + fullName: Hi.MachiningProcs.MachiningActRunnerConfig.MachiningActRunnerConfig + fullName.vb: Hi.MachiningProcs.MachiningActRunnerConfig.New + nameWithType: MachiningActRunnerConfig.MachiningActRunnerConfig + nameWithType.vb: MachiningActRunnerConfig.New +- uid: Hi.MachiningProcs.MachiningActRunnerConfig.EnableCollisionDetection + name: EnableCollisionDetection + href: api/Hi.MachiningProcs.MachiningActRunnerConfig.html#Hi_MachiningProcs_MachiningActRunnerConfig_EnableCollisionDetection + commentId: P:Hi.MachiningProcs.MachiningActRunnerConfig.EnableCollisionDetection + fullName: Hi.MachiningProcs.MachiningActRunnerConfig.EnableCollisionDetection + nameWithType: MachiningActRunnerConfig.EnableCollisionDetection +- uid: Hi.MachiningProcs.MachiningActRunnerConfig.EnableCollisionDetection* + name: EnableCollisionDetection + href: api/Hi.MachiningProcs.MachiningActRunnerConfig.html#Hi_MachiningProcs_MachiningActRunnerConfig_EnableCollisionDetection_ + commentId: Overload:Hi.MachiningProcs.MachiningActRunnerConfig.EnableCollisionDetection + isSpec: "True" + fullName: Hi.MachiningProcs.MachiningActRunnerConfig.EnableCollisionDetection + nameWithType: MachiningActRunnerConfig.EnableCollisionDetection +- uid: Hi.MachiningProcs.MachiningActRunnerConfig.EnableDeflectionTransformation + name: EnableDeflectionTransformation + href: api/Hi.MachiningProcs.MachiningActRunnerConfig.html#Hi_MachiningProcs_MachiningActRunnerConfig_EnableDeflectionTransformation + commentId: P:Hi.MachiningProcs.MachiningActRunnerConfig.EnableDeflectionTransformation + fullName: Hi.MachiningProcs.MachiningActRunnerConfig.EnableDeflectionTransformation + nameWithType: MachiningActRunnerConfig.EnableDeflectionTransformation +- uid: Hi.MachiningProcs.MachiningActRunnerConfig.EnableDeflectionTransformation* + name: EnableDeflectionTransformation + href: api/Hi.MachiningProcs.MachiningActRunnerConfig.html#Hi_MachiningProcs_MachiningActRunnerConfig_EnableDeflectionTransformation_ + commentId: Overload:Hi.MachiningProcs.MachiningActRunnerConfig.EnableDeflectionTransformation + isSpec: "True" + fullName: Hi.MachiningProcs.MachiningActRunnerConfig.EnableDeflectionTransformation + nameWithType: MachiningActRunnerConfig.EnableDeflectionTransformation +- uid: Hi.MachiningProcs.MachiningActRunnerConfig.EnablePauseOnFailure + name: EnablePauseOnFailure + href: api/Hi.MachiningProcs.MachiningActRunnerConfig.html#Hi_MachiningProcs_MachiningActRunnerConfig_EnablePauseOnFailure + commentId: P:Hi.MachiningProcs.MachiningActRunnerConfig.EnablePauseOnFailure + fullName: Hi.MachiningProcs.MachiningActRunnerConfig.EnablePauseOnFailure + nameWithType: MachiningActRunnerConfig.EnablePauseOnFailure +- uid: Hi.MachiningProcs.MachiningActRunnerConfig.EnablePauseOnFailure* + name: EnablePauseOnFailure + href: api/Hi.MachiningProcs.MachiningActRunnerConfig.html#Hi_MachiningProcs_MachiningActRunnerConfig_EnablePauseOnFailure_ + commentId: Overload:Hi.MachiningProcs.MachiningActRunnerConfig.EnablePauseOnFailure + isSpec: "True" + fullName: Hi.MachiningProcs.MachiningActRunnerConfig.EnablePauseOnFailure + nameWithType: MachiningActRunnerConfig.EnablePauseOnFailure +- uid: Hi.MachiningProcs.MachiningActRunnerConfig.EnablePhysics + name: EnablePhysics + href: api/Hi.MachiningProcs.MachiningActRunnerConfig.html#Hi_MachiningProcs_MachiningActRunnerConfig_EnablePhysics + commentId: P:Hi.MachiningProcs.MachiningActRunnerConfig.EnablePhysics + fullName: Hi.MachiningProcs.MachiningActRunnerConfig.EnablePhysics + nameWithType: MachiningActRunnerConfig.EnablePhysics +- uid: Hi.MachiningProcs.MachiningActRunnerConfig.EnablePhysics* + name: EnablePhysics + href: api/Hi.MachiningProcs.MachiningActRunnerConfig.html#Hi_MachiningProcs_MachiningActRunnerConfig_EnablePhysics_ + commentId: Overload:Hi.MachiningProcs.MachiningActRunnerConfig.EnablePhysics + isSpec: "True" + fullName: Hi.MachiningProcs.MachiningActRunnerConfig.EnablePhysics + nameWithType: MachiningActRunnerConfig.EnablePhysics +- uid: Hi.MachiningProcs.MachiningActRunnerConfig.EnableStrokeLimitCheck + name: EnableStrokeLimitCheck + href: api/Hi.MachiningProcs.MachiningActRunnerConfig.html#Hi_MachiningProcs_MachiningActRunnerConfig_EnableStrokeLimitCheck + commentId: P:Hi.MachiningProcs.MachiningActRunnerConfig.EnableStrokeLimitCheck + fullName: Hi.MachiningProcs.MachiningActRunnerConfig.EnableStrokeLimitCheck + nameWithType: MachiningActRunnerConfig.EnableStrokeLimitCheck +- uid: Hi.MachiningProcs.MachiningActRunnerConfig.EnableStrokeLimitCheck* + name: EnableStrokeLimitCheck + href: api/Hi.MachiningProcs.MachiningActRunnerConfig.html#Hi_MachiningProcs_MachiningActRunnerConfig_EnableStrokeLimitCheck_ + commentId: Overload:Hi.MachiningProcs.MachiningActRunnerConfig.EnableStrokeLimitCheck + isSpec: "True" + fullName: Hi.MachiningProcs.MachiningActRunnerConfig.EnableStrokeLimitCheck + nameWithType: MachiningActRunnerConfig.EnableStrokeLimitCheck +- uid: Hi.MachiningProcs.MachiningActRunnerConfig.EnableWearEffect + name: EnableWearEffect + href: api/Hi.MachiningProcs.MachiningActRunnerConfig.html#Hi_MachiningProcs_MachiningActRunnerConfig_EnableWearEffect + commentId: P:Hi.MachiningProcs.MachiningActRunnerConfig.EnableWearEffect + fullName: Hi.MachiningProcs.MachiningActRunnerConfig.EnableWearEffect + nameWithType: MachiningActRunnerConfig.EnableWearEffect +- uid: Hi.MachiningProcs.MachiningActRunnerConfig.EnableWearEffect* + name: EnableWearEffect + href: api/Hi.MachiningProcs.MachiningActRunnerConfig.html#Hi_MachiningProcs_MachiningActRunnerConfig_EnableWearEffect_ + commentId: Overload:Hi.MachiningProcs.MachiningActRunnerConfig.EnableWearEffect + isSpec: "True" + fullName: Hi.MachiningProcs.MachiningActRunnerConfig.EnableWearEffect + nameWithType: MachiningActRunnerConfig.EnableWearEffect +- uid: Hi.MachiningProcs.MachiningActRunnerConfig.InitSpindleTemperature_C + name: InitSpindleTemperature_C + href: api/Hi.MachiningProcs.MachiningActRunnerConfig.html#Hi_MachiningProcs_MachiningActRunnerConfig_InitSpindleTemperature_C + commentId: P:Hi.MachiningProcs.MachiningActRunnerConfig.InitSpindleTemperature_C + fullName: Hi.MachiningProcs.MachiningActRunnerConfig.InitSpindleTemperature_C + nameWithType: MachiningActRunnerConfig.InitSpindleTemperature_C +- uid: Hi.MachiningProcs.MachiningActRunnerConfig.InitSpindleTemperature_C* + name: InitSpindleTemperature_C + href: api/Hi.MachiningProcs.MachiningActRunnerConfig.html#Hi_MachiningProcs_MachiningActRunnerConfig_InitSpindleTemperature_C_ + commentId: Overload:Hi.MachiningProcs.MachiningActRunnerConfig.InitSpindleTemperature_C + isSpec: "True" + fullName: Hi.MachiningProcs.MachiningActRunnerConfig.InitSpindleTemperature_C + nameWithType: MachiningActRunnerConfig.InitSpindleTemperature_C +- uid: Hi.MachiningProcs.MachiningActRunnerConfig.InitSpindleTemperature_K + name: InitSpindleTemperature_K + href: api/Hi.MachiningProcs.MachiningActRunnerConfig.html#Hi_MachiningProcs_MachiningActRunnerConfig_InitSpindleTemperature_K + commentId: P:Hi.MachiningProcs.MachiningActRunnerConfig.InitSpindleTemperature_K + fullName: Hi.MachiningProcs.MachiningActRunnerConfig.InitSpindleTemperature_K + nameWithType: MachiningActRunnerConfig.InitSpindleTemperature_K +- uid: Hi.MachiningProcs.MachiningActRunnerConfig.InitSpindleTemperature_K* + name: InitSpindleTemperature_K + href: api/Hi.MachiningProcs.MachiningActRunnerConfig.html#Hi_MachiningProcs_MachiningActRunnerConfig_InitSpindleTemperature_K_ + commentId: Overload:Hi.MachiningProcs.MachiningActRunnerConfig.InitSpindleTemperature_K + isSpec: "True" + fullName: Hi.MachiningProcs.MachiningActRunnerConfig.InitSpindleTemperature_K + nameWithType: MachiningActRunnerConfig.InitSpindleTemperature_K +- uid: Hi.MachiningProcs.MachiningActRunnerConfig.MakeXmlSource(System.String,System.String,System.Boolean) + name: MakeXmlSource(string, string, bool) + href: api/Hi.MachiningProcs.MachiningActRunnerConfig.html#Hi_MachiningProcs_MachiningActRunnerConfig_MakeXmlSource_System_String_System_String_System_Boolean_ + commentId: M:Hi.MachiningProcs.MachiningActRunnerConfig.MakeXmlSource(System.String,System.String,System.Boolean) + name.vb: MakeXmlSource(String, String, Boolean) + fullName: Hi.MachiningProcs.MachiningActRunnerConfig.MakeXmlSource(string, string, bool) + fullName.vb: Hi.MachiningProcs.MachiningActRunnerConfig.MakeXmlSource(String, String, Boolean) + nameWithType: MachiningActRunnerConfig.MakeXmlSource(string, string, bool) + nameWithType.vb: MachiningActRunnerConfig.MakeXmlSource(String, String, Boolean) +- uid: Hi.MachiningProcs.MachiningActRunnerConfig.MakeXmlSource* + name: MakeXmlSource + href: api/Hi.MachiningProcs.MachiningActRunnerConfig.html#Hi_MachiningProcs_MachiningActRunnerConfig_MakeXmlSource_ + commentId: Overload:Hi.MachiningProcs.MachiningActRunnerConfig.MakeXmlSource + isSpec: "True" + fullName: Hi.MachiningProcs.MachiningActRunnerConfig.MakeXmlSource + nameWithType: MachiningActRunnerConfig.MakeXmlSource +- uid: Hi.MachiningProcs.MachiningActRunnerConfig.XName + name: XName + href: api/Hi.MachiningProcs.MachiningActRunnerConfig.html#Hi_MachiningProcs_MachiningActRunnerConfig_XName + commentId: P:Hi.MachiningProcs.MachiningActRunnerConfig.XName + fullName: Hi.MachiningProcs.MachiningActRunnerConfig.XName + nameWithType: MachiningActRunnerConfig.XName +- uid: Hi.MachiningProcs.MachiningActRunnerConfig.XName* + name: XName + href: api/Hi.MachiningProcs.MachiningActRunnerConfig.html#Hi_MachiningProcs_MachiningActRunnerConfig_XName_ + commentId: Overload:Hi.MachiningProcs.MachiningActRunnerConfig.XName + isSpec: "True" + fullName: Hi.MachiningProcs.MachiningActRunnerConfig.XName + nameWithType: MachiningActRunnerConfig.XName - uid: Hi.MachiningProcs.MachiningParallelProc name: MachiningParallelProc href: api/Hi.MachiningProcs.MachiningParallelProc.html @@ -77684,15 +78520,6 @@ references: fullName.vb: Hi.MachiningProcs.MachiningProject.New(String) nameWithType: MachiningProject.MachiningProject(string) nameWithType.vb: MachiningProject.New(String) -- uid: Hi.MachiningProcs.MachiningProject.#ctor(System.String,MongoDB.Driver.MongoClient) - name: MachiningProject(string, MongoClient) - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject__ctor_System_String_MongoDB_Driver_MongoClient_ - commentId: M:Hi.MachiningProcs.MachiningProject.#ctor(System.String,MongoDB.Driver.MongoClient) - name.vb: New(String, MongoClient) - fullName: Hi.MachiningProcs.MachiningProject.MachiningProject(string, MongoDB.Driver.MongoClient) - fullName.vb: Hi.MachiningProcs.MachiningProject.New(String, MongoDB.Driver.MongoClient) - nameWithType: MachiningProject.MachiningProject(string, MongoClient) - nameWithType.vb: MachiningProject.New(String, MongoClient) - uid: Hi.MachiningProcs.MachiningProject.#ctor(System.Xml.Linq.XElement,System.String) name: MachiningProject(XElement, string) href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject__ctor_System_Xml_Linq_XElement_System_String_ @@ -77702,15 +78529,6 @@ references: fullName.vb: Hi.MachiningProcs.MachiningProject.New(System.Xml.Linq.XElement, String) nameWithType: MachiningProject.MachiningProject(XElement, string) nameWithType.vb: MachiningProject.New(XElement, String) -- uid: Hi.MachiningProcs.MachiningProject.#ctor(System.Xml.Linq.XElement,System.String,MongoDB.Driver.MongoClient) - name: MachiningProject(XElement, string, MongoClient) - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject__ctor_System_Xml_Linq_XElement_System_String_MongoDB_Driver_MongoClient_ - commentId: M:Hi.MachiningProcs.MachiningProject.#ctor(System.Xml.Linq.XElement,System.String,MongoDB.Driver.MongoClient) - name.vb: New(XElement, String, MongoClient) - fullName: Hi.MachiningProcs.MachiningProject.MachiningProject(System.Xml.Linq.XElement, string, MongoDB.Driver.MongoClient) - fullName.vb: Hi.MachiningProcs.MachiningProject.New(System.Xml.Linq.XElement, String, MongoDB.Driver.MongoClient) - nameWithType: MachiningProject.MachiningProject(XElement, string, MongoClient) - nameWithType.vb: MachiningProject.New(XElement, String, MongoClient) - uid: Hi.MachiningProcs.MachiningProject.#ctor* name: MachiningProject href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject__ctor_ @@ -77721,19 +78539,6 @@ references: fullName.vb: Hi.MachiningProcs.MachiningProject.New nameWithType: MachiningProject.MachiningProject nameWithType.vb: MachiningProject.New -- uid: Hi.MachiningProcs.MachiningProject.Act(Hi.Numerical.Acts.IAct,Hi.Common.FileLines.IIndexedFileLine,System.Nullable{System.Threading.CancellationToken}) - name: Act(IAct, IIndexedFileLine, CancellationToken?) - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_Act_Hi_Numerical_Acts_IAct_Hi_Common_FileLines_IIndexedFileLine_System_Nullable_System_Threading_CancellationToken__ - commentId: M:Hi.MachiningProcs.MachiningProject.Act(Hi.Numerical.Acts.IAct,Hi.Common.FileLines.IIndexedFileLine,System.Nullable{System.Threading.CancellationToken}) - fullName: Hi.MachiningProcs.MachiningProject.Act(Hi.Numerical.Acts.IAct, Hi.Common.FileLines.IIndexedFileLine, System.Threading.CancellationToken?) - nameWithType: MachiningProject.Act(IAct, IIndexedFileLine, CancellationToken?) -- uid: Hi.MachiningProcs.MachiningProject.Act* - name: Act - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_Act_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.Act - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.Act - nameWithType: MachiningProject.Act - uid: Hi.MachiningProcs.MachiningProject.ApiVersion name: ApiVersion href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_ApiVersion @@ -77760,58 +78565,6 @@ references: isSpec: "True" fullName: Hi.MachiningProcs.MachiningProject.BaseDirectory nameWithType: MachiningProject.BaseDirectory -- uid: Hi.MachiningProcs.MachiningProject.BeginSession - name: BeginSession() - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_BeginSession - commentId: M:Hi.MachiningProcs.MachiningProject.BeginSession - fullName: Hi.MachiningProcs.MachiningProject.BeginSession() - nameWithType: MachiningProject.BeginSession() -- uid: Hi.MachiningProcs.MachiningProject.BeginSession* - name: BeginSession - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_BeginSession_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.BeginSession - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.BeginSession - nameWithType: MachiningProject.BeginSession -- uid: Hi.MachiningProcs.MachiningProject.BoundSelectorHost - name: BoundSelectorHost - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_BoundSelectorHost - commentId: P:Hi.MachiningProcs.MachiningProject.BoundSelectorHost - fullName: Hi.MachiningProcs.MachiningProject.BoundSelectorHost - nameWithType: MachiningProject.BoundSelectorHost -- uid: Hi.MachiningProcs.MachiningProject.BoundSelectorHost* - name: BoundSelectorHost - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_BoundSelectorHost_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.BoundSelectorHost - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.BoundSelectorHost - nameWithType: MachiningProject.BoundSelectorHost -- uid: Hi.MachiningProcs.MachiningProject.ClStrip - name: ClStrip - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_ClStrip - commentId: P:Hi.MachiningProcs.MachiningProject.ClStrip - fullName: Hi.MachiningProcs.MachiningProject.ClStrip - nameWithType: MachiningProject.ClStrip -- uid: Hi.MachiningProcs.MachiningProject.ClStrip* - name: ClStrip - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_ClStrip_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.ClStrip - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.ClStrip - nameWithType: MachiningProject.ClStrip -- uid: Hi.MachiningProcs.MachiningProject.CoordinateEntryDisplayee - name: CoordinateEntryDisplayee - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_CoordinateEntryDisplayee - commentId: P:Hi.MachiningProcs.MachiningProject.CoordinateEntryDisplayee - fullName: Hi.MachiningProcs.MachiningProject.CoordinateEntryDisplayee - nameWithType: MachiningProject.CoordinateEntryDisplayee -- uid: Hi.MachiningProcs.MachiningProject.CoordinateEntryDisplayee* - name: CoordinateEntryDisplayee - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_CoordinateEntryDisplayee_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.CoordinateEntryDisplayee - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.CoordinateEntryDisplayee - nameWithType: MachiningProject.CoordinateEntryDisplayee - uid: Hi.MachiningProcs.MachiningProject.DictionaryColorGuide name: DictionaryColorGuide href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_DictionaryColorGuide @@ -77847,71 +78600,6 @@ references: isSpec: "True" fullName: Hi.MachiningProcs.MachiningProject.Dispose nameWithType: MachiningProject.Dispose -- uid: Hi.MachiningProcs.MachiningProject.EnableCollisionDetection - name: EnableCollisionDetection - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_EnableCollisionDetection - commentId: P:Hi.MachiningProcs.MachiningProject.EnableCollisionDetection - fullName: Hi.MachiningProcs.MachiningProject.EnableCollisionDetection - nameWithType: MachiningProject.EnableCollisionDetection -- uid: Hi.MachiningProcs.MachiningProject.EnableCollisionDetection* - name: EnableCollisionDetection - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_EnableCollisionDetection_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.EnableCollisionDetection - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.EnableCollisionDetection - nameWithType: MachiningProject.EnableCollisionDetection -- uid: Hi.MachiningProcs.MachiningProject.EnablePauseOnFailure - name: EnablePauseOnFailure - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_EnablePauseOnFailure - commentId: P:Hi.MachiningProcs.MachiningProject.EnablePauseOnFailure - fullName: Hi.MachiningProcs.MachiningProject.EnablePauseOnFailure - nameWithType: MachiningProject.EnablePauseOnFailure -- uid: Hi.MachiningProcs.MachiningProject.EnablePauseOnFailure* - name: EnablePauseOnFailure - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_EnablePauseOnFailure_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.EnablePauseOnFailure - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.EnablePauseOnFailure - nameWithType: MachiningProject.EnablePauseOnFailure -- uid: Hi.MachiningProcs.MachiningProject.EnableStrokeLimitCheck - name: EnableStrokeLimitCheck - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_EnableStrokeLimitCheck - commentId: P:Hi.MachiningProcs.MachiningProject.EnableStrokeLimitCheck - fullName: Hi.MachiningProcs.MachiningProject.EnableStrokeLimitCheck - nameWithType: MachiningProject.EnableStrokeLimitCheck -- uid: Hi.MachiningProcs.MachiningProject.EnableStrokeLimitCheck* - name: EnableStrokeLimitCheck - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_EnableStrokeLimitCheck_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.EnableStrokeLimitCheck - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.EnableStrokeLimitCheck - nameWithType: MachiningProject.EnableStrokeLimitCheck -- uid: Hi.MachiningProcs.MachiningProject.EndSession - name: EndSession() - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_EndSession - commentId: M:Hi.MachiningProcs.MachiningProject.EndSession - fullName: Hi.MachiningProcs.MachiningProject.EndSession() - nameWithType: MachiningProject.EndSession() -- uid: Hi.MachiningProcs.MachiningProject.EndSession* - name: EndSession - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_EndSession_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.EndSession - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.EndSession - nameWithType: MachiningProject.EndSession -- uid: Hi.MachiningProcs.MachiningProject.GetInspectingKeyPresentName(Hi.Common.StringLocalizer) - name: GetInspectingKeyPresentName(StringLocalizer) - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_GetInspectingKeyPresentName_Hi_Common_StringLocalizer_ - commentId: M:Hi.MachiningProcs.MachiningProject.GetInspectingKeyPresentName(Hi.Common.StringLocalizer) - fullName: Hi.MachiningProcs.MachiningProject.GetInspectingKeyPresentName(Hi.Common.StringLocalizer) - nameWithType: MachiningProject.GetInspectingKeyPresentName(StringLocalizer) -- uid: Hi.MachiningProcs.MachiningProject.GetInspectingKeyPresentName* - name: GetInspectingKeyPresentName - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_GetInspectingKeyPresentName_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.GetInspectingKeyPresentName - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.GetInspectingKeyPresentName - nameWithType: MachiningProject.GetInspectingKeyPresentName - uid: Hi.MachiningProcs.MachiningProject.GetMachiningProject name: GetMachiningProject() href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_GetMachiningProject @@ -77938,45 +78626,6 @@ references: isSpec: "True" fullName: Hi.MachiningProcs.MachiningProject.GetMillingEquipment nameWithType: MachiningProject.GetMillingEquipment -- uid: Hi.MachiningProcs.MachiningProject.Global - name: Global - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_Global - commentId: P:Hi.MachiningProcs.MachiningProject.Global - fullName: Hi.MachiningProcs.MachiningProject.Global - nameWithType: MachiningProject.Global -- uid: Hi.MachiningProcs.MachiningProject.Global* - name: Global - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_Global_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.Global - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.Global - nameWithType: MachiningProject.Global -- uid: Hi.MachiningProcs.MachiningProject.InspectingKey - name: InspectingKey - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_InspectingKey - commentId: P:Hi.MachiningProcs.MachiningProject.InspectingKey - fullName: Hi.MachiningProcs.MachiningProject.InspectingKey - nameWithType: MachiningProject.InspectingKey -- uid: Hi.MachiningProcs.MachiningProject.InspectingKey* - name: InspectingKey - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_InspectingKey_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.InspectingKey - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.InspectingKey - nameWithType: MachiningProject.InspectingKey -- uid: Hi.MachiningProcs.MachiningProject.InspectingQuantityFunc - name: InspectingQuantityFunc - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_InspectingQuantityFunc - commentId: P:Hi.MachiningProcs.MachiningProject.InspectingQuantityFunc - fullName: Hi.MachiningProcs.MachiningProject.InspectingQuantityFunc - nameWithType: MachiningProject.InspectingQuantityFunc -- uid: Hi.MachiningProcs.MachiningProject.InspectingQuantityFunc* - name: InspectingQuantityFunc - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_InspectingQuantityFunc_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.InspectingQuantityFunc - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.InspectingQuantityFunc - nameWithType: MachiningProject.InspectingQuantityFunc - uid: Hi.MachiningProcs.MachiningProject.LoadFile(System.String) name: LoadFile(string) href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_LoadFile_System_String_ @@ -77993,45 +78642,19 @@ references: isSpec: "True" fullName: Hi.MachiningProcs.MachiningProject.LoadFile nameWithType: MachiningProject.LoadFile -- uid: Hi.MachiningProcs.MachiningProject.MachiningActRunner - name: MachiningActRunner - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_MachiningActRunner - commentId: P:Hi.MachiningProcs.MachiningProject.MachiningActRunner - fullName: Hi.MachiningProcs.MachiningProject.MachiningActRunner - nameWithType: MachiningProject.MachiningActRunner -- uid: Hi.MachiningProcs.MachiningProject.MachiningActRunner* - name: MachiningActRunner - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_MachiningActRunner_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.MachiningActRunner +- uid: Hi.MachiningProcs.MachiningProject.MachiningActRunnerConfig + name: MachiningActRunnerConfig + href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_MachiningActRunnerConfig + commentId: P:Hi.MachiningProcs.MachiningProject.MachiningActRunnerConfig + fullName: Hi.MachiningProcs.MachiningProject.MachiningActRunnerConfig + nameWithType: MachiningProject.MachiningActRunnerConfig +- uid: Hi.MachiningProcs.MachiningProject.MachiningActRunnerConfig* + name: MachiningActRunnerConfig + href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_MachiningActRunnerConfig_ + commentId: Overload:Hi.MachiningProcs.MachiningProject.MachiningActRunnerConfig isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.MachiningActRunner - nameWithType: MachiningProject.MachiningActRunner -- uid: Hi.MachiningProcs.MachiningProject.MachiningEquipment - name: MachiningEquipment - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_MachiningEquipment - commentId: P:Hi.MachiningProcs.MachiningProject.MachiningEquipment - fullName: Hi.MachiningProcs.MachiningProject.MachiningEquipment - nameWithType: MachiningProject.MachiningEquipment -- uid: Hi.MachiningProcs.MachiningProject.MachiningEquipment* - name: MachiningEquipment - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_MachiningEquipment_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.MachiningEquipment - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.MachiningEquipment - nameWithType: MachiningProject.MachiningEquipment -- uid: Hi.MachiningProcs.MachiningProject.MachiningSession - name: MachiningSession - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_MachiningSession - commentId: P:Hi.MachiningProcs.MachiningProject.MachiningSession - fullName: Hi.MachiningProcs.MachiningProject.MachiningSession - nameWithType: MachiningProject.MachiningSession -- uid: Hi.MachiningProcs.MachiningProject.MachiningSession* - name: MachiningSession - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_MachiningSession_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.MachiningSession - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.MachiningSession - nameWithType: MachiningProject.MachiningSession + fullName: Hi.MachiningProcs.MachiningProject.MachiningActRunnerConfig + nameWithType: MachiningProject.MachiningActRunnerConfig - uid: Hi.MachiningProcs.MachiningProject.MachiningToolHouse name: MachiningToolHouse href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_MachiningToolHouse @@ -78074,19 +78697,6 @@ references: isSpec: "True" fullName: Hi.MachiningProcs.MachiningProject.MakeXmlSource nameWithType: MachiningProject.MakeXmlSource -- uid: Hi.MachiningProcs.MachiningProject.MillingActRunnerConfig - name: MillingActRunnerConfig - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_MillingActRunnerConfig - commentId: P:Hi.MachiningProcs.MachiningProject.MillingActRunnerConfig - fullName: Hi.MachiningProcs.MachiningProject.MillingActRunnerConfig - nameWithType: MachiningProject.MillingActRunnerConfig -- uid: Hi.MachiningProcs.MachiningProject.MillingActRunnerConfig* - name: MillingActRunnerConfig - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_MillingActRunnerConfig_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.MillingActRunnerConfig - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.MillingActRunnerConfig - nameWithType: MachiningProject.MillingActRunnerConfig - uid: Hi.MachiningProcs.MachiningProject.MillingGuide name: MillingGuide href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_MillingGuide @@ -78100,19 +78710,6 @@ references: isSpec: "True" fullName: Hi.MachiningProcs.MachiningProject.MillingGuide nameWithType: MachiningProject.MillingGuide -- uid: Hi.MachiningProcs.MachiningProject.MillingStepLuggageReader - name: MillingStepLuggageReader - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_MillingStepLuggageReader - commentId: P:Hi.MachiningProcs.MachiningProject.MillingStepLuggageReader - fullName: Hi.MachiningProcs.MachiningProject.MillingStepLuggageReader - nameWithType: MachiningProject.MillingStepLuggageReader -- uid: Hi.MachiningProcs.MachiningProject.MillingStepLuggageReader* - name: MillingStepLuggageReader - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_MillingStepLuggageReader_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.MillingStepLuggageReader - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.MillingStepLuggageReader - nameWithType: MachiningProject.MillingStepLuggageReader - uid: Hi.MachiningProcs.MachiningProject.NcEnv name: NcEnv href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_NcEnv @@ -78126,118 +78723,6 @@ references: isSpec: "True" fullName: Hi.MachiningProcs.MachiningProject.NcEnv nameWithType: MachiningProject.NcEnv -- uid: Hi.MachiningProcs.MachiningProject.NcOptOptionDictionary - name: NcOptOptionDictionary - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_NcOptOptionDictionary - commentId: P:Hi.MachiningProcs.MachiningProject.NcOptOptionDictionary - fullName: Hi.MachiningProcs.MachiningProject.NcOptOptionDictionary - nameWithType: MachiningProject.NcOptOptionDictionary -- uid: Hi.MachiningProcs.MachiningProject.NcOptOptionDictionary* - name: NcOptOptionDictionary - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_NcOptOptionDictionary_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.NcOptOptionDictionary - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.NcOptOptionDictionary - nameWithType: MachiningProject.NcOptOptionDictionary -- uid: Hi.MachiningProcs.MachiningProject.NcOptProc - name: NcOptProc - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_NcOptProc - commentId: P:Hi.MachiningProcs.MachiningProject.NcOptProc - fullName: Hi.MachiningProcs.MachiningProject.NcOptProc - nameWithType: MachiningProject.NcOptProc -- uid: Hi.MachiningProcs.MachiningProject.NcOptProc* - name: NcOptProc - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_NcOptProc_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.NcOptProc - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.NcOptProc - nameWithType: MachiningProject.NcOptProc -- uid: Hi.MachiningProcs.MachiningProject.NcRunner - name: NcRunner - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_NcRunner - commentId: P:Hi.MachiningProcs.MachiningProject.NcRunner - fullName: Hi.MachiningProcs.MachiningProject.NcRunner - nameWithType: MachiningProject.NcRunner -- uid: Hi.MachiningProcs.MachiningProject.NcRunner* - name: NcRunner - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_NcRunner_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.NcRunner - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.NcRunner - nameWithType: MachiningProject.NcRunner -- uid: Hi.MachiningProcs.MachiningProject.OnRanNcBlock - name: OnRanNcBlock - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_OnRanNcBlock - commentId: E:Hi.MachiningProcs.MachiningProject.OnRanNcBlock - fullName: Hi.MachiningProcs.MachiningProject.OnRanNcBlock - nameWithType: MachiningProject.OnRanNcBlock -- uid: Hi.MachiningProcs.MachiningProject.OnUpdatedInspectingQuantityFunc - name: OnUpdatedInspectingQuantityFunc - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_OnUpdatedInspectingQuantityFunc - commentId: E:Hi.MachiningProcs.MachiningProject.OnUpdatedInspectingQuantityFunc - fullName: Hi.MachiningProcs.MachiningProject.OnUpdatedInspectingQuantityFunc - nameWithType: MachiningProject.OnUpdatedInspectingQuantityFunc -- uid: Hi.MachiningProcs.MachiningProject.PacePlayer - name: PacePlayer - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_PacePlayer - commentId: P:Hi.MachiningProcs.MachiningProject.PacePlayer - fullName: Hi.MachiningProcs.MachiningProject.PacePlayer - nameWithType: MachiningProject.PacePlayer -- uid: Hi.MachiningProcs.MachiningProject.PacePlayer* - name: PacePlayer - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_PacePlayer_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.PacePlayer - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.PacePlayer - nameWithType: MachiningProject.PacePlayer -- uid: Hi.MachiningProcs.MachiningProject.PlayCsvFile(System.String,System.String) - name: PlayCsvFile(string, string) - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_PlayCsvFile_System_String_System_String_ - commentId: M:Hi.MachiningProcs.MachiningProject.PlayCsvFile(System.String,System.String) - name.vb: PlayCsvFile(String, String) - fullName: Hi.MachiningProcs.MachiningProject.PlayCsvFile(string, string) - fullName.vb: Hi.MachiningProcs.MachiningProject.PlayCsvFile(String, String) - nameWithType: MachiningProject.PlayCsvFile(string, string) - nameWithType.vb: MachiningProject.PlayCsvFile(String, String) -- uid: Hi.MachiningProcs.MachiningProject.PlayCsvFile* - name: PlayCsvFile - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_PlayCsvFile_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.PlayCsvFile - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.PlayCsvFile - nameWithType: MachiningProject.PlayCsvFile -- uid: Hi.MachiningProcs.MachiningProject.PlayNc(System.String,System.String) - name: PlayNc(string, string) - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_PlayNc_System_String_System_String_ - commentId: M:Hi.MachiningProcs.MachiningProject.PlayNc(System.String,System.String) - name.vb: PlayNc(String, String) - fullName: Hi.MachiningProcs.MachiningProject.PlayNc(string, string) - fullName.vb: Hi.MachiningProcs.MachiningProject.PlayNc(String, String) - nameWithType: MachiningProject.PlayNc(string, string) - nameWithType.vb: MachiningProject.PlayNc(String, String) -- uid: Hi.MachiningProcs.MachiningProject.PlayNc* - name: PlayNc - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_PlayNc_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.PlayNc - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.PlayNc - nameWithType: MachiningProject.PlayNc -- uid: Hi.MachiningProcs.MachiningProject.PlayNcFile(System.String,System.String) - name: PlayNcFile(string, string) - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_PlayNcFile_System_String_System_String_ - commentId: M:Hi.MachiningProcs.MachiningProject.PlayNcFile(System.String,System.String) - name.vb: PlayNcFile(String, String) - fullName: Hi.MachiningProcs.MachiningProject.PlayNcFile(string, string) - fullName.vb: Hi.MachiningProcs.MachiningProject.PlayNcFile(String, String) - nameWithType: MachiningProject.PlayNcFile(string, string) - nameWithType.vb: MachiningProject.PlayNcFile(String, String) -- uid: Hi.MachiningProcs.MachiningProject.PlayNcFile* - name: PlayNcFile - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_PlayNcFile_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.PlayNcFile - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.PlayNcFile - nameWithType: MachiningProject.PlayNcFile - uid: Hi.MachiningProcs.MachiningProject.PlayerCommand name: PlayerCommand href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_PlayerCommand @@ -78251,161 +78736,6 @@ references: isSpec: "True" fullName: Hi.MachiningProcs.MachiningProject.PlayerCommand nameWithType: MachiningProject.PlayerCommand -- uid: Hi.MachiningProcs.MachiningProject.ProcAct(Hi.Numerical.Acts.IAct,Hi.Common.FileLines.IIndexedFileLine,System.Nullable{System.Threading.CancellationToken}) - name: ProcAct(IAct, IIndexedFileLine, CancellationToken?) - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_ProcAct_Hi_Numerical_Acts_IAct_Hi_Common_FileLines_IIndexedFileLine_System_Nullable_System_Threading_CancellationToken__ - commentId: M:Hi.MachiningProcs.MachiningProject.ProcAct(Hi.Numerical.Acts.IAct,Hi.Common.FileLines.IIndexedFileLine,System.Nullable{System.Threading.CancellationToken}) - fullName: Hi.MachiningProcs.MachiningProject.ProcAct(Hi.Numerical.Acts.IAct, Hi.Common.FileLines.IIndexedFileLine, System.Threading.CancellationToken?) - nameWithType: MachiningProject.ProcAct(IAct, IIndexedFileLine, CancellationToken?) -- uid: Hi.MachiningProcs.MachiningProject.ProcAct* - name: ProcAct - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_ProcAct_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.ProcAct - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.ProcAct - nameWithType: MachiningProject.ProcAct -- uid: Hi.MachiningProcs.MachiningProject.Progress - name: Progress - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_Progress - commentId: P:Hi.MachiningProcs.MachiningProject.Progress - fullName: Hi.MachiningProcs.MachiningProject.Progress - nameWithType: MachiningProject.Progress -- uid: Hi.MachiningProcs.MachiningProject.Progress* - name: Progress - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_Progress_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.Progress - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.Progress - nameWithType: MachiningProject.Progress -- uid: Hi.MachiningProcs.MachiningProject.ReTrainMillingPara(Hi.MillingForces.Fittings.SampleFlag,System.Double,System.String,System.Threading.CancellationToken) - name: ReTrainMillingPara(SampleFlag, double, string, CancellationToken) - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_ReTrainMillingPara_Hi_MillingForces_Fittings_SampleFlag_System_Double_System_String_System_Threading_CancellationToken_ - commentId: M:Hi.MachiningProcs.MachiningProject.ReTrainMillingPara(Hi.MillingForces.Fittings.SampleFlag,System.Double,System.String,System.Threading.CancellationToken) - name.vb: ReTrainMillingPara(SampleFlag, Double, String, CancellationToken) - fullName: Hi.MachiningProcs.MachiningProject.ReTrainMillingPara(Hi.MillingForces.Fittings.SampleFlag, double, string, System.Threading.CancellationToken) - fullName.vb: Hi.MachiningProcs.MachiningProject.ReTrainMillingPara(Hi.MillingForces.Fittings.SampleFlag, Double, String, System.Threading.CancellationToken) - nameWithType: MachiningProject.ReTrainMillingPara(SampleFlag, double, string, CancellationToken) - nameWithType.vb: MachiningProject.ReTrainMillingPara(SampleFlag, Double, String, CancellationToken) -- uid: Hi.MachiningProcs.MachiningProject.ReTrainMillingPara* - name: ReTrainMillingPara - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_ReTrainMillingPara_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.ReTrainMillingPara - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.ReTrainMillingPara - nameWithType: MachiningProject.ReTrainMillingPara -- uid: Hi.MachiningProcs.MachiningProject.RefreshDrawing - name: RefreshDrawing() - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_RefreshDrawing - commentId: M:Hi.MachiningProcs.MachiningProject.RefreshDrawing - fullName: Hi.MachiningProcs.MachiningProject.RefreshDrawing() - nameWithType: MachiningProject.RefreshDrawing() -- uid: Hi.MachiningProcs.MachiningProject.RefreshDrawing* - name: RefreshDrawing - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_RefreshDrawing_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.RefreshDrawing - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.RefreshDrawing - nameWithType: MachiningProject.RefreshDrawing -- uid: Hi.MachiningProcs.MachiningProject.ResetRuntime - name: ResetRuntime() - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_ResetRuntime - commentId: M:Hi.MachiningProcs.MachiningProject.ResetRuntime - fullName: Hi.MachiningProcs.MachiningProject.ResetRuntime() - nameWithType: MachiningProject.ResetRuntime() -- uid: Hi.MachiningProcs.MachiningProject.ResetRuntime* - name: ResetRuntime - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_ResetRuntime_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.ResetRuntime - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.ResetRuntime - nameWithType: MachiningProject.ResetRuntime -- uid: Hi.MachiningProcs.MachiningProject.RunCsvFile(System.String,System.String) - name: RunCsvFile(string, string) - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_RunCsvFile_System_String_System_String_ - commentId: M:Hi.MachiningProcs.MachiningProject.RunCsvFile(System.String,System.String) - name.vb: RunCsvFile(String, String) - fullName: Hi.MachiningProcs.MachiningProject.RunCsvFile(string, string) - fullName.vb: Hi.MachiningProcs.MachiningProject.RunCsvFile(String, String) - nameWithType: MachiningProject.RunCsvFile(string, string) - nameWithType.vb: MachiningProject.RunCsvFile(String, String) -- uid: Hi.MachiningProcs.MachiningProject.RunCsvFile* - name: RunCsvFile - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_RunCsvFile_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.RunCsvFile - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.RunCsvFile - nameWithType: MachiningProject.RunCsvFile -- uid: Hi.MachiningProcs.MachiningProject.RunNc(System.String,System.String) - name: RunNc(string, string) - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_RunNc_System_String_System_String_ - commentId: M:Hi.MachiningProcs.MachiningProject.RunNc(System.String,System.String) - name.vb: RunNc(String, String) - fullName: Hi.MachiningProcs.MachiningProject.RunNc(string, string) - fullName.vb: Hi.MachiningProcs.MachiningProject.RunNc(String, String) - nameWithType: MachiningProject.RunNc(string, string) - nameWithType.vb: MachiningProject.RunNc(String, String) -- uid: Hi.MachiningProcs.MachiningProject.RunNc* - name: RunNc - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_RunNc_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.RunNc - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.RunNc - nameWithType: MachiningProject.RunNc -- uid: Hi.MachiningProcs.MachiningProject.RunNcFile(System.String,System.String) - name: RunNcFile(string, string) - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_RunNcFile_System_String_System_String_ - commentId: M:Hi.MachiningProcs.MachiningProject.RunNcFile(System.String,System.String) - name.vb: RunNcFile(String, String) - fullName: Hi.MachiningProcs.MachiningProject.RunNcFile(string, string) - fullName.vb: Hi.MachiningProcs.MachiningProject.RunNcFile(String, String) - nameWithType: MachiningProject.RunNcFile(string, string) - nameWithType.vb: MachiningProject.RunNcFile(String, String) -- uid: Hi.MachiningProcs.MachiningProject.RunNcFile* - name: RunNcFile - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_RunNcFile_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.RunNcFile - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.RunNcFile - nameWithType: MachiningProject.RunNcFile -- uid: Hi.MachiningProcs.MachiningProject.RuntimeApi - name: RuntimeApi - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_RuntimeApi - commentId: P:Hi.MachiningProcs.MachiningProject.RuntimeApi - fullName: Hi.MachiningProcs.MachiningProject.RuntimeApi - nameWithType: MachiningProject.RuntimeApi -- uid: Hi.MachiningProcs.MachiningProject.RuntimeApi* - name: RuntimeApi - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_RuntimeApi_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.RuntimeApi - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.RuntimeApi - nameWithType: MachiningProject.RuntimeApi -- uid: Hi.MachiningProcs.MachiningProject.SessionMessageHost - name: SessionMessageHost - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_SessionMessageHost - commentId: P:Hi.MachiningProcs.MachiningProject.SessionMessageHost - fullName: Hi.MachiningProcs.MachiningProject.SessionMessageHost - nameWithType: MachiningProject.SessionMessageHost -- uid: Hi.MachiningProcs.MachiningProject.SessionMessageHost* - name: SessionMessageHost - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_SessionMessageHost_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.SessionMessageHost - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.SessionMessageHost - nameWithType: MachiningProject.SessionMessageHost -- uid: Hi.MachiningProcs.MachiningProject.StepPropertyAccessDictionary - name: StepPropertyAccessDictionary - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_StepPropertyAccessDictionary - commentId: P:Hi.MachiningProcs.MachiningProject.StepPropertyAccessDictionary - fullName: Hi.MachiningProcs.MachiningProject.StepPropertyAccessDictionary - nameWithType: MachiningProject.StepPropertyAccessDictionary -- uid: Hi.MachiningProcs.MachiningProject.StepPropertyAccessDictionary* - name: StepPropertyAccessDictionary - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_StepPropertyAccessDictionary_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.StepPropertyAccessDictionary - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.StepPropertyAccessDictionary - nameWithType: MachiningProject.StepPropertyAccessDictionary - uid: Hi.MachiningProcs.MachiningProject.TimeMapping name: TimeMapping href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_TimeMapping @@ -78419,80 +78749,6 @@ references: isSpec: "True" fullName: Hi.MachiningProcs.MachiningProject.TimeMapping nameWithType: MachiningProject.TimeMapping -- uid: Hi.MachiningProcs.MachiningProject.TrainMillingPara(Hi.MillingForces.Fittings.SampleFlag,System.Boolean,System.Double,System.String,System.Threading.CancellationToken,Hi.MillingForces.Fittings.ICuttingPara) - name: TrainMillingPara(SampleFlag, bool, double, string, CancellationToken, ICuttingPara) - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_TrainMillingPara_Hi_MillingForces_Fittings_SampleFlag_System_Boolean_System_Double_System_String_System_Threading_CancellationToken_Hi_MillingForces_Fittings_ICuttingPara_ - commentId: M:Hi.MachiningProcs.MachiningProject.TrainMillingPara(Hi.MillingForces.Fittings.SampleFlag,System.Boolean,System.Double,System.String,System.Threading.CancellationToken,Hi.MillingForces.Fittings.ICuttingPara) - name.vb: TrainMillingPara(SampleFlag, Boolean, Double, String, CancellationToken, ICuttingPara) - fullName: Hi.MachiningProcs.MachiningProject.TrainMillingPara(Hi.MillingForces.Fittings.SampleFlag, bool, double, string, System.Threading.CancellationToken, Hi.MillingForces.Fittings.ICuttingPara) - fullName.vb: Hi.MachiningProcs.MachiningProject.TrainMillingPara(Hi.MillingForces.Fittings.SampleFlag, Boolean, Double, String, System.Threading.CancellationToken, Hi.MillingForces.Fittings.ICuttingPara) - nameWithType: MachiningProject.TrainMillingPara(SampleFlag, bool, double, string, CancellationToken, ICuttingPara) - nameWithType.vb: MachiningProject.TrainMillingPara(SampleFlag, Boolean, Double, String, CancellationToken, ICuttingPara) -- uid: Hi.MachiningProcs.MachiningProject.TrainMillingPara* - name: TrainMillingPara - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_TrainMillingPara_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.TrainMillingPara - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.TrainMillingPara - nameWithType: MachiningProject.TrainMillingPara -- uid: Hi.MachiningProcs.MachiningProject.UpdateIdealMillingToolOffsetTableByToolHouse - name: UpdateIdealMillingToolOffsetTableByToolHouse() - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_UpdateIdealMillingToolOffsetTableByToolHouse - commentId: M:Hi.MachiningProcs.MachiningProject.UpdateIdealMillingToolOffsetTableByToolHouse - fullName: Hi.MachiningProcs.MachiningProject.UpdateIdealMillingToolOffsetTableByToolHouse() - nameWithType: MachiningProject.UpdateIdealMillingToolOffsetTableByToolHouse() -- uid: Hi.MachiningProcs.MachiningProject.UpdateIdealMillingToolOffsetTableByToolHouse* - name: UpdateIdealMillingToolOffsetTableByToolHouse - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_UpdateIdealMillingToolOffsetTableByToolHouse_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.UpdateIdealMillingToolOffsetTableByToolHouse - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.UpdateIdealMillingToolOffsetTableByToolHouse - nameWithType: MachiningProject.UpdateIdealMillingToolOffsetTableByToolHouse -- uid: Hi.MachiningProcs.MachiningProject.Workpiece - name: Workpiece - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_Workpiece - commentId: P:Hi.MachiningProcs.MachiningProject.Workpiece - fullName: Hi.MachiningProcs.MachiningProject.Workpiece - nameWithType: MachiningProject.Workpiece -- uid: Hi.MachiningProcs.MachiningProject.Workpiece* - name: Workpiece - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_Workpiece_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.Workpiece - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.Workpiece - nameWithType: MachiningProject.Workpiece -- uid: Hi.MachiningProcs.MachiningProject.WriteShotFile(System.TimeSpan,System.String) - name: WriteShotFile(TimeSpan, string) - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_WriteShotFile_System_TimeSpan_System_String_ - commentId: M:Hi.MachiningProcs.MachiningProject.WriteShotFile(System.TimeSpan,System.String) - name.vb: WriteShotFile(TimeSpan, String) - fullName: Hi.MachiningProcs.MachiningProject.WriteShotFile(System.TimeSpan, string) - fullName.vb: Hi.MachiningProcs.MachiningProject.WriteShotFile(System.TimeSpan, String) - nameWithType: MachiningProject.WriteShotFile(TimeSpan, string) - nameWithType.vb: MachiningProject.WriteShotFile(TimeSpan, String) -- uid: Hi.MachiningProcs.MachiningProject.WriteShotFile* - name: WriteShotFile - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_WriteShotFile_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.WriteShotFile - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.WriteShotFile - nameWithType: MachiningProject.WriteShotFile -- uid: Hi.MachiningProcs.MachiningProject.WriteStepFile(System.String) - name: WriteStepFile(string) - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_WriteStepFile_System_String_ - commentId: M:Hi.MachiningProcs.MachiningProject.WriteStepFile(System.String) - name.vb: WriteStepFile(String) - fullName: Hi.MachiningProcs.MachiningProject.WriteStepFile(string) - fullName.vb: Hi.MachiningProcs.MachiningProject.WriteStepFile(String) - nameWithType: MachiningProject.WriteStepFile(string) - nameWithType.vb: MachiningProject.WriteStepFile(String) -- uid: Hi.MachiningProcs.MachiningProject.WriteStepFile* - name: WriteStepFile - href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_WriteStepFile_ - commentId: Overload:Hi.MachiningProcs.MachiningProject.WriteStepFile - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProject.WriteStepFile - nameWithType: MachiningProject.WriteStepFile - uid: Hi.MachiningProcs.MachiningProject.XName name: XName href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_XName @@ -78512,24 +78768,15 @@ references: commentId: T:Hi.MachiningProcs.MachiningProjectDisplayee fullName: Hi.MachiningProcs.MachiningProjectDisplayee nameWithType: MachiningProjectDisplayee -- uid: Hi.MachiningProcs.MachiningProjectDisplayee.#ctor(Hi.MachiningProcs.MachiningProject,System.Collections.BitArray) - name: MachiningProjectDisplayee(MachiningProject, BitArray) - href: api/Hi.MachiningProcs.MachiningProjectDisplayee.html#Hi_MachiningProcs_MachiningProjectDisplayee__ctor_Hi_MachiningProcs_MachiningProject_System_Collections_BitArray_ - commentId: M:Hi.MachiningProcs.MachiningProjectDisplayee.#ctor(Hi.MachiningProcs.MachiningProject,System.Collections.BitArray) - name.vb: New(MachiningProject, BitArray) - fullName: Hi.MachiningProcs.MachiningProjectDisplayee.MachiningProjectDisplayee(Hi.MachiningProcs.MachiningProject, System.Collections.BitArray) - fullName.vb: Hi.MachiningProcs.MachiningProjectDisplayee.New(Hi.MachiningProcs.MachiningProject, System.Collections.BitArray) - nameWithType: MachiningProjectDisplayee.MachiningProjectDisplayee(MachiningProject, BitArray) - nameWithType.vb: MachiningProjectDisplayee.New(MachiningProject, BitArray) -- uid: Hi.MachiningProcs.MachiningProjectDisplayee.#ctor(System.Func{Hi.MachiningProcs.MachiningProject}) - name: MachiningProjectDisplayee(Func) - href: api/Hi.MachiningProcs.MachiningProjectDisplayee.html#Hi_MachiningProcs_MachiningProjectDisplayee__ctor_System_Func_Hi_MachiningProcs_MachiningProject__ - commentId: M:Hi.MachiningProcs.MachiningProjectDisplayee.#ctor(System.Func{Hi.MachiningProcs.MachiningProject}) - name.vb: New(Func(Of MachiningProject)) - fullName: Hi.MachiningProcs.MachiningProjectDisplayee.MachiningProjectDisplayee(System.Func) - fullName.vb: Hi.MachiningProcs.MachiningProjectDisplayee.New(System.Func(Of Hi.MachiningProcs.MachiningProject)) - nameWithType: MachiningProjectDisplayee.MachiningProjectDisplayee(Func) - nameWithType.vb: MachiningProjectDisplayee.New(Func(Of MachiningProject)) +- uid: Hi.MachiningProcs.MachiningProjectDisplayee.#ctor(Hi.MachiningProcs.LocalProjectService) + name: MachiningProjectDisplayee(LocalProjectService) + href: api/Hi.MachiningProcs.MachiningProjectDisplayee.html#Hi_MachiningProcs_MachiningProjectDisplayee__ctor_Hi_MachiningProcs_LocalProjectService_ + commentId: M:Hi.MachiningProcs.MachiningProjectDisplayee.#ctor(Hi.MachiningProcs.LocalProjectService) + name.vb: New(LocalProjectService) + fullName: Hi.MachiningProcs.MachiningProjectDisplayee.MachiningProjectDisplayee(Hi.MachiningProcs.LocalProjectService) + fullName.vb: Hi.MachiningProcs.MachiningProjectDisplayee.New(Hi.MachiningProcs.LocalProjectService) + nameWithType: MachiningProjectDisplayee.MachiningProjectDisplayee(LocalProjectService) + nameWithType.vb: MachiningProjectDisplayee.New(LocalProjectService) - uid: Hi.MachiningProcs.MachiningProjectDisplayee.#ctor* name: MachiningProjectDisplayee href: api/Hi.MachiningProcs.MachiningProjectDisplayee.html#Hi_MachiningProcs_MachiningProjectDisplayee__ctor_ @@ -78605,6 +78852,19 @@ references: isSpec: "True" fullName: Hi.MachiningProcs.MachiningProjectDisplayee.IsoCoordinateEntryDisplayee nameWithType: MachiningProjectDisplayee.IsoCoordinateEntryDisplayee +- uid: Hi.MachiningProcs.MachiningProjectDisplayee.LocalProjectService + name: LocalProjectService + href: api/Hi.MachiningProcs.MachiningProjectDisplayee.html#Hi_MachiningProcs_MachiningProjectDisplayee_LocalProjectService + commentId: P:Hi.MachiningProcs.MachiningProjectDisplayee.LocalProjectService + fullName: Hi.MachiningProcs.MachiningProjectDisplayee.LocalProjectService + nameWithType: MachiningProjectDisplayee.LocalProjectService +- uid: Hi.MachiningProcs.MachiningProjectDisplayee.LocalProjectService* + name: LocalProjectService + href: api/Hi.MachiningProcs.MachiningProjectDisplayee.html#Hi_MachiningProcs_MachiningProjectDisplayee_LocalProjectService_ + commentId: Overload:Hi.MachiningProcs.MachiningProjectDisplayee.LocalProjectService + isSpec: "True" + fullName: Hi.MachiningProcs.MachiningProjectDisplayee.LocalProjectService + nameWithType: MachiningProjectDisplayee.LocalProjectService - uid: Hi.MachiningProcs.MachiningProjectDisplayee.MachiningProject name: MachiningProject href: api/Hi.MachiningProcs.MachiningProjectDisplayee.html#Hi_MachiningProcs_MachiningProjectDisplayee_MachiningProject @@ -78618,19 +78878,6 @@ references: isSpec: "True" fullName: Hi.MachiningProcs.MachiningProjectDisplayee.MachiningProject nameWithType: MachiningProjectDisplayee.MachiningProject -- uid: Hi.MachiningProcs.MachiningProjectDisplayee.MachiningProjectGetter - name: MachiningProjectGetter - href: api/Hi.MachiningProcs.MachiningProjectDisplayee.html#Hi_MachiningProcs_MachiningProjectDisplayee_MachiningProjectGetter - commentId: P:Hi.MachiningProcs.MachiningProjectDisplayee.MachiningProjectGetter - fullName: Hi.MachiningProcs.MachiningProjectDisplayee.MachiningProjectGetter - nameWithType: MachiningProjectDisplayee.MachiningProjectGetter -- uid: Hi.MachiningProcs.MachiningProjectDisplayee.MachiningProjectGetter* - name: MachiningProjectGetter - href: api/Hi.MachiningProcs.MachiningProjectDisplayee.html#Hi_MachiningProcs_MachiningProjectDisplayee_MachiningProjectGetter_ - commentId: Overload:Hi.MachiningProcs.MachiningProjectDisplayee.MachiningProjectGetter - isSpec: "True" - fullName: Hi.MachiningProcs.MachiningProjectDisplayee.MachiningProjectGetter - nameWithType: MachiningProjectDisplayee.MachiningProjectGetter - uid: Hi.MachiningProcs.MachiningProjectDisplayee.RenderingFlagBitArray name: RenderingFlagBitArray href: api/Hi.MachiningProcs.MachiningProjectDisplayee.html#Hi_MachiningProcs_MachiningProjectDisplayee_RenderingFlagBitArray @@ -78802,108 +79049,6 @@ references: isSpec: "True" fullName: Hi.MachiningProcs.MachiningSession.UpdateNcOptOptionMapIfNeeded nameWithType: MachiningSession.UpdateNcOptOptionMapIfNeeded -- uid: Hi.MachiningProcs.MillingActRunnerConfig - name: MillingActRunnerConfig - href: api/Hi.MachiningProcs.MillingActRunnerConfig.html - commentId: T:Hi.MachiningProcs.MillingActRunnerConfig - fullName: Hi.MachiningProcs.MillingActRunnerConfig - nameWithType: MillingActRunnerConfig -- uid: Hi.MachiningProcs.MillingActRunnerConfig.#ctor - name: MillingActRunnerConfig() - href: api/Hi.MachiningProcs.MillingActRunnerConfig.html#Hi_MachiningProcs_MillingActRunnerConfig__ctor - commentId: M:Hi.MachiningProcs.MillingActRunnerConfig.#ctor - name.vb: New() - fullName: Hi.MachiningProcs.MillingActRunnerConfig.MillingActRunnerConfig() - fullName.vb: Hi.MachiningProcs.MillingActRunnerConfig.New() - nameWithType: MillingActRunnerConfig.MillingActRunnerConfig() - nameWithType.vb: MillingActRunnerConfig.New() -- uid: Hi.MachiningProcs.MillingActRunnerConfig.#ctor(System.Xml.Linq.XElement,System.String) - name: MillingActRunnerConfig(XElement, string) - href: api/Hi.MachiningProcs.MillingActRunnerConfig.html#Hi_MachiningProcs_MillingActRunnerConfig__ctor_System_Xml_Linq_XElement_System_String_ - commentId: M:Hi.MachiningProcs.MillingActRunnerConfig.#ctor(System.Xml.Linq.XElement,System.String) - name.vb: New(XElement, String) - fullName: Hi.MachiningProcs.MillingActRunnerConfig.MillingActRunnerConfig(System.Xml.Linq.XElement, string) - fullName.vb: Hi.MachiningProcs.MillingActRunnerConfig.New(System.Xml.Linq.XElement, String) - nameWithType: MillingActRunnerConfig.MillingActRunnerConfig(XElement, string) - nameWithType.vb: MillingActRunnerConfig.New(XElement, String) -- uid: Hi.MachiningProcs.MillingActRunnerConfig.#ctor* - name: MillingActRunnerConfig - href: api/Hi.MachiningProcs.MillingActRunnerConfig.html#Hi_MachiningProcs_MillingActRunnerConfig__ctor_ - commentId: Overload:Hi.MachiningProcs.MillingActRunnerConfig.#ctor - isSpec: "True" - name.vb: New - fullName: Hi.MachiningProcs.MillingActRunnerConfig.MillingActRunnerConfig - fullName.vb: Hi.MachiningProcs.MillingActRunnerConfig.New - nameWithType: MillingActRunnerConfig.MillingActRunnerConfig - nameWithType.vb: MillingActRunnerConfig.New -- uid: Hi.MachiningProcs.MillingActRunnerConfig.EnableDeflectionTransformation - name: EnableDeflectionTransformation - href: api/Hi.MachiningProcs.MillingActRunnerConfig.html#Hi_MachiningProcs_MillingActRunnerConfig_EnableDeflectionTransformation - commentId: P:Hi.MachiningProcs.MillingActRunnerConfig.EnableDeflectionTransformation - fullName: Hi.MachiningProcs.MillingActRunnerConfig.EnableDeflectionTransformation - nameWithType: MillingActRunnerConfig.EnableDeflectionTransformation -- uid: Hi.MachiningProcs.MillingActRunnerConfig.EnableDeflectionTransformation* - name: EnableDeflectionTransformation - href: api/Hi.MachiningProcs.MillingActRunnerConfig.html#Hi_MachiningProcs_MillingActRunnerConfig_EnableDeflectionTransformation_ - commentId: Overload:Hi.MachiningProcs.MillingActRunnerConfig.EnableDeflectionTransformation - isSpec: "True" - fullName: Hi.MachiningProcs.MillingActRunnerConfig.EnableDeflectionTransformation - nameWithType: MillingActRunnerConfig.EnableDeflectionTransformation -- uid: Hi.MachiningProcs.MillingActRunnerConfig.InitSpindleTemperature_C - name: InitSpindleTemperature_C - href: api/Hi.MachiningProcs.MillingActRunnerConfig.html#Hi_MachiningProcs_MillingActRunnerConfig_InitSpindleTemperature_C - commentId: P:Hi.MachiningProcs.MillingActRunnerConfig.InitSpindleTemperature_C - fullName: Hi.MachiningProcs.MillingActRunnerConfig.InitSpindleTemperature_C - nameWithType: MillingActRunnerConfig.InitSpindleTemperature_C -- uid: Hi.MachiningProcs.MillingActRunnerConfig.InitSpindleTemperature_C* - name: InitSpindleTemperature_C - href: api/Hi.MachiningProcs.MillingActRunnerConfig.html#Hi_MachiningProcs_MillingActRunnerConfig_InitSpindleTemperature_C_ - commentId: Overload:Hi.MachiningProcs.MillingActRunnerConfig.InitSpindleTemperature_C - isSpec: "True" - fullName: Hi.MachiningProcs.MillingActRunnerConfig.InitSpindleTemperature_C - nameWithType: MillingActRunnerConfig.InitSpindleTemperature_C -- uid: Hi.MachiningProcs.MillingActRunnerConfig.InitSpindleTemperature_K - name: InitSpindleTemperature_K - href: api/Hi.MachiningProcs.MillingActRunnerConfig.html#Hi_MachiningProcs_MillingActRunnerConfig_InitSpindleTemperature_K - commentId: P:Hi.MachiningProcs.MillingActRunnerConfig.InitSpindleTemperature_K - fullName: Hi.MachiningProcs.MillingActRunnerConfig.InitSpindleTemperature_K - nameWithType: MillingActRunnerConfig.InitSpindleTemperature_K -- uid: Hi.MachiningProcs.MillingActRunnerConfig.InitSpindleTemperature_K* - name: InitSpindleTemperature_K - href: api/Hi.MachiningProcs.MillingActRunnerConfig.html#Hi_MachiningProcs_MillingActRunnerConfig_InitSpindleTemperature_K_ - commentId: Overload:Hi.MachiningProcs.MillingActRunnerConfig.InitSpindleTemperature_K - isSpec: "True" - fullName: Hi.MachiningProcs.MillingActRunnerConfig.InitSpindleTemperature_K - nameWithType: MillingActRunnerConfig.InitSpindleTemperature_K -- uid: Hi.MachiningProcs.MillingActRunnerConfig.MakeXmlSource(System.String,System.String,System.Boolean) - name: MakeXmlSource(string, string, bool) - href: api/Hi.MachiningProcs.MillingActRunnerConfig.html#Hi_MachiningProcs_MillingActRunnerConfig_MakeXmlSource_System_String_System_String_System_Boolean_ - commentId: M:Hi.MachiningProcs.MillingActRunnerConfig.MakeXmlSource(System.String,System.String,System.Boolean) - name.vb: MakeXmlSource(String, String, Boolean) - fullName: Hi.MachiningProcs.MillingActRunnerConfig.MakeXmlSource(string, string, bool) - fullName.vb: Hi.MachiningProcs.MillingActRunnerConfig.MakeXmlSource(String, String, Boolean) - nameWithType: MillingActRunnerConfig.MakeXmlSource(string, string, bool) - nameWithType.vb: MillingActRunnerConfig.MakeXmlSource(String, String, Boolean) -- uid: Hi.MachiningProcs.MillingActRunnerConfig.MakeXmlSource* - name: MakeXmlSource - href: api/Hi.MachiningProcs.MillingActRunnerConfig.html#Hi_MachiningProcs_MillingActRunnerConfig_MakeXmlSource_ - commentId: Overload:Hi.MachiningProcs.MillingActRunnerConfig.MakeXmlSource - isSpec: "True" - fullName: Hi.MachiningProcs.MillingActRunnerConfig.MakeXmlSource - nameWithType: MillingActRunnerConfig.MakeXmlSource -- uid: Hi.MachiningProcs.MillingActRunnerConfig.XName - name: XName - href: api/Hi.MachiningProcs.MillingActRunnerConfig.html#Hi_MachiningProcs_MillingActRunnerConfig_XName - commentId: P:Hi.MachiningProcs.MillingActRunnerConfig.XName - fullName: Hi.MachiningProcs.MillingActRunnerConfig.XName - nameWithType: MillingActRunnerConfig.XName -- uid: Hi.MachiningProcs.MillingActRunnerConfig.XName* - name: XName - href: api/Hi.MachiningProcs.MillingActRunnerConfig.html#Hi_MachiningProcs_MillingActRunnerConfig_XName_ - commentId: Overload:Hi.MachiningProcs.MillingActRunnerConfig.XName - isSpec: "True" - fullName: Hi.MachiningProcs.MillingActRunnerConfig.XName - nameWithType: MillingActRunnerConfig.XName - uid: Hi.MachiningProcs.MillingUtil name: MillingUtil href: api/Hi.MachiningProcs.MillingUtil.html @@ -80812,15 +80957,15 @@ references: commentId: T:Hi.MachiningProcs.RuntimeController fullName: Hi.MachiningProcs.RuntimeController nameWithType: RuntimeController -- uid: Hi.MachiningProcs.RuntimeController.#ctor(Hi.MachiningProcs.IProjectService) - name: RuntimeController(IProjectService) - href: api/Hi.MachiningProcs.RuntimeController.html#Hi_MachiningProcs_RuntimeController__ctor_Hi_MachiningProcs_IProjectService_ - commentId: M:Hi.MachiningProcs.RuntimeController.#ctor(Hi.MachiningProcs.IProjectService) - name.vb: New(IProjectService) - fullName: Hi.MachiningProcs.RuntimeController.RuntimeController(Hi.MachiningProcs.IProjectService) - fullName.vb: Hi.MachiningProcs.RuntimeController.New(Hi.MachiningProcs.IProjectService) - nameWithType: RuntimeController.RuntimeController(IProjectService) - nameWithType.vb: RuntimeController.New(IProjectService) +- uid: Hi.MachiningProcs.RuntimeController.#ctor(Hi.MachiningProcs.LocalProjectService) + name: RuntimeController(LocalProjectService) + href: api/Hi.MachiningProcs.RuntimeController.html#Hi_MachiningProcs_RuntimeController__ctor_Hi_MachiningProcs_LocalProjectService_ + commentId: M:Hi.MachiningProcs.RuntimeController.#ctor(Hi.MachiningProcs.LocalProjectService) + name.vb: New(LocalProjectService) + fullName: Hi.MachiningProcs.RuntimeController.RuntimeController(Hi.MachiningProcs.LocalProjectService) + fullName.vb: Hi.MachiningProcs.RuntimeController.New(Hi.MachiningProcs.LocalProjectService) + nameWithType: RuntimeController.RuntimeController(LocalProjectService) + nameWithType.vb: RuntimeController.New(LocalProjectService) - uid: Hi.MachiningProcs.RuntimeController.#ctor* name: RuntimeController href: api/Hi.MachiningProcs.RuntimeController.html#Hi_MachiningProcs_RuntimeController__ctor_ @@ -81008,19 +81153,6 @@ references: isSpec: "True" fullName: Hi.MachiningProcs.RuntimeController.EnableCollisionDetection nameWithType: RuntimeController.EnableCollisionDetection -- uid: Hi.MachiningProcs.RuntimeController.EnablePauseOnCollision - name: EnablePauseOnCollision - href: api/Hi.MachiningProcs.RuntimeController.html#Hi_MachiningProcs_RuntimeController_EnablePauseOnCollision - commentId: P:Hi.MachiningProcs.RuntimeController.EnablePauseOnCollision - fullName: Hi.MachiningProcs.RuntimeController.EnablePauseOnCollision - nameWithType: RuntimeController.EnablePauseOnCollision -- uid: Hi.MachiningProcs.RuntimeController.EnablePauseOnCollision* - name: EnablePauseOnCollision - href: api/Hi.MachiningProcs.RuntimeController.html#Hi_MachiningProcs_RuntimeController_EnablePauseOnCollision_ - commentId: Overload:Hi.MachiningProcs.RuntimeController.EnablePauseOnCollision - isSpec: "True" - fullName: Hi.MachiningProcs.RuntimeController.EnablePauseOnCollision - nameWithType: RuntimeController.EnablePauseOnCollision - uid: Hi.MachiningProcs.RuntimeController.EnablePauseOnFailure name: EnablePauseOnFailure href: api/Hi.MachiningProcs.RuntimeController.html#Hi_MachiningProcs_RuntimeController_EnablePauseOnFailure @@ -82740,15 +82872,15 @@ references: commentId: T:Hi.MachiningProcs.SetupController fullName: Hi.MachiningProcs.SetupController nameWithType: SetupController -- uid: Hi.MachiningProcs.SetupController.#ctor(Hi.MachiningProcs.IProjectService) - name: SetupController(IProjectService) - href: api/Hi.MachiningProcs.SetupController.html#Hi_MachiningProcs_SetupController__ctor_Hi_MachiningProcs_IProjectService_ - commentId: M:Hi.MachiningProcs.SetupController.#ctor(Hi.MachiningProcs.IProjectService) - name.vb: New(IProjectService) - fullName: Hi.MachiningProcs.SetupController.SetupController(Hi.MachiningProcs.IProjectService) - fullName.vb: Hi.MachiningProcs.SetupController.New(Hi.MachiningProcs.IProjectService) - nameWithType: SetupController.SetupController(IProjectService) - nameWithType.vb: SetupController.New(IProjectService) +- uid: Hi.MachiningProcs.SetupController.#ctor(Hi.MachiningProcs.LocalProjectService) + name: SetupController(LocalProjectService) + href: api/Hi.MachiningProcs.SetupController.html#Hi_MachiningProcs_SetupController__ctor_Hi_MachiningProcs_LocalProjectService_ + commentId: M:Hi.MachiningProcs.SetupController.#ctor(Hi.MachiningProcs.LocalProjectService) + name.vb: New(LocalProjectService) + fullName: Hi.MachiningProcs.SetupController.SetupController(Hi.MachiningProcs.LocalProjectService) + fullName.vb: Hi.MachiningProcs.SetupController.New(Hi.MachiningProcs.LocalProjectService) + nameWithType: SetupController.SetupController(LocalProjectService) + nameWithType.vb: SetupController.New(LocalProjectService) - uid: Hi.MachiningProcs.SetupController.#ctor* name: SetupController href: api/Hi.MachiningProcs.SetupController.html#Hi_MachiningProcs_SetupController__ctor_ @@ -86038,15 +86170,15 @@ references: commentId: F:Hi.Mapping.StepTimeShotUtil.CycleSamplingMode.SpindleCycle fullName: Hi.Mapping.StepTimeShotUtil.CycleSamplingMode.SpindleCycle nameWithType: StepTimeShotUtil.CycleSamplingMode.SpindleCycle -- uid: Hi.Mapping.StepTimeShotUtil.GetStepToShotsDictionaryByActualTime(Hi.CutterLocations.ClStrips.ClStrip,Hi.Mapping.StepTimeShotUtil.CycleSamplingMode,System.String,Hi.Mapping.StepTimeShotUtil.GetTimeShotByFileDelegate,System.Collections.Generic.IDictionary{System.Int32,System.Collections.Generic.List{Hi.Mapping.ITimeShot}},Hi.MachiningProcs.SessionMessageHost,System.Nullable{System.Threading.CancellationToken}) - name: GetStepToShotsDictionaryByActualTime(ClStrip, CycleSamplingMode, string, GetTimeShotByFileDelegate, IDictionary>, SessionMessageHost, CancellationToken?) - href: api/Hi.Mapping.StepTimeShotUtil.html#Hi_Mapping_StepTimeShotUtil_GetStepToShotsDictionaryByActualTime_Hi_CutterLocations_ClStrips_ClStrip_Hi_Mapping_StepTimeShotUtil_CycleSamplingMode_System_String_Hi_Mapping_StepTimeShotUtil_GetTimeShotByFileDelegate_System_Collections_Generic_IDictionary_System_Int32_System_Collections_Generic_List_Hi_Mapping_ITimeShot___Hi_MachiningProcs_SessionMessageHost_System_Nullable_System_Threading_CancellationToken__ - commentId: M:Hi.Mapping.StepTimeShotUtil.GetStepToShotsDictionaryByActualTime(Hi.CutterLocations.ClStrips.ClStrip,Hi.Mapping.StepTimeShotUtil.CycleSamplingMode,System.String,Hi.Mapping.StepTimeShotUtil.GetTimeShotByFileDelegate,System.Collections.Generic.IDictionary{System.Int32,System.Collections.Generic.List{Hi.Mapping.ITimeShot}},Hi.MachiningProcs.SessionMessageHost,System.Nullable{System.Threading.CancellationToken}) - name.vb: GetStepToShotsDictionaryByActualTime(ClStrip, CycleSamplingMode, String, GetTimeShotByFileDelegate, IDictionary(Of Integer, List(Of ITimeShot)), SessionMessageHost, CancellationToken?) - fullName: Hi.Mapping.StepTimeShotUtil.GetStepToShotsDictionaryByActualTime(Hi.CutterLocations.ClStrips.ClStrip, Hi.Mapping.StepTimeShotUtil.CycleSamplingMode, string, Hi.Mapping.StepTimeShotUtil.GetTimeShotByFileDelegate, System.Collections.Generic.IDictionary>, Hi.MachiningProcs.SessionMessageHost, System.Threading.CancellationToken?) - fullName.vb: Hi.Mapping.StepTimeShotUtil.GetStepToShotsDictionaryByActualTime(Hi.CutterLocations.ClStrips.ClStrip, Hi.Mapping.StepTimeShotUtil.CycleSamplingMode, String, Hi.Mapping.StepTimeShotUtil.GetTimeShotByFileDelegate, System.Collections.Generic.IDictionary(Of Integer, System.Collections.Generic.List(Of Hi.Mapping.ITimeShot)), Hi.MachiningProcs.SessionMessageHost, System.Threading.CancellationToken?) - nameWithType: StepTimeShotUtil.GetStepToShotsDictionaryByActualTime(ClStrip, StepTimeShotUtil.CycleSamplingMode, string, StepTimeShotUtil.GetTimeShotByFileDelegate, IDictionary>, SessionMessageHost, CancellationToken?) - nameWithType.vb: StepTimeShotUtil.GetStepToShotsDictionaryByActualTime(ClStrip, StepTimeShotUtil.CycleSamplingMode, String, StepTimeShotUtil.GetTimeShotByFileDelegate, IDictionary(Of Integer, List(Of ITimeShot)), SessionMessageHost, CancellationToken?) +- uid: Hi.Mapping.StepTimeShotUtil.GetStepToShotsDictionaryByActualTime(Hi.CutterLocations.ClStrips.ClStrip,Hi.Mapping.StepTimeShotUtil.CycleSamplingMode,System.String,Hi.Mapping.StepTimeShotUtil.GetTimeShotByFileDelegate,System.Collections.Generic.IDictionary{System.Int32,System.Collections.Generic.List{Hi.Mapping.ITimeShot}},Hi.Common.Messages.IMessageHost,System.Nullable{System.Threading.CancellationToken}) + name: GetStepToShotsDictionaryByActualTime(ClStrip, CycleSamplingMode, string, GetTimeShotByFileDelegate, IDictionary>, IMessageHost, CancellationToken?) + href: api/Hi.Mapping.StepTimeShotUtil.html#Hi_Mapping_StepTimeShotUtil_GetStepToShotsDictionaryByActualTime_Hi_CutterLocations_ClStrips_ClStrip_Hi_Mapping_StepTimeShotUtil_CycleSamplingMode_System_String_Hi_Mapping_StepTimeShotUtil_GetTimeShotByFileDelegate_System_Collections_Generic_IDictionary_System_Int32_System_Collections_Generic_List_Hi_Mapping_ITimeShot___Hi_Common_Messages_IMessageHost_System_Nullable_System_Threading_CancellationToken__ + commentId: M:Hi.Mapping.StepTimeShotUtil.GetStepToShotsDictionaryByActualTime(Hi.CutterLocations.ClStrips.ClStrip,Hi.Mapping.StepTimeShotUtil.CycleSamplingMode,System.String,Hi.Mapping.StepTimeShotUtil.GetTimeShotByFileDelegate,System.Collections.Generic.IDictionary{System.Int32,System.Collections.Generic.List{Hi.Mapping.ITimeShot}},Hi.Common.Messages.IMessageHost,System.Nullable{System.Threading.CancellationToken}) + name.vb: GetStepToShotsDictionaryByActualTime(ClStrip, CycleSamplingMode, String, GetTimeShotByFileDelegate, IDictionary(Of Integer, List(Of ITimeShot)), IMessageHost, CancellationToken?) + fullName: Hi.Mapping.StepTimeShotUtil.GetStepToShotsDictionaryByActualTime(Hi.CutterLocations.ClStrips.ClStrip, Hi.Mapping.StepTimeShotUtil.CycleSamplingMode, string, Hi.Mapping.StepTimeShotUtil.GetTimeShotByFileDelegate, System.Collections.Generic.IDictionary>, Hi.Common.Messages.IMessageHost, System.Threading.CancellationToken?) + fullName.vb: Hi.Mapping.StepTimeShotUtil.GetStepToShotsDictionaryByActualTime(Hi.CutterLocations.ClStrips.ClStrip, Hi.Mapping.StepTimeShotUtil.CycleSamplingMode, String, Hi.Mapping.StepTimeShotUtil.GetTimeShotByFileDelegate, System.Collections.Generic.IDictionary(Of Integer, System.Collections.Generic.List(Of Hi.Mapping.ITimeShot)), Hi.Common.Messages.IMessageHost, System.Threading.CancellationToken?) + nameWithType: StepTimeShotUtil.GetStepToShotsDictionaryByActualTime(ClStrip, StepTimeShotUtil.CycleSamplingMode, string, StepTimeShotUtil.GetTimeShotByFileDelegate, IDictionary>, IMessageHost, CancellationToken?) + nameWithType.vb: StepTimeShotUtil.GetStepToShotsDictionaryByActualTime(ClStrip, StepTimeShotUtil.CycleSamplingMode, String, StepTimeShotUtil.GetTimeShotByFileDelegate, IDictionary(Of Integer, List(Of ITimeShot)), IMessageHost, CancellationToken?) - uid: Hi.Mapping.StepTimeShotUtil.GetStepToShotsDictionaryByActualTime* name: GetStepToShotsDictionaryByActualTime href: api/Hi.Mapping.StepTimeShotUtil.html#Hi_Mapping_StepTimeShotUtil_GetStepToShotsDictionaryByActualTime_ @@ -86082,15 +86214,15 @@ references: commentId: T:Hi.Mapping.TimeMapping fullName: Hi.Mapping.TimeMapping nameWithType: TimeMapping -- uid: Hi.Mapping.TimeMapping.#ctor(Hi.CutterLocations.ClStrips.ClStrip,Hi.Machining.MachiningToolHouse,System.Func{System.String}) - name: TimeMapping(ClStrip, MachiningToolHouse, Func) - href: api/Hi.Mapping.TimeMapping.html#Hi_Mapping_TimeMapping__ctor_Hi_CutterLocations_ClStrips_ClStrip_Hi_Machining_MachiningToolHouse_System_Func_System_String__ - commentId: M:Hi.Mapping.TimeMapping.#ctor(Hi.CutterLocations.ClStrips.ClStrip,Hi.Machining.MachiningToolHouse,System.Func{System.String}) - name.vb: New(ClStrip, MachiningToolHouse, Func(Of String)) - fullName: Hi.Mapping.TimeMapping.TimeMapping(Hi.CutterLocations.ClStrips.ClStrip, Hi.Machining.MachiningToolHouse, System.Func) - fullName.vb: Hi.Mapping.TimeMapping.New(Hi.CutterLocations.ClStrips.ClStrip, Hi.Machining.MachiningToolHouse, System.Func(Of String)) - nameWithType: TimeMapping.TimeMapping(ClStrip, MachiningToolHouse, Func) - nameWithType.vb: TimeMapping.New(ClStrip, MachiningToolHouse, Func(Of String)) +- uid: Hi.Mapping.TimeMapping.#ctor(System.Func{System.String}) + name: TimeMapping(Func) + href: api/Hi.Mapping.TimeMapping.html#Hi_Mapping_TimeMapping__ctor_System_Func_System_String__ + commentId: M:Hi.Mapping.TimeMapping.#ctor(System.Func{System.String}) + name.vb: New(Func(Of String)) + fullName: Hi.Mapping.TimeMapping.TimeMapping(System.Func) + fullName.vb: Hi.Mapping.TimeMapping.New(System.Func(Of String)) + nameWithType: TimeMapping.TimeMapping(Func) + nameWithType.vb: TimeMapping.New(Func(Of String)) - uid: Hi.Mapping.TimeMapping.#ctor(System.Xml.Linq.XElement,System.Func{System.String}) name: TimeMapping(XElement, Func) href: api/Hi.Mapping.TimeMapping.html#Hi_Mapping_TimeMapping__ctor_System_Xml_Linq_XElement_System_Func_System_String__ @@ -86136,15 +86268,15 @@ references: isSpec: "True" fullName: Hi.Mapping.TimeMapping.BaseDirectoryGetter nameWithType: TimeMapping.BaseDirectoryGetter -- uid: Hi.Mapping.TimeMapping.CallTimeShotByRelFile(System.String,System.Nullable{System.Threading.CancellationToken}) - name: CallTimeShotByRelFile(string, CancellationToken?) - href: api/Hi.Mapping.TimeMapping.html#Hi_Mapping_TimeMapping_CallTimeShotByRelFile_System_String_System_Nullable_System_Threading_CancellationToken__ - commentId: M:Hi.Mapping.TimeMapping.CallTimeShotByRelFile(System.String,System.Nullable{System.Threading.CancellationToken}) - name.vb: CallTimeShotByRelFile(String, CancellationToken?) - fullName: Hi.Mapping.TimeMapping.CallTimeShotByRelFile(string, System.Threading.CancellationToken?) - fullName.vb: Hi.Mapping.TimeMapping.CallTimeShotByRelFile(String, System.Threading.CancellationToken?) - nameWithType: TimeMapping.CallTimeShotByRelFile(string, CancellationToken?) - nameWithType.vb: TimeMapping.CallTimeShotByRelFile(String, CancellationToken?) +- uid: Hi.Mapping.TimeMapping.CallTimeShotByRelFile(System.String,Hi.Common.Messages.IMessageHost,System.Nullable{System.Threading.CancellationToken}) + name: CallTimeShotByRelFile(string, IMessageHost, CancellationToken?) + href: api/Hi.Mapping.TimeMapping.html#Hi_Mapping_TimeMapping_CallTimeShotByRelFile_System_String_Hi_Common_Messages_IMessageHost_System_Nullable_System_Threading_CancellationToken__ + commentId: M:Hi.Mapping.TimeMapping.CallTimeShotByRelFile(System.String,Hi.Common.Messages.IMessageHost,System.Nullable{System.Threading.CancellationToken}) + name.vb: CallTimeShotByRelFile(String, IMessageHost, CancellationToken?) + fullName: Hi.Mapping.TimeMapping.CallTimeShotByRelFile(string, Hi.Common.Messages.IMessageHost, System.Threading.CancellationToken?) + fullName.vb: Hi.Mapping.TimeMapping.CallTimeShotByRelFile(String, Hi.Common.Messages.IMessageHost, System.Threading.CancellationToken?) + nameWithType: TimeMapping.CallTimeShotByRelFile(string, IMessageHost, CancellationToken?) + nameWithType.vb: TimeMapping.CallTimeShotByRelFile(String, IMessageHost, CancellationToken?) - uid: Hi.Mapping.TimeMapping.CallTimeShotByRelFile* name: CallTimeShotByRelFile href: api/Hi.Mapping.TimeMapping.html#Hi_Mapping_TimeMapping_CallTimeShotByRelFile_ @@ -86152,19 +86284,6 @@ references: isSpec: "True" fullName: Hi.Mapping.TimeMapping.CallTimeShotByRelFile nameWithType: TimeMapping.CallTimeShotByRelFile -- uid: Hi.Mapping.TimeMapping.ClStrip - name: ClStrip - href: api/Hi.Mapping.TimeMapping.html#Hi_Mapping_TimeMapping_ClStrip - commentId: P:Hi.Mapping.TimeMapping.ClStrip - fullName: Hi.Mapping.TimeMapping.ClStrip - nameWithType: TimeMapping.ClStrip -- uid: Hi.Mapping.TimeMapping.ClStrip* - name: ClStrip - href: api/Hi.Mapping.TimeMapping.html#Hi_Mapping_TimeMapping_ClStrip_ - commentId: Overload:Hi.Mapping.TimeMapping.ClStrip - isSpec: "True" - fullName: Hi.Mapping.TimeMapping.ClStrip - nameWithType: TimeMapping.ClStrip - uid: Hi.Mapping.TimeMapping.Clear name: Clear() href: api/Hi.Mapping.TimeMapping.html#Hi_Mapping_TimeMapping_Clear @@ -86242,25 +86361,12 @@ references: isSpec: "True" fullName: Hi.Mapping.TimeMapping.KeyToRelFileTimeSectionDictionary nameWithType: TimeMapping.KeyToRelFileTimeSectionDictionary -- uid: Hi.Mapping.TimeMapping.LineReaded - name: LineReaded - href: api/Hi.Mapping.TimeMapping.html#Hi_Mapping_TimeMapping_LineReaded - commentId: P:Hi.Mapping.TimeMapping.LineReaded - fullName: Hi.Mapping.TimeMapping.LineReaded - nameWithType: TimeMapping.LineReaded -- uid: Hi.Mapping.TimeMapping.LineReaded* - name: LineReaded - href: api/Hi.Mapping.TimeMapping.html#Hi_Mapping_TimeMapping_LineReaded_ - commentId: Overload:Hi.Mapping.TimeMapping.LineReaded - isSpec: "True" - fullName: Hi.Mapping.TimeMapping.LineReaded - nameWithType: TimeMapping.LineReaded -- uid: Hi.Mapping.TimeMapping.LoadTimeShotFiles(System.Nullable{System.Threading.CancellationToken}) - name: LoadTimeShotFiles(CancellationToken?) - href: api/Hi.Mapping.TimeMapping.html#Hi_Mapping_TimeMapping_LoadTimeShotFiles_System_Nullable_System_Threading_CancellationToken__ - commentId: M:Hi.Mapping.TimeMapping.LoadTimeShotFiles(System.Nullable{System.Threading.CancellationToken}) - fullName: Hi.Mapping.TimeMapping.LoadTimeShotFiles(System.Threading.CancellationToken?) - nameWithType: TimeMapping.LoadTimeShotFiles(CancellationToken?) +- uid: Hi.Mapping.TimeMapping.LoadTimeShotFiles(Hi.Common.Messages.IMessageHost,System.Nullable{System.Threading.CancellationToken}) + name: LoadTimeShotFiles(IMessageHost, CancellationToken?) + href: api/Hi.Mapping.TimeMapping.html#Hi_Mapping_TimeMapping_LoadTimeShotFiles_Hi_Common_Messages_IMessageHost_System_Nullable_System_Threading_CancellationToken__ + commentId: M:Hi.Mapping.TimeMapping.LoadTimeShotFiles(Hi.Common.Messages.IMessageHost,System.Nullable{System.Threading.CancellationToken}) + fullName: Hi.Mapping.TimeMapping.LoadTimeShotFiles(Hi.Common.Messages.IMessageHost, System.Threading.CancellationToken?) + nameWithType: TimeMapping.LoadTimeShotFiles(IMessageHost, CancellationToken?) - uid: Hi.Mapping.TimeMapping.LoadTimeShotFiles* name: LoadTimeShotFiles href: api/Hi.Mapping.TimeMapping.html#Hi_Mapping_TimeMapping_LoadTimeShotFiles_ @@ -86284,15 +86390,15 @@ references: isSpec: "True" fullName: Hi.Mapping.TimeMapping.MakeXmlSource nameWithType: TimeMapping.MakeXmlSource -- uid: Hi.Mapping.TimeMapping.Map(Hi.Common.Range{System.Int32},Hi.Mappings.FileTimeSection,Hi.Mapping.StepTimeShotUtil.CycleSamplingMode,System.Nullable{System.Threading.CancellationToken}) - name: Map(Range, FileTimeSection, CycleSamplingMode, CancellationToken?) - href: api/Hi.Mapping.TimeMapping.html#Hi_Mapping_TimeMapping_Map_Hi_Common_Range_System_Int32__Hi_Mappings_FileTimeSection_Hi_Mapping_StepTimeShotUtil_CycleSamplingMode_System_Nullable_System_Threading_CancellationToken__ - commentId: M:Hi.Mapping.TimeMapping.Map(Hi.Common.Range{System.Int32},Hi.Mappings.FileTimeSection,Hi.Mapping.StepTimeShotUtil.CycleSamplingMode,System.Nullable{System.Threading.CancellationToken}) - name.vb: Map(Range(Of Integer), FileTimeSection, CycleSamplingMode, CancellationToken?) - fullName: Hi.Mapping.TimeMapping.Map(Hi.Common.Range, Hi.Mappings.FileTimeSection, Hi.Mapping.StepTimeShotUtil.CycleSamplingMode, System.Threading.CancellationToken?) - fullName.vb: Hi.Mapping.TimeMapping.Map(Hi.Common.Range(Of Integer), Hi.Mappings.FileTimeSection, Hi.Mapping.StepTimeShotUtil.CycleSamplingMode, System.Threading.CancellationToken?) - nameWithType: TimeMapping.Map(Range, FileTimeSection, StepTimeShotUtil.CycleSamplingMode, CancellationToken?) - nameWithType.vb: TimeMapping.Map(Range(Of Integer), FileTimeSection, StepTimeShotUtil.CycleSamplingMode, CancellationToken?) +- uid: Hi.Mapping.TimeMapping.Map(Hi.Common.Range{System.Int32},Hi.Mappings.FileTimeSection,Hi.Mapping.StepTimeShotUtil.CycleSamplingMode,Hi.CutterLocations.ClStrips.ClStrip,Hi.Common.Messages.IMessageHost,System.Nullable{System.Threading.CancellationToken}) + name: Map(Range, FileTimeSection, CycleSamplingMode, ClStrip, IMessageHost, CancellationToken?) + href: api/Hi.Mapping.TimeMapping.html#Hi_Mapping_TimeMapping_Map_Hi_Common_Range_System_Int32__Hi_Mappings_FileTimeSection_Hi_Mapping_StepTimeShotUtil_CycleSamplingMode_Hi_CutterLocations_ClStrips_ClStrip_Hi_Common_Messages_IMessageHost_System_Nullable_System_Threading_CancellationToken__ + commentId: M:Hi.Mapping.TimeMapping.Map(Hi.Common.Range{System.Int32},Hi.Mappings.FileTimeSection,Hi.Mapping.StepTimeShotUtil.CycleSamplingMode,Hi.CutterLocations.ClStrips.ClStrip,Hi.Common.Messages.IMessageHost,System.Nullable{System.Threading.CancellationToken}) + name.vb: Map(Range(Of Integer), FileTimeSection, CycleSamplingMode, ClStrip, IMessageHost, CancellationToken?) + fullName: Hi.Mapping.TimeMapping.Map(Hi.Common.Range, Hi.Mappings.FileTimeSection, Hi.Mapping.StepTimeShotUtil.CycleSamplingMode, Hi.CutterLocations.ClStrips.ClStrip, Hi.Common.Messages.IMessageHost, System.Threading.CancellationToken?) + fullName.vb: Hi.Mapping.TimeMapping.Map(Hi.Common.Range(Of Integer), Hi.Mappings.FileTimeSection, Hi.Mapping.StepTimeShotUtil.CycleSamplingMode, Hi.CutterLocations.ClStrips.ClStrip, Hi.Common.Messages.IMessageHost, System.Threading.CancellationToken?) + nameWithType: TimeMapping.Map(Range, FileTimeSection, StepTimeShotUtil.CycleSamplingMode, ClStrip, IMessageHost, CancellationToken?) + nameWithType.vb: TimeMapping.Map(Range(Of Integer), FileTimeSection, StepTimeShotUtil.CycleSamplingMode, ClStrip, IMessageHost, CancellationToken?) - uid: Hi.Mapping.TimeMapping.Map* name: Map href: api/Hi.Mapping.TimeMapping.html#Hi_Mapping_TimeMapping_Map_ @@ -86300,15 +86406,15 @@ references: isSpec: "True" fullName: Hi.Mapping.TimeMapping.Map nameWithType: TimeMapping.Map -- uid: Hi.Mapping.TimeMapping.MapByActualTime(System.String,Hi.Mapping.StepTimeShotUtil.CycleSamplingMode,Hi.MachiningProcs.SessionMessageHost,System.Nullable{System.Threading.CancellationToken}) - name: MapByActualTime(string, CycleSamplingMode, SessionMessageHost, CancellationToken?) - href: api/Hi.Mapping.TimeMapping.html#Hi_Mapping_TimeMapping_MapByActualTime_System_String_Hi_Mapping_StepTimeShotUtil_CycleSamplingMode_Hi_MachiningProcs_SessionMessageHost_System_Nullable_System_Threading_CancellationToken__ - commentId: M:Hi.Mapping.TimeMapping.MapByActualTime(System.String,Hi.Mapping.StepTimeShotUtil.CycleSamplingMode,Hi.MachiningProcs.SessionMessageHost,System.Nullable{System.Threading.CancellationToken}) - name.vb: MapByActualTime(String, CycleSamplingMode, SessionMessageHost, CancellationToken?) - fullName: Hi.Mapping.TimeMapping.MapByActualTime(string, Hi.Mapping.StepTimeShotUtil.CycleSamplingMode, Hi.MachiningProcs.SessionMessageHost, System.Threading.CancellationToken?) - fullName.vb: Hi.Mapping.TimeMapping.MapByActualTime(String, Hi.Mapping.StepTimeShotUtil.CycleSamplingMode, Hi.MachiningProcs.SessionMessageHost, System.Threading.CancellationToken?) - nameWithType: TimeMapping.MapByActualTime(string, StepTimeShotUtil.CycleSamplingMode, SessionMessageHost, CancellationToken?) - nameWithType.vb: TimeMapping.MapByActualTime(String, StepTimeShotUtil.CycleSamplingMode, SessionMessageHost, CancellationToken?) +- uid: Hi.Mapping.TimeMapping.MapByActualTime(System.String,Hi.Mapping.StepTimeShotUtil.CycleSamplingMode,Hi.CutterLocations.ClStrips.ClStrip,Hi.Common.Messages.IMessageHost,System.Nullable{System.Threading.CancellationToken}) + name: MapByActualTime(string, CycleSamplingMode, ClStrip, IMessageHost, CancellationToken?) + href: api/Hi.Mapping.TimeMapping.html#Hi_Mapping_TimeMapping_MapByActualTime_System_String_Hi_Mapping_StepTimeShotUtil_CycleSamplingMode_Hi_CutterLocations_ClStrips_ClStrip_Hi_Common_Messages_IMessageHost_System_Nullable_System_Threading_CancellationToken__ + commentId: M:Hi.Mapping.TimeMapping.MapByActualTime(System.String,Hi.Mapping.StepTimeShotUtil.CycleSamplingMode,Hi.CutterLocations.ClStrips.ClStrip,Hi.Common.Messages.IMessageHost,System.Nullable{System.Threading.CancellationToken}) + name.vb: MapByActualTime(String, CycleSamplingMode, ClStrip, IMessageHost, CancellationToken?) + fullName: Hi.Mapping.TimeMapping.MapByActualTime(string, Hi.Mapping.StepTimeShotUtil.CycleSamplingMode, Hi.CutterLocations.ClStrips.ClStrip, Hi.Common.Messages.IMessageHost, System.Threading.CancellationToken?) + fullName.vb: Hi.Mapping.TimeMapping.MapByActualTime(String, Hi.Mapping.StepTimeShotUtil.CycleSamplingMode, Hi.CutterLocations.ClStrips.ClStrip, Hi.Common.Messages.IMessageHost, System.Threading.CancellationToken?) + nameWithType: TimeMapping.MapByActualTime(string, StepTimeShotUtil.CycleSamplingMode, ClStrip, IMessageHost, CancellationToken?) + nameWithType.vb: TimeMapping.MapByActualTime(String, StepTimeShotUtil.CycleSamplingMode, ClStrip, IMessageHost, CancellationToken?) - uid: Hi.Mapping.TimeMapping.MapByActualTime* name: MapByActualTime href: api/Hi.Mapping.TimeMapping.html#Hi_Mapping_TimeMapping_MapByActualTime_ @@ -86316,19 +86422,6 @@ references: isSpec: "True" fullName: Hi.Mapping.TimeMapping.MapByActualTime nameWithType: TimeMapping.MapByActualTime -- uid: Hi.Mapping.TimeMapping.MillingToolHouse - name: MillingToolHouse - href: api/Hi.Mapping.TimeMapping.html#Hi_Mapping_TimeMapping_MillingToolHouse - commentId: P:Hi.Mapping.TimeMapping.MillingToolHouse - fullName: Hi.Mapping.TimeMapping.MillingToolHouse - nameWithType: TimeMapping.MillingToolHouse -- uid: Hi.Mapping.TimeMapping.MillingToolHouse* - name: MillingToolHouse - href: api/Hi.Mapping.TimeMapping.html#Hi_Mapping_TimeMapping_MillingToolHouse_ - commentId: Overload:Hi.Mapping.TimeMapping.MillingToolHouse - isSpec: "True" - fullName: Hi.Mapping.TimeMapping.MillingToolHouse - nameWithType: TimeMapping.MillingToolHouse - uid: Hi.Mapping.TimeMapping.RelFileToTimeShotListDictionary name: RelFileToTimeShotListDictionary href: api/Hi.Mapping.TimeMapping.html#Hi_Mapping_TimeMapping_RelFileToTimeShotListDictionary @@ -116416,15 +116509,15 @@ references: commentId: T:Hi.Numerical.FilePlayers.CsvRunner fullName: Hi.Numerical.FilePlayers.CsvRunner nameWithType: CsvRunner -- uid: Hi.Numerical.FilePlayers.CsvRunner.#ctor(Hi.Common.PacePlayer,Hi.MachiningProcs.SessionMessageHost) - name: CsvRunner(PacePlayer, SessionMessageHost) - href: api/Hi.Numerical.FilePlayers.CsvRunner.html#Hi_Numerical_FilePlayers_CsvRunner__ctor_Hi_Common_PacePlayer_Hi_MachiningProcs_SessionMessageHost_ - commentId: M:Hi.Numerical.FilePlayers.CsvRunner.#ctor(Hi.Common.PacePlayer,Hi.MachiningProcs.SessionMessageHost) - name.vb: New(PacePlayer, SessionMessageHost) - fullName: Hi.Numerical.FilePlayers.CsvRunner.CsvRunner(Hi.Common.PacePlayer, Hi.MachiningProcs.SessionMessageHost) - fullName.vb: Hi.Numerical.FilePlayers.CsvRunner.New(Hi.Common.PacePlayer, Hi.MachiningProcs.SessionMessageHost) - nameWithType: CsvRunner.CsvRunner(PacePlayer, SessionMessageHost) - nameWithType.vb: CsvRunner.New(PacePlayer, SessionMessageHost) +- uid: Hi.Numerical.FilePlayers.CsvRunner.#ctor(Hi.Common.PacePlayer,Hi.MachiningProcs.LocalProjectService,Hi.MachiningProcs.SessionMessageHost) + name: CsvRunner(PacePlayer, LocalProjectService, SessionMessageHost) + href: api/Hi.Numerical.FilePlayers.CsvRunner.html#Hi_Numerical_FilePlayers_CsvRunner__ctor_Hi_Common_PacePlayer_Hi_MachiningProcs_LocalProjectService_Hi_MachiningProcs_SessionMessageHost_ + commentId: M:Hi.Numerical.FilePlayers.CsvRunner.#ctor(Hi.Common.PacePlayer,Hi.MachiningProcs.LocalProjectService,Hi.MachiningProcs.SessionMessageHost) + name.vb: New(PacePlayer, LocalProjectService, SessionMessageHost) + fullName: Hi.Numerical.FilePlayers.CsvRunner.CsvRunner(Hi.Common.PacePlayer, Hi.MachiningProcs.LocalProjectService, Hi.MachiningProcs.SessionMessageHost) + fullName.vb: Hi.Numerical.FilePlayers.CsvRunner.New(Hi.Common.PacePlayer, Hi.MachiningProcs.LocalProjectService, Hi.MachiningProcs.SessionMessageHost) + nameWithType: CsvRunner.CsvRunner(PacePlayer, LocalProjectService, SessionMessageHost) + nameWithType.vb: CsvRunner.New(PacePlayer, LocalProjectService, SessionMessageHost) - uid: Hi.Numerical.FilePlayers.CsvRunner.#ctor* name: CsvRunner href: api/Hi.Numerical.FilePlayers.CsvRunner.html#Hi_Numerical_FilePlayers_CsvRunner__ctor_ @@ -116776,25 +116869,6 @@ references: commentId: T:Hi.Numerical.FilePlayers.NcRunner fullName: Hi.Numerical.FilePlayers.NcRunner nameWithType: NcRunner -- uid: Hi.Numerical.FilePlayers.NcRunner.#ctor(Hi.Common.PacePlayer,Hi.Numerical.NcEnv,Hi.MachiningProcs.SessionMessageHost) - name: NcRunner(PacePlayer, NcEnv, SessionMessageHost) - href: api/Hi.Numerical.FilePlayers.NcRunner.html#Hi_Numerical_FilePlayers_NcRunner__ctor_Hi_Common_PacePlayer_Hi_Numerical_NcEnv_Hi_MachiningProcs_SessionMessageHost_ - commentId: M:Hi.Numerical.FilePlayers.NcRunner.#ctor(Hi.Common.PacePlayer,Hi.Numerical.NcEnv,Hi.MachiningProcs.SessionMessageHost) - name.vb: New(PacePlayer, NcEnv, SessionMessageHost) - fullName: Hi.Numerical.FilePlayers.NcRunner.NcRunner(Hi.Common.PacePlayer, Hi.Numerical.NcEnv, Hi.MachiningProcs.SessionMessageHost) - fullName.vb: Hi.Numerical.FilePlayers.NcRunner.New(Hi.Common.PacePlayer, Hi.Numerical.NcEnv, Hi.MachiningProcs.SessionMessageHost) - nameWithType: NcRunner.NcRunner(PacePlayer, NcEnv, SessionMessageHost) - nameWithType.vb: NcRunner.New(PacePlayer, NcEnv, SessionMessageHost) -- uid: Hi.Numerical.FilePlayers.NcRunner.#ctor* - name: NcRunner - href: api/Hi.Numerical.FilePlayers.NcRunner.html#Hi_Numerical_FilePlayers_NcRunner__ctor_ - commentId: Overload:Hi.Numerical.FilePlayers.NcRunner.#ctor - isSpec: "True" - name.vb: New - fullName: Hi.Numerical.FilePlayers.NcRunner.NcRunner - fullName.vb: Hi.Numerical.FilePlayers.NcRunner.New - nameWithType: NcRunner.NcRunner - nameWithType.vb: NcRunner.New - uid: Hi.Numerical.FilePlayers.NcRunner.FileIndexOnRunCommand name: FileIndexOnRunCommand href: api/Hi.Numerical.FilePlayers.NcRunner.html#Hi_Numerical_FilePlayers_NcRunner_FileIndexOnRunCommand @@ -116808,19 +116882,6 @@ references: isSpec: "True" fullName: Hi.Numerical.FilePlayers.NcRunner.FileIndexOnRunCommand nameWithType: NcRunner.FileIndexOnRunCommand -- uid: Hi.Numerical.FilePlayers.NcRunner.NcEnv - name: NcEnv - href: api/Hi.Numerical.FilePlayers.NcRunner.html#Hi_Numerical_FilePlayers_NcRunner_NcEnv - commentId: P:Hi.Numerical.FilePlayers.NcRunner.NcEnv - fullName: Hi.Numerical.FilePlayers.NcRunner.NcEnv - nameWithType: NcRunner.NcEnv -- uid: Hi.Numerical.FilePlayers.NcRunner.NcEnv* - name: NcEnv - href: api/Hi.Numerical.FilePlayers.NcRunner.html#Hi_Numerical_FilePlayers_NcRunner_NcEnv_ - commentId: Overload:Hi.Numerical.FilePlayers.NcRunner.NcEnv - isSpec: "True" - fullName: Hi.Numerical.FilePlayers.NcRunner.NcEnv - nameWithType: NcRunner.NcEnv - uid: Hi.Numerical.FilePlayers.NcRunner.NcLines name: NcLines href: api/Hi.Numerical.FilePlayers.NcRunner.html#Hi_Numerical_FilePlayers_NcRunner_NcLines @@ -135640,135 +135701,135 @@ references: isSpec: "True" fullName: Hi.WinForm.Disp.RenderingForm.RenderingCanvas nameWithType: RenderingForm.RenderingCanvas -- uid: Hi.Wpf.Disp - name: Hi.Wpf.Disp - href: api/Hi.Wpf.Disp.html - commentId: N:Hi.Wpf.Disp - fullName: Hi.Wpf.Disp - nameWithType: Hi.Wpf.Disp -- uid: Hi.Wpf.Disp.RenderingCanvas +- uid: Hi.WpfPlus.Disp + name: Hi.WpfPlus.Disp + href: api/Hi.WpfPlus.Disp.html + commentId: N:Hi.WpfPlus.Disp + fullName: Hi.WpfPlus.Disp + nameWithType: Hi.WpfPlus.Disp +- uid: Hi.WpfPlus.Disp.RenderingCanvas name: RenderingCanvas - href: api/Hi.Wpf.Disp.RenderingCanvas.html - commentId: T:Hi.Wpf.Disp.RenderingCanvas - fullName: Hi.Wpf.Disp.RenderingCanvas + href: api/Hi.WpfPlus.Disp.RenderingCanvas.html + commentId: T:Hi.WpfPlus.Disp.RenderingCanvas + fullName: Hi.WpfPlus.Disp.RenderingCanvas nameWithType: RenderingCanvas -- uid: Hi.Wpf.Disp.RenderingCanvas.#ctor +- uid: Hi.WpfPlus.Disp.RenderingCanvas.#ctor name: RenderingCanvas() - href: api/Hi.Wpf.Disp.RenderingCanvas.html#Hi_Wpf_Disp_RenderingCanvas__ctor - commentId: M:Hi.Wpf.Disp.RenderingCanvas.#ctor + href: api/Hi.WpfPlus.Disp.RenderingCanvas.html#Hi_WpfPlus_Disp_RenderingCanvas__ctor + commentId: M:Hi.WpfPlus.Disp.RenderingCanvas.#ctor name.vb: New() - fullName: Hi.Wpf.Disp.RenderingCanvas.RenderingCanvas() - fullName.vb: Hi.Wpf.Disp.RenderingCanvas.New() + fullName: Hi.WpfPlus.Disp.RenderingCanvas.RenderingCanvas() + fullName.vb: Hi.WpfPlus.Disp.RenderingCanvas.New() nameWithType: RenderingCanvas.RenderingCanvas() nameWithType.vb: RenderingCanvas.New() -- uid: Hi.Wpf.Disp.RenderingCanvas.#ctor* +- uid: Hi.WpfPlus.Disp.RenderingCanvas.#ctor* name: RenderingCanvas - href: api/Hi.Wpf.Disp.RenderingCanvas.html#Hi_Wpf_Disp_RenderingCanvas__ctor_ - commentId: Overload:Hi.Wpf.Disp.RenderingCanvas.#ctor + href: api/Hi.WpfPlus.Disp.RenderingCanvas.html#Hi_WpfPlus_Disp_RenderingCanvas__ctor_ + commentId: Overload:Hi.WpfPlus.Disp.RenderingCanvas.#ctor isSpec: "True" name.vb: New - fullName: Hi.Wpf.Disp.RenderingCanvas.RenderingCanvas - fullName.vb: Hi.Wpf.Disp.RenderingCanvas.New + fullName: Hi.WpfPlus.Disp.RenderingCanvas.RenderingCanvas + fullName.vb: Hi.WpfPlus.Disp.RenderingCanvas.New nameWithType: RenderingCanvas.RenderingCanvas nameWithType.vb: RenderingCanvas.New -- uid: Hi.Wpf.Disp.RenderingCanvas.DispEngine +- uid: Hi.WpfPlus.Disp.RenderingCanvas.DispEngine name: DispEngine - href: api/Hi.Wpf.Disp.RenderingCanvas.html#Hi_Wpf_Disp_RenderingCanvas_DispEngine - commentId: P:Hi.Wpf.Disp.RenderingCanvas.DispEngine - fullName: Hi.Wpf.Disp.RenderingCanvas.DispEngine + href: api/Hi.WpfPlus.Disp.RenderingCanvas.html#Hi_WpfPlus_Disp_RenderingCanvas_DispEngine + commentId: P:Hi.WpfPlus.Disp.RenderingCanvas.DispEngine + fullName: Hi.WpfPlus.Disp.RenderingCanvas.DispEngine nameWithType: RenderingCanvas.DispEngine -- uid: Hi.Wpf.Disp.RenderingCanvas.DispEngine* +- uid: Hi.WpfPlus.Disp.RenderingCanvas.DispEngine* name: DispEngine - href: api/Hi.Wpf.Disp.RenderingCanvas.html#Hi_Wpf_Disp_RenderingCanvas_DispEngine_ - commentId: Overload:Hi.Wpf.Disp.RenderingCanvas.DispEngine + href: api/Hi.WpfPlus.Disp.RenderingCanvas.html#Hi_WpfPlus_Disp_RenderingCanvas_DispEngine_ + commentId: Overload:Hi.WpfPlus.Disp.RenderingCanvas.DispEngine isSpec: "True" - fullName: Hi.Wpf.Disp.RenderingCanvas.DispEngine + fullName: Hi.WpfPlus.Disp.RenderingCanvas.DispEngine nameWithType: RenderingCanvas.DispEngine -- uid: Hi.Wpf.Disp.RenderingCanvas.Dispose +- uid: Hi.WpfPlus.Disp.RenderingCanvas.Dispose name: Dispose() - href: api/Hi.Wpf.Disp.RenderingCanvas.html#Hi_Wpf_Disp_RenderingCanvas_Dispose - commentId: M:Hi.Wpf.Disp.RenderingCanvas.Dispose - fullName: Hi.Wpf.Disp.RenderingCanvas.Dispose() + href: api/Hi.WpfPlus.Disp.RenderingCanvas.html#Hi_WpfPlus_Disp_RenderingCanvas_Dispose + commentId: M:Hi.WpfPlus.Disp.RenderingCanvas.Dispose + fullName: Hi.WpfPlus.Disp.RenderingCanvas.Dispose() nameWithType: RenderingCanvas.Dispose() -- uid: Hi.Wpf.Disp.RenderingCanvas.Dispose(System.Boolean) +- uid: Hi.WpfPlus.Disp.RenderingCanvas.Dispose(System.Boolean) name: Dispose(bool) - href: api/Hi.Wpf.Disp.RenderingCanvas.html#Hi_Wpf_Disp_RenderingCanvas_Dispose_System_Boolean_ - commentId: M:Hi.Wpf.Disp.RenderingCanvas.Dispose(System.Boolean) + href: api/Hi.WpfPlus.Disp.RenderingCanvas.html#Hi_WpfPlus_Disp_RenderingCanvas_Dispose_System_Boolean_ + commentId: M:Hi.WpfPlus.Disp.RenderingCanvas.Dispose(System.Boolean) name.vb: Dispose(Boolean) - fullName: Hi.Wpf.Disp.RenderingCanvas.Dispose(bool) - fullName.vb: Hi.Wpf.Disp.RenderingCanvas.Dispose(Boolean) + fullName: Hi.WpfPlus.Disp.RenderingCanvas.Dispose(bool) + fullName.vb: Hi.WpfPlus.Disp.RenderingCanvas.Dispose(Boolean) nameWithType: RenderingCanvas.Dispose(bool) nameWithType.vb: RenderingCanvas.Dispose(Boolean) -- uid: Hi.Wpf.Disp.RenderingCanvas.Dispose* +- uid: Hi.WpfPlus.Disp.RenderingCanvas.Dispose* name: Dispose - href: api/Hi.Wpf.Disp.RenderingCanvas.html#Hi_Wpf_Disp_RenderingCanvas_Dispose_ - commentId: Overload:Hi.Wpf.Disp.RenderingCanvas.Dispose + href: api/Hi.WpfPlus.Disp.RenderingCanvas.html#Hi_WpfPlus_Disp_RenderingCanvas_Dispose_ + commentId: Overload:Hi.WpfPlus.Disp.RenderingCanvas.Dispose isSpec: "True" - fullName: Hi.Wpf.Disp.RenderingCanvas.Dispose + fullName: Hi.WpfPlus.Disp.RenderingCanvas.Dispose nameWithType: RenderingCanvas.Dispose -- uid: Hi.Wpf.Disp.RenderingWindow +- uid: Hi.WpfPlus.Disp.RenderingWindow name: RenderingWindow - href: api/Hi.Wpf.Disp.RenderingWindow.html - commentId: T:Hi.Wpf.Disp.RenderingWindow - fullName: Hi.Wpf.Disp.RenderingWindow + href: api/Hi.WpfPlus.Disp.RenderingWindow.html + commentId: T:Hi.WpfPlus.Disp.RenderingWindow + fullName: Hi.WpfPlus.Disp.RenderingWindow nameWithType: RenderingWindow -- uid: Hi.Wpf.Disp.RenderingWindow.#ctor +- uid: Hi.WpfPlus.Disp.RenderingWindow.#ctor name: RenderingWindow() - href: api/Hi.Wpf.Disp.RenderingWindow.html#Hi_Wpf_Disp_RenderingWindow__ctor - commentId: M:Hi.Wpf.Disp.RenderingWindow.#ctor + href: api/Hi.WpfPlus.Disp.RenderingWindow.html#Hi_WpfPlus_Disp_RenderingWindow__ctor + commentId: M:Hi.WpfPlus.Disp.RenderingWindow.#ctor name.vb: New() - fullName: Hi.Wpf.Disp.RenderingWindow.RenderingWindow() - fullName.vb: Hi.Wpf.Disp.RenderingWindow.New() + fullName: Hi.WpfPlus.Disp.RenderingWindow.RenderingWindow() + fullName.vb: Hi.WpfPlus.Disp.RenderingWindow.New() nameWithType: RenderingWindow.RenderingWindow() nameWithType.vb: RenderingWindow.New() -- uid: Hi.Wpf.Disp.RenderingWindow.#ctor* +- uid: Hi.WpfPlus.Disp.RenderingWindow.#ctor* name: RenderingWindow - href: api/Hi.Wpf.Disp.RenderingWindow.html#Hi_Wpf_Disp_RenderingWindow__ctor_ - commentId: Overload:Hi.Wpf.Disp.RenderingWindow.#ctor + href: api/Hi.WpfPlus.Disp.RenderingWindow.html#Hi_WpfPlus_Disp_RenderingWindow__ctor_ + commentId: Overload:Hi.WpfPlus.Disp.RenderingWindow.#ctor isSpec: "True" name.vb: New - fullName: Hi.Wpf.Disp.RenderingWindow.RenderingWindow - fullName.vb: Hi.Wpf.Disp.RenderingWindow.New + fullName: Hi.WpfPlus.Disp.RenderingWindow.RenderingWindow + fullName.vb: Hi.WpfPlus.Disp.RenderingWindow.New nameWithType: RenderingWindow.RenderingWindow nameWithType.vb: RenderingWindow.New -- uid: Hi.Wpf.Disp.RenderingWindow.Displayee +- uid: Hi.WpfPlus.Disp.RenderingWindow.Displayee name: Displayee - href: api/Hi.Wpf.Disp.RenderingWindow.html#Hi_Wpf_Disp_RenderingWindow_Displayee - commentId: P:Hi.Wpf.Disp.RenderingWindow.Displayee - fullName: Hi.Wpf.Disp.RenderingWindow.Displayee + href: api/Hi.WpfPlus.Disp.RenderingWindow.html#Hi_WpfPlus_Disp_RenderingWindow_Displayee + commentId: P:Hi.WpfPlus.Disp.RenderingWindow.Displayee + fullName: Hi.WpfPlus.Disp.RenderingWindow.Displayee nameWithType: RenderingWindow.Displayee -- uid: Hi.Wpf.Disp.RenderingWindow.Displayee* +- uid: Hi.WpfPlus.Disp.RenderingWindow.Displayee* name: Displayee - href: api/Hi.Wpf.Disp.RenderingWindow.html#Hi_Wpf_Disp_RenderingWindow_Displayee_ - commentId: Overload:Hi.Wpf.Disp.RenderingWindow.Displayee + href: api/Hi.WpfPlus.Disp.RenderingWindow.html#Hi_WpfPlus_Disp_RenderingWindow_Displayee_ + commentId: Overload:Hi.WpfPlus.Disp.RenderingWindow.Displayee isSpec: "True" - fullName: Hi.Wpf.Disp.RenderingWindow.Displayee + fullName: Hi.WpfPlus.Disp.RenderingWindow.Displayee nameWithType: RenderingWindow.Displayee -- uid: Hi.Wpf.Disp.RenderingWindow.GetDispEngine +- uid: Hi.WpfPlus.Disp.RenderingWindow.GetDispEngine name: GetDispEngine() - href: api/Hi.Wpf.Disp.RenderingWindow.html#Hi_Wpf_Disp_RenderingWindow_GetDispEngine - commentId: M:Hi.Wpf.Disp.RenderingWindow.GetDispEngine - fullName: Hi.Wpf.Disp.RenderingWindow.GetDispEngine() + href: api/Hi.WpfPlus.Disp.RenderingWindow.html#Hi_WpfPlus_Disp_RenderingWindow_GetDispEngine + commentId: M:Hi.WpfPlus.Disp.RenderingWindow.GetDispEngine + fullName: Hi.WpfPlus.Disp.RenderingWindow.GetDispEngine() nameWithType: RenderingWindow.GetDispEngine() -- uid: Hi.Wpf.Disp.RenderingWindow.GetDispEngine* +- uid: Hi.WpfPlus.Disp.RenderingWindow.GetDispEngine* name: GetDispEngine - href: api/Hi.Wpf.Disp.RenderingWindow.html#Hi_Wpf_Disp_RenderingWindow_GetDispEngine_ - commentId: Overload:Hi.Wpf.Disp.RenderingWindow.GetDispEngine + href: api/Hi.WpfPlus.Disp.RenderingWindow.html#Hi_WpfPlus_Disp_RenderingWindow_GetDispEngine_ + commentId: Overload:Hi.WpfPlus.Disp.RenderingWindow.GetDispEngine isSpec: "True" - fullName: Hi.Wpf.Disp.RenderingWindow.GetDispEngine + fullName: Hi.WpfPlus.Disp.RenderingWindow.GetDispEngine nameWithType: RenderingWindow.GetDispEngine -- uid: Hi.Wpf.Disp.RenderingWindow.RenderingCanvas +- uid: Hi.WpfPlus.Disp.RenderingWindow.RenderingCanvas name: RenderingCanvas - href: api/Hi.Wpf.Disp.RenderingWindow.html#Hi_Wpf_Disp_RenderingWindow_RenderingCanvas - commentId: P:Hi.Wpf.Disp.RenderingWindow.RenderingCanvas - fullName: Hi.Wpf.Disp.RenderingWindow.RenderingCanvas + href: api/Hi.WpfPlus.Disp.RenderingWindow.html#Hi_WpfPlus_Disp_RenderingWindow_RenderingCanvas + commentId: P:Hi.WpfPlus.Disp.RenderingWindow.RenderingCanvas + fullName: Hi.WpfPlus.Disp.RenderingWindow.RenderingCanvas nameWithType: RenderingWindow.RenderingCanvas -- uid: Hi.Wpf.Disp.RenderingWindow.RenderingCanvas* +- uid: Hi.WpfPlus.Disp.RenderingWindow.RenderingCanvas* name: RenderingCanvas - href: api/Hi.Wpf.Disp.RenderingWindow.html#Hi_Wpf_Disp_RenderingWindow_RenderingCanvas_ - commentId: Overload:Hi.Wpf.Disp.RenderingWindow.RenderingCanvas + href: api/Hi.WpfPlus.Disp.RenderingWindow.html#Hi_WpfPlus_Disp_RenderingWindow_RenderingCanvas_ + commentId: Overload:Hi.WpfPlus.Disp.RenderingWindow.RenderingCanvas isSpec: "True" - fullName: Hi.Wpf.Disp.RenderingWindow.RenderingCanvas + fullName: Hi.WpfPlus.Disp.RenderingWindow.RenderingCanvas nameWithType: RenderingWindow.RenderingCanvas - uid: HiMachining.Milling name: HiMachining.Milling @@ -136039,24 +136100,24 @@ references: commentId: T:HiNc.Grpcs.MachiningProjectGrpcServer fullName: HiNc.Grpcs.MachiningProjectGrpcServer nameWithType: MachiningProjectGrpcServer -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.#ctor(Hi.MachiningProcs.MachiningProject) - name: MachiningProjectGrpcServer(MachiningProject) - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer__ctor_Hi_MachiningProcs_MachiningProject_ - commentId: M:HiNc.Grpcs.MachiningProjectGrpcServer.#ctor(Hi.MachiningProcs.MachiningProject) - name.vb: New(MachiningProject) - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.MachiningProjectGrpcServer(Hi.MachiningProcs.MachiningProject) - fullName.vb: HiNc.Grpcs.MachiningProjectGrpcServer.New(Hi.MachiningProcs.MachiningProject) - nameWithType: MachiningProjectGrpcServer.MachiningProjectGrpcServer(MachiningProject) - nameWithType.vb: MachiningProjectGrpcServer.New(MachiningProject) -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.#ctor(System.Xml.Linq.XElement,Hi.MachiningProcs.MachiningProject) - name: MachiningProjectGrpcServer(XElement, MachiningProject) - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer__ctor_System_Xml_Linq_XElement_Hi_MachiningProcs_MachiningProject_ - commentId: M:HiNc.Grpcs.MachiningProjectGrpcServer.#ctor(System.Xml.Linq.XElement,Hi.MachiningProcs.MachiningProject) - name.vb: New(XElement, MachiningProject) - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.MachiningProjectGrpcServer(System.Xml.Linq.XElement, Hi.MachiningProcs.MachiningProject) - fullName.vb: HiNc.Grpcs.MachiningProjectGrpcServer.New(System.Xml.Linq.XElement, Hi.MachiningProcs.MachiningProject) - nameWithType: MachiningProjectGrpcServer.MachiningProjectGrpcServer(XElement, MachiningProject) - nameWithType.vb: MachiningProjectGrpcServer.New(XElement, MachiningProject) +- uid: HiNc.Grpcs.MachiningProjectGrpcServer.#ctor(Hi.MachiningProcs.LocalProjectService) + name: MachiningProjectGrpcServer(LocalProjectService) + href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer__ctor_Hi_MachiningProcs_LocalProjectService_ + commentId: M:HiNc.Grpcs.MachiningProjectGrpcServer.#ctor(Hi.MachiningProcs.LocalProjectService) + name.vb: New(LocalProjectService) + fullName: HiNc.Grpcs.MachiningProjectGrpcServer.MachiningProjectGrpcServer(Hi.MachiningProcs.LocalProjectService) + fullName.vb: HiNc.Grpcs.MachiningProjectGrpcServer.New(Hi.MachiningProcs.LocalProjectService) + nameWithType: MachiningProjectGrpcServer.MachiningProjectGrpcServer(LocalProjectService) + nameWithType.vb: MachiningProjectGrpcServer.New(LocalProjectService) +- uid: HiNc.Grpcs.MachiningProjectGrpcServer.#ctor(System.Xml.Linq.XElement,Hi.MachiningProcs.LocalProjectService) + name: MachiningProjectGrpcServer(XElement, LocalProjectService) + href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer__ctor_System_Xml_Linq_XElement_Hi_MachiningProcs_LocalProjectService_ + commentId: M:HiNc.Grpcs.MachiningProjectGrpcServer.#ctor(System.Xml.Linq.XElement,Hi.MachiningProcs.LocalProjectService) + name.vb: New(XElement, LocalProjectService) + fullName: HiNc.Grpcs.MachiningProjectGrpcServer.MachiningProjectGrpcServer(System.Xml.Linq.XElement, Hi.MachiningProcs.LocalProjectService) + fullName.vb: HiNc.Grpcs.MachiningProjectGrpcServer.New(System.Xml.Linq.XElement, Hi.MachiningProcs.LocalProjectService) + nameWithType: MachiningProjectGrpcServer.MachiningProjectGrpcServer(XElement, LocalProjectService) + nameWithType.vb: MachiningProjectGrpcServer.New(XElement, LocalProjectService) - uid: HiNc.Grpcs.MachiningProjectGrpcServer.#ctor* name: MachiningProjectGrpcServer href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer__ctor_ diff --git a/App/zh-Hans/HiMech.resources.dll b/App/zh-Hans/HiMech.resources.dll index 8e6b3828624ffea27138b8723c9ef890ab232c63..9a0b6690cbd2adbf6b69fa48c4358990e0286dd0 100644 GIT binary patch delta 237 zcmZq3Xvmn*!P1ppH;Q<73FjV)7Cl9Lk6jm=CAOifMGObjfIEKO5Q z3^p%hf2+b7!@$VE%)r19vw6DCQzm9h2BXdO`n8OqKn8<0g9(EvLn06+F(d=oi3}+W z1`L)!G6{$+8H|BA705~k@)H@%fqXNddIKN^!8D)_kZL0!HU+8!@+Jow8nc5$^nh$Z L?Xt~`M*kTBR)aZ3 delta 237 zcmW-Zu};H45Jcx(nX>(a_(-=$!<%PHU))CTk*;K03Aw73L+u7pr%07;ov*? z0vaSrJ^{fd8tG|vc6K-2rhB+Mvh~;J?*1|}Rr<&#gVE`>e_8IX7w^w!Z+7uJc|Goo zuoM;u22(0r!IH<8V-sRS;+$5T4%NV`$C6jQ7D_hSgJq>@(PbwH>0IKwO@jb{G zlGf8(bEO73B3iJrK{${!bt-#ETAc(lkakK{RC(Qc^{lBV_jfDp*O-I)rK92ga{=3r K^P6P+pZNzIt2br< diff --git a/App/zh-Hans/HiNc.resources.dll b/App/zh-Hans/HiNc.resources.dll index 2d543c0e7642df8e8b5c8caeca446a4ca11898ac..59774c03acae4b5beed17752409c5d3580270047 100644 GIT binary patch delta 467 zcmYk1y-UMT6vfX?qPDRKii3l7D1M`c7m~CM_%-?gItUg)(2z9X;Og8iqEOKC1|1xn z1W^zTsDlWuA~^U*2rde`xOs~To(JdM`@0A3dzIcw@7}g%nzM)XT9&TrCnYoL2NuAZ z0tU5ut|PMsWVoN^K~~kQ1mF?GZ#yjP z!1anjT=wJG7Jf1C^HJ;s9z&<#il8jqq8A1QAWhJw*XKhZd2QY#qsAZj)3Mx0b30$VLDc9*TU&D8pxunF_8N%tsy(6NhW>H|e0jm0(h4cRA-FeY8spV3 U#_0dm<_jq|`J}z=jq0N18%c&>i2wiq delta 467 zcmXw0y-Vak6#u;>?rwHBqF7j*f{W`H>YB_ZF|klVkpn>s3lSTWjfGg*Snr~Rh2kwE zSnM@kCmb9Y5gQ8|TMPdJ8yiLCtON^R{CF^L=Jzr4-eao8YVp^Ob~KV})OS1Rq<*~E zywVHIgJTjXYV|@}eg()go@Sv#US@{m67|u!tZ^>NV_KvGNlKgXTLXxFNj%7cvah@$ zK2cKCet{BZ@t^YoXRQjT>$fvUjji>w!@mvr-1KkOAY{rVtK@qn z6R-&*pJ;G3@`M|@B633Cv;)g_%B~Z5=BOW7!m_>4j6~V@B0wi-KiB3e@ndR}j2&+N zJO0Rx%nv$<_cArAo0@FSjvH6%w+dXzrL3ce++sq8@-Q1vuYApRlOj8FH>!XxUvfRV z506LU{^CM@g4Au8vSJJ@C-fjz5%DhIBIG3)IehZjZX1+Fth$a zLGh!%6wibqJTw%`A_K7k=A0D_H_w+)GqcE<)F@FfZ8%&07^Wk3$F$)Mhp<~*7Hxur Mir48>M3MfBGpUX=LI3~& delta 231 zcmWNJy-EW?6ot=Zjbad4vC&r2Em>#h=gy|J5RvVCg8A94d<8M3g@q6#h2RTV$rN^0 zskIdGMQp@eZgCFZx#ujVi|NDN*2VMD*X#XRA-eoo9FNNC=kfY!{&xPpJ^xsre6NT{pF(%0#78OoMMowcZ4)LZ8S-DV=qitnNcIs1);T#}~UD1PTCMUQG^1 zg7VAWt+*moFo;mlNURA1JQ@&_mYqR>WgpOUMoc0kpJVE{L#&#!z@35rcw>39Z^wih NG9Q$eB8&20Yybp}Hl6?g diff --git a/App/zh-Hant/HiMech.resources.dll b/App/zh-Hant/HiMech.resources.dll index 40d3238734ff2f2e8036004c8399ad0ad525ebe3..687f4ceb8b8bf96990f845c65d951bfd674f1f9c 100644 GIT binary patch delta 237 zcmWlQze)o^5XQgFNrJ>eA0d$LEcg_B}a1Rjd#B_>S2!UuT;scoV zJ$wpF!PY9yG5m(#H+-{h*X`5&0j*y4ACKpSs`FPd>K&K3dwBc1xcnT(_oK7z@2=k} zW>aavDNJlNt=N=~ybsa&q&bDemYWoVpW7K}B3e4lhN*EnzYc!Jhcy%m0Cj#o{q7YE zlW!+C>PiG990*<}Ac}h=Xt3-cFs#ssMadp>$usF|p_`?AbZsM$^dxN-Q#Hq)$ delta 237 zcmZq3Xvmn*!E#tVse5CO6EkDv=JU*oOaf2ue3ZCU{=>0f$NNI)zr7DPv1Kq?T3G5C zFff=fGUyxY8R}VBYNw@Iq$Qc8B^g^98X6>-q*_{<8C#f|rllDf8kt%cTUwZ;r5Gfd z8*g67{#J!El7W$dnSp^Ja`SYZr%cQi43?Yg^=lbJfeZ$1hBSs$1`8mW#9#s@je(+u zKxhCKNd@vO8O#`rfoe>FFbxQefU-tFwgphs5=esdr2y3@GMFu+~?v8}yK#GHdoS1fY%73vOqzK!q+}xE? zCMU(g#X(7K&T1WqqNE%=8_M^s@B2KT=UdPF7VV*Th3M4~FbCE+ zFrbx^@%m+;p8F#nBxJHNEf=YudgLnmfIOrH`jVu?Ba>ACajv30nN)TZPOj_>E6|twF^|&nGuBJBvMYY4+NhIn@jl&z;A239$>uRq z*I~+h%iz)vPVvZu2OAD@doz= zYpIoBuoN4yweUCWHY*J7HZE9rv+9L+-o59X_wIeXmfLaPI8>Pyd;I&UX| zMR3dl!&+)qOFw`T*Jmu$q*?eTOm&buLm3`#}*`-pT z{%crh;t%6@My&;??2NN}^-8I1d_LaUT6mZ{ZSOUIPT!o!qryeAOz5avjui%$4Y-7< zw`zPX34|Z}BJtwTb|c62>b@5Rb|Z`&;kZF;C!!t(37`|S`Spd>?6Bx}7>_*sM-(j1 zhElVSp0lT}K_#^{*=fv_@6-RV_KvOO^f=a#@GjsZ<|VlDI1AbCB7(!{q0WlORlsb6wVW6KwSc`g mpAqcI@8dUNn%n;Foh-h$&CJR#(udyuXJ97l9%xf)7heIK$za|9
    + +