From 95b5790622ad6f24f3c74e503818d1663d7d30f6 Mon Sep 17 00:00:00 2001 From: iamboss Date: Thu, 28 May 2026 19:42:05 +0800 Subject: [PATCH] deploy fixed MRR drift and webservice CylindroidHolder buckle branch update issue. --- App/Google.Protobuf.dll | Bin 483936 -> 0 bytes App/Grpc.AspNetCore.Server.ClientFactory.dll | Bin 31336 -> 0 bytes App/Grpc.AspNetCore.Server.dll | Bin 147048 -> 0 bytes App/Grpc.Core.Api.dll | Bin 70248 -> 0 bytes App/Grpc.Net.Client.dll | Bin 301160 -> 0 bytes App/Grpc.Net.ClientFactory.dll | Bin 53864 -> 0 bytes App/Grpc.Net.Common.dll | Bin 22120 -> 0 bytes App/Hi.WpfPlus.dll | Bin 71168 -> 71168 bytes App/HiCbtr.dll | Bin 128000 -> 128000 bytes App/HiDisp.dll | Bin 11493376 -> 11493376 bytes App/HiGeom.dll | Bin 432128 -> 413184 bytes App/HiLicense.dll | Bin 84480 -> 84480 bytes App/HiMech.dll | Bin 1198592 -> 1227776 bytes App/HiNC-2025-win-desktop.deps.json | 290 +- App/HiNC-2025-win-desktop.dll | Bin 893440 -> 892928 bytes App/HiNC-2025-win-desktop.pdb | Bin 336908 -> 336488 bytes App/HiNc-Resource.dll | Bin 56320 -> 56320 bytes App/HiNc.dll | Bin 404480 -> 380928 bytes App/HiUniNc.dll | Bin 187392 -> 187392 bytes App/en/HiGeom.resources.dll | Bin 4608 -> 4608 bytes App/en/HiMech.resources.dll | Bin 4608 -> 4608 bytes .../api/Hi.Common.CsvUtils.CsvInputKit.html | 46 + .../api/Hi.Common.XmlUtils.XFactory.html | 2 +- .../HiAPI-docsite/api/Hi.Disp.DispEngine.html | 3 +- ...pcs.ClStripService.ClStripServiceBase.html | 302 -- ...s.ClStripService.ClStripServiceClient.html | 560 --- .../Hi.Grpcs.ClStripServiceReflection.html | 212 - .../api/Hi.Grpcs.ClStripServiceRunner.html | 333 -- .../api/Hi.Grpcs.DictionaryStep.html | 710 --- ...Grpcs.PlayerService.PlayerServiceBase.html | 380 -- ...pcs.PlayerService.PlayerServiceClient.html | 1100 ----- .../api/Hi.Grpcs.PlayerServiceReflection.html | 212 - App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.html | 177 - ...ingEquipmentUtils.IMachiningEquipment.html | 3 + ...ningEquipmentUtils.MachiningEquipment.html | 3 + ...EquipmentUtils.MachiningEquipmentUtil.html | 50 + .../Hi.MachiningProcs.MachiningProject.html | 35 + ...hiningProcs.MachiningProjectDisplayee.html | 9 - .../api/Hi.MachiningProcs.SessionShell.html | 43 + ...chiningSteps.IStepPropertyAccessHost.html} | 150 +- .../HiAPI-docsite/api/Hi.MachiningSteps.html | 8 + ...i.NcMech.Xyzabc.CodeXyzabcMachineTool.html | 5 +- .../HiAPI-docsite/api/Hi.NcMech.Xyzabc.html | 3 +- ...ys.Fanuc.FanucGotoIterationDependency.html | 71 +- ...Fanuc.FanucWhileDoIterationDependency.html | 559 +++ .../api/Hi.NcParsers.Dependencys.Fanuc.html | 40 +- ...ystemWired.FileIndexCounterDependency.html | 82 +- ...ystemWired.MachiningServiceDependency.html | 459 ++ ...tepPropertyAccessDictionaryDependency.html | 471 ++ .../Hi.NcParsers.Dependencys.SystemWired.html | 42 +- ...onSyntaxs.Fanuc.FanucConditionReader.html} | 147 +- ...aluationSyntaxs.Fanuc.FanucGotoSyntax.html | 9 +- ...uationSyntaxs.Fanuc.FanucIfThenSyntax.html | 4 +- ...ationSyntaxs.Fanuc.FanucWhileDoSyntax.html | 629 +++ .../Hi.NcParsers.EvaluationSyntaxs.Fanuc.html | 101 +- ...rsers.EvaluationSyntaxs.LabelScanUtil.html | 85 +- ...ers.EvaluationSyntaxs.MacroInlineUtil.html | 8 +- ...luationSyntaxs.SubProgramReturnSyntax.html | 4 +- ...uationSyntaxs.VariableEvaluatorSyntax.html | 53 +- .../api/Hi.NcParsers.EvaluationSyntaxs.html | 18 +- ...l => Hi.NcParsers.ISessionResettable.html} | 114 +- .../api/Hi.NcParsers.Keywords.FanucGoto.html | 63 +- .../Hi.NcParsers.Keywords.FanucIfThen.html | 52 +- .../Hi.NcParsers.Keywords.FanucWhileDo.html | 388 ++ .../Hi.NcParsers.Keywords.IArcMotionDef.html | 46 +- .../api/Hi.NcParsers.Keywords.html | 58 +- ...Parsers.LogicSyntaxs.BackBoringSyntax.html | 43 + ...cParsers.LogicSyntaxs.BareG28Behavior.html | 208 +- ...arsers.LogicSyntaxs.BoringCycleSyntax.html | 103 + ...LogicSyntaxs.CannedCycleResolveSyntax.html | 59 + ...ers.LogicSyntaxs.CircularMotionSyntax.html | 64 +- ...sers.LogicSyntaxs.DrillingCycleSyntax.html | 74 + ...Parsers.LogicSyntaxs.FineBoringSyntax.html | 42 + ...cParsers.LogicSyntaxs.G43p4RtcpSyntax.html | 91 + ...ogicSyntaxs.G53p1RotaryPositionSyntax.html | 75 + ...LogicSyntaxs.HighSpeedPeckCycleSyntax.html | 45 + ...rsers.LogicSyntaxs.IsoG68p2TiltSyntax.html | 110 + ....LogicSyntaxs.PeckDrillingCycleSyntax.html | 74 + ...ogicSyntaxs.PivotTransformationSyntax.html | 82 + ...rs.LogicSyntaxs.ReferenceReturnSyntax.html | 206 +- ...rsers.LogicSyntaxs.TappingCycleSyntax.html | 72 + .../api/Hi.NcParsers.LogicSyntaxs.html | 36 +- ...ntaxs.Fanuc.FanucWhileDoParsingSyntax.html | 513 +++ .../Hi.NcParsers.ParsingSyntaxs.Fanuc.html | 28 + ...arsers.Segmenters.HeidenhainSegmenter.html | 12 +- .../Hi.NcParsers.Segmenters.ISegmenter.html | 12 +- ...s.Segmenters.InlineDelimiterSegmenter.html | 12 +- ...arsers.Segmenters.SingleLineSegmenter.html | 12 +- .../api/Hi.NcParsers.Syntaxs.SyntaxPiece.html | 2 +- .../HiAPI-docsite/api/Hi.NcParsers.html | 21 + ...i.Numerical.CsvParsers.CsvRowSemantic.html | 423 ++ ...Hi.Numerical.CsvParsers.CsvRowSyntax.html} | 305 +- ...Numerical.CsvParsers.CsvRunnerConfig.html} | 84 +- ...Hi.Numerical.CsvParsers.CsvSegmenter.html} | 356 +- ...i.Numerical.CsvParsers.CsvSoftRunner.html} | 129 +- .../api/Hi.Numerical.CsvParsers.html | 202 + .../Hi.Numerical.FilePlayers.CsvRunner.html | 2 +- ...Hi.Numerical.FilePlayers.HardNcRunner.html | 3 +- .../api/Hi.Numerical.FilePlayers.html | 5 - App/wwwroot/HiAPI-docsite/api/HiNc.Grpcs.html | 127 - .../HiAPI-docsite/api/numerical.Empty.html | 642 --- .../api/numerical.GrpcCsvRowDictionary.html | 771 ---- .../api/numerical.GrpcNcStep.html | 1328 ------ .../api/numerical.NumericalReflection.html | 212 - ...mericalService.NumericalServiceClient.html | 540 --- .../api/numerical.NumericalService.html | 290 -- .../api/numerical.UniversalNcReflection.html | 212 - ...salNcService.UniversalNcServiceClient.html | 540 --- .../api/numerical.UniversalNcService.html | 290 -- App/wwwroot/HiAPI-docsite/api/numerical.html | 172 - App/wwwroot/HiAPI-docsite/api/toc.html | 142 +- App/wwwroot/HiAPI-docsite/api/toc.json | 2 +- .../app-anatomy/geom/cylindroid-control.html | 6 +- .../mech/holder/cylindroid-holder-panel.html | 6 +- .../mech/holder/freeform-holder-panel.html | 5 +- .../app-anatomy/mech/holder/index.html | 5 +- .../app-anatomy/mech/tool-house-page.html | 5 +- .../widget/polar-resolution-2d-panel.html | 4 +- App/wwwroot/HiAPI-docsite/index.json | 359 +- App/wwwroot/HiAPI-docsite/manifest.json | 628 +-- .../analysis/nc-optimization-principles.html | 2 +- .../manual/analysis/spindle-capability.html | 2 +- .../HiAPI-docsite/manual/runtime/index.html | 5 +- .../manual/runtime/script-command.html | 2 +- .../manual/runtime/session-shell.html | 4 +- .../{step-output.html => step-fields.html} | 11 +- .../manual/runtime/step-intro.html | 125 - .../{machining-step.html => step.html} | 225 +- .../HiAPI-docsite/manual/runtime/toc.html | 7 +- .../HiAPI-docsite/manual/runtime/toc.json | 2 +- .../HiAPI-docsite/release-note/index.html | 6 + .../workflows/basic-simulation.html | 10 +- .../workflows/force-training.html | 2 +- .../workflows/sensor-mapping.html | 2 +- App/wwwroot/HiAPI-docsite/xrefmap.yml | 3843 ++++++----------- 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 140 files changed, 8079 insertions(+), 14099 deletions(-) delete mode 100644 App/Google.Protobuf.dll delete mode 100644 App/Grpc.AspNetCore.Server.ClientFactory.dll delete mode 100644 App/Grpc.AspNetCore.Server.dll delete mode 100644 App/Grpc.Core.Api.dll delete mode 100644 App/Grpc.Net.Client.dll delete mode 100644 App/Grpc.Net.ClientFactory.dll delete mode 100644 App/Grpc.Net.Common.dll delete mode 100644 App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.ClStripService.ClStripServiceBase.html delete mode 100644 App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.ClStripService.ClStripServiceClient.html delete mode 100644 App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.ClStripServiceReflection.html delete mode 100644 App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.ClStripServiceRunner.html delete mode 100644 App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.DictionaryStep.html delete mode 100644 App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.PlayerService.PlayerServiceBase.html delete mode 100644 App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.PlayerService.PlayerServiceClient.html delete mode 100644 App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.PlayerServiceReflection.html delete mode 100644 App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.html rename App/wwwroot/HiAPI-docsite/api/{numerical.UniversalNcService.UniversalNcServiceBase.html => Hi.MachiningSteps.IStepPropertyAccessHost.html} (54%) create mode 100644 App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html create mode 100644 App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html create mode 100644 App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html rename App/wwwroot/HiAPI-docsite/api/{Hi.Grpcs.ClStripService.html => Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.html} (50%) create mode 100644 App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html rename App/wwwroot/HiAPI-docsite/api/{numerical.NumericalService.NumericalServiceBase.html => Hi.NcParsers.ISessionResettable.html} (61%) create mode 100644 App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Keywords.FanucWhileDo.html create mode 100644 App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html create mode 100644 App/wwwroot/HiAPI-docsite/api/Hi.Numerical.CsvParsers.CsvRowSemantic.html rename App/wwwroot/HiAPI-docsite/api/{HiNc.Grpcs.MachiningProjectGrpcServer.html => Hi.Numerical.CsvParsers.CsvRowSyntax.html} (54%) rename App/wwwroot/HiAPI-docsite/api/{Hi.Numerical.FilePlayers.CsvRunnerConfig.html => Hi.Numerical.CsvParsers.CsvRunnerConfig.html} (76%) rename App/wwwroot/HiAPI-docsite/api/{Hi.Grpcs.PlayerServiceRunner.html => Hi.Numerical.CsvParsers.CsvSegmenter.html} (50%) rename App/wwwroot/HiAPI-docsite/api/{Hi.Grpcs.PlayerService.html => Hi.Numerical.CsvParsers.CsvSoftRunner.html} (56%) create mode 100644 App/wwwroot/HiAPI-docsite/api/Hi.Numerical.CsvParsers.html delete mode 100644 App/wwwroot/HiAPI-docsite/api/HiNc.Grpcs.html delete mode 100644 App/wwwroot/HiAPI-docsite/api/numerical.Empty.html delete mode 100644 App/wwwroot/HiAPI-docsite/api/numerical.GrpcCsvRowDictionary.html delete mode 100644 App/wwwroot/HiAPI-docsite/api/numerical.GrpcNcStep.html delete mode 100644 App/wwwroot/HiAPI-docsite/api/numerical.NumericalReflection.html delete mode 100644 App/wwwroot/HiAPI-docsite/api/numerical.NumericalService.NumericalServiceClient.html delete mode 100644 App/wwwroot/HiAPI-docsite/api/numerical.NumericalService.html delete mode 100644 App/wwwroot/HiAPI-docsite/api/numerical.UniversalNcReflection.html delete mode 100644 App/wwwroot/HiAPI-docsite/api/numerical.UniversalNcService.UniversalNcServiceClient.html delete mode 100644 App/wwwroot/HiAPI-docsite/api/numerical.UniversalNcService.html delete mode 100644 App/wwwroot/HiAPI-docsite/api/numerical.html rename App/wwwroot/HiAPI-docsite/manual/runtime/{step-output.html => step-fields.html} (95%) delete mode 100644 App/wwwroot/HiAPI-docsite/manual/runtime/step-intro.html rename App/wwwroot/HiAPI-docsite/manual/runtime/{machining-step.html => step.html} (67%) diff --git a/App/Google.Protobuf.dll b/App/Google.Protobuf.dll deleted file mode 100644 index d5a89ae8485510b9ee48c488cc872bfa833a6b42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 483936 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%0AbsD!*xw!&pXy$1nfz$vw2IHo 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 diff --git a/App/Grpc.AspNetCore.Server.ClientFactory.dll b/App/Grpc.AspNetCore.Server.ClientFactory.dll deleted file mode 100644 index 00809852fb31302280eaa082bb484cf91dfffb3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31336 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
?<&o_5YhzQ8*=Hy<*YCpUppJyO6xVh$ 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 diff --git a/App/Grpc.Core.Api.dll b/App/Grpc.Core.Api.dll deleted file mode 100644 index a4b2b04efb9b445e611ecf9dc3ac82ead876a552..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70248 zcmc${33yaR);E6Y_L5GMePt&hTN6lF#RbHK01{;zHkVODNE(PHY3%MG5rV;>Gbrwg z%ea7`fVd1It~f3rg3IW*j2kKp=!}jtj^i@=I)mTuoT_`flYsAh&;R+Jf3(l7-#MpF zo!U;-t$VwfdiJ&CA|f|FKmA1XIIjFxA@t`-JH#mio=l-f5?{@KTupg3fA*q=NZ#Ub zXkoavDX*@!xj7Wgn;*;zw>0N9H0Mp2J}a*&R39u)PWBfX(=#R#O;IlT_W3Us*rgqy zfq6aDFrowC_%!!4_(pl0R!q_)ZE3%m!T!r%1?1qL*{V>ld6%&&{~x;=sI}=|M~J3N zT2W8O2pFFeEehb8rzi=R<^Lf%LG=DhlIOTC8GOK#1^OzH~1XCW;7{>d(pMGb;b3D3itH=<%xyq_>83ZnGlys}w=4eGH;X)!cPi2T z9Yl%3jgf!8h9tn~WiuoJMsJ%TiIXgsJAhH( z4s}@TouRx!VTt z#nYC@mlStfzFa+R192@~`}1m9S_?)+n=*%41ZN3;rCZC`eoF#TAHTOONyDfQu+*#d zL#5nLoTm(V(EP~5&a|NGIgf!+KVWDu>)IKIFhCwVFZv3~T!WS#PF{vljK)48n2+Tx z?~)fCio9IwmSo90B-t)zD648&vc{h?Q`Hfo;;ViXJ-h0niE6P8t{$tRQ#-c- zD>-d&4B64@XXiUw{cM?CKgPO#E1WJn5j@K+HPc;s5_@;~(d6iK=}OT+JveK(da&?V z^{{0}tA{N+T0Lx;T@S{(9_L$SJ;E6Eiz8#eyV#Nl5*o{n#j1ERV5cgMV|lEKadNwg zqJb*1NYB6c@yb%Cjuo7`T+SPvCLAJG^3EWf%z zmPNltIo=$b9hi)a2nm>L9>Q89d0a79id}YA7jgke2Fn|n!O;S(DXwD4(~R;!HSD#s zW2LcG6TypD9z-pv6+_NyaO8H5HT|u~o%$+EUg;mP6d^=#K12*&u`q9C#lnQc)zgOY zkE^#0W8Q7$v|+f5RnElLITv3!8(%paUpX6JIU9Bd%Q)YFyqW=dM-;Qg4BCO$nsi*T zIHg+`=3>FZSl2FbbBR2sn>=zFsxJ=fHa)5h_QouC@>XjrM*{RD!Xw(@R03OWFwCRe@^M#$Ofd^SscM0)7vf@{jIE88HW4G6!YO2BxFLKqD9LE%UCx z-0_!&H=!hN_!%zm7tFwX!34x+uMIJW$2}s9v@}B=nu15?=0*^7yzPimXtT&nWVtw; zY6WH?F{DTMMc9kXW+uFygKJ#GnWs>e;<`p^B$u){66xTLN(n5=XrAKqIxxYiEh}XvKVHaJ1G+b*xk`N-PmCxr*#QU)gKEvafvA z9`gL>@uOoX>$*ZgP`}$7I>1BhG@a8Gx*aIAfHQL#Txcg2apG=?hebyc8h|3_gV>By znQ;M=Mi5xjogZleYQu1Gmlj*OZ5SzTOZLo|)O@dnc+SF5Gt_d=@((W3*c%Fg;R-#4 zAvPpAo>%IHnm1?YJ6WaEFkc>pvqfdD;;hoZW6%Ipg+!6nwiRU+x!N9J zfB4=c@(B2W=eYg?w>uDPK0D?LE#~T6>JIPaVF8Z^7h8dskip2^p$l1IS|?^G%sj^g z*M&{IaV!%UIM~{_j#Wk|%5pSmtlUsbrxKPhLhu)t-Jy#ZVhh7inwG}_w|!SX5k>u_ zlZ;|3z?uTwM3m0d+Brv5_#^gt3^$`*BZi>g63}m9uSJWkzzb-JHJFwva4~ZGt-u~I zh9r5z{UHt@y7;jgpC5Sy+`tZy_9^fpupIn$L@jIvcur!(%bz_b+Yp0!CQf1-GQU?a z!xOi~xP%!g?(li6lFSpTT{xcbrOZiT&PuW330#V6TL%cY0-NS5TjVPn;wxw8D`(=X z=${te3~QE9S6~&3&bM4ExDKi6NX}@iqM^&c4eUqNcm#>at>M`iUq{ip)AFRMzz`m2 zmm@2}BjN~em+oiBQ%!7;pv3}o<8rovZ|1sAid}TvF83t~FHACrALzcO^_s0_b8dns*+1=WeUzi>D1CQ`(lf z+?>oVJ>LcYMNhD`jI~1O9<18AD9Z(_gSag8X&a&@+e3t8dx(!>hq-Kz*?bi~{LLKZ zCdlN^l5QVT8U7uQD(TTR$D?{yU@(ja)}Y4WBo~W#c!aJ3Hp#1z6uC^P((nY);vv!1 z0H&#wiBPQP>Ghpe?RhFCUIVjbx!&+2qQk84?~#;|Zi*gK;tjtc;-B{k)BN(BaEcqN zHKwe$9jlZ(Hx6ULk}b3z9c_pf+=vJe(pn6;)db^+%V=Q|3R|utav~$yGNv;xCS{($ zSU~hnnb#FKnUmwJHK=|cNHAyyTczU-h8){cFeFz+ELSBbdq=KCGhB=fJN8`ui+e|~ zgAzDK!y635p38sneD{!43-k9T0C#9DXsJ|E*2<}D4(-n49WjCsh0?8X8rmd~f%1!8 z;XF=fN;;5*OXwC@@DEP&hHgcohm{bhf{iqEzRZQc#Loq*RL_M%>RX}b0yc1wKR`bs z1&_95H|G))SbPkcz)m@6A|oEfx1l_Az;F2CX}cX4Zhz+TmDzk1K2Cx#nlY7PRcXV# z=a_X8*C!hlX~T4PmtJ8l<7vdUeo((70%y;)@) ztMp+N-0pHgamDmyh4rk^@8}BsS>bM07{Cf}mFs|w<_7R^*{Cn~;Ns%o^S`N}gZ?*_ zfvj@5DM;yplrBgGxS&wM|Ef{Q8pR%$J9IBH=+q`BwV6``u}j%vC+>4(*y|Ym`#DuE zy%NIK$4NiPX^c~jQOL(a3_gmqa+_Oa}yhp;2obY_0gb-$_H@uVuyupXk3QiY8 zDakhkVPp-UFZ8;j#S13FNIk|}vNyaA(hOJNAu!7l!aIQmd%}C!f><-6A;pL{TJyKi z%yehyrBC9V1TTA6q378O_>I|~o=O4qu(#zzu(5#5^MITY9RB?= zjnZ^J)6jD>m!>b!bF&Z5Lg5hKbF**A=R%;!T*s249?4csi~A) z4O5&K`3OOS^J1iV{U3RXvy8fw#rl3fd00OdFt6oVh>ag#L$4yA1AZS5UW*5>Gr$b8(~~^Z6jv!$&_Cvdwd&pmXzLREn`jy!_oF# z+9k%s*p$YNWwhHvbTC@w)<(b|80fZ%)z8Uz?E1x2oG=$xzc<)w=P|%6K56S-zs?e_ zA9F%)GKuT=7}Ks_ETdgN(Rm9Q?f#C{$x%Lbonk7nI-x6L>?{vLZ3!0zs`r0vk z>~@K%bZVCvJJv4ck=rl<+Hc|@>UWhsXa&wgY{VgP&m(TW7cS%$JRU08cfAL90`G&g z-OTDI@f`%GLNy#tanQ(Fv1O7SQUI;qc8jCOsn9$LyRug-!`#HSCjFyazct{994}gO zp6CsHfD%5+?9AocOBo~fx?x$AI~wc2Xr0Ry_>dI_V$X0H7lJ6ag0I-e@fA)z!xce9 z9L)Pa-p75y47BcG-U+%(XL4;s#5+KD=vSOQHfpf5lU0VVp&M9+U?^ZZ3YK%h&YUKW zE6$^vu*ZwiGPtxmVFA0)yV&3oYni|!-Upx_`3R;WUm&ITvkP3|k(^B-Td~%3$#Eqg zvv7V-ZT0{nIJR92jwpwdYyd zbL`96GhS~zbPBBcWFB#;W$7!X;bJZ0nuZ#<5wtt@QxD@DKQLi^<0IeF2OdX7*?}7p zP**-I!fnQRhV%^_KtbW3kWYK2Z3hl=@mf~ti^cnM)V0Pe4{G*_<~T%UeyFWd_M%+SJ;{5$A|S2Byc+&jdwun{^eZpb=36Z!fh zpDTA}j(>0kPT)U*u*ZPfgkhe90T&N19WYE%Cl1d`7*Jl`Ct*NMc}~KBvhwr+l?lWA z2?Nd^=5giB9Bk#_H1kZq*9v`#{39OAjT#Py$qN? zvajXsX+XosR12r0TCI7cm0OxqS{@jT;nU8o6gPo4F~kmouYn;@C|zKW%QoCnxUIlv zaH#D*RzqF+jP5#I2e41eSix^C!|jE;2cOjBme0s3wX$`_oVEwSA3P^P&K|90jN~lW zT6RAtLza60x1rN*?6vFO|mChzT7j#tTw0f%CY8%TXOg=mGj~@{&VW`71Zc zL*QDGFF5&IPRhQ~Zleh(Hy`Cj{sy_<>uUQuu3mTBm$+EVIIDLVvqJv>$qIcXY&PRP z;{7K;OTw(7= zTx@&HI-0$IgMT!8g>3IX5VE}^xWe8~xY+iXbu@c8VeDiNqmf%8lEtl!<+B!7d-=rr zIJj*aq-bc4d6UsDMJN~NFbHD)9vLctP=}iiZ?T*-`yoJt2N_w&D%pRMQ{0 z5Lx7qqI8_cWw`_8C`I37$6?G6f4m$62M6tVj;7Ty^5P)|nZK*^L)rO<#d(gMC&Bk( z_--v@-ccRp!&bjt2k)}&?D8_)wz}iJ9oEHL!ExRSj(ICE=B+^Sb{x)vxCE?@Ttw+K zm$eLsyy!nSXlOW!5uQhQUgnLkc?rVvF>j>JOB9};d83#&e%5ISy;#HWmxRxfQRTzR zM-Ce~{6yw>s1bDOSwsaZhz{fWI{LU^Ry5quyfDHVkF3H2z(nxo%%Z}p^}B}!r_QP7 zxiJcOa|vYQ8$16P7 zI3up;8+mWwR$MWL75Lw&u21CPXDTZ zCapo>^irGf?@WIv%S&4_NA&ViWd_qxlAb5&KczG0C!u|WKTXoJ(wJY+>+XSGD#~EG zBkjggFI|$xrF@l{o9m@V3Yor^#&mB6)1kRcccwBOQ^fSL?38>jZIkqbZ006iYJ{-@OI^xoXIKZ4H1 zpj`67iZ5+N@=EM>`a&~}%G@j~z<-P;3o6FB5u@oA%LdW$v=V6XKt_YHKV{kZA{$H< zQo<`GEGwha1nnwiG?Zotx((&cp^busi4aQje%#2;n!+Gla1^e@#Rd|Y@+eBR%9)?j3&}; zf_{=ZOhhbL4?j1-3PE<4pmz*fF9=TsMRt#%FO2M7X_w3TX`4W>vJJ5KD&vo0^%9h5MXpIEf86y$gU%t zhr&v*&-K}7Viz4!E@*BF5H$g{2-+v;dRigqGC?=cuLS*7(2aDha^zLY2bQ9f* zH~!OTLq6Vrr<>_^K?eohLU&5ObD_DCZl!gCPJpZ)WA$!9QG+%r4}6(`vC~9%(7h@F zHXrKA=uWyXuDo^hpt2xah_$&1tK!3Am-7qR)6*nF72P|2u66Utjj+v#iZ z4g4PRq3LAxDx+-sBQZb#8bphxpJ)4vA>EFH!lf2#? zp5~;v?e8RA2wKyh>Dh%$&k$NRfYYTy6NI{jz9sYzLU#y#Sm<8K^@7m9WnYL=<|S^n z^68C)&1jro`k0OYN6}-#c^aI2x-N%lvx zLG$U8o=<{q?(z4=q}->6ukw1dKPj`ho-%U^zR1#33PNG`*useuaFLAe}`IJSNIla zbpq?Vd_RJ&k$&9oqhxzT{nqm%M$U``rek|E{ZA27pKz{8VTEkf$nh7kI8*$mqxzdr>>wpdPO4&d)FuA$q@`u2VNZPosvgm z2eNM+lvJ1pwA7$`QW0fnn;@=VF=X#KXjV!wxe7Sn<-TO^O9^F^WYBDsP(~#Ny^`}3 z&`^!&roL-Z%4n=X*A%TyDW@q0u`k1DkwNUsFj^((Q^mdvqq_vHq_?ta+{5U8tqIT8 zL-Q>M{XS(h9nr{lU(QzvCzH2O`^mnXOlbzOpC{80jie<`rpX3z=_gaYAYJ;&bcrBc z`pL9LYohdo)RXCc2bHCcr{8OY(tG$O)4K+7d6VfIjikKElvX63Ny|^BA%b*ylj&4J zy1dCWThLm%wWKC>GKF+Ll)gB%nyzus+SF;d6SjM$+&7zc8pNf~rgt<#KTK4!>99f9 z6irui=o^E$AI_jOJ~W`q#j`VLh#>9R8FZ>3?b#VLTWi9Xy{TtVR3qQn35|3XU1E?2 zv+*qYl|dUz-%mY@HXF2I0HggH(LZ_|1|pn*VD|%?U#6Z-rGhT^orD>14vjL1FbdA0 zdV@~Q`!4kyx<$}h+L8Jr(5r$ve9QdbrJhG`3%Y^k_-gU%V$h&z`%1aNw9<+`dFfZu?~Rp7-qqHX^sb=Y>etDPbpLUiDY}v}OF8RW-wP>4$k*GT+jAJ@ zYlKl(3Z(yd6pT#2ib_SctH%%iM!JT|1nE(CjiY&7{z>UE^h*9I>DM~4Dfy?T-`J@) zZ>B1-qDR)vbh?9Pr{7Go1+mw^OuvQBbx>{kt+YrZx~ybj`fa9!-5$69M(a1U+OeYO zc3SJ8+3B~_Q;wBirr$yP98{ZrC%vmReFbRGyXb(R4&NO;n}GhJ5$(fFy^DGe<|5g% z2xP-F^4*ZsNbBhYgD&XFs6vo#rS+!nyv8ZW^xvN3BU$gd*3&f6+@sR^e3u$Sz5T7} zc0S!ov3&n3ZjD*-+*-0qIWo@}@59#JG{@K+wg!hVkdZ5FhW{?zwN>wem2&?)^=T@TWJK^zr#r9VWUIOst7Hu}3p zzBBtCN#9PnWwtL0cb=t!I%slMUdnbFrDarIl#sEV_$zwwngUrV89V42gXZSl?|O_j z81#8|X2uirq(Sb4YqdP@6&H2ae6yLsuF!p?6iri*%bt ziG51mb?u`~2Bnua(mr~~XjW#8&Dck~3@YkBCF3Q74k~Z|3G@=ZEwYvL29DidqAv{M zJ<3Z|IF#$4NAgRY#NVFeeX=`4+WhYEYAyhpVLjq%@~@g6lB^f}g?_ndiqTH1{` z$+Ktiy1ox*yiZF+6LUJ-L+?AX)6x`u&?ydfMN4%F)Z~3C;{#f0P<8IEjQww$6iW?u)PewhQ*MdAzB5BGTLQU|30 zUFD$XGxOCg4tgoGK<&`Tm!DVTE>=$)w6fpZnZ@b_L3@bzJ;myPpk036_XN}-t%>qJ z$PB2zJLphmsq*02E8>ff<3yQCHt5~#8h4q>Ht5M-f6pvad4l%Pe#F)?b)z7C7gDBr zjASc1(w3<*LEI17RHmu~UGDoMV%<=6x9oTRLg>UIZZWsOn~81$c1l{H#D<{)p@@#=X&H&6k& z(oR(S3_6ASWu2)0U{D7Q%sNTEYtZ9V0(8Kj&yjD8`m;gjseV~w)R&CZTKXibENiUt z@k3oa?I|i5opp-Ja!^H9rCRQw)3d776%IN#YofZvK?}1^Rrfk5oK>wJ5yYcss^@g| zvPQmjiEBO6)SCuzY@Mb)FzB0scSCl_$+s$Nno2&7J=;TkpEE-ZGl=hVW~*5S@qNyj zYKcL7pL347*&x2psZoy$T8Y#BtFq>+4-9&f?#!xJM+{0*+p`v^{Lx(AO1enx&03_Y z47x>qnAMbN-oiz6u#MHYX{&NwpgERd#9iV%1@gKWB1wM6EHXAZI~#i@M36 z%)YC#FH(0I^j@DkvM*L!4BFY}sq8kj!=Uf_{4sl_nbUfwdYRfSvb8wn_%8c0wfuPY zdM)0q`FHl^s^Is=Q=+abf|D<&b=y$ zUqL|(xfW~jy=sy{yw|u_ooNuC{@kk;8Pt~gmG@q?(V%sS=fcVx2JOzS1NuxOwC5tA z?~RO0-=zAD(dBXJo77N)xb#hGu0dS-Cbh^QK8f0-S`1=eHmOwxap{}X!v=Bbo76sy zP>{`#HDXmsbgbx->gO(#HDXmlMUjNsLkq3gSfoS>T-j)yv^zkgC>@& zKnag%gwj_)w%f?K^eyT$gShl9>PLgP?pxGAe(ePPz@=|dqYP?GZAHGt265?I)SU)# z>08tegShl9>J>pc?r!O{;%!myimU^_8Src5`#|S|pSR}RrxM0->AV8DRR}t$ZY@#tTeZfZhNND$x>L3&(oS6dx)Z_al0cAVx8^|>Q^ zFy}G#gGO>+{J8R-qT6L3_MeZdo(AwSsgjJ=3X`o-y;NgJ!5Xt{6I?7Py{Ow`(gX@4cMo)J{QMzb{jF ztHKKL6DS)e)e((+%W>DbS1mV)PuljX7Y*W5xV`F622H@d(_ZxtL3*9utHxFm{yJzr zPT}^dGYy)RdN60NS|o_io7YbJIKJ%XDNf`@i;NJBah~8*{dwU*z_( zGNhHbydQG=SVIKqmhWqYO$&0%_qQ%Jh+972y51me`9kY%gSh2OtZfEy%MY@i6~wc@ zN6*1l{O-QYdR@!t36-5#)=5@w9gdTgcajaYzK@d)?Ias!C7sGO>=2v$zM!J)Jf`QB z@_UBgcsV^L>*#cR5$imf$kM4ex3%a+Pv^9YmS*FPOJYs^huMR)!qa}%kM`)CcHy}? zbAE+#Ej;<>w*L~;P1(KpP0BA*k1bVr{?EDak{NQb1-Dp0E?B_Zb+GW?=p@j%G}~L- z=LhjTz|Q+LO8MXH|D2AtuZVRl@zW)Ky2VeA@$=`TUhz=TeZAQ$uJ5t!{G3$ViLa|7 zUDJU{Y;(^5wm$}Gh4&+vQ=j*9>8xbd2}+-;fvov{f2JcrE#ot{twma@(^`i|kwsUd zom~_z;J%AWoBx01D;b|L%V{__db1!c4Nr}e($aXmrKP#?9!FZ52k&vDrFo5SZ^8$D z*F&g`$&tdjO44c|+X)R~>5I}Pbw!-MHlJ&;6SRA+m9&6`Hz~M|xAfyW1~EHqKIe6r zyr1-B{_7&$+=tWLG74{z#HcN0Pqv~i7y}~JGiZySHJPHO;h zm%iADaiU~=c8-c0Wo+=c?aYslkUX9(iIYmkwoV^ALdNISkxlnVEdAf*)#d7lq%Cyi zxFt$^juNH2`w(wOdlKUu+s^MK8vG#fO3&zG>6iZ|9q&VIOj_czOMJH16rNd1=9eY& zD?aTqb1gm=ohGy6ko0UU?V?v@rT9d~%=bCm<9d#tD}1IF-HyC?H`AdOy&|KlyN=e> zQk`Cc_0*!jAu76Pzl{G!Fvl$uEp>X8jK+9A&v#o#r?pNzziYHqc$+DftE=??RgC49 zxeUD2g~Tkr@QBkpEdFJ<43RNcOTW7pX=-j6y7)F zaygFav`x8%^`D}7h)BmuE9!t|*R|>Y-KxiBornF#(dZnB^GarD{OstycDKrE7_W1z z_3m>-QM>NbWCZHgZgPW zXd0a;v{Gob&|e5WOK7do2B8-UZ56r_G#jTO75)3*eR#IHUg#5``FL8+oZ*V?SAv$% zYEbA%dW)QTZBcyM^_=hzf~L`Dst6|-i5BbUg9h=<0e)w-Mf~Q(S86rRL%ve~ z!a2wgD(ZhJod`|rJEg=Q=*^@x_*MpU#?s6F-_dN)R{U-hr|Ttsj-(qwGu0rRFkpPk zd)!fZvpXtpb}yIr)0X4Cw&`k>NLS(RsSas=?|Ti>IC+3(?& zct7zO-WS3-EG_wk&~L!G#KrU`*Gd(_TNwWq9XERRTa^TQi7QL`I!p1}4){iD?take zS$_gOuH^5a{GLUYO3dZ7J0VkLDSm?@ON}4+EjSZ;{|H){#p$B{F86Ays3-@te^Foe zN_7ibtWfd$=7oyiH!oEDzImbI_st6xzi(cs_}zj+#c!Q+t~1>4$#cAI@T$%|M0^{i zyrsW#kA?k9X#&O=Mh-?ursA^pxVI^8^KI%{e+|mrQTnR;32Aet_&$xKs~ws~&so3i z`#ya8BBotrEIM=#4^e7aCRk zlq;(E=~h(nQ?2E4O1290G0z&%mpwOve(bp&^lQ&X&~)$pprzhNKqq^5g4TI=tDaen zv>VOaO0S4lZ;4m?)$&2DwAyMa{i}CBq+dak$Ki?U7L2QX)(Et~iK?kIJK;oC3eJgY zNDn)CcLqH!-Y!qpulpd9IR4gx-^m4JbO46&u zf)Bq{euv+OZz|pmnn#;J3+aB)0Br*uLXUzDqo+Ve(X*f@&ZSJbKCysoBzzNLNv`mUM_x?lYg^njWNdRPT}q|iUq z`8_hQw%h@KzEQ16e=F(l)fGtpfOH1^M?4|xZlsmP-ny-kkb01|uxdRIYXOT(A7XKv z46~l)+F3Wl{t4Db(6QEb92~bn)1sB28FZnG?L6(i!(W6IeMNE!-uArPUxGD#ZAm$v zGu`bk$G1q=^eV^qM{fcxphrLl)6+tG;l;GUw5%`FkNYvL9>DasdFA-VXU@QK8bjxS zR?&r^r_&11S+oK4m$VbKj$Q)2Ky)HPm(foHN5Yeef+{?Dz1v@f{l?w?iQ-!|=t%{$ zL|P}(I+51ldvK=~21TbqbRwd&Qgk{DWjh_vY%aV^G;a`{4Iy{t;! zF4A4#>@0jiIByE)fao8>cjoT)eXay*@q)YvV-YE1aww4J_MM0kE zoQz4uxNmohUi9%;du6ZJ@6KS3BgF+ib+Ah)#k#-2bLv5uW3Om$x$|+g} z&PfHA3I7JsUnlw-M1O1f4!mX;Rcazki6T4|D2&L z-6hgpB7IZ%2gQd&;8zqJ68>kP6$Q#A^>s;o@y{!)NX{2dfp7|hQz@J(;ZzA{7HCC5 zop9=e6A?~_a5{w3;o3@96nD6`(=)|4h;+NqXQ5M3u+KGuE-iUeIA05Ox!DK&;3A|2 zNLLh$MEazHO5s$Abe3@HL>iHFhwwX)Mk@(tgK#zoXS;BA31^pZ-W1Lu;T#gqA@?Er zTk#<`_wph4cI=(M7M)BFmtNpuuSQC`O43zGuSl-)Y^D5?S;DUqex2|;B;6tD^`I36 z8-%k#I2%1Yzjh0)^s=PKjK1S0a~~ z35u~HoC4ugNxDkXb&{@=bi1TG5@n_cXP3}J!g2Wra$8|tLO%+v2E}-mbcdgFt@3kE zZ4k~zN$-;MA(0*yeHT`w70G!$SieBh6_T#%!S?Hfb_m@dbPIGU3ZCoHn+ghd3FnaH zawSO}lh~R&iRVQ@65Fg2Iw9#Pr0XQzA#}aajnJ{TSrR|bljr2(c>m>cG(8D6FOl3P0QdzTB(yNh%X6i1QRIo+Tm1)dbnZ}x{ zCA}WBqF}vno=xN0Jtt{*25aUE9RylYP$}u^jNWu*Nv)(;3SAGnBKbL?pJn_=ca^kf zvd;%IIhV?kmd|2NepYW9T38|JN=dJT6r~HT&1TJ&Le~pDnBAMk6jtUit5ax>D$>K5WO`m+4{9lM3AZnAQu;>(4Dv*q=ES zlAa*xjY3xqVE#s-yM*onA%wy>~q+v6k(|P%vE|l~Hq3eXRQA-E1bizO$W2=Pj z7V0h#PJvh}V4b`|rWHb;)#;*<*f&-baX-$J^gKzoOS-*?y=oWEsv@pwUNLJ{2yHLn z^g5x>3Oyi{0?f}7S`m;E1001W1b9@>lXSb#bwZyNdO#=*VomoT)~pyLz6}!JBt35s z`!i2C?ZRo7^r}JZTVW~Fd8Mr1E_9vHjlzFc(g%bV4ra}bLfu0+T|b0-eBBVXzfsbM zg}Td_UnsO*XnWaseA98A&}YlItle6toHgr(t}EwSZNu9J zJB~d(ENS;>o);CPS?WHXEl)U}bv6nuJb}l_yc5`3yU=Ha9uP_=GCxmfh0qBnv9)@k ztAyr_VIS5B-93g|?e1R3CcPw*O30)_g!;;QBS)?aR>j`y_<8-dxz-<0g864&x-~1XW_4VpUtUR>->Addqd4`%`zTcfI#JZ(>4f!hnQv z30EepO?V;UorFQYS-$Ii>wWk5Uh%!<`;)J4;>n5UC0>>IFutj+@S8Xm_V+&A&Gf)8 zRwdy~GZiP88939-!pUR~QoV7H(;vT&lZQLb0M01~;hu8{ei^D9zmPW!+~GL29D#e! zk@%IeX{5=tn5t!F|MB{L;r6bPEoN6Z10g6lhLqF6b9trk^JEpS5Ku4zKfu?&4LBrm1(ARTL1br~4%1LYfgE>#KD=CTG1AW^wS#JZiVLnpdU@`3px@@N1)VpD z?LU|I8&F-NeJSgaUYEo4KYo_p-sfJ>cY1CGy*Y_Fp`J`Lv$ui%SiA#NTRxo2{_Gya z)YtDx(1rc>fPU8Z4bVybJ_bFf?_WWabH4!{P{J0nOW9g9`A5*}#dBS|CnepTe_>zM zi)cjO9-vw$p@`q9ImO=xG_{ax{a_;du)2h4k3LMFOUj3Ix3r0FjUOeg^J@QJDJg+Y zQQ8pDoynYQa|+V}p)V)1g|k!Geqsvu?}d`SHHAx`n8IzlBZV#OPi6~6d7SsMexs4r zEvY@+pUwQ=^%@KQ`%=e$$jEsvZ#*~;CQb&`o}XVZ8|m&XpldxjjoU4u=q%{mD0R_w z*JEsDYQ0!%0NtC-KlXnt{rJ)NVB&wH&to-Sv$2H7`LXP;Oyv>MU0;u@_oSyL4v50T zA7td{@vO)8WEmS{2VMecpW@3w>x=VxTKIhf7a~U@-mBpFkpS8Qi2wE5M5L2}@CF5_ zg?N&TbQ&oCdupjjXMkFWBJgWvqJ=v7(<`g>{veGML2^g6!HV9^`! z$f7s#+g}#FgqEczI}Tli;yZvy=czFYJ; zo*`NESNLwx7x>jAysLm3SoC*1RkG+y)I-rfKrQ+T&$AT$6BJM3Q761Hh-W_*{R?%n z=zG-0!c(t@K>r87@nzAEsFOwi#_twc^dEW*^awox3qOHccwG1t(h3w$Zq?JEF7*s( zp?VIqNbLeGQ7?d&suw{At9_tD)XSj5)vKT*)N7!l)E_`kQ*VNvuHFWnqTT^rsNMrz zq&@&`P#=PxuRaD{q7H&yqz-{DRiA*isy~BXtUd!>rv3`L9N#m;IidOz^b++IXuJ9v zbfx+h^iuUN&<^zj=qmLi=w<3ZpqHzkK!1(j^s?~G%>{ae@_=5c5-Z2x2OT2n^ZpNW>o;XMHPYW zP$i&`;)$9?kEy|+kE=4!=haZqJ!&}UUNuscpp-Ef*A=djpyOS~VJ!dJRS9~9s|s|D zYa-~?u2Vs;byb62?>ZgyM%Nh3t+80YXW@6(7UTQPJMdd3 zsJqmQ>Y!R+yo_tTK zr^-|BY4$AjT2@fZ{mGEK0j|sheC-}zr&iB3V z`@7GT7)Y#6JU{WK#9fJRC4Q9nmqd3vKg-pB3YQ-fN6Q;DoYsH;One$|Ver3eorKw* zjM}7NzNaCQq+`ZsA&O+7ReIulyccGDFGP~QsBd39#Vo?iFTrl51Z`1*-|-uP**^{u zWjyBpc(llPM1b*h9zHe5F%O?wXwAo`4xf5__^&68#rF;P8o^r%_;;TS?rm^ibImi? z(X`#e&(tgA$}y0!g%f>!og`O6Js1=G)b?jfemDGL%vUbY4gWMg&)|6m&og+w!SfBi zMC`f|_jJB?;S=_5x}0kbzTV*L4ZhJ_*P82QW9JcL=Mmw%=~06pHTZFZA2;|(gP$~b zr@=c7e%|2c4c=|=Zi8Pi_yvRa7`(^e7Y%;V;JpU#HF%%F`wV{B;Fk@4)!fx#ad{Gq`g8~m}s2Ms=G@F9Z_8T^UCp8$ug>nLn(QXN=puB1Lz z*gDC&l{#>}9iJ!gc^99-uCR3iK7YYyxI1i3z~=(@a_epP3Vg!WH~9R3Z{uco!d8ao zUh7=XZ}HiT&%^lKhtDJU+>g(r_&kWuFzCS1~|B}Rwu5(e&`o#BfEw^4x9EQ&bd`97ufctOx8$0gAnwsImYKGC+ zg~4dejBsdiFdS_NM#jyz`BjU8br)2I7q&D7o1^0v*3`^i6b@aqT=E=4Hk|F98jQ{g zhL<$d1*Zn1i$e7g&RZSPU{XV{v3~go))O1kLeXh0jg2w$BEqjj*Ij_$lb+LD8*Z(t zg&bauJa#4#RYqEy>pJBa<>Z(Zt&Ij_g@}M#;5gQhjO=nSjGwU%);6JJyHHW60y7$% z5UdM@ajj=rb@P(Y1;H@;B`W20(NGLY)w+}!E2^ro0WI3CsL_ru6IvEG2A6hII9?R$ z>vcasCXaNiEHF^M=#RU~T>M=El}p!3$f0&2>Srxb17_ zH*&IiVl#R=Y*1CGc|pU%mT<6sc5UQ>%8P0nqP9f5A72~cOf1CZSS@IaoL*r@U9=(8 zj6`)+sIf6bdj5pIf70Pw$80>YzfY&Z3sK< zS>24`R2N)~p}_fqOQR4~PiT+C|U)pK}bfH_NJr-tfV8iV6RrE*qPb+x0T(e%@?{awO7)zlC=y0*SHT1z!eb_!#T zX0=A5!KU)q1d5cO8f*@R8|v8X>~L)Zrc8u=WX#d2#X&VQgOSCd=15Rnrf?@z6>35} ziW-^B4XxIxp5nW0X0lAyh*pyvN0r#+bW-PLs%i;`5hJJ8HrFmh2wD_|z3O_jRbx#} zLvus4p|;Usvi{UyBmzySL^>g{#p@U(b>_ObwzV--TThks^)vx?8ylK~6PMNngZ06B znh^{)HAEtaP!od94PdZ^>d35MZKDBIwaw#$Aaz0JOb9NhZE1{ZY^zj9W(0%b%9iLN z)S;n{*9^j-?1CG(Re5cNv~qqZ%vW97v>K?le1Hjk#Qhv7tjShB(5bi1apTPIIJoL6A^S_=0)baB;9+qNx$^5EneY zH5!b>G0oVfU^pBK+n`BLY?|H@oxWgZZS%q)B4fSYebM;f!iHv(mMxb=8s4YybX$T! zCF!`GjhSE^(Lxa|QaIFPIP5-;`?xN0VCPvw^E*u< z(!J*>o1PM^8;d(pU_^JQqdEz@G+WO}FR+=5Ys0loj&5vbQq-BGGzqT6_W0vl9d({# z)%6^vqOC?j3l|?#pl=nlRx`K61dR3BXg9LAU%*pq>lPudV%W(_<6s^x4&b)5Be3Zi z_MvtmbR7QTZk#h3qKh1Hy@}wGe_9AdvQ>#evKHtR^SC2LDD%%j+-U;1yCk8fnXsqRb=SDbs)505J2{^(-N6NKMHpw-K>b0vvJ?j>?oUsOCo7!36Bg%O}sLpQJB2Uc4M-4 zGx_Es5;ZHjW58bi?QMu7utNzNgKfq^w#LELQRM~IY`q+w9q07$XHr;z;GW*SVMA$$qjH@LVjqAzQ&`YlNmEfdtbLK_ z1nfX~s^}5VJ&x@NmcE6kAMVs8zR5tKI#gpmb_*KC?oRdoop#t;gmn#^Fr78psVAUT|U(CpCw6feykdP#0>h$96H)T-!LSW%1%LmJ_qI#I$sy zvDFyQzA=t*x;1S~WLJH5Lp0uo?0%&=O*D+UH-{@TWFTC!!}b-~#acQ+rKF-I+6 zLNHPnZjdciEU(;2p+h2b8zK#8_1U4A%MInZd@|rIL!1PiV!0g}Kw%*jiavhp`aE-ikMaaXNOxA!OFK)J0=u*@CLj;?{7( z!bNc+d$gG76w70Gm^luJ39uy8HdThhwXHE;wX^4n@nVHGEv{{jQ#N}Qt}$vkzo8Kw z70YIq%WDoQvNTS_+b)S1vbOOKN0c>^m|GjsV0O3_Qk`zBy;$E9>$_0Iq^8i4AWaGf zgBN4rM@(Ice@C6W!;WP7{tSzyb1O^OV9I^3#A05ga9hWRZCy_+sLPGMZPL`a+>BJt zX+j0>XPi2RV3=ia-lUo$3#H0ag3Sw~izI3GxrT#nN@s?-Ni^a{ozGdf%PSY-Njsl6 za_r>DO7N*+0j3HTO`El(JBx>&sB=T}*_C~o726Y(+tb6Yb^Hze^!exG#0;ke!A7Zt zS;BB{D+`_Q^z9VY%Uu;WLSw<=Wa!iy;$l2u#f?G-A zT`gZZ4`OhW>^UTX!@?%h;#7@;i%7%5W?m9_>yHuKqVsg!N0~Lb8=JSN-IyjibmK2J zJ6uFi*@B68-8N>#HoJ4{N}lxkp0Mp z7p0gIZj({d`ssMgBeji55c^`l&K%=l79p6*IumY)!1+1N7c}E=lXxAR9m1_8&M|l+ zfk7g>Zb_RFqWR7yxl`|nOfSEZ370+=Fm$|9qG&z#mxf=8%CwoxYi>D6i`g8(S?;OcH z3%f+~&O(Xkomp5^a0n8Xrm$mh?CFaWhvQg0I`x3*!ZZOoj*IT*8^t)zsaUG`K@&c z8Z+OCT_10OOT!&wRV*a)!v?ybJIg-3!rg*BJz_z}IpQz3)v#oZjqOwHo3ZkV%~2di z;(gZP6uT2}X0*%)NA|d2g|TJl zTWd^ZY^Wi&y>do9crumw4nLmBi*G!R9l5}q@dmLyUZsIYiGECjZE18yG)#-}F}K$f z8ftNOj??412;y$D_EREQgvXpoap&lW5~pP|poU=<_jud3ZSPLSo6usT6zM9q?|mJ) z-nU}n^R_O6O)>&5uIvP_n)8OVAPMgp)x#C%13TLuifUR7oc}N~2v2AKM?D;sB{r z3;6aAXA+}oYNCr8oTiTJWgN5Npa3_Utr5tlHq?bfkD`8j2ut#q(vq7CSq_dTA@^&3e49*}uoLV(O@Fynxq)cnr62tlx!mwCNPD zQWxi#KDLV6u+ND$G-5v3r<8oRQ?7a3f4p6epf=5TYSSEX?(Up32*`8=<2d3D76xZ2 zkCVl%cX3?PC-yF^Jaz~Xp<4Tqh~Aqy{T>$=#rycZnC?zNlHfhgtb5Bm{hp-3TyLlRwa*QZOk6o zY3>KJq}r@SvPE**LNA}X6#LM%Q!x$`v(`yR%~N9gwv?Y36Ia&0xt<(sM92Y8_8DEd zPDqW5_VEKLE>K4(E>cJA=cuz<u(e*_1}Z9pQW|U$u2n(zoCg zk~?t@d7_|wl9Eg^DoAKYv;u7gDAc4d z_f0CSMYBV4;>^2!ISD8IBm%Q^Nkcf)%#WL~EXu8bz17$E(>=0_#T>!w1$?AJCZ3te}DR$@`R7|E9h3;okT{ODf z(m2sb?2C;q_cce+aE_~DwrlzDRSquE^f%f^Q(z zAvFi-MsS;uj^dk|A$&_=8osr_n0iIP3nRsNrd;bm!_Z$08p1a~7-34{8o}4}n(ds~ zOOR^BcbD+81-`Wu)$-&hxVRMsisB1qb+FKkZ-_R4(*l02SYjUK&Vo+N%RGE@D~|@^ z>vse3ZPYxX_M5Aqj{qS=CqEC%AL z1knI__{s+U=}e$SMt32qKLcMDmd_sPCgFJH>uanm+(X}MKMw*avgH|;Wf?XC^~+$uM2HA=KQd%DS?wRkXam;Rsjz5^=_xhdhop;W6{)g^NPlxL2>Iz*w-95A}9hs<=VY*{osbn6czYnwqW|GLZ zV=s}cV~lyyNqUbZ+xE*`Ol#Q5i}fMZsFJ{7K7jxg>6Qs4O<{XY+Y`13spSl8LbZls z6?cfkTnL3q<3md^jb_h-Ei}VB0k?1W;{a5Xf<)*08zAdn)NDX;13)-6iZ3n^D!Dr;lv{q`MTmbF6 z{5plEM)CGoD2K90>)i2~s+}fBimj>-xnAfGYtFCHWmbsC~B z)2#Ru3$gzS4=Wm7yyj=5U4dQPpp{-w@PC3b)weRUfeM{M_kV{VEdl9{JxZCQ2WsFLnZ|0u=jkpcpCTfTGk^N1NrwbX0$% zKxzI@Ahau|K-EMOw@_05ulRz>)@Ge4bmF1UtpGWyE0Hi%XSCTgj6wTG>3S5wM0n1I z=AkBw0AeC%A%mw#MJSWxP$X^?2@g9I?G4&aER{|UHDscK&y=`e*C3(dfN%&4xf(IT zPDH*JksX;1_`=`iMYf)YkCl4tES;%7bdbeN8k0w(vv_nmTMjN7oiWIf<1y$QxI%;n zc^xhfVXk-;b*q=}%uS?g(iA###Z%!f$D?t@pV;v9jn0(>K|lhz$$v85Kxxo z*AO=-QduE{xnK*kxS=%}AW4%UL?vT@EIpU556u$84O^^9gJgoCNz zF0w2DnaqNBH6^6T9tIL(Kb`BT1Rn!{;2|i@Qi5mI4yno{Ngc`BH6djhLt2b1!u7=d z)z|K-&cJwpfv^!2+@>+e8%8QC$%=736-gRl&1@b6;HqoVpW6RNiEsi3gLfJr+ozNAva_}VS11TEfn+gQ%M^`tb$thtR@B=p$lDQIZ z1?W{8+#vz4$X%-#@*H^@lLLRy=iF52bCM#{02c!}?1v>#MhSa}ijpN8$hAge5U@ws z;vGtm^BEL|pfZ+{hLNFY+=&#Ia3{8w#h?mVqpXm$dQ5=oC4Nv28H5Y~6s(Mbf(Vje z4dkc@OrkIbQUgA%IFkWP)uLjhRguwH4-ncwj)QzVjR6#=0uY1vFQJnO&_j|S=oB_c z7D_ZA1y?qdMOuO&GROxW9h$BH4+fBd7T z4#3oq(?CVYQZV14_D}87kOE|Jk~Q@8S#bC&2N)Pw6D~ZO8XX$UQIlh?g59|wJ4RtyKmvTSeNJ_C0H0mx4Pz4o%I5d(DB%4tr0aXx6B^c5S>1sSC0;7^R z8lmz^fQ%s>C@6_*4JEdQQd&b9t)Uz;L<+Es>O7i8s2Y!fimnv}O&&A|G{s-yK*4m3 z1B56&)~+nXQL3pm4m)`tSv3bClUfahV>c#Lk_lv$WCBEqp%Q885i(Vs$3&@wq&a|r zG^v_Q>WoR!GHvOa3UVB7I9FUERSgZGsIgcxcO}Ak7Z!3|tLt0r&wwP#UR0c1P7CE+nt36d@<*9QaQvBr`=GgDWxP zXh`D86p0x;fuYpb@2nsPnV@EnJ8=o{lNs=r8S)Mpp$GyC&rps{gAA)QBuStN5Hzv` zbSa>s2+gB9NC`M!iWC*xgcvEIE(fwBa=;0aRHO`^18r%FNp(NS%gLO&vb(Jr;7(7*=kW2%KT6&Q_%bx5^CiISmBv(#>fm)8n zqHBYWV}mk-gRmKFCJ>y-mIu3MV2B9Hse$iyZ)EtFC;9DUOI zOQw>nhytPL+rB?G=J1u-t-q2!MSNPmKctYf`Oqt11|6!5a`Oskr*6+L$e;Xe3M0T z?IXR*iu2uA{SVILW=-#QOIc;-&e2Op3W_xYGB^*{SS+cY*Ep|Bu6jUV!mJbim3Q?Y zUU%yGb?Npujp2jhQ(ZFxKY8|i~KMRhPg9~J2{eV9foEk-A%iOp=u`r%af$_5?>B>;!YxElvAqL0KII>2s4!t=` z$lKl@XCb9nz`ryW?#X8<-~|tGVZpawXe{{r5{;#T7yR%Ji-Q+DR)r&g5jfHMQ^!X; z_$P~0X&<3NIVIHmC#T~K2B+in0G%!_wxWxt|IK?>E7{a++q>A-cXAfIcDvFnc+%xx z&H^jG6=6kK@T642M(LmtAD=Si zxjFFjgF%Qy1p*?7m3TuS1b!I|c?K#{)JNc2z&NFW9G&1mgRJE=YAAB3fWQ{uqg@S(jd zBX85-V#fel!Fl)4D|4-p$|;10WK1Qo60o>7%Ds#HI7rOaG%au^T_y5P;<{80z=<2+3Xc{%dCZDl z5LrU=?+QBbNN1sA=HEdG4G`%@(OcapI-_INXtziVsAl|(bH}QsnSZBhV~T80qSe}x zq@c*Q5Unp)yp&IoL7MA#;KE1SD132Hg}$D&A~d0Y(++7x(pR30b-jtQRW=R zu%1Xway07+&J$z7r}!Cg{ors;t{=AtX6FX!E5i+a zapZiA(&zTjBp58xZ=@_I*mO8Q58`lC`s;XyU&S+V@PlJyfZhrT;6S|aukk>B?02bJ z(8vX~z|Fw{2=Wc(Un09ch30W{@ZyI|EKvc6QX>>fl6UYzL2zIUk}HjVN2#nBi>?pO%>vLTY>-2JDg#b`fa40caPk@g zS4|pt%A{Kh6l5^iB+`%Ra^RBU$QgWp%rAaQjs2xwEIIg_1_L5+KgqDn{gfu4Td1#2 zNA6kz+yysu;0@%+fPowYJ0w1XMDTdYRPIDWG?8RU(y5jN!QdD)iL#7cAOdiL5p58% z2j1b4RCS0c`2^$QAoQtWm>a|b)7LvFepB*6>= z%)o$+)@Fkn#0`Oe61EZ*B3)@J2(6ZlU8!v0t=YocvW2(Hh73dkQwQ=HA{(Qpjas1- zL{J*#FOjHDIz~c=NOeiO;t(lSB(g{y&@LT{0yo8xwHc6l2lZDwz>rFL>{RMc)k12D ztSn&qQ~i)idG=5iQh!1OQYmj=o2(ZMF;)!B*vdClm1F|Mq4}UvDfZC?b<0f!RFN?a zL3Ln3iiNt8NzyVM(kWh&qtQ7U7F0iLSa4Kmt)3@LYJ%zqC&U6J5(Yz*=L)t#9?HNC zj#CAIqN6&6``pE&IZN>1;x>314qLQB2EOT zGpGiF`kZuL;~#t>j7|$;Xbnq?NP(4^ty_9v zoipqXr$au{U!X}w&}ovO*5$qyt*)6fK?sBd{s|q(ncOI zB;zpzKS7MGy`z1Eqaex-JiBNIexyi9I6A}#Z3v-I5EGM# z@@=CXZEYiM1QC3`jjh05NJK~5I>rd19EDLrhiFk0l(DxL@d>QcF47?)%FdP_85Pav zM@8F;B5WcA_Ayb8wh=KgHlipyLKtD^XwMh&?S-~BF^)n98}Ku2qaAGQ>}~BtwvhsR zeq@Y847AcFCYtYH7j46Lw6)_49ij*ukpm#_A@CltguL`4zyd>cn$bhM+Ly+9Nb zZ5wH88y!K!INFM0M79z3F@Ti-(6kdoMa9_iZ3KkKhDMWw18qmN($*>nw!EbOm%{%} z3P%EkLpxF!HVyoj#{W(l#{rEaNgCs#*jQ={A@cHnDgAHO7tuiJFp|>bW|c_TGar`} zk(TgZrSWf7%OW82=r*N+J6!&&n*ZI#Zy=qfV>QGh2$s*2rbed|1zM{dg>@)>9;v+f&&c&hipwqgxp31=!5PU~oP+T-G zHo(t~hs%VMVZ#bdn@-atW8Av)0yEQMBBG*su6|zd6%iOO39RhwaH5(9r|r|MsV8$g zVYGvNgq^)zq+LX01mDh4Xd7csL_~{hA|v@xd{HF+MTnq~6CfB6O>O~$GvDA4gPw62 z87b*b*4DAGoI5kpDk?e2Iu`a*krzu*at6$nTR|EPRyyE>EnHzNCZN+S+uA8zyp6lw z&HvSrlJFS;8n3O0Y~8py9>VL|dMqqWoCo9zN{df|17795yaj~4Es|fg!%qFtxbm9^ zNBxL+k>hwG@+2Wp?^Zmo7#?g%Ou~~oc=74HX!2YH5f4u{0sj6-Q+2mPAa7-dZ zD0+>JgZ&A3Fd}60?(|#PaDe+y&^p8CDB^M2{O3A;Or{FAtNCZV==$)f=?Ubfg4pP^ zAnC~?re+pnQ(@ilU^;C;Tj!8l6@IaqAzWbouaeq!EBp%9FSb3%VErQL?_uF?)Sr$9 z3FlLI{UWIyEPFal@KYOGH(SUcv_`ZmN6=~Jzc?q8=ggb%i)bJwbUN#wdy|gxI{{Ia z9;QcD`Io+#fO|xw8|wkKC7ov4)(EPPNV#hZl5lWuEG*ImOmGtCDt)p* zyXN+V?^UC6!}j4l*Mip$NsMjx2#Ht|#^N0i6te82#XTgSdJ57fw&uf~e(^P{vIJ_Gw zq0xQ(5L*x*+U{@gyNxN-A4Gv)4y*Rzci}ty?$F?MvU}jr-Jd=j+k44l$E(t3+%ewA zFrRgpb$VKqbz2{RA-9IDdDc?fVBPMmBp8y88Ld)8kpScW`d^@@tH9QdCM8dOij+J+ zW_r{+dUEpKv`~-lnxne@Xltk=hIwtz?L+46^3iB;5KEeSVxkXh^`#}HN5R2%(d1b^ zWQiZf00iHm{~!LtuR7s3OK9SbjUdf3ylDSxJm&L+UkI3tN=mHAqLoY`+=FR>up~bi z)*}Z%$P2!>G6bHz;5q=p_;-l)0=SwEJBUbmZN2v+Q{go~+^H041l-)=M+d05ly?9u zD8Q{FUa+hH7p&u753*Dcq~dbjbV$d=>C}b~G6QV~OCR6R0Zwfzum1|^BUDU>R?Geg zVHGyefaU_WhU| zpzc^$WDNtrU&QfX_XGhe(;cC75V;ha*N)PzKx1mN3AupW=a8Ud}hgZ2w)w!lsH067A3ifA^F771xl@Dq_?e8&7Dvez77>XQzfgS!lH zD_bN`0=IDd3Xir$G(epH{{8<$ftTPuLTkNc3itn?mjAb<0jCrO*}7& zqedt)>9iu&T85YguRS`JW$|=%_bOd2)V2)ia(l8?=;}*njs{N2i#&1gy>(Zu(D;VJ zqCBHXM4sGSB9E0>#Kct{>YP8c=Y6_h+5F;$-#xaA_6US2#gwiB_(b!S2}OD4P?o$V zV`w11GogtON}4L}@v-rEW)IJ6Y!qJyu!Lx3P4(>TY%38Y;Sqp18Nu&Cbi*X3re13a zINT497T|fg^YG*!o|`LS*hN(!ARO>j4*rekqH4qE^9e_Rjjf}t;|L=1e~X3@(Un3& zyA_R~v`qZg0foarA(6-E*1q-78_Yb08uT7RiIE3h&f%s7>2bFXJ{UEq57CW?w|QDs zYHW4d$ociGhT&Cr%}Sj^HfOD@-8MmQs%kaS^^IPMgH}uMiRDQKo6E<&uF<&kAnb}< zp8&Oht|wM^UO(y2HJgTM4Ii4eJ#KMIRr!I;6=Tu`OD?Lrt6Sa9d!sP5DWi8%>OD&p zz3068(>#MHGs|;NM-Mr*_@hz8AHo*76QiGw)U9keeZF>!&?Ri=_?YL}r#v^t3>&s4 zC}f_B`Ci{r;#%Y+qs}mpkKKUSIWvDVvApxeBh{V5RpOyO2K7$oq2THa%wMsGOKq?mFg^jx5=IDI%%G=GyVwgITn*x%x|w z&HrFjUaqnC;N;i!b5bl^!^?I?X}d4g&5E4#UcBSWBhdz%i!&AO9@^XFR-(OcLpJ@c z+7cBbgYqCV}4czdFE zX1}PXMq$-F|Age7oAYP;R$cK3TgCfYYNe3XK52!;!YkdYq!5$bS95)=|8)))M(Y4q*H1H2g|D=Ko*E*J~2+74Vpj>7KhVW zNkjtCL-tJ2^R;o-4<`MRqta74h#TS7nv0QdFU=JNGmvQ+=^Zj!%fvt`j9%{KAzZFj zQE3^32cpuI)tBf)I2Ab*+2spmkkS%ueiuw4p@Cp{EG2?X$jh@JNNX=&pk0`GFfW%< zbl5F)XtP6D(Yg#h=L)T>9}W*wIJ9z0@pOx)(?)O7J=pEzblv!%ZqG_)WG5Zc?etc2 z(0FUhy$&zl{t)l~Sp4C2+N~ay0nAfFF7&$f*)sV2r?(%r5aU$=gN8cEFhUpdI^) zgXcXhsds*~v+io4O{s<_2%BZMZ&zd4{)ROGpvNCF*!V zx1;65-wjPT-*aFmTxDej_IDz?FV;XkY&$F4NliyR!m>^ZREw!E!xL?)}-&H zZ(1{~Y_#dU{Y!{E`E8((mq`_}f}Q=|9zhcu25$Lg8q;g^$o3>t28H~e(1esWwh`F0 zX=8iBMj()BxC_x4dK!!ZN5)hZXcesZy$MH5U}_3v2|St79Vq0%%6)i8Z^xsi z6?phz2bhb8^V(sS7fixGspAv*w(?%Pjyk7#`42s5%&dOB(0J=&rhU8Rx^s1x$(wb|`}S{)o%h7w`Q?@1%gv^iEpX~;Azg*j=rhlWh=j2Yp^Ow9gzxc!XJ7=G$*XK;r9;J~i%V#$4lEpCFapoJ}c!XDWpBwU_G2+(Z?~X@4l@sf|uRbmq6wKXp>)GIPVa9~9k>y0hVK-}hA+<^2p5vz~4q zH6Zg|__`29I;`oL8ua|!<58zZ6Wl`sR`03H+JA|YutMdM&FXyjk2?4LC<4t)%aSt^8*Ovy6Y zM7AspYC3_4|4lXRDl0`W@@-|x_3zZQRBlj74-}G0+6}Sk$^sQlfQl{><_lzS{-u)s z8Au|*Lm)gBjNb^hynL)gh0bCS%G8iF|68I0{U`MUBO*F2clf*`iz|`~Ho14BPl~zH zVATKa4s9!SAI?7WRyhc*SD@0>oD-p%;j()fM@v%jQebh`Ruv+pd6@tddB zx`jOpuPF0f7_-`9^_^K;9)6osDKeR!xaiQTi5F6oCcfBMndy6A#D`7l<)a?|Fb$gd zvVK--R`m6=FVog_|9qrpp8K{HJ@q#CFf=*3_g1f#_p5h~TOnB&oWEJguR6f0I&tf`$oy~jb{bzb|kV-~(jD||ed5m0JBX>s6|-Ue(h zwI#KV<8S^jj#|;v!nt2U>8qGyuC=}uE`Jyqxm?(**`v16Ajj#!>a7ojsf(_fBs_3P z-@JkDd#GRUoUPtlzf>=s@JuPp#&No9&UlB%g?Ddu|7KuXck$&KXB6AX1`+wEI?x#@M66~k*%UfLfnpxx$a`S$!09;;OxbKvICBTi=dI|_=- zpDlIW>r~&lfWJFZQBCQPxhdp|VDysP;0k=GpahgZIAvUcx0s9BR^aKqj~x7hss zvnvz7g2mba7OOyNvDjN(%EK=edaoH>yXny4ZP(hf47w2iDT~D?gaXGliv>%v1P(Hb z75|$S%a!N{5&;&=;a3(5kND&T!g=jzqS~1+8wVl03>NUgZ1MlmZq@I$?tj5_YtG(L z^^U{!cFySk&Sp-Fvt)V7@q^XVOo%ll^Wqvp-?a#PDBKz^*w$La?7 za*Bt2ow4HR!m|=)U!Rm7qFr_4SK014n3X@ZLq|8NX4l zn_d2e{c_fwRfQ!YiT<1D zxP@zdyz?|X1LAI}AL=x0)FW-p=;M>ieWzJ?mIP0=z4FPbu#DFEqWyPW`6X2oPd(8S zG}TnSEnUatWUSxrSg|>rd;igu{U7*u8@E2tE^0X1ec-@d#cE^MZB8nXpQ5*SOswUl zL+-kZ)FtzG^j5rj@(;m?svl#*gJydjUHt6s?$A5QEheAl)R%v9P;Yv2ZsEH>>%Jr} zju3`cF7_~;V%ICiG;Bxux!ESh^5s)5hraKu%COm-ng$Uidh$DU+D{lvteA zX~W3DqcS3V`f(R#-8vj{CQaSU^=19>B$KQ-4Oh*Om5nCm^tUs8hTq6JFB#O=WnkE8 ziC_9O_3lQ)!)J+tj-EBredM4sF-E^O$H9YG;rk=X*ZW|ZDm&11VuIv|hW>-yinG7dQqlWkm`47W?-3K&Gos%P>HlxBTg?CCc1xeKTQD6# zD9Fp9-D0*Hunsnh^fJI^Idyk;p3Ba9KEKjwMP2Y6hVJ^0p29a46-^m2AC{!;q}6Os zBzkIcS1)j1Gx*!;brVhM?JJ!|c_uBb@8|Wl=Rqxrhu^otLlx8RWKFV9J=5*Oh_VIe z-z^?n>IZsZZXf$D`H|)5 zy!!Hr^Mh`hwuG4!FAedm*ZqFAXTNU?E@tK5)ZY;v`bKr*^E)$(4>{g-7;=5=LAzC7 z9vTIXI9Bs`%&WD1Z@BHVIpyonY0-*zH_rtnT^q&d)YZjiBJlCfy(jXouX`CacH4c0U7{$u{0Co?9b zBs3Kr_~z8lV?*^Lt%U)zU5|K99lXqEv%Aavxi34Lo_qF6J6NHYwR*J*Thzy9{x;J& zea_6Ep{#ni_uF%Z6Xw0x({g6-%WTc2X48IKxZBoScT05rlo#4L=4>LT=6L?G_a-(f z3WJO46c}U1xDcL$g&X~O2e;}?W8WLDnp7j_XZ~c6{_6GLib}i6XEeXQ60qRg_Gz9* zpN93`UC4Zv@9}nb#Mr}e_e{d`pPbsh>H89c<|sX<{NS7+V6&>gW|c{8mYn1%LW$vO4mB$q?eFSz=B@sq?hM!8Z91SNExjzZAJ^6 zsdRLv&@S2hqfJ^D=rP@3%Dju9jcf z=jCy$acX)o0ryW`=^J+4t#0bO3n$-uT8{R}T$cI$rh2j7l%xBa0+#L>cs0k&G2u?m z@a6a2%?H&lJ@5%=STPZHTlnXml%msTIwGbU60yj^;qtC+4~;v3@ZQ7FW(z> z`{nbjT>gsafkRgf>S4XbeEFYi9(*6 z-{bSu>I9<$kGcvAteu`D(06?J(kuVzgaC(41&YO~<%y}=`|e9#R)1Gr^LxZVr8(bU zR-CLqc`LEU%ftQiYKl^w3l}YB?T%0Bsp`9TkKM)7VeFEWbx)OEX;_Kwoats>^U74y z$jg6{d`w;MKR>rDbZGEbs9Cc2o?r1Br@C2F&bUmF*`(QElcsl^iBb>~DyVEp---dR zYqjvn80V=vIzs>KO5hBvYzpj`9$DKI+WLwYn$0h2FNlikgEvL<*WIeW??sHj@?BYh zgg@b1_-|Kfho`FK?XpNd{Xg}59hEraNgk*utBLhE9GKG+cf76o-k(C2a&Rd4h zZ+LS5gi^*&Dv9*GB)V5_6>Zv6(4{hEuJ5cqafJ=WKh9V@sC_c3+oGp)x-mBGJ1^dN zt@-}(XC`^GQmwUb4ym}6c=c|0q4~3C&Ytu3B^;PI>QGgLeVkYJx|RiH+^apOy_sjY z=z5il!opkmm#`8Q00&3C*hJ!G%aP>|&tyg#6-VwJ-tNpq5G z=$!bA`^~FQOgLZoIp^MD-K@3onRR{-+_``9R9A0uzwq&)S2lZu(ed5q3zq5z9oS!a zG+yVxd9Bw|?1f`@xSHI&HDbB1&D_g#vvV^&ir0sjjA44*y5_gXZ_f7ML*B>l4mfUF zx3$@gmU8QC!D^kE%qN!@+Q0A#cyl`3s5*Gyv+Ejz=Ln9?XbQPkaij02upRxc%)j4d z;l;8eL+|Gw-qO>;^}ZL9oV(lRc(EbdCTn%*rd^K6Hi zYMqIHEm&E8sljRA&H?!e2fBQ#&Q9!{xNYDGP7+oyG1zW62lP{{6@y4>CM^u7UgiGqnC z*0BSlAL^x7toW2*AwS@StKrL+VRvp^+qyvPzFn;DI*Z6tI0P?n)=RCJvfue02_}8N zO)E9y`-i;w@e|7s|3R+@ZJ7}EcgNj$rnoa z=BQmHLz4|3n~cbY@0jup2t5#ZmYPZ@=>fz%-?Z3>vC@wy@zqH^#gfxhu(5Rz*g5h$ zT1%`AO0zYUUE z*Y(gszoKQ2bD#7T{8@YG`$74tYw_I&4DKbYf8rz0+rk~Ys4CUHU!j-j2vPEv9m`gq zanBC9vcJktPrkyHc9s{NH9Kqob9-QVn%C1gy{zudd;P>=@ohy=Qix`BDpFY zZJ(F5<%^XjJ+<@$H^*e^&0Xu7pIqWUSGb})F7UB)VAx}i7u`>-aq}G8cx&rK{rtV> zGRJivJ7xD+w~vZnXKaPDlRU4uoj!Fi$>aXfIo`U5FMa90aZy5IQE52wYF|`=Bt2tW zWsa`PG4;8Vv>c2FI87)s-?eaD?U>cc3JmLbxt{9UD!Y^~Cpz6&6u0Y#$J#YZ?G#1( zZmIQ}|0I0b6c62%!u^vT4kr{%N)l%YZG7$$8chFZR$J-mob|8tY40jN-cx1^EDjs0 zZp~YFc)_$4BbU$zKh0aV&3Zs5tqgZl`TqS%nPoq|1~(-62>Up2OmkX{Z>-Foq42mQ zMQ`gI5q+m|)t{$d?-ZQhHU8An+6SlX&Sy$3DT4u)^m_+a?U%k>o5k}TeaYkT0spT} zWws#+789z2GeDl4(ciWMn{#J)MwD{Y{Gn1AJp9vmq>6P#_c+1nb&7n$#XMi2Ez2mroyi;6%jSy~kJf z=B+c2x-jeGroqE@tWDd+PMGUmW6@!QkgN6+~D>_o>i6DK)|&gpbHdsf*`k4LN9Hu}W3ZZ78rE_>hPblm^5 zP6{=ZBcWT=f_WD;h*0;&;j^~y=vg^OsZaX6`Fn5W+!yciir<_T z${9Dtv^JIhW%8R-vl97v@`Jz?9l)T|iQNC7eP*ctYOK(1;Yra%LcQHW6BRx(uukh* z5Je_mrClh_9}mvS@P4_si~1uKt1E6u#({&Ysl;fOz$#_x;BPkS({Bx6viU5xE{l|{o( z-DL}D?hj`f9xR!@{^5!E0SV{V9;`B4_`IKBM{;D+n@Lw*9pCG_I_!?B=JviDtak+z zj2ri;=R#&yd46aGx$WT+ECr-WxXG z<{HiXFzt^c{gM_xA3FKdg1|LfBq7m50#Cj!(?7T~j^_5cm(S5fs`YJ4M+}Dl!X{yihFyWxpt65v@vTMH0zS-4ylHDJ#&Mr$F zetg-pb8n8NW*rYHe<4{AJMLv&*R3uO=J|9x6Mbs(7QGb9(7_*C(iSXhPTn3oGT>Pw zbEKcDMYz*gQ5WZ{rFl!Mdzr4)Igp(=$3G%T{c$LFKM_^TDp?YK@XrtZBBocBUC&zK zGRp1B?Ts5&CFWl3KjC=Z?OS_TjpbALcdGUdwe@rIXY5qsoE~|?GJ57{#hEpeswH7t z9&b)RVj4sH*hwpMedOtPhNWct3Ve;)>^e3)WPxyWC%`vg?9|!QP2~ zmaiUQ)7Y#uslea=YmUA{*^A~)3(nRDS42Ijv(QyE$lu4FHtLgj-@)QMCXdKt>bG%{ zJU@@A3Q>wEJlX$|DH?|QuO^Dxi%mSC-G(8P53kN->%8b7BeDlYIldY>Kz4-P?0j2W z0Wsn)GSVYz*%7n){B^yB6MSn;4N?ozc9<9$eq1ucq@d|&-x|&@WF+y``K#wOOj(Ny z4!@i~fL=dyo4ammuHHD}G_m_cY8El$?#$%wD`$KRpZ#(}zkp<|l1q%O-6EcRXvj5) zm{DZ4INhh(NQw9pchAO>bXFz zQ&%!h*jJ5x!F-$d;JU7l^|9{{Uo7f=dqU`;F2=o;jBNKjXu2`>)2B*@&ptuh9d6eq znZJHL#pi8lMO}W=+c#-D4_15@MOyO27q$+ovh|a+7_M$|tQ*E#9P-7c=ln|Vrq7jL z#+A91L+_TjSgyYL?eUxJ+HDEJd+5`X**cXbT~@EGY?!ieaBSA>n&pS(hHP&%zf}FY z_mFX&ra6=>eNdO^kO!nwO*A+)> z@3%U^zNC59@$8MNcEw*(GaAcP=F~n|9l2O(;e{QiY`dj?3-eqo<}5xshPnO7-U05e zHbtMNJrGTfn_Yd|EWB5z#TS|@g6iaUo?5Dt@}lgLuHDY!`nOK`ftE9Om+8N48qb=# R$%z<{6#R`9BVA?r{{VEY#OVM4 diff --git a/App/Grpc.Net.Client.dll b/App/Grpc.Net.Client.dll deleted file mode 100644 index 7cc8adce17dcead816685dc3c47731bcd4be76e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 301160 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
qp1w3206J97*YCyZKaBFLb4#-e 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�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 EAJ`?nasU7T diff --git a/App/Grpc.Net.ClientFactory.dll b/App/Grpc.Net.ClientFactory.dll deleted file mode 100644 index 7ebc146f02eba1792afb38d1e30ba3d096b29283..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53864 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 L@4tS!bm@NpEIO57 diff --git a/App/Grpc.Net.Common.dll b/App/Grpc.Net.Common.dll deleted file mode 100644 index 17233614bdf546960cfe332b5d726e4aaf2d58bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22120 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 diff --git a/App/HiCbtr.dll b/App/HiCbtr.dll index 1d1bd008a473c6418e8e88f13cde75edb517c44e..8c7ce634b357a26fa9df1a30af4238b15794f35f 100644 GIT binary patch delta 20705 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 delta 20707 zcmbuH33yah()a7!dwWTzJ9LsxcgRK(vIj^)Itj=kVUq}qggpXkScC{Ft1N<-2nJ9V zdC>q03MeBu;K+bRlo2(6iNmU(Fo>8DSp*eE6j0E&s?JI1$jp56ykGNBeSYVE);e|9 zzBjYa+Gd}%Jw4xuI={MN>B3DGXfGgUc|x3MzihhjiI`=zK=t+Q|$i)Ed@w@qee$XG&Zc5)Vpr|W;k6f1b$XfHS5dzZyR`?+4HLn%Mg*cj7 z;ZrBsE0_*}zA)FY!u&8&2gi`TJ0u&`6RzxL4yd!-<#WI^?_EACoblZVbwDiVIIMU1 zQsAkS8=)zXZM_j{g+IGq^G3mK5qJ5b;AmJ?v;)R@?=rD+Gt6?puUu_-tTW0ApE;;# zwWBK93M*s!U}r<34nnA5%nO<6vBI}bvR7Rn#aJO72kn4zZtb6O z)N*?qoC6LTJFxu57#g}OoLaDBJEj%pHhs`~4S zwontrI0y$k?Q%xppktbaIpBvRvQOCGOmM&-os>T(++5k{;?>0ojHTs%HIDi+ z`wIHn>!U8+R%#+GVk3^dGq2O6psMI7csYXXMH|@{F+E9)^iUJKcsWKUQwx7XmpY(n z=sI^4bV?#S#7VZbvnsk3#M)@M+jx50anM#M;`BZfo7f6+L~%TisW{Tsu-9=C*M2h= zih@Ply~(yP`lX~OC}Mj)oCfqp*n-d~7>-?9;h}UI#5r8bDDWn2MEh+dd2tPTF$yx1 zX+S+AXp)`?XH*Ex0h3~T9LiQW9Z5FV^Hf3{w1r=jas7hFhFRfQ`cny3xSxkICAum) zAKt>ialqrgv0+j0TO@UJ7k6f9N{zaB8r_2_4mL$m_hI3*1i=wYao&4FsIHfX)ipWW z#8@4TW3fWlm=rA$+PjU!MEJmUx1I?7o8GNQK}(+5LSDrjF8N#v&87x7p(vPuUa>+* zm@^eOutaif6W%%wvy+FrDW^Mb5zDlPo6(Ye5mJCtDst1dGpb4FrY3F-40921(_(u& z+ska%giwBy5PPN-)?%ZyulSk_2>b`a4I9BGEKCCTFJ+N$r&vG-8|bLnun3U@%e$dO z*u*Zd18xdPH9FQa5u0FTH@xm%)7*ju!yyPOPEA_VycT@WnzegVNQ(nM=n3_W#zSY; zy0VrC-2${^7{J;%)>2_`fR+JcSZmLk*#gD}h*>a;#nCM0!0Z4m7Z$VDpS3(#8lZK6 zDp-q?Fi``z9o}a0+a$fiG}Vx_lj(XilZm?rs+g52#cHNIbxFIKb||W4>Z7{Y$Afu< z2Xi~@4;V~WIL#%$a%6-7bcb_H55-FQhU=X{&4QZw4V0t1Z+HlM!!;JuaED3sGn3sr zG|~cnz##;#=BCi0kpo132oqGVB!aZNk!TVN9YZ4l$;Y(ME-8v>h0-Khf}|F0Vw-LV zLZoJ5n5M*^jI+RfkR>$i@HIQY05KdoiaFR}jZOh|KN5}&dSgIM7o!zTG$eKAR(3j0 z#*Ko}(4A>%5Vbi5h6o+|qp%zWlVF-K38~RhFa>4_3a{QMT3|ZN6%@e}4Wh^3Nv0Ck zOjwAG0{md7M$2Kba9~L@8lV>DK^;>i(^GH?>(M{~ri;ajs7<1?LN`&MMhP!)(HbRQ z6dDfAA4T0ShRaNyn4X5KOm{IYgJ0QCB8gh51dB#~@`X~pN(jZ7ypo z!HHzL;V6sGLkNp!Fk~#S2HZ?%Sz8NXOsm65TL&JdORT*FUZyu$dl@2`erD~D5Uo*^ z)FzOh{seKjo^BW)EU6g{%~ZRH&5+6BisX}VyWr2zN+S<%_MMCyAYO;otexUD+=@iO zHYe?59Kd$y#M)!5ZHGdhuiWkIgg!hN88aV1e=a!>>sg>01~QrVdkJ^LJsRzH{7EO{ zYT-i|&0=0t(rS^&ZL-mQFq5@cFuZob0Wg`oT=D=s&d!%5kHAVEjO_kXB$|CV$ILNU ztpS8Vm?=s#E$}(4*TQkWA4A*BS~v-pwFKov&4ie0Wfss(T?a^-&D{Yn=ZK<_mZ- zozzL%tEk4Y`bU$6d~8&}cR=!V?IV?|MM{W+?aSiOt$C*$Dq;VJD) z%>N~gx*Q@dp!Hg*&8NAH3wFYt~>`)0Vu zBH(A?L;GI%cr5ADsQe+{X%hrA*Qiip)Mbm+x=~BA4xIg9FOBI|i+Q z4w}c30G~wNgSEP2Ljv|hQww)#q@Is{+bTfEG6M2FAKC&SCcn z@RRsDI04=X{|4=EVz4s-c84cf6Tq&$jrJbTH^KQ3s?BhE;YF{BHdcGe={2Fw_bNhx zR^_xptEjJot++*#?H~P3aPjO?t*>j~?9CBA8ei9*r7W=cUT=8Z~{&M~=N0XD{H_ zxW2A@DAJ~cd7(C%g7hBTF6!5HO8ktlfwP}an-L~p6no`bb4ripZO5BxVtRr$7i~=H z2`HXD6_+mo5>r186);OPX}!Nsr8Qo_YkVzjypa#NF~h^XFj5b+zJn9f5AP} zv)n;UCI#0k9AX8T7-CRk_uxWw;Z5rjPzSYGG64#B3(7J+!4}>~dN9HYVpI$=XkichfVoxHt%fPxiLQj)A*h)!+i&4)*{E?zGrr1n5NQyc3op6#|LS&L`? zO^{7oHvNfM(65(H&1!e0WgD!Qhm7BE>1Pi9SeaOw@|0X*!HbqoNgde~Mi*;6X*% zx(jKFq7F>66g6jhLea}iixj=i^sJ&4Osf?oWKx^!6@3@&G7&c`Ok?p4ML$MU(f63h zGc+_$1`Tu$`hsYaqTZ~<RF17gA#G4vjUJ_$cx}*9 z7M*CgP|Q@+n~N4JDiNfOVXA;4PcqUPCTeuJW`mk6YNgWtl`%=P!vRHLnT~XniAp}L z1;IPnRPwaw;9ai;nee&7gO)9L36q^8#UJ9{(t=?i)6&Sg*duu5Gm}ZKy%R1s&{53^ zLt9h5N~jLibQe4)$^J=jh#mqjGf}-%q$^CPMTNbU-ULj@l^sq`?xBalP(`me|9})2 zv*9pPYC$i!=Hr#tyNZ7Fy0mcEqsZbLhIBwtgwLgU;4?*OsCnQ^Nun5IEdtt_e%U?E zJ_7DwlJms_dB7&)g?_A2B+SOc^$;dGUoWhb#PjvR8YVekAC%7#Y0=xq%Y#3kV*O?9!yE>iv*a@Bz=(pg>7UH z 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 diff --git a/App/HiGeom.dll b/App/HiGeom.dll index 58f3a96f95b66064da5339237b80c9316e7b6935..af6baca18628615cffcefe6ea3c465044d91bea3 100644 GIT binary patch literal 413184 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\n6w4^au+O?`EV1oX0Q*Q)xi-> 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

r?xHn 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 bkS=qe3L_vJBw{-KusfqA(1O42jLb{`${b+@ delta 309 zcmZpe!rCx}bwUSA{7r!c8+)c0Fm_B@J~C?B&gjATfN?Wl*_?Bn9Sn>N%nS?+9osj%Fh(*mnr-KGV@zfY zHe=9cuw<|RLSrB_VK8MdV=w@+EE$X#l7OO#42D3KDG;Xt*+~p3KoX=n6{x}x$TkJ) cNd)Qv=|}>KrZAXKKkUwE3AEs^J0mj_0R2o@`2YX_ diff --git a/App/HiMech.dll b/App/HiMech.dll index 29b1f1311fe5bdc67f5f2e2cd508d8d031992ba0..d924cb78698d986aa29194625902b2d2e0c5da45 100644 GIT binary patch literal 1227776 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

  • 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

    m2DM}<0Q=Kdt6l_Rp%(3n%d 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%0Ag?1&kvEVx;kmM( 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�v#@d_Jg<)wx6IXza<(M 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

    S;OkT^_p35oLMDE_Jw@5UR*+~nURoM6^1t2 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Μ+(t)N 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 z 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

  • Bm_xLKUhdzT5Aob^m4%rUg$<`v1DB=~Qui)N~0 zsgY7_1cbEElV{;(=1e}RIHnPw)HXm!DIuQ6;+dv=_QW$SFy{!*=ABGyKF%(tJ?5wY zCtZzP?Ibdt_;TOPbmPlC84xn}An+I^wU6n|C$*m$#3ywC5K>A6@*0LGQUawj!}#pU zU`AoizydDkI5UQilf~SQIa^?~q4eZ1ck*#^m?@ZZ5-glDjVxClGnJ2%&&U)J5huEH(U|D|MOq9ZMaCa#2#3nLqfX-~^ixx%QKV zRUE~ET^k{?c4#~cuQEpo{o7NnF-0-w^a8Ht>r4qgP6bmQbJp|p++r&7ac(iyFsF{E z=MGbyk5kFi#hf`%%anyxOanen6>}cu6!QF2&9vm>R5R@`XBN+%2TVsk&O_!3%xU3q z9y2}oI8T{Dm?OvYY8^9_k5k9ofH^yOoEOY!KF$kf9OfM4+5D0j&&PSmOs4GNmA#3% zmygrTJc>DYd3suz$N4yI%mU0Q=IMFOJj2I%&Afy;a~E>`+|Inh$LV0+6(VPukx}a% zvl>gShp~>To%hTKd{Q5n&-kQ1G3&9^a$a7anGJkWpP6l#6A$wRrTHuK4Ik$#^CRXA z@pAvh{KCiSV)kK<56?f}nLqeA-Q? zYh-mXh6u%a;&>$$Cf4xj5g}qQN0Qg$#E8v&9C2bN&g(clMN&48B@(gJMV@9UB9%`{ zmNop_CrGq5{H zA)3THjEw!tm6}0(#z@37E}~2HVq_lFJ0)d6{Kkm!7cOE<5M#&|{vP&wDULZIIwl*C zFWV^u&ax1a7#AD1!;c;S#I*jP?yb(*hz*4^2+}epHnlQ(e$B83ejUmVIF5V~+ zN4&vOy1ZTxM|5B$4OW9xDRvNFF(SU4t2u$_#Ypu;E|N$LfMz(O0lj1q9_x~cA)NbC zu-OAfHiS}$zc}|W;4omXga8ByllHV!!<#&eJRxWp@di!@Ug19jgdAJK7eS=PG;;KN z4#>ZAN*y7HIXw%xoR@?MAE$|s#2jsy^(Z|pgft)L6)_2O!gzY#5UPBfc0wC-GGXfb zhWBkg5Qco5kA#^pIr2O_;4dtC1z`B$f)3>-q7@ z+?9DJ;et8m|HoN@k!hfrE9EXM2vS*oq}R#!_}>UG;eTiI??f1uI&gxU*B>GZb4F(2 zKST_+IUd$6lx9g*JfF>ytlgM%0X#-=#<5cPI5MnszTC&Nj$$bW)F~x3gO$f8rOi6a zC#Ap9HRGn;jZuN20tO00Qg-1fcpE_=Th>cH&SKVEKARm_ANlffVtvMX>}|Muma@L`=~>3=#~fd!=bnRe+G1tE{-116dRKG>5R%M94P37)ETJ7E)IzOC2Lq{)cE_J$@X70FEY~o;568 z5%LsD0?g*59x-|Z%Rqz%2wWtC5dy7eEfCoXd6mIFImsbVG|L`y-f<8)foRqWj8yQD zjjSMy)bNlPRy0QFqbNOc0GnIz%F1vjMN{hgmgzWk1ZS!<_GM$~kx%IRYGIHSlq=S#7xNj0nWx;dBJ0=PXM|^xu|H%#suRcTBj&QWqs_@Oug+1*gbax){m-AEJ+u1^+_~ zFjDqE!~`SOdq?z`iIN_h7EU1n^eUDG=5#nyB}M1~2U)a|E5$_~^E5wTS&EWv-VNG3 zRjvoDg}4+Wqt+9a9oC%6%e|hp3?s{Udg@tj81erf#}|8S(Goa$ZB4eQde$mFkG){6 z#++?D&P&!BK29TRGv+AqIL)j$K28fO5pxWAoHkZ6ALkV-4RcoUIB!_#e4KVx7UpC? zEnm_>$VuQWE0>Sc#kz}28U-ayhItuIda$aols8C`2m#1LKB*p7J?3a|I8FlntVTZ0 zAgc>=?gHl#%7Hd_jF=wKnm5n#*kaRk}Q zn6no0A~}f+5%v^5jwpKu=E(5$z?Ca}97(nb<}BygGmdS>$B|*%V$OIA8pj?vwgW~+ z`EV^%WP9;RDY1hvhY9s%foF$F>`*?ADmzk)>;<`N;MoT_0raWtjaaG}%0(hh0_uSL z>mMWbagY*4(J*dMnoZc*e4M%L)0lIR$C=MA;^SDdOK@HmoV*BR&A!OTv0+zW4ja~x zI`EW8K>TSXAIE`Rk2%&exg00!HJ>xts&@n8?|>G5JS z#mNzAtr?XUMCP+cVT9fe<0@E4B7zuUacm}$(HQaJXeJS1ak3psaHI%8M8*I0b0B*P z<_x@{G{fA)*5Ko8XGdYq6^>>C?PPD_<0P{WivL^o6!u|kPt+2G)}@m(<6ibLtmj}M z%-zs);ZzbX|Iu|G&{0+0+us9ZNHU4^L8=VB3Zaamh!s0Z6oU;7DkzEt z#NGx$L~IC(q9{dCM8U3r4GY)>v0?9^0xtq$Mg4wz?|bfq{MYAN@4FtJ({?}S-nsW? zYBZ0?leOy@b5#|lF6Z{Ta#^{^hoA!b)NQb%UN6-yvp!!94Simz-P@RvWTlUKt@h#7 zM!j46Wb5-uJoBpBr&R0nS?$|Qo@a*f7SMXN^Ov<}7&C}Re*<&3G4FBbB+sbKzi_ps z%ndtzS^Ms4Gk;tA8C(6lPrT2qJAGe!X|+B-)?R6SK96QDke_R>HXG*mrVX{fvp$>S zJ{xQQVDdCOTx1UQl;2@%|7CsljFWYtFa!a+VN?o+Sum}-4m7G7h0c0DP~)2eV%LyeaF zJnahaXsEHVM>G##(I~vrMt#hV|32?XanGu7cD0#%7QSMA{vZ;(Pw&DN#!Mm-oXHlh zsWxhl!XFyy8K5CgY|bKA3#4D+kJaSqSGdWTynPNX{M}|AJx=7JCMwU-h5wn%S4WJ< zkiwEiYQsn3K0^xY7_%&9j^}SQ>gp$O{iSa@7Rb=T#@1&kPhJJ4S)(0e{`A6wthoiS_w}Gi^nCUH$&TrPU;SxbRc!)3Ye_SycE%wLXs*Znc?LVR@hD>B2v3 z)a1co)YFB3RvWdrurR%2ZF#P+)R=s2d9kpLG5O~=UMj4YR$nZSWq!G^L3&54zFOEO ztx@-3Bs1^%6?QS^ib$S3v*KizP?>Jl=fJmI3uU?+b4j$8GChnryvocyOr8^C`@B`y ztC~FT6dr1QhT{vj&&tAqrdK{wJ}ews%^DvSo@}H3iDzC@IIP;t-xQ9wKBw;)X8x{l zqA{<=mj9vf_G+VkEL>1+t@VYAY}AE)5^`)ujf9PbkEX}(kjtA3pS5}NQTIEH`r=|j z&qw`L_+mA^wimuuZLNO_->^|PQ?Y&2zlCp^RsUh%R)$wAirz71c_fcAE7OI@vny9p zYPEVb5=E@Db{|l7HH; zNl^o1#&8zX{|cmOQ6ppWPa8HX+S!==(}vB9ni!LR+OTC&Gh^~k8}3rn!kGNihOLTP z8>8=S`C6Hxw#MjtTh6pDYTsCMxjVm=xD9(1b#KgNa9n%8Nc1Y&%b2|Gy^8iVCa-(1 zq5+N7gHuQHhJxL*>Q!`zStB2reTz=DJ_F-EdlrqT)~A2b#U^1`t3dWCy39sxIU~%x zZ_yRiM(tm8qiHdfy5XxISagexx|B=_%+zY51{U3KeR{_7lovfztHvqb1m|KyFY5U*zLw zM$s^1^6@jX=v40$$Iq;y;l||SXLix)#^mGY-l8*&$;Z#UqVtT&$Ik;rW7tKxpAcK@ z!J@GybF)~B$BS+>ne*OxN*QF%Yq7LwnlX7To-4Y|n7kIx7v1iCVl9>x-DRua#J=-$ zYpokE72R#jDJKW!^`eK3*-*y2xa_qB@^;bFJF73A{wT^Alh^CdqBh3l_4=!*oiTa6{x0g^ePX?~7j-fw@11{& zx;4>^yMAoY;@_e&&I@%Vi>9vEzeRnT?6?!vC_dWe$xE0lKGvALgtd!L^woQLj1@>> zaiuYN35$wP@jkJH#l@!?lb0}6Ji?fK{FD@*VN5=LN{i1lCLcdL6^}B#`ff?%2#^hJOy13N)#5NpXT&Jn} z^hfHCuRfu;UQ<0sy+AxGGqT2n;`&WBR{!k5*WgMuRwu*gsBajh49_(cw`{7B(3uDi z%q~rLjD(wtceg%cS>5~GQrxdvpF4|(S)a9WpSz2PSL<_s@$J^3zO}(NU-4oxmJo%*|8@XTB*u+L&Ls^W@BT#m5?>=V52o6%T8+ zqozL=k7%}ICHc8{q^-Vdy!!g$vuvKl@jUB`M;Y^7%>1wTLSwExE3Ce`IM-~)c>c9` zvh`{5rpVb`^%uxCm>uQ$qxg<$@@y}@+n9Xa__uhLG5MJPuXv8xc>%x2>CBv(QukJy zIgy%YeSUx6SLgS&)O=%Js=_>I%ud{w@Of&c7Me9);M&1uu9;e7S}f`(P`W~bD5)nsmvYSMg1?=(rZGA3`0 zrm5C^4Wh0*Iv~i?EY;SSOJ;s_{nX(;;<4^Bw)wDRqMN+0MNJpQlUeq-uS3O^vlaS8}hw`}9a%RIN|X)OFTp ze!N!i)D6}8?3S9@T=T0(WL1&Asaefu!yLUeod1;3KDYhqYiXa^#{3;gsLWhrPUaqn z%A?EzV#bBihSkoCz%{!->)V^*J;pJ$;lXO`zjEi&f(Dr-5@o0Y@r&OBd5 zFK2%HvwEL4RpxobW=>b;*LvJ+xFoh=-_(=UY}hyTg7qo=%V*|ZLF(mdefCa$TrKMM zPknBq>c=w=NPSst)Iq5Y)~AHuf85K5q&8LSb9ky|3ysxV;z&3mm29zNL>-yZFR#>< z7vkJ0Pc^C5XK<=r3yt1^)F@wTNUD>K8un$L>0*8MVYl)=C#K4bxw;C|%SLVE*ONb| zYA&Cc%2r#eGIcM&#SIe2<%pfUN1bVlk(WAeN3d8wmpt=Ff8wMM4~Tc7-n ze}3xt78<={`X)>s?vAETH0FpZ%qhl9sKT6P%yCti5vJ+)*vIv{Aa#Z@Cq5XMi7wYA#nFQxvfw)%>cwA5(HYx;Vs zMoXRN@V-7zfxMBb)l$!pQ}CDmS0JlWjazCKw&HA5vecNr%lQCu#5`*=Z|BWcWeVu?iZN4TrbS6D zKBUQgzZ${L?Mue(vZI|lmfW(-j{fRfa_=r`=R>FxKJy+W^Y~S;uH3+#LTCDw%r|EH zmELE0LI0A4#_U!rjM}f{*zL4=k${L-X}iupHb4#nEZ9qc_l54 z$zL~JUDBhKYT9E;kZ@Yb?zVc~?=wq|vp%O2&#G5}%qkh$YR5ab_m`Y$Owgi0=9gUB zN`3J}@8FAvN^WSSS6g{47M9F3Ca=Y#C5vp-qTy~Iz6?|Hg2|KDVoAx$YFfNl@{uw5 ztG{Ythimws)`A|mScJGHVMUi!N+r*evOW=LsaYnA6Q+LaMG zzO)fD)Rl{l_3xAw!0g<5NBayd?bv$9y?a<`H)HbIbXsW-o9Bjjo)M)ztIczI>0Z|7 z(jj53k)``o>vLA=;nwHFxX;<8M^@`|Zt01p#h|DUUMoG>m|sukdw%Sx$_z8+ut*+d zPBo@^l|HB0T0g~WjV>KtZLKk-=USgzW4*?fj;Yq?!qOal_)a5FZ0Z-@3gnW~2{x)l zjYPy;UV3Y_QR7SRw?1RyKG&2!Sgp_XrHif4nLHujGv8SHtZ8xYA4d3Q=#>=rUJT8kpQ40pz(SuI`T+}l1h2K53l(3Zq{tPuO*`Bi%6^smC4Z6{#cr>XM^bwCa}!`R+HZtqdJWtD|#M z2}4;Wy@}6|Xv4J0qaRc-6UWc-qmkG4~;!9%r*$-87&FW(V{Yo{n1Q z1vDP7Dwma>ORxzZOG_hcUtnnAYLPmIzJ%M^&>laEv^8`S{%~&6CXw#O^~AdUKuP&$ z3r}4e`WEggP=as$Bq9$^#NtmF_f>J=UdeMjW9Y3{5@?F*$}dWZ!J}KWs@ghBTQr)HzFDhSJwh}{qj5`2*_cOGH%5bEiZEz=o_*($+8s8rs*7&-s zubbiivU3^vKGH2C%_BWBGA+_ABVWQzAkH%~rjtZyJGv>Cl|xwL06dYFTaMyOm4?n{ z4M*o3n~Q3tBAqt~Lb z33-X?8PL;p0{XL8K+iD0_xtI9fKEUn=UyKa(0?&^7hdqzd+~y!C7c)? z4aVY*>fPZeE2EI0EqvO(t?kyBj0BEOLjp$+_G6E+el1z8Hz+CB#uB^?=aINC5;z(W zOR$1C@O6tB=jb8gz|l)FcRzK*xlz;&MOpb9`&HVy2lnu|s>s!B?5*qpQNN6Q7ms}q zZVe+6@**|IXSo{G1wJiTr$hD(W}k6M^_#Yi{+Z(=cy^BJPE%E*UEo(sX31~K^T#h z-!`*Hu~VkyS}NC9hR)jRh`)Ey*8B0bX7&oNa9iLu(~rN!LygdxiQOoVlJYJ!!ut&% zk93WsTtyxoj+K(~UzA%(IXkKmeCa-_5&T6TYQ*{0?*np6XU@oIETpqkC5EG zR*tf=GZkbRBhvB*nWxex<#@8krTPv}FSq%AjWQ)Ee@B^;luc2lBxN<3@}~9sq<64Y z*VVp8Lf(%3u`u?><*`2=+vwIvNGt58c1cLDEn${baBlm#zXmiG`!y!s60(I~v|1VJ zj{Q0r+PhmKLhr+s8JEI-eGOfW{rZEl@-}(Y1s|v7p~Hga=fzq393#{V2^mJ^a`ZG7 zcT^ASD$2;LBNJxbgnU^UfVI|4PcYM5lAt5S@-DM){GHKJ3`e?Hv1~4?cH| zUOmQj%g8ZQTaA~5JdOu-L_)raMr36#_Va$ML(Rs6F5mT=g8lm7t$k@tijV<^8u}sf zV3KdqhPb*85B5Z|q-41Nyr-c9@Yc_ujND#{w^}GVoA~PwO4_N}rPs4^g!XWhk@Iv9 zXsME3gIBaQBm4H`ya899TSRs%mzC}8TO)Q+>DRH^S%!AO(-#_=PHg!37vO#G z_aENZeq=J<*O`-YEBn^H#+`>H^-Rd$S76_A^eC2GX03IHalhY2j6)+IF#(z1v(_2N z?C4x%{u(YLb=eL4TwDuZ___Gonc-YKAMOYG@lA6g!qHY@+0m4Hu%xxVjRzd{og2`3 z*x1k1eW?eEGI9m=K&x#=ZhSAGxA3`h50kZiTE7gRyDU@5+D)ucCcEHY@7Hq+_o+?# zm2m%<1hs$VH#=s}N(Z>HjOXtq(a%pKAHz9%kbaj~>t)2o1W;1;Dq190XMrdnR>f_b=teBST@U*VW8IyjE;Sy3zt6z1D zqt(%~aBkB|;=s{^#DSx_#DQCP--CDq%=GO|95_0K%IbC=OdL3xUK!4Wqlg2w6<<## z4%Ajzd4<*fGx^S7HMh$~w=wiRV{77*wA80x zT~JacF*a*xr_mDSTUVsgYR2DqLel-LbrsxTL+2u?w_b~+$H8S~IkU{?)SZ?C(08Gs zk&IB3kxP)?qxfhfa6Rro`WIYeZFL} z4?b5}Dst-&=Dsnl6}hWF3~1`WfIeVf@YXjYL=D0QUb7!V0&Pu552QcD&@o7V1Sl)# zQX?J%rR5rGgho?Fo6;W)w5?(BR4hj7d@*vi5t{7`PY}`Ps@wA~b^mQ%&fm>$WyxNIq#QS*A<8KE3SkzVL zdj#8iZv9F$Jz?B9Y^t*)=f0lnaUzw%(J%Z$rx{Nzjk(>Ztj^7V8)akPSAZNUz;r=SK53}!nv*1;SaafX=v_aClG%=^Db!Q+-^je?}M+vIr@&% zi2L_-B=->=hjHdNul^lfYj9r#E!~$7qovEz6)it8S?)wj_vJU(#r1d|eOi8_s9x1~-Df2^mrnEHu0qCo?zbq*Y|Gfq;sD#i`(UWW^r^IBOJBvA5h_JK5thpG@|+9!Jax z{pyfC-a2f2;Ks48_j?8(ePa?#i|-kIjK6*6Zz4&_GNkemE26!Tn2J64H(q_ZO!XLA z89cZa59+!}`3p<91po5yXX(dZg2h{kI7ih9Gk@M&WSMa*v9pgDjlN$SH=1hUXn*wm z(YW)`cZ;D@(AVW_gT8+mSF(_^1+m5NVzCV#SQT>mBC3UInUqC``G};PU(ZKyKLUO0 z;P;HYgcnSYDm(GOO74BpT9I4YJ`thErUq_iE$6D%UHxl5BW%R-Lj(GCO+a6M>L?>g zDwocjk=EqCj>t%#4dK+h8qUwpKWrwlt@T23->-m<-zs(n&d7tqLd|K6r~jcJ?;PVx z9h;SFiKaiXbz1Jmy8nU_@+|%8_EA)JGtXZd8r6Wm>1AjGCyEY+S}?W;s7(IGE^48y ze2ZuFZ_lRXTs-4@)GRzxX57wmxe7FNBwjekIqJCn#Y*lm!VNXl>OB#C+aoOt@XSS^ zq>RNHeu6&&&Ha3TGuF^QugqV*g)1;rZwoRTnu|4B8k&eT+88>DO1P_`F;qgIuav6i zs2!EiuMHlHtK(19x>Fg!H=U?;9>sT3>vY|OG^N&^VQ3PyZj7OoeR%`f#;zk% z6!BN%289vV6UFZtchH!?b;rL2duhL$|S@o9V>k9njgG2 z^xF=nk;t8~^&uu7#^)|oDH-5W4Z`Pc$=>+fEy*80l1VOKVes#L@s4;=t)@Ro6J0DCvEGu5m9> z(ic><^(x}UXL*Hqxt7*?QkxoagQ0cAi=wpb-X{2?CXu~-fO0>=y$Py1-+q<88j(&W zYgOhO{a9@c{W9|EO!q=X?suM&uP*6ZM4ijBoT$?(pONo~I_;N{g+!gBrBU@Mlez2| zKFjEMzFlK9GDfE{m-qWU9`XJ$fooggs7%%*xbmwO(`;_2Tt^WRo}tayU34!?%5QMKtF?JAvqwn!F`Q`;x#Vf2|-`u zXE_l9-1j|dp8Ey)3JJe>$QO!mhDy1&@ z`Lr#SOZ}0RElAbsFtvD=oNWE{^so5aXmtmG+{NhMpiO-dZ5kn0^ZkI zva)J3=Mv*i(aeM6z7(}{2pqdJ^7(vQ$OX6fE$qb3{fx|R@tqmr=q6--nX$d(Sz0y5 zd&$NF9PyVBX{|RE@6$=*|FVzH+2nb z{6viV8t)Qe>LdR0JTdN7U=}g1XUC+>qjvf!@|l!Jds1#B#y#%8Ch9cqlky2M5gTre-H8L2^zHaG_fr%boHS>8 zz9AK{;hA?YvEkDHNR4&rFCaElW;7x;T>6%CgY?G`2QGa}YOG8DC!9;){=G2sqr`z% z(MzeZUMB|=2lwE?wA@DKc^uS=S zz$Lh>(q+j?FMNKVt@eIdSnV);?yDV#&waJF_}sbIsT;o9MmS%sf*E|ZTkyG}^4usq zt$S#hyp5;zRFILnc-7Hkcv@St^7$D4%3ZnY+lLXVFLq{x{yLJDPn4^z=n_WkM?Zf5 zWtOu*=t|visrDo`{Pa*xY&h4Px}hiOq_iP69PLhQjI*&tb3`VB%5(2BpURSvhl#b8 zM=2V^d@kSE?apPTCh?;0xuxZfhl8yifb-STZw3jDB8Hs1cWqd=2HLm;LJW;!7Jhkz z8*Qk;X6`BUQ?7y-(sen(Z}nL+G6{`bmL$>is!7m>O5?Gy0M1vtu06k)^wP1zi6-Y- z?U{(yEhL)!x?&%qN!P8&U6Bi`JwvN{CMyTB?tVwBmi3w0{jr+Uru*Y*xPz>9@6HJs z1S*p@M568x<+<@hqDoqktDyQg+9yKgxs!=b*JCvD^%>hAgX^1SR zS?l3QsuEP>F8V#pe1C*^&W)<4^RaJt4HkNZvG>^6y^+c-v}LHDPZL~B2Q6<#($&`Q zETnQRA3*}w@?&Op^gc7ImTB3w()CSC17^{foa#@T}S&d zi=&5_+0ojVJCm8+N0XUZThmhOjv&h)%v|F*LFS*aforrUl4?fb zeKOR&)qV>BWzs*R9F|PV&s+VhS0*cO=YANiJjupbpXE)obTlQZFA2FHEtSj4>23M@ ze>UH>(Rn;At;rPEau4qlapqmGjW!Y2(ggUFSM>6M4tD z$(5dES(&z%SBtdlhduRrFe^QX-EVz9V%Nu>(M#la<9ZQw%2nh(-6!PR8GDFyJYM~= zJ!;L$erVavxG`wyvkWIDdm1-8iuUqchInzi980{YHPW*D>LAMj#OWS3;y%2uvvB1K z=hnCmuc{50g$UDGvN9pkh-VRF-DWii^G(23Lv6l8V_Q{Xt5b~Y!XBk-l;^f1i_g~+ zJ#MzvQzAWh)`!?tNy~Fj5WCthE#-5<8uc0bhK>09;UM$Va4z%oRW5Tvt{~cdmLWvD z&oYAf+zZ>*@(a1mQjb>Gye+xlv%CbSnwQBPa9XL$q&9J{s65w{T+sQ-a}U9}9`A4F z3BMCm(&15ll*!Fo!-x~whJJ^@9bx?%!MWc)WXCzjxFr!+CYO;FzC#?$-gAq!jwKg# z1o!nozV0^mlv&o=n5@v>D{v@hkNs$&Z>Rs#GiD)}@T~*8RwZ!>n~Gx!_~BkY(O_ z4q5TKwLab@w4O{{X=|B`WIpfrDf`FTlXQ)bx_ZB?l#v1ZovfVxlBP3P?G5z-(%5EQl4u=uDW$^K|ZbMS$T$CzJT&*Qe@^6?gj03wp$&X&T57W!oCL=cmvGaq^^=*gM&wMx z({#jB;jQGa&zEW;(rUP_ zvHN>r#CK(3#LMKzR%^YN?9mZP8PVGB8kETq*x6@(nyffwgwB#~6Z&-`EBsWy6mG7y zZY0`$-80*AnltW+sNR>^FDO1=J7RL@({;YRh+QA?23!y064A*hD;KvHDLF&?JsxvC ziI?ui&5mk&R@M;*2OIZFbmGZMis(GmxWn+9uh9j+onhRK_)WR;TnFOC{rh=eM;ZAA zPW_ve!B}^Njp#-E>4>z9!Y=C7wEfoe7OhFiGD5Av6#)^ZT2}p?Y2oX%oTn7w@B2inja@HQawQ!cs{2%k_YCI=HMCe_dGUo?nJCx z_w}op>uha3D2n1TsR`26^3hb0+lxNV?H1o1yevl3BE*{!6GaA`qw}qg=Bvov6}3_^ zY1MV}GndKdu`D;Rr!29tbEB-_mo75kTjK`CyT++xz&hi0jdqQ!^dSQVVlQeeaj({( z_Kgo#dw@0kI^g;10(UHH_}#KbWS(2Mh&3FoV_ioJW9~K9b?%QQ0e!-{&b`OFj%v?~ zuf@qS=RSyb$%I_pDzx@k9a>kBTQ1*YrMGwCVJDsZM+^2EBmQ+1&{WsE_-%Tq+zn_YO z1plzt>be!Vp?!kB6XWbjl!SgYdIi)sp6~VOnd5{Uhb3M5yI8|@8y&APcGuwP>sZNs zKA>lq?{U`fJ4IKphNB^ML$ps7@0XP~d6~~E4S^Hcv`3AAw$%#g%-R7pk0hwbT^Ms8 z#QpS2$30WKD4_k~5ziz7cTT)Uor1u<7`I*+x3-99IW9)27#$d+*JJckj9SI(9vGtr z@oH^jZcZ{taCFQ)8_O~#mZfn#_R?6(M)7KI$LPwqwMon!6Qflz+8CoD@wy#jbV7u( zGP7au(b=(7yGK%G<)*k*pNwyvSg^vO6yS$QGucUSD`-tjC8<5qoN&&Sq`=i4tv zug2(`7;TPGpLn&E@qD9Wng5KUBr8`&ty#G|j=#O4s$7w~H99j?Gencu2p$1eWz!9R%TE!&$h86Gd{K=_eE5x z`Bf#}%LcQT`T6;ewcK;F5e-|1opTrV)n#xz$Gw4EJzr&cHEK=E$JA4o>I`b9Ulkp` z6%GsYTVS1VwrJ0u@|2COi1*}4Sg);K#;Q?L9 z`9(RNaT^vYNYnb^j^Viz1NQ=)_Djm#DPhF94ZM~2SZ0KNts-mi9Lmhl?^QUjOO(&Z5KG=Ib`&3?y4pH3U#4M&=M~w;%aJ5cot$EoIjsab3MOI zS-;z{uA+pD`z73+-V^Kk{qZE$)moR7^>AMGrq|#ZB^!G)`;4N5=r@48-=Xb7ztO$? zo_SI>!nu6y*hw7CWOs4&Q_Nk~i8~H^srPqg=7r3hmNi_5s?W=F4-koJ-SXT5^i`CV z=jeCMMcQv<7w?yli{jNDVW;!wGMdJ#9TlyXls95-06Uml?Y7RrYNOe${0Wk$*sa`Z zUvO3FR{NxDuv+iR@T)=-_7At({#-%2HS|eYx7t#6Fz4Q8cX4iR&)~s7OM*52*DIh$ ziA1;1Uj5xJ2|4slf3l%GcMQIC8w@5oD=$_XJU=Mp#~*P1Jj3PVy8P09)K4SNtmPeJ<|~r|VneU@Gx9I}^p}Q=d``q}y+qMmB6ho>#YAk4OO^X4 z?Gcfc$>iYWaA{c@`#UyWv3QFmObAKXgOM{R28|eR=YJS zazEi2wM$m+U&r@RE;H{Vsh_=TZg2~c)1bXC*VZP)uGfvOTY_DlhjYz;A;#SECE{)RAaX3CeR%v4(P4*@sirn>O>?wCc<}VIRx4EtanqvDWnpmEbaBP5ZICY{ar~ z<+;|I!+cNC?_TTIr$f-=IOLme{q{mWUAH_}6y&S&JmIU%qWvmzm#%S?m3xWjxmW7C zKNHU`-=2H{~Gn;SC5?aTZk;$FC#Pi`O}pdsYleQ zq#3!CNK{mj>vUW|>y8a*QH+{Jtr;mm0zDmOdjMC~aO|91 zIXHS92^>9u9**8TGN51ZhjTNrfg^qY(viM5>!?Z0O^><814HY0eD3|`Q*9OTRz+l8 zp4UMK&w%eb@Ql+0_1hV7B%ZuSu=D+Vg~Gk?!v}#|**l=sWT>`sN3FzBR-WINeZb~R zMG;$`+n?xE&y@4TYB=9#iLg89$J56|*la_m;K7BUtQ;|zcSRiHTY?&fZ- z%~HmxMG;R=Xw^f%gq%UubL$S7<6Kg9ZjK)(YinX*#8t`UbARPsMp`R!i%ujP4c$CE zaDR{S5f!;jF*=0WtgDe_yp7;!!R}#)orbMkmhsriWvSaga2>GAI@aLVTx_KXYs2}7 zL*oeB#&37mUa!`zNk(bL^DY^-x&baLy~(`itaV;-XkCd-U$WMR*z?v|>+`A5+5nqw zu-0ik$*#>4IX|G2B9xV3_-%_x&>FwFe7j=5e@(vU;BLH8rJuRVTe;`PZZ#FI zB3BSgy7B8U^N3i!D`NS^o)l!hD3XtRg2cwBHuH*T-HKexc)p!ueXoz_n;XwJIM(-` zSl?T|atYWkk+kS0mH9#>b&Uq#bIoq<{;n0-$yyt?_STFnA~qVpWu@~5{@+?(i(1q2 z>1O}Mj(d#kR(o3Oky}Hi>^3S?m1b>`z*;|xPIG*70L~?NuR(~;M`nf*KOxmP8*w&~ z=>2Z2&+`Is3E4O?JQ?yCr@n8k-=$Ig<1Q?xKCLfY?=wPmOUM#NIQl2%?jhEkyMUbj zmszsXA6f3dSuM1hR$VtOo8TUTtH}MkYsjtZ$$gEmj9kx&=UrN}@($8BnW7`6F`tgD zx|4ib%u@`sR^+xY&e0on0;(JP_xd=p6S1c+iamW(?CAlqr>~1WeN7zMU&oO>=KK(U z2gRuA`+;kFP>8?AF_($BtQ2s*>T4QhBA-{}Zi{D`7o#N+D$fm#>R*}MNd5CWy$@om zt8AA4VJo!@nH;ayD_-p~#@=Q99*Rzk8z%Qk0dh?};>@s$-vybKx8MW#IUQXH^(+2dzG~1J?MuOk4Y5 z4MkbG9d4}6a(rZ=wA@9ec;pn56&455Vhisb(~mbs;I6baj-;Q@%r~JTslM4Na<$EO zQrj@gm7GO&7OqE#aX+J%aeDBv&&S+0;@(?FwGT7jAMM>)X#sb?&3p`;%l9^%ql4Mc z9o^B{Ip%K=R+}+1pp%JgU*iJ2>JnUlR~;RM2fg(oJm}mna{}rRd!cUR1$La6dnmT} zWwFJJv98b3KC%#R?8jF7DCU0J9Qs{~b$!H1Sn^4;b7w56xtf*#==a7n_4$;@Gie!1 zzjxshvJd^-`^RAM7Pl(*H=LsevBhU$abM$OEbej8z5`E0F(NIuMwU#hqa*OX_T%{`BEruHh3KKO@GBmtxqj1C zg1@_jb@%36=Mse4&eis=LAM*QvCndFPe+_tOM;fUUOsb1j;|ZEyob9Q=h_-;qKxM% za9)t~a$>_Z`iz_&OTVOC*D7dq=<3k#W8y_+&d4s<)Za-TSLturXZR9xcoV$?QhjLs z%8|;yNN_Sz`8)HSk;=XLbzl6(Y6;m2=Ng?jNaPCRZm$=(rCbN;*GTxX1U|Z&)~t-h zYH4;3zQhq(jW_n$^Yoiyyw6WGHKUa;8?tY;1!d$qqDi&nD?volI&0k>&p0{_&p6rw z=TTBgggJVE2y--^broghLRw4iPzj!=RlSvwuQ^HUcYnBgClb#>=Y;H5$=gV9ydRGT zcQMrFlthG{Arjjf_k4H0cmgWV>ASvep?O$xH*4LFCHooL9Ql_s;Ra54cd7*Mp_hL{ z=zB6x5x6AthfRI#57=1| zZ-kRQzuDLm@l0d``uz=;kw37##sOcSn#hxncj?R%qAHq^=kS7BBO|@AxW~&3tb2m> z`vR}3r?DEj;I>Z?b(Pk7Y9)WW-mJR;`wcfvdhkUwL$$EgxrPep-s3}HS;%b3s6-*B3ZNx7eybp$cQ zb>B)*nOwyh`UG~F%%W9M-m4k;4tD=0(=_yZf_=e9tZx=ZbXX9$o0~hAl&hD7)(m@q&X<%U)`XdVj?WRv^?|#STH-TL z_$8qJR28>I(bh2E|KKi}rSi?Fk&r75O{Idk^j~qe+tI*wfg9T^aKFS{NAk`4y-&1z zOuj+1J6ewwy>dO)GoY7=c0Ez>RATSIy-0L=zs*E@YL2#^ijNePNxdQ7%Ckqqx4PJ8PmM1;5A%H1t*T|!;+)+WQk*vaVOtv9l3 zcfziGxL=LIi}CH_1w-(T#x$~`mACGMl{s{>j|{P`@8#^>0ph(Gu5lN$qS(}r(} z+8Ws{fx9@(x${1iYsiX=+B(Weqn(I6S~Jp<7}u(okjt>?XEtJAZ0a@` zLW`r;jnK$iJE4bj$07ZXa9Oz#uGamk$MbMrb86#h&&GSlhY=6K7158HL$y`JQ&+5Z zfQ`M0)m-zNu$rSvX7>3G#zO9eA}sWdjm^&G>md*5x@X5$%i>EPTd#$qr1XE!$MU`v zzVx%`gZNUf-;y#4U+TSyhE{O>@rt1?*jfLAWLoy;`r|VY&zWN@w`37|xHSg8$rO>O^i*-_i(?060&ryOHiIG z#0Dx$d9E2YaH$qY9Pg=a4%~_8>#h5sucH$5b+jM9Dk#dzO7z`}O3zb?Q4LGTcJlHp zxP;urzThJsWvtin_qcz*)>_YEto!%M_MA!|(peVAm2meC!K?Rk;@Ov0ewXYlHnt)+ z@hzXPBG+~Qu*Qej`2_kUBsI@bTHap8^M6=`t9#>M-92Nb0tF3Q2tp{q4NzB3*aM#(+8^mDZ-Jb>m+oc;^YN5ozMj(Ok7N zTvk5iti02cYK?L%-oViHSiHTV6c+cIeF-v`8Mh3Jd+SX0BS&9%;iO=#Z8@Phr{CQf zX55HM?l&9SR2;aPJsc&ac8N=$l)_#-S85jel08&+-K5+^UGr1Hn!23+nI$P-A0BLV zIs1%{_-Yt;KA+OoR`nfmtuZlJ?NzuowDRuAl)zokAgr;C-10rXeM6pzw^?eDM~V_s zyHQx}dpNiKQqDOlOG2I|p8Ht8{}F5Z8|q9f`^ji3+PL4YSrSlNe0jL_E9ab}t@UIh zoX%WNiq?lUv{vbL1^4cM;j6pPDB2hQ4mMP>)hk0*Uf!3Q3diq$c+l&{X8NtLelt1y z==VSqavO1=Yw&gw{_RJEQnRBGN$DHKBv+m-64APYh!Vdhz7C&1ZX<@{bFX?2;&Z(s z;M$q2@G7;2bzh-hLKgh$dC9#=*7fVC-gS7Z$~4-InH?Rwt8-boh||{uti+B;>ve{@ zAgNz<%tcb=_#!i$>vj%O`Q4rrQmK|%d5`nZN*nu5*HE83RtA|%Iq|6Ud{bhW=U_eA zk6#7d_8+mXqn%hoJ(H1ZSoZ_w%gBpxiV|{Kr?4L_!D_mHWTYY1@Ds{ho}2U2|L#bj zh!Z^bjQsR}ELri1&2lGFeQW4EvcgXk=OdrT%OqA;S@^}RXF!jUDeG*+*1hvZ z^~{f0cb1_`uEskBrQ~_CCvX)D7RQ()|PKR?ksJ^mzu|5i{~0oTEY14V{^Nl^Wr*d^j3maYcHia~Ls;3gTnG z>k_yQR1oKCV+}_mD+9L$YdDwe;fVLt@sV3Cg^#@T8_tQ2ZpjAp8GcjmCrxYBgRi3F zBS)E00ky$L&W*=Mj$VuX_Ry3t-<9~y*Z5;b*qJ&J#maFyB#Lz`@-+%*UCcetIni5} z%nlTO8Sw*uB(S3F$x-I~u$u^!o+Q=POwsVth7naMucrlF7e>=UNUR z4*Ut1I>dpaUt?|-XF})hAT}Hw+A<-tZI+{n14rw62ky6++ZCT{D|Zar2fJ*6Q;qmr z8u-X{8;6hFTPNTT=Vtc{s8N(N+?N{^xFs>S`}n{Ojr@_2=O+d(5&47Xn32StT{n2n?;8w!<8jq|B=qmi-y6r@+I_iu+ z9PLG}I{FmO$8OvlxGV98x1NHJ9PNrf9PLl8`iP(493`S$<*PLK!@1>Au5zNsAI@DE z`6D5}MLy!p8s%j|9*Xjk>xw8Z`3;x6)SOAnXj=7(FDpCI`ps*~oj|MC#Piq@9bMHm zaPP7sdhL9XO!n4YsB4ay9!y0>pGhqQXdC6A07VmrHoHHnleUMh4rDGhs1LN3T7{~7Bn422M?)*rWtZc?x zzu3AJc+1bC_v4RkCi9K4q(?`R^7kI&$nH(`@yOXT-b2rdBm4L`vYW+`T`P)g{!S8} zZu^GnyP`|bx0w2@5^$fDHC(sNWRIeZT*(@p7{Sv;tf60|&q#;4j<_~p4Y%Zrph<7) z%(JkXYjiF-KfDfgBWG^35pTlj?p)R9J-N&D5Umxt?tGKO(YM5{qbF+z zt_R-+a_*QO-kO$wiHIeP<+(<@<+hrE2OWJ7b4SM>yg2sOn#hB^)4-|neTrqd$UK*&XC7-;{xr*G4cwbv9a*Y__ zXh>y1bK};|aqFn4H6i67&xMbRLsq=QNy}}zDJ7AXPxTDkifG5?4nc3eCw-90_e$M> zN(OMMN0zKKCoB5BqnbZYrtAw!%BOI?+Ua;}3LI}lo)~6M#ol@V4<7cewmuSbdruDi zDw*X0YyF!2+$E?N?G@Z@oayzCzevQDgJ02KLACWO`lqP2HCw5CKV#G6N|kRwWysZc zu|dkX*ReqzJdu>O*g$=mlt;0FUxPi54Knm&55)%F`T{o4c+vNOc(&GNxs}Wt3d%?; zD#P`Lj-|FcS_!AWXlLXws)hfyeOKoYe;47m+Zn-W6FK}Y#5nep^N3ZxP)eRpHS`@7 z{dPmm(Q<{M-t03TyUXA_p8r5|oi8KjvhHv6<2$p+BCA#Audv4JAE`C=z#8uuYD>NM z@8q}VnS@V`I|B>-VCXDbw}7|@A6uv&7V_0L;RUsQLY~4JF1`L%;jNc*s&d_CajNpx zPpCtV>dfPs^J5)*1=YvTrw5Sdj*eLCzx*WSb28bvI%KVn=+q&cxo*d%divta6eYa3 z!wHP%jCzHP|K$LQBKwqjA+CCtJC~Iw(PNU0SY9WLI0FBA#!u_#BeIgLFLImpn@hxM zCiAyp@StW-Mwa5iJ89+34ZJlAl$AnO`^ZL&Mk5`Om51SeHm*xFOIijov(NWQ+O_1b znNYJg*?iNnmBtHS`yi(u`9yVV-OWd&WkMyVIpg}_nU_FG=^S|`DTA?w$HpmG!_TMP z(9Lc2=tTT$V}Fe$IE6jbHUEu%UKvhCdgZcm8`=G{jd+N>beZo&BX6BT9QLTi{^+Lhl9dIlyFab`K64%K>Ki(NnQOIGOCGkGS>Q6V2A^MLXbF}2 zdP9?16IX_w-^g_%h<87zyZToW60-M}@J+VQ;rw^;XMW{L1hmRZow*{pFLd1li8_6X zGcDa0l4XYU3h-@1t5@;;2t#v_U=t`Q`ys(TUn&}a1ZttAoVtN`;f>n{r|CHdgSPL4v6QL8t^wFKuMWTzuydf zO`iV^;!V~`o^KVoT#Sy0(Oxk+EJpXm=$07O&ZF1Ee5b_RDDqTunr~gj+=qN?(zyh+ z$c&-)dVDcXK zLu_149;q*rGUr_Pc~aVwAFtai6DN{AhTep$BnFf6?36He9694-|DF+AyOM(*b;Wmk zD<{x9d|iGwpj9Q{S1z(vZNT6EfYS`k$eWCC^mmhhZl4u?h5vwx*b@#lZY!LwOEp{1 zvjO~%?|x8yG94AY@=J8by2>@!`6u(62>mK@`sRzHQ4!*6jm2JlGIANay*`VRktr#+ zb4Et=^j#w(ONepZKdNT(W##-e8JqdzF#(PIEua_C*IVzs%27gEqNVRHwHLZZ+~t64 zLM7#1!78@_XEn5JX}+-;(dMkn4NA;ctSVBd`E23vEOi&pd+<9{%iQ>YdPN&$!SU9Y3DSi96hU%Vi2?i_UU)=m2ct{%GSYDqZ+-BkKA`5m7-+BMQBA&nRERvv5c_sigNh8{;F zkGiYT$Wc9F_YG_9hV;(ugGN5~3%J?|okib`OdA@9MqZ1DqtSP8NmG$t5G8tbMTkE@B@C>LtSDzhQV=^OKx>6(9Z!L)+-> zPu47^HuZw5T9Hm-<`WC}x@hivP9BQ5bHdESKs+bSU9b^`UhYP&8fra^`LX6*BH+(;~Il6k5^}_S|Oy%+2~p>BSU?@FW`K>XJ-a9jtuqrZYM)E^SEXrLlv>_lcBHm zQ*H(ss))KamrOxMVv<->1jpX}FBaiR9XLhYhg*f!Ose~czcUP-L;ShS2NP>9^GM>) z<@*E9Wln8z4$X-_moG>BX$|Aa8Y0ZA*(jpUx!M|GwDR0EQRlKe1n07RN7T6<#}i?$ z$E`%2>)WtH(D&*AJV9%^y+H+W-R2$0b5v%Hw>gn{F1+76pcQokns-=0XW}F8_uokY z?Szk<8;Fk<6H)B>aGC*G`H85@abGJf-H2ze_oZ0T>v+eTeQZWf#e-@MzTVGy?HWe# zOadO9Y-r0&zJ_RMam=m8tKNEUCHI1hbi^OTsji!m{d;h#GOjK$`LUsay{P<#)}ilh z%d}tjzMNyJUK#lYeGfM7wIlhx8@urI1p0c7O^xQOb@(JBozQI{{rH;^aZJ7g=hgcx zV)8lqu}7hiu8Ysm=q2O2BmG;3N|F9U5P!{$9r4@}wa`Ymv4%PmlYX!H^VtFY9&^7g za4so#5tHuybCx54X1sJGCRI!Rx-BOoU6;Qk0B84~rT%)CkLSmUNwrW?R-mg|Eh&c* zlO8#{ZVhq&7o5t>-5%!G`j?b@h*PUC@><4YC@IGglYb(85}W$(DG9l%sYiQ8?n94) zernUt(c@qG(K?T>pp+`gp+~8q?n``TG7p*S8@FIJ@5veZ3@&5nIj#3K)CC|c&FU57zJc>9(1iKC3QS=>t^7Ps3Ado0jy;zO z?{)l7)^MbM>1E=tf3t5CnI0825PGd*;D-a=WCG9(bufzPeLze zHRsx~nsd`xO*wM6S2(>6BM1G7trFYZb+|d8$F+tT zH*|SG7Z(Pk=OJ(1hD{vxB2ygQ&l$|o@jUJ2Xc{@~NUtv)okt`((jCIlJ>3K9Lry!V zPv1GJc}GCY_6;-Z6JXxD7n(a7MSdva`FrxkPck24alK}$$nASnh^A)Lru~%I%Xut5_7{lA%|m0m#-1==V%!b;_=dt z3bH$Iar4b{B5W@Z-`Gd<##A}3qq>BhI7e;rZ&)qn9HEHn9nF%I6R1sozvL%4z5d|c z7G~Bp*aI|nu`U*;{wbH0OF@U&8ZS^8e2>?^$>_3tK#e$p)~u`rooM~OrCNBuRiI&T z3F%VFFF#}pe}fye%KELKT6n*@R0g$BR+f=(A6n~|QH|i+z{6Y?em`S`&oZC7@sss? zs*caX-+;%XKHt-L-|xa6g7^Iz_INz48s)EHc~YWln0XpjbAP;r)$}SbV}FD9Ki0^| zL?nyKwe-V5uVi6woO$FQW&qQ7MwL_hAjU^PWmCD7lue7*_7<&!qPN5Z^+G zm_6{sp~h4?vvZ3A{xXj-7aOxe>M+-2W0ptEE5~wLgQ+3gBWBNAxxa19nOLIgS~czd zh%#ZVnsRB>=jsx!Q|Mh&u8x>7M8O(kCOc#Dd|}L^#^mLxX|)KONRX$N=(8)z1bJ%7 zNz|dL@)XF3hzar(*l(fQC&*JE7kVFCy>)_b0c?@vQO$Yt)uvXJTvAmLA6B<*6-?Mof^W(0=8sDo>$&Nd{E4 zMv<&_#%3OlrbY6HG5MK`q#IW)Rqb3Xheu4XbFoY{Ca-Bq?u?kAX-eigV{2)QrDSn5 zPl&OU6m;BitrF=MF=4F|Szt_ltx|bBV!~RbvecP)tx{PP%@futl@^@vs_M0q433zv z)=u)WG5NLX$eR%p)~X|`BPMvTj(i$1!Gm?=+lbL~#go{%j{NM5Nw~zAovAx2Pmr*V zJQ^{QGgm*5xWxnTa+}OX`0;zN@axHwn%6cE;@KOp(g0nOk25M2yPZnLhR9 z;D}L~cQxiPXKbFHFb(ARsE^Lv7p9?{U4=OSrjd+|7}Zo~=6BAB8M8-VqER;Uq1Gob zNvhnDNZ42|@=*zuS?f<@(UYv|r84WNox|$ZM^|qWGpfarFim4d=NSysOr}NioJ(yz z&X{1I1+1?2X)d$9Pm!*5K7E=?=+kL@=o9ohqQ2|ZJYGxfquG>a7EN@$n%iIPRV`GW zOKj%nB6)PwRmKEs=<3?1MJ$i%rSh~0YZd9JYmIp;nn(NGj23YpTg&@|nbkXLjTWNc zEe!Eo6*gpF9)dr;W6YRuA#hMtVj}h@ZCcJlaQBZx=Hme%i;3_EC#Tvjq>`VG2cmUt0IraPp4SZ5I>#&PyBTL zKk?I9=2n?U>rWTa@B3*Ss-_x0U3btzJ=iT?E5y&PF%#lv*DxxMpF9)dr@Ooztsdg1 zyL=xpA%1$q^Mv>*i=_50ZnJ%xg zp_JBCX1z0oZAY=6z+~lDV_cp?jJbjHHqVtNrX0gB*D$+_K1HtQs7_SckuZD8P7zb{ zEbbl}la81=X9lKa#GE!mJm3DsT}bP*Q<-bA4dyjtnn%p=Io$n)*-N@c%qWDgT8B^eW67{jh&c>8R%r02NnMM(_TV%uj(jsE6ugTpv zR_||rgGep^&~f~=9h+x&>vPM_hj91#LSyuOwy=Mxrv2q`W5$cx=Thr)j4{*YYu6hkS6wCqgRKyI1dEb~9BIebo&j48wF`q|$ z2FS{YIlQsYbD(@2F{i=kJO|3x5tEDNIY@qtm^-3*4wB6gQy9&2u>2V@t)h7jmKu0Y z^_mj(IYf#hW`5M?5NY6y#o?E%ey9vGW_sZ_T$8se;QCe0iUn|;cD3X%#N6L zF|#;gmQ3=@EteM~=IxkS5iuXdjQ$SBFJ^_c;(0bkOw*Vt?d^Sf#7sA1))xJBHr2*t z?h`RJ&*4pPWBNx-!xr46%q$y6nd<%Kt;A<7A({%6QGx96V7*RbfhM zE3?d)>4kN_<~}n_rR>c0fcj!N_oWYlIYp)zGtsW!kA*o+dhV%x@>lf3Wp88h6=3-P z$++QinDy}rpz{ou<0D3Q5NA${7~MhUS)YrInJ%Sd!LP>L(9a~44~XZ%h17bvmU~iI zBd$MZ|DV;*mTA_U!RACakWf3unUWdb)5XtgdGXXL|3g)^JVlwblDZjB4sk z|A?zl zZ_ISrWeL|!MgNboHv#vldi($P+I#K&`5c)lBovuKiV!kH4v}LxMTQ)uQc+|`rAVd@ zGIN{`ols_TJGrR~M|H6CtB}uu;Mz3UIV0qshvBV#h}gr{z#V3&>tQF^8tdX2U;~gL z&gD#!ruIjjszOZdk2)^Rhu=A8tTZq}6KIJqd z!j=z^W-^g2j@g}#bhZj9RUh8f01XW3o6$0t`h!SmCeEBkAm@RMbt*7P7Jkp6UCPr= zH6c}iU?x26Tq~shr>x0#(uH&cf|_in3zKl?InL=%#QHuiHk!sckCTQ+6Ykl@IirZ! zz4|z316xiuy_9Po?|dkv3lOY*yt7lt`J$|u;Cw5jbTQUUaE=LisU&Njaef!F0|?rA z#yKaX9NhoGJ=;X5Xj_V5vLz7IOmwag^4L$TndDR#k^=-albkw2?v%PFJB@^lmbxZ8 zEtxnCfD|nPUz~ED5c0c_sm?SeVN|C%hlu2cCzol?@rVX z&Uey?98TL(};i<~?m4~U&b&N3p|$rnqr zoyE@ULe>F6JByw5LJB{_nkCLAAyt5&W{LALk;7>L%)QuOOPw!;Tn+>^OP%keRO8W( z^Bv^R%g$jTw*xs!|wG21s*gN4^UhXs@lAFZLy%1)uT)ase_M)} zT!n~HsV!+HS6^{D2r;?(3KxP>CRbk#iOE$JEGnXiW$lbNqO`BZzZGYzJ!{ZMMP zbB@SNit696^1bQoz8eej-nbIX+H0KB_aMo2KBxxo4FGxDX(r@XAP)dp>pVz=dvGF< zbzwsM@Ko|5mD(%>*A&)#94W<`uY}+#!i@m;)CMAC%dDTy@~3c-A4O&KA0ZemSEA?O8bY7(*M z({;{JBAe*i@*b*d@Vyl0?blpNOnkah}e7C>zrHf!&3Hc;5w%l6NUE&3q!lt zJ5BE=jly%>#qdAxIBkfGrMcx&BCiqQ5my1oyUs5}>@2Z4HcM=F{v-|05;#sR!T2ya z7tuThmNz@P54ML(jUaMMgp4Cn@Z_@Dc`~BGbCV@l7n69Yrz54Nk>z|MoU5yoXs23V zY!4G0O&>b@9~ska1$?Q)jf0rDEq( zXQB|?_o1DgPM(nNVrQqbNXRK!mp^k}6;eq2`pkJt$YanmXyGHOC@^HK&MVC%1iKH0OjI0m2%;Klf=B(d=@H2)Ri#yPQ%& zUjCTveCb>+WIGVF^QCj8kZmPc^OaMJ$e85MKv46Q(@->N5}&V}=0rv%E6Tp*E9Yj> zyj{fD=^~oXfv}z4qFH*>X!;4+0faS=2zj&?Yrb}#Br+z6cQ#P-wUaHHbg}cbGetDr z#m?8xv!cgED>_Q#BjH>LdaN&;cjO=6K6vYc;X61${wfTLlk*ua+Y#7 z1Np|8B;*iiegd-BDLeo*hm{9c3vsvetuvBHwo?Hzs@_GgCv&O|WIMYchDi21H3u;n z0AAo*%mFh&d%W>N6qcl%&)iA?B2%)Bz#pl;oV6?+cbZTGg_zxGQjHd3cBe@-iwO5=M`(VUT2CZ5S^Eea7NM8ZR3@BV zqvwk>)sKiB7ip?suBNG>q~Tn}>o#d>B#~U_>auWcwGfiYLVhmBq>!3JgxiBF^#y7L zkxgm+u7;=LVOLp1t!GX0Vp)lbs7*qu0KuJJ5%sZIY5f5^25=0z7z2pkc(79B6eR_LX9P|Nqr4>IdNZCLj5SEa9{T}lq#uC z3c-CHl1r5TBwDunx=U3nA?7KsOI2qkw6FUBN|jNs2vJaW8<4W<4IA^3%)N@@-fd(En{S{Tukg4MCIs`eCmVXs+LQ#nLz z9$poz{VFw|G&T>fQp<_h_*|uaW)jYjHPtC1oQHU?zox1;Cbjl!)Y!2^!ny8RHA#q> z>#kL^gqXRmj(T2*nd|DPMM6G;ea8YYSy#O(_|`sxQERe)d*)>l6Z*>(+U8mRvXIRXSV4bK{eIr#xh?!R#scVFod9|@>F2u~Mja4Ti zcFt^~?iFI@%qD86lrnQ>Q#DeEnKPTJ2|~=Ad4qaRh?z5QP_GinPMWJm&D5Jh%vGai zYJ(7S^{Kh~P>8wu)LiW}rC>*ZyVD!hw?b|Jf-$^N9cL0=5o)29WK-6KS0-DicH@xb zCU>R59cLIR>8kK}B=(9>x~e7w_X)U1N>}*%n$f)t5coHmTZ2IuE=HJ^x`Y17qlBK8EG zuG&w)x^n3ReGgggE(B**L0qawX@~_OH+DgK}`-3zHWmt%uxA6 zaw+R3QC$m!V2&|aE(H6O$r>V@&vU6%DH9As?H4}xHt7;hv-=D*g zi=|kT&xA7b5Jh7>5j!d~ROdX~X8cX>43!lj-X%!x6@qPMP5%gC&7(qWn@2?KaC^oH zv2C6jvBR1?A?8Y8hMF(L`nA;9X=Gx!LkM2?&`y~YV(pZMUHkw489P2lRVF(;|8VVh5aGVS$tgqKN5rmQ8ESxN zuuoa@m=Nq!CQnHz)bOk|UNo4QteGYnEX5i;pJ1P2X0ql5(O@aoylm`1j`7UDnhE7< z21Ts*OJs*KAyI}hVF?mmJ#PWhLAfuJhDu?!bWo+4gjW_-A*{(HVtY9=*2|e;@0dM+C8odrt5gu@-hy#aCe|uB#oxUyMEqAbUhZ-tm9gs?w zInJGGmyj7k?p7y+%Sxk}(AB6Y+LGy%qgo#tSFg!MwT%dm_bV?)&F5mrjIUwp8zDGSaC{9@2Z@ZKy(rGK!_*&Q2j?*+i8ry$ zqiDUjmMj+|!kKUbk(NaGl+=yL5-vrv#9$%~-y+|M5O3YWdr&!8Rj# zQdL+>wbM=p$q4nsIwW>Zcq%rUo>IS%hDY3VDD{;3T?ksvBT{5N+Of0fNM(o_aU(-J zI3J>&k)a)o584?St9_Iz9kILwG^13v2w6vDz7VX7H3fGLqtww@skkQZ9qR?#*&iWX zSG?4P8*C|@TSlqcMC|ptQEDBL>|{~!6yLHLtv(Pk=}Ug6X0+Na?!LfsH4~odrBqwk&Eb1nW7Rq#v*fLxvFZaMOX|aQ$_l92L4-&5T|}n5=fK}| zniKH7t!$M?gvat^&}6IR`>4rIeqI&cY=HSNTa^;Bxw0XZnb4ehno3pMjHP5wxB{Lj zRc*Ffau1QLZAf_j!K>EeRmqQ$*elzUR5>E{I`$;h{ZrH&R_2YTsp>8v=B=oys;?09 z=G0U*NJv%a_i`2B$$Ry*G+uj1^Ts-_Ehy`~|vh5Qcrj3Z^L zdVxv!Zr4<`RET-EYpUY+#1E_7FW`5B0DsyZd)MqGD@RN09!v~%xtb#06koNcD7rljGS7VlC` zS2qj6k;3G*h-NC(HC^2wA-O~fTArasL^R7lGb1(|&rmrL%|_CkA;QnR;d_WP)ODYs zUz|}L;s2VcdPm4-P->=nJwo;p*+FEBN)CeGA0zSyYiN!8g~*kkqvgYCpZ&t?=}c8i z$TvW66`rXY3K`UlH8~2uY>lO!0)mr6InA$4Hi-t2x?}jkxbOr@NE{i5{w5m zPe@uTLpBIG12YM>IaeJNJDKI+J2SAm$W_OLbO(Zal3aC)2%j%-SMaPl7a>^tv&x5z z#PN=O%9ZT<)AO}RYxHhAJ%k@5Z3e}lAScGXTItq8nb%lt3jeMt7pD?Tr_6& z%vYmDV^+_6^^9oD>Y1-*ipH#-`RX~*nAJ01EfkGeJ@eIa(U{dUU%eq3vwG&McSK`W z&wRB-2=1eBWz1Kf2*LFfSH^txwGdpbSo6IQj2LT<60xgizWPguSv~Vr@+ zg`X6^%cYcA(H5x-zQKsuH<1^q%Y~S=X_2ZY#H?S7 z)hHr%yf2Q8_r+>5Y3z7ktnwnHa%FgeU9A*?dB|j2L~{dauzfJw_+#qvyW5MEA!env zWEo_5$COg%fZ*w7X;=ygo|2Y@xorF=!8dXL6VlmsjzN>ptJF}@m~pyFjU-}cwpD7JXw3U@t5hBlyE}bD%@<;Jr*EjGQp)U3-&8Aw zn9=>F+9brx0B@>4i0~?md*ip%KSFTi;#HBil>a??!J7X;@4Tgo3Zb=$NU4bCA0p+2 z;M#=OK;BYUMl^mEB(;U$b@d`d8b&l16S>jYX$1Ejh};~}R3LII5#GsQ{=B97Fme8A z$E(a5RpJNqBHOtPW&oT?)~GBZa&GeB-2t^TLU0CHs|FvyQt-5)%o}UfL?LG0Sf}O- zF>};<^)``g=a;s8W_(v|5ppghUkJG%!)W%49W%4NtA2|RoY^+2e}$Nt?R|C8L2RL& zu|J5-*dK(~WN;O}49=DxDD$*D&Cf(GCp%;4s?pUzHpT30QrC(G?fhSwmJv<+|HDqd zh^9Ab@`&U*A40Y~Mr3z{3v1nuBWhQMUXK^zuX?hg8F#kl6k@5{oks((nq4U!1c9`-@3C((tInZ7^glSH-_d)HyseVk7OKyQ*F@}HpT@4Yk z4hY`+`&~ULqdtA*6?B{#5@6xlc5I zstbOlXe392%#B9z3shMl^W7aNS>t@JPA5I+D{uFzad%aegCDo!@U)&JZG* zLU5Nc5s2qLD&%4~!Q=t)-RuaN4HHF;)C)hF))D(5c2)XVQuT2-b&k?Z^ zyVxz5^B22|Nn;~+vAZfl{s)%hrAoN#A{t!-o&k1u60vbE;g&y%Ewnq3l5RC3HqIs8 z;Y4hlOS|}s?`EWw1h)*0^~BckdU(N4Y`Pkv!Ww>9gQ^giCEt+kNJMN z+k!OK_siW(BG!w`-FZyHY$@+9A!5BK@7DYsTWGzg=)O+`PRB0%dIhwnin~onTOj?2 zd_jbtlX)0ORd;WM3@37kOVKQvP2?OCrx@f;W*=Uq^sS{L~NX|aZf}vxDs9Ko@bK0`vboARmV-7 z#oDuzj{!kV9k)1_o9ki`yUr~^8XK|eV7|k@ExxgHom-AH z)~^Qc?MyHj&wzP=(-omX;8tZ!tw;mDeX$$ui zBH76UcX8y?-8Y0B2ZE7Lci$y)IIaH%*0glD5E+$x8VG7yx}Qp^=R?icLe_+u{bJ{r zbhgvVJt}sBmTae$dr~wDrx?w@qIm}h*44@_e2(JmEQGxqJ{8l-oj}CSTCLq_tf4W8 zdDz;m{12A0{nf^;Da5=zl;Msi!aWF+l9Sv|lb)qqm zZ|8m>8WZ_;?hetI$hUL%5XnxO$hUKkGI4%@$m5fi?cLkYqwhBIneJUgY@9RQzCui# zJGoB~v2pI?zC^^vuv09Co!phAu`#s7#ITdQhBP*Yo!o031ueAk>Fi!lBs($9jf&Xd>3r%!ftH=(fZ}!xH0rPxl13 zC;9k8JhSz5&k7k21ZTFMu7Xw5%!f$saElYM&t2T_yd)$AylzMv(vjA|wmQP9jeV=?7#VkbB*yg**-92$3m5PSoOW zblm6W3Q4QY-{`o{ohRfF%rU=1sr%imElRYmwEC?F5HB{ceO<1@%D@7w;ubHO0@dLsNSZk!JXxh;jL7K-kG4|3bWw=B)q zm45}xgIx2KX1pTArHlqoi1ow{eVbz@+R2Pq+Jc) z>2kLV=>()0kzGV=G={kQgqUayagTB-ibf46^@w{#(t3J5kjLD5L~Jyka7Pn49A?WC z?j#{5Tb^*26S3Jc%q;=GfrPV-$<<+QIU%M!!`v!FvXl3|z}LEmyH^Y82L!J*4R;$d zp*DAg7Cz|?A!1wjl>0srTh~+WHX)|2r`#{tPFUAScdw9sQrAfL5RaLo-mOT)_QeFZh7i*i6Wn@4YKY9_fGiP+jF$7-MKRxOg+ z@BgK_`u~Hb9%(pRylddMLfmvF$*vt7rx1`SZibM)Ku|Nq?Oed}RCkPMTBpM=azf;% zx)X(T0fP4#r^dXP=H{@5dIvSr+ywE2Gn=2(t@I;{1dB#&vHLy|8?nXi4k0FDi``Z5J7v*`EsjOZYD~lyyX(1B z7_r6fC2$uRuS}bWEpf{ef%UW=uRBZKD}{6df_b>qtxd#6>}9v15EHSNVvdn4PS z_#B7$EOWaNvC(+NUBnvNN8ujn757yk*k8Cudc}QXC&E=6^nhPqyJ z_Y>jg>k8F^d!uf$B>HaG<&|z}wL4YFM?mn| zp4D!ike~x=-f-s&DGdZQZ@5c^tQo+XH{F#&_5eZ6o9ceUdzOQxv5ONU6QX>B{pp4!K~y4k_L?{+4_{eEd}*qyuUiR3!BjDlzWiL8b<4e&nEjX*{L+3A*s?{r7^ zHv3%sc6M}}?sMxAvHiZ!Z70O^`#$$mc)H8|`_cVfh=A9d87DP$oKEOpe)7t-@X-fR8jE)_Bu2x@+E-(nK_{U4FPh_{fP*BiY+|vdhl;Jc5rWlIdzVE zrikgmkoab1^Nhwft5sk~5z~W-keD8{qz&x!F?*AtrYjK4%s5F4HKtS{uLpUWojmps zUvDYo-6Q00Ab8#>&;`r;z*av`QKF7mDv(zgeng)jDM33(g{o`o;=8VdPsC!d8&cpZeC z2ZE>U5?)Us)0*>aQ_{Ov$V))5PfL0a3HfItYf5>;gj_Ui)<`M*Z4P`2 z8UMEU4|an8z;&Y1Uc2g47tNw2h}=!YzA;zEdx$m3=2EJR_o$HeK*~X>GTu`}4yS$J zk?*9J^~Q$$&VJ>*LqzO5bmhDTHL!*J4qa8K>oPB02);vy zq`cRah<%6d3h!AV<{i2#yd_NN9lC~4s-mZ^Ld#ne{_kc$DtT!{_#L`dM5+_vcj(#y zscd3c#CTfOYs{MDchH`PKvUIA7xG3H%&SB)guK>-pXROVbrMpl1)saCdOd{fe2K5% zRrT%>QVZ_g;k$}ey$6|4e?38#=M%9ptm)kad1KDP?}MhM*Ov&->f4D7C30AO*+@D2 zfL!fmv&Q-MPPkKC7+T=Xj*x?(sqHNna=%v2aUgZQ4H5D?kow*iLZ*Wq)HL!AM+j<~ zdVdKSG=nuadPT0mHfK9XP}9=8LP!^>tBqGLLQs?8wGlE_>~!>cLO1fw_ZrD)OEM_X@sDid%c4~#z%$uma7rBLl@W3`kR*{xLN15v>I)!JgS@MRTm=NLzzp*03F$Ksq7J17 zdvlpkwlpWQEh*zZ<>p@Y0U(cg=DA8Uav$^Xsha5hxW{5M(qrCB zq~TdB?K-rxf{49y^qBWcU9@BG<_z^t5#e0@8%hoJhCmd|NwYPaUY_)JHn5~Gk!}r< zWIH&j9wO35$n9--o`2F?O@vRZ#T&qTn%;PLe*@1u=E=_y-f9>RU?<#Fj`C_XCX(#X z9L6$~8s#+*au1LZM4Ah^3+^CH05aNZBV+)OsYGrOQt<}m= zDUAB-<&p3$l(Z4}?4hjq}dS@QcZCKWUs-xeXFt^*R8V z;I)j9hl$j_*=k-OvXKb)&I%&G65(emjuI)`7E7_FGTg&>#%mrSIYibI$#yDd!5b1p zz9Dj0nRn7Bd&M%S_VB5O8D66pDY(MU@NOcFy*E0;Gf&gu-gru5xK^1$X2nQ;j4UA1 zSuEonLne1d>Uy0t_eID@MB*)cD5BX%nz0efKN6WE1n(UEN@Rr)+?k*GKP+#FSjG&W z;e8RYTnJXR8L=5)hPOXbsv&94MoKY>dl9t5-r+bmqf$}QCPr?Fk=uz>Av^XgGsA06 z#GYklcx!~1v&;;yL>0Q+baayj4hny9VB8~nCrnuC#XH9g}Gjq z5Yxh3Z(66+7Up^{6X6!(7YuS^Ewmcb!d!1Pm!cN-YKo`Yl3!n8aA!1vY=hYL9 zX5+^o~OH{wlL4DAjI^0p4XHJ_xnDmJuhst>Gz06`aREU!=TmJyKSt?wD5Va7m-}20?c8zHG|pTI~O5%wd+MM?@lb0>v*6U3uLiZyBCw{Ko$U5 z>K!4%>&|K*%RT2V)Xb!3`IyutlItAV3QzZwrjL+qz2RwJAg_46?`F$~fn3lWu9s$VLm<1ndx;zlzgYXF*Pk^> z^TpaPy`ij8XWGGA8&K*iZwC?Er+Z?3y2sm18oNi@;~k2Si_+m+?kRgD+ynfVoxdZc zE~Qcz_D8>RlQ*}9r(%ed7V>6D$_pt1`%TtV6;d`NR}1+!ELBg)mXI_SvMVGlgme!{ zJ0TwIk*8358V<%5M&tAJQ0j|h6yyj&*KgGj#dmWbvc^zs?7 zyw@xKINMnYwO`N@$$TLPLel36*7Oa@J|TG_$sER-Cqi;U$cd0_9nPBZA({3hlOqsA zuKkG-NOF@!+A8M;YR@PkPu~o`6hmaZ5EGxhUdvHf%Eo7}2mdepZ7I^UAD?PN;+w3q zq$>>42f^}p-dwVio2)K<`h&Mbh^gxbuVr>>T|anl6X9R(n+bM)@HP_3O}^h$IkSm; zDC7$uFA(`u$cv&m;C&@zm1qul`qKnt9QW1>G4VO>RhU-L za(5!x;Z?rl-d#fQD&M!z=HuQ2LcYIRIj=%pzj%X%{0ig{XnygA5wTYSfAz+&hBEvZ zXnytP6S3EyHtqr;-puBh|Q>zUd>#z!?Rzrn;hq) zcQX-tJ@b@z8*7qh#&Oo2@_Gt659B5&b;`R>$mXY5^N074kWYc2<`3^NA%Dr0oYUS@ zLM}*Gq&e-4Ct^K4O6~W<|~{X!17t|1|fKb6Ukp*XCn3r=Q;09A?6C_ zId2may25z}l={cJE)Om970!Es{OdI(!dEySB+{1%U*Q}KhJ|erHXASNFusy|ey}3+qXNCK*V!FXRBHx>M;^8bscH!np;XYA!2t#rF0h}c1Ki7j}>BeM5Xi(FJbLJ z&|N(I>Rl;q_CMwXWHor2z%yeheVj|t-S(s8SL;P&hjv7GX1qjqBw{09T2E#YM*dQr zL&Qe@QvDK>F!JT}a?zN`m(vBKQC@E&jhz$9|A*!)(%6WV*WVJc5i76H60s30ubVGs zzf8o+>-|fR*ga% zyS;8)RTn2>^QWr5f=QS^)pa$|d^L(kZgt&|2**cfz`YW^Awn)9QZUDA>f@{l=a!nW z9IL6%lE&s(O?{q-jeJdg>Fel)jeJdAS%`^zO?`$*I4Wy~Q8kgb8Z#itv z)zs-i%)Rxibp{a|)ob(wCgG^8rKb_ul>DhH?_g``XNhb{n)$Gnp35Zsec@XAH6rXO z_In-u77;rt>%<~fM}I&X8?ici8xh;WIy(7AYQNXj#faDz*43qm*cR5+moW)jSU1+f z`uZBu*cR50wXnW!L>k+|`Wl>rzfDCsT`KJ1q5R*|i7%xJG-rjNCYwvGvl?8fTj-(dEtyT4^+fp1 z&2>Q1_0D&!<^+>>k=SfWk7Y}`uCxI)oGqo=qn##1Y(A&!CzymIuB9GD#Lisak=^$OD17PkEl&3e+!YCt@SkUSGi^j98|wCK?m5 zOx=bE&-@3WcRI!5(@9r&Kedc+vJ&H*f!|r;#XiN;d z>sN^I{kYa094AX3i;x$I)Z9!lq<5t;&RMZIXKB49HO~K~DNY(2=PZ2*5gX?$U5|*3 zbCzBq#KbvEAKi*|*`16fW<7=Wd_*y%`#ZRk$qM_z>|`Pu*~w(-!dxoc$zSUQlN)#Fc3djVjXU($Ld^KO zQ-4pywx^f=Q#7VMy>y8kRC{>8sh2+cacX;d#oA*vrais1^9kEAdy-yyq7c)byYx&V zHdpV~pD_t@^&Y*Oh|Se|^iNE}T)j`95RJ*z`*iYCtewaEG*~|S>dXkionGHqX7<%j zvL@W={g-9}X>4Zp)zgUBsP@$_6S0}uS8ozxdbzKz_gQLG`^KVbH72TkbrUWX_Hti6 zQHY7^19~PA8`TH(XH3GV_S3tG*r@i?KQRfTIzXQgjfv`jSi}bFqMuWo!-x(34^0`; z*oY0*R}irg8>|}>u@M`r+Xyic8?3wSN{!gySj4QxL~O9`#ihcC4c6;~n20^BKOkZw zHbkp0u`avrJff3CY{VYXmof<>HdI#-%~zxN#4$7$jbXY0Y3xcp>_0T=q_GhjrrQ#+ z5gVp^6R{B+rUwc!5gVrO`6@MH!(tJ$8WXW$x*wMcBQ{L06JjDZTz^2sM(jzgzD|wU z2%RKie@k?P9!`Yc+rlp}kI-X@uwS^#9if-7hIY9J3M096H(Iv$FGlDqi112uusLd4 zvPM-ep`1V9{`v@=Ma0H=q@EEY1)-;8J;ANz2%PenFR`7lPsi%@L~NgC>&-DzF!I^@Gt$^T&DMK}*vMz=Q$%d! zvvs>~DbC?Kn61}*kHqdJvh^+^eEkReB0KC0j68a3HMkDqHMDHKk4w>>4f`TnU$vj> zGS`2`nUhp_uVlO-zRB?Mx-ONn{q>9<#3bymiFzmz+g}s)1Sa9#z=?XgXpH5F`UN6( zR8H2biP*?bj%D~{y^%CF&Xe_r5j%KdovaTLv2mWPYyOZLXV4I_ah|N51EfjA{SU@@ zaxBhPW8yqnC%IG@=gB%lh>7zQ-I<7u;Z(hnNf^UvdJU26^VJvHg`7o9ps)PDJw(%yoHso)Fxf_JH=} z>D5GR4D+;in7ydnkDo)ItqT#czR!-eCqIQ?#PW4nE*0kL^SZLwF?S4~*Pr}Mp3;c} ze-~!H*2gS4*cr*D2>G2z&T*@0e;YiZrH}q%$-_i?{c6b+BGrDgheoSM*XQ;cWA&-WnkojaPM(v*?$N#%t0Z8;wS*hkM9Px_P7&&Z3r>d395`&&1J<`^-)HRw`wqx=BxC5=M2i zewK)h>Sp~O5t|8H^byu1i!9?j{7C;Mq#O{;!;kdYh#e%`q%Iq=?K=5yYQ(ndokZ-q z^GPgXpXhz0u@U=3A0lG?`b1YekCyHE>r-8mi1q7JUCn_lMI^&_>TihHZ23YT5Mr|B z3w=z;B^PtH?9#srsR0DDWtToDr_U0xkq4qvBmcdA&FA=-ae6?%CB#JjfZiy?E5ngLsJ99!0R$s| zP=6-mC3t`ezt46^?-BAQ5PXC0kUqeKBHs)m|D&|oM*gTS9B>QGSU#$oCy?+Jp$DMU zF+G_{xPBdrMgEwcO&S~dW3k9vVj_Pm7I{ldUjK6Z#?{Ch{kASs^C!Cv_zuCh{kBO(AupcmAjA327<4^FQ5GNEgxk zu3HJ|FPh(V2O(ocb4qs+GFvpK^qoS?lX8FP`-PY%<^IqEg_v=AS`QUs#_4H2mI-CT zqtK^k^hqLog<&d?a}rgX8|QTKBB{A?PR}ofgjc=4pwxNo6h~r5<@s1{oY#d(V{_wt zEH^AMxnT*;>bMqIf;+2Jf_t`9f~R#R1y_*sVb+-(vjpqHRmKvmE0thfsRZj{QbIh% zb5rr|Xs6(g=)5i$i3Xk&EW!3Lxr#J4=g;fDOv0RZ{DDO5YUTK!F$qrrp1+$&cJfon zG0)#GWVhs)=l>*R8qDgmpf9z5Qpi#ucpBCIIUr0@W zE#Z4@h5QvI$%}B;RK#B+#LNjr{P%?PXv(v3QU4<$_XEM%xTycR5Hn7T`QHdJ30)#r zUdF$fN!agY{Y)aZm&^JsOQ-g7IsY7y?Bs>xd6!b&*Ozj?UjYPnDdqhlLd?2c!7nMq zWI_f1av>%YuJEf0F`00MUyDh&+o>4q!75=7HkaK_6~7ymvi()n-$}&wSM}Ivs_yS2 zjqRQ4vEH%7^iK6yUsz)LqPl;GEZfLe_bZmch}nH+4Zk`O8~GZ3oe065-c^2cF6A`3 zS~(v#h3k6$Lqs+?#`jwOqeQHywPT*v_D7S(dRp6mMl5f72A-FMC#GxrTbYEpac!)H z*Tz~{$KNS-io%%@TX>y+iimAteg7O0+rkF17B=vcWm88=1HU*C8^Z>E2PR<)8^-LU zk^`_BHS}+zQg)udUhLSFx{2RMG-emq#7~x^{&IA8<=|D3W_~Lo){Ew`+MD~gkjBQj zx!+Cfm^e50bD4x*+!(WyO3;fN{pYEa^`eE?v0k+DSBS=V(aJx18G2#c+{SNsc|lTe z)@tLoB#rf=jh{ip_C*_i0+Y~-n`2(267=F`e;SptUbGcE){FN3LeUs6+WUzLscp`T z)s^XAOd8wfOuq~f+vZHa8{1K$FZSLkjO~kgjoBsimu+825ZA9$6(cS+dLU1o}yML6(CdaI3xBFLDOl?n( zSbKW-*OSJ!r-y$d5!;>~{!>iC_GHEEq!Nr_mY+?fYz%vf9UH@5ex7Jd414+4R!VL2 zJ+Zp(@tcyywiz@;Y@6@#M>7fA+}oc(gky*i>+Nri5NvaAzjtM<-M0B&|7{|0RZVs> zef;-?nDwiV)MfqZ>+cXd#;?A9zbdJI^^5t{&mT$}>sPhM@y!+nL96(W1T;eL{cZS!#dCMIEc8+@5Z+*Cish(&~6aN=`&K7_4FBkqgXbcKI1p8mFm~zm|v6q)}*n1O^%JP z$+7V@+0Ud>*7wQ&JSL& zUeZ`E7Ws#WST7d&b?cK~p%;r|UZfKAVzJ+dN?9+Kh#i}C%lvktFtnh~tv0kk3-((Vcu`*^Sm7o_Z{dcI8^$fFh{aWV_WKFWZ++lgwA1b7k++lgw9~H5Kr}Yg|myO0of0|e}(b(u$ zXhhK<-*dtD5Bw*XguZWz^~EMXn>5zbP5u-j*3(V?4klrrZuY+*V*T12v%EEhU@vd= z4{@n*e0}5}7dys_kNnEbQuA(W!b*yZn!k%C_A@{g0oda=ttMZ|is%dgWi zHS50guP0)?_|k7H8hkPY?=bE5Z(&W?=G}fbDP`Kc+pl+%&7aqy)ZP@|F&caQ9M*&x zwbwr$BL)51EA6p` zwU)@fo7oQTV4XYQJ#oKtTU)9)kyS*v)TKl|ju3qE;XD6qq*OK1WMtSD)*~`h2-d}= z)#u_; z1he;`-<3;+nQ+MOC3Z|E9P-b0uo3GEUL5h~ceDgOJ>qxEv;^aG#Q#PJ`h{=)9`Q@x zVl@j%voAu{5ovR))qG9ll1@xULwoOl_#E-uGYPZqi2p#06wJCK{-dO^S$D)ANre0T z7`G=v{v^__GuF-;_fD*ReS{PyqHnXBi-~j-g1)onc_Ow4kNA6;g!9kQl-|Mdl}fO` zj`|0vl`#9=5gUy^V{JZ{LNJEs{CBui7_oo+O=8DH>>qyu{q&L@ zgHEt0MhfPb6RaYQjgJ$oCt~~E2`;^ZJPo~2K|wpI1lz2F3RKE^>IT;`3BB-xhN3ZE z_`x9}JZF~b1^1GI$#-(UV`k!LN(<%-!Cg}$(4+-Ldyyv0gtS--(}FUjv7V*{R}itD zrUiF02|XV7sXn5QP6}m)>F_Bv7TNOjAjygdT}s;i1p&)nB`I_1br_R%;8d@ zryOsckM3tc#I?8C53ukTlkdGQp=rtQTd1B7M-ZT~o@Yv=C>cRDx|T z8XD{& zKTGh5#EQW|CSmqgjCoNp_>D9+8Wn@nL~JxF2KD-*WgCr3L1QA;(@HVRRZ|GYr)toS zONG(6GUzOJOf;?x5`(N4Z-8Glf^rdpt7na1K9kU|8Yy*Q@6-sElg9d0BUnwu`c)(N zACoXwuL}MoV*R=*X8D>Ff__~S6dH_ewr7x9K?x?|UGiGNiAStoSKbY8)g)6|rpgr}2fkbkX zxHo=-h#E>7x@NVGNbv|k-x~yv60yEF3`Q~ueQy|KK8|*H?yYo><1`LRKVeBjB8`}Y z(P$hz79$0t(Kr}G8XJwq!NdsZPnH)DvGHjf{JN(@2Q7z_@1dtaU{pt+phyogNn`y=54sVtUZe-POhPYO z#_XgL^rB_(Je9Iuv_l(JoedyI?+PtQYNq zB}A+j?SjKhLND6K?4%O(qJ8iSm9k!R2>xXfdT~pT9F^J^w*>h_xGy^PhU@sj$+T&?osjB#?;t%!3XaO&K}XWqX!H)c60y621D?Uzy)*4{7ZNE+)` zzo07->sP;E7L(Ag{xLhL1ik1VF)C`_oc=9}*mik%GNEB>0^)HX1`>o(>8AifHgTy&*wzI@V<)HYB)- zNf@z5g7!pgG#&}=U=sH7(4dcKOf-fD)n-~xGw*YpVX^iM3pTMPTvLVxKgCEvPlpA6 zkj8rYUzX2BH0bHDphQlpr^A9NlU=n)zR4_y|#?z;QtXbC6$>8be zn5UzIi*rd6dir0Q@}#kTjSi|3vAr`o=*=W-^O)d4BDT$Ag5gZUHfIN8MPu5W9aMPM zws|eIc|xqs6N0|13ETW%nny@u+dLr{PQ%e*yd+~_lVdwKNG8catgswIXU>8 zOND+-3HFH{#V*ygWD6uh}Vz2IR$<7Yl-;tO@gQ!GCDD&DPTe!6_d4W1@0>;uC~?2Zsz<6e$=@p5q0LW)M{>3?ash1S!Tg9cQ}dirwk2$Qf+m&NKzC76fHg5gxk zMq_y}nMvsTYe9}^jPI`n{a;FL^Qu@~tAfW#W81tc7)ivoc~$T(ld#RN$LypMZ1d~E zW-4XdygK-bN!aGMg8iZ~ZGI~lvWVJDd5HbBHYmP0)r+;U+Sdl5?v3_ljovF76(cks>3R?JIb}}M%z9mf- zkz8lbUCIgiVyP0#DL#&Sx1x7%KMghs`QsxvD}!cda6-rkAb7g@JZSO?ms$mHWFYw> zSTE!lSjJMjg5yHg13}GKLBChIRDXC+d?jeU4%WOz(V*IJ0| z51?i>5uTBdd=pGsY3)=evXM!cKi>pD60y1QO;BkSSq?LNZ%~tn&5gaW-uW&VN*dem z-v#e5NhS-yFDyar-v^t8lmPM|kx$riI12U$yP1T!u|Ig>P4a@C8TbH79Sl}5q4*Si z5Xqr6*3(u*vfj320Fhl0g1-fDFets&YG#q<)H)`3Mq5Ut!+IiN#16)MKN#Fj8k?C1 zgWg1PofVfV=Y6s>U&!6%6#dG;p_rYc!PgNxxTifD{3xZ&9hRd(rFXDBcI5sPvy)12 z{`o1WL8WXD{v0%B5=Q=)prvTc{PRoD>s=e4Tl>MURR&ulWEPR}8>|Mu&U7*uxiK|j zCxe$_q~Lz+WU!JnHijpIw~5%yJQ^*Fuosmul zrJ00TcRF}qt#1~X%%pcj7z^GIX8_%m2SgzvsR0be5iGibOOE$2FA_rbaZJM(iv zJ0acR84%n#{2RO=5)vIFT12 zcpac{qF}@dC#ro!rNZ&`Uz&QPu~99YXiUWBM&ZQcOhPY;#Og{VmFB=RE!zwl5ZQSD=^!9FdS7$O8`8@w}8 zGI1)R!EZH`Otk!jOO1y1;&r5wiAhYth?Pw2h>?PEE}7U(8XLosiSLQn7?w<2_9@n7 z=ay25%0z5@N+qrn4ekNn1>Y}?#W|H=oG(o@VLM?|%OqNgWfN5(JF#}V$G$AFp9rsL zI4&+r)cuU25&C{vtoF;Kh1S!{63wWT_4KmDlT5;Fxjbekm7o`wC&p4K8;$abSxiE| zDkkzpWBjU^DEvA1Al~=Hey@@!{6(r4RbsVQNt7my^`c6m0uk#)mBauhp%+zSc2Ws? zQ8n=>m9k!3nHa|;^rA*$nrMs{H4^1^VVn8A+9CtscPA4oBBVZ%oG(-Tx;oaLs}u7{ zWBs~1v4lu=^32Qp?i*MZ;x6NN->y!)Eu=S`G-p9Ou1UNn6MIE-cWLF^3SQJs92C+YNH-z{N7J>5_)N$nKrnl6NPHt?V_DWTOB@ig1qf=IC5{Qn@5eE0p7>qJQXuF> z^TatJ9_%ymmp*Px=&zwL#CXvnak&umqCbp_^h8x5 z=*6Q%Y6(FvP}4HeKnQw)nwE*?LW~!!5^aPSFIpvT5n{Z!DbZbs@#3bK7p)U_i)QU9 zj!)~v141?f!T7XJJS?QtIo7mE3=>ij2x{8IEZ+=!as1m-r1(ED(?B>a*()=WCGWI? z-!MwiY~03uYBeU#mY6tOazPJnVcW2Fd@3JXXi59axtB9SO*bIe%NdEWolc28LX4fx zi64X*JDp=Kye;uFX|j_)HR0NCOZ-pBUqG<-+Y)~ZIbDN)m%K~D+YLzr6WM>q%{!Kbc?mHdl-$s;FPctG?sX?_J0mvajJH zDQiW<_nb3lp7Xk{SD)MM_s7re*6sav_n0#?XJ*bU&v`yy?j4^-f#utMO_?20{Y;r1 zu|4X&AeHS=j#PyeEcT7Yf#x+J*gB2923#JSR}-%Z6Ps5PuQd~!S5vPe6Ps64uLl#G zS2J$_6Ps5vZv>IVP&3GVS0(s1M4VTf2PLeK*L>l@k(Yts7akm0(F5KNfymz?NVOjb z#)KAemOltIwib@qT72Mr$7Qyfmfl(>R?{-ha;w1dkGyhlWIwMQ9O+%ljOErrs$oEI zEVuTOIWKFcjklYLwbRBs#KhY9&^yJ%+W9c9gl)Zxq;V_Hw%%1Hc0JbCyUhgW6r8(1 z^1?^VIK?>y=jD&$EVm14Q7{qKNAR^4M@j-Y38TP~($!7f+Xty$0)lmS#CpC%ps}9s z;7KY^if`?7^s+Irb~<`_nOHlWyh2Q@olbGJ=p5u_Q#oQ&IWimSgrliTkm@TSIGVb6 zCDY{ou~#}x?jL&yE)E6B@QcEnol<;_i#dvEWnG`aVV zv)m`nvLn`VAMg7#miv0^(^&2sXSrWsc{-e0V{CC`F%XO`j^u}P3+xH~gH(?J!JgoV zt^0sLV@v4BUvL*4N8G?bll}!W;vBiO(aZ&d0?jQTIDZZDwsE~|c?NrXnb`6S_Ku|S zM$|i##v4)Z5))gVA>MT+wmd_;J4|eOhI;9bVw6bnZFz>qd3BhlNfQ-z4KU2h!Njfs zhI#p!*fqeXUJ)jC4e+V=Bon&^819u}V%Gq}<8mJncr4{4l(SSQx8f~_;stHXAzW|Y@}iPemXvphPm+-R$@>_{gdXxR~4 z<}pDkTjnudQ_joU8SAxXV(pCeIx(?!#(6!MSUcn5N;p2q%l2?bY!4sr4P-l3Gr=3q z#A+tQSxyWrhc}zLJCYd)*4+_nd18>tT6VJ}i0OvLs4;^`pPjY5@m&s0I zsO6L92E`X%!DARV;FJ#tem!`W_bid9ur;0IRbXOkI>)QZ#GWwB^=dJ}y*aK@=6dy* z*b|0%ULz*G!GQp>^IO~1o9bmE!2x`9aPS{k7jOJ_aJd=JvQ1f+M?n}I@q;bz>mIS@! zHJIbDw>a`P5bUcKm-ZWOt3CUzay&)HFBz`(>QX9K_toA~LxQ@m@m3IVWnL4P`+9G?(FC(T;oGwA*V-Bq|!hu6A3eP-wT; zg~^9Nej?J_kf5e}yh$+x`|2L=DiK$&z24Asn3sFzyWbmaNbm%6zqf&idB%~wGu+Ma zN}k75=JyK>>BR*5VJp%UypY-(2jjc}c1YvA;Rrta>j883!MHwu(7W9dGUxBxG=K)~g;HAWNk=X2g>qY=xFn}~hR+reZj5RBO8yaO?IYD2E)y*tKE;GgrJzC`U#&%5!B zunXQIBIaJ@UGU)r?*NnRrNbdZ8vJHz@kT(7GWi$Ie~jh~5$ER%aV>bk`<*n-s~5am z#!l$*&*8~-7tDS1Wy&j53kcqL`PI|E8`1`zQsJ}6OJ09Vpg%tksebde#E_SOT=v8t zCRMgMp-^`qzk4OGATdv7X9D@tOCXXM!rx2!iHNvrQgwspXs3YO@*X4N>UGC^pNMHM z{MGL}UJpZrU4h*51~9=D$Sa_^=M87F8ESzs^S(EZ$sQo6x$h-0InSDqn9bxGYeHfP z5%(M4VR4s;i2z5kz?}+F?;6!YjD0U0dg5awO_|_td?QIOJ|yCP<2$2R$i)7}cSf;= zNDBSNcUegFfXICvExX_E_QbP>P-Me3n-q13xZhZjViFVkD?(DVx`B4wZ>&f$h=}dolX>7f631L!Ey)II!g-mR{a*Jg|T(rp}(%;6sT(rq6(nhw_1fytP zAt{xMNcluwLxT8IKon+;olgshCjVewZd^PXm)E1BEot0%e^hiK;>!G}_{NZ6E+`ad zCpEz`7ZNKel`C^$@uML@nI9JiSYyllxTtiW%1qG@zpYVRG>9Q3KS46zkl?mP@woC7 z7t2WF>Q!8n+7a!BF~Cy`{KV5k}&AOL1|4h#3XgTZ+f^7N@bjrMNh5 zQU$%GxageDyJZlseiMZBzTGYyb8aKa}7Ih5?Rx+hU3m-KmK4*s8U}eP!LxQ#_ z8`ly9bEMkHlLm$2;MinAW;IYPW(7pkA%wET<+|uU6s*O6BU+S{yVas8?HYnl-k)+KOc*UA-pu zhNqmO=o60MPO81A9z(G1?Zr()f);EaSHkup^d#DGb#E^`BCe+G#mj~SHSHj35s8XZ zuwz>d<>?^mGWiwAMk0+k)rM>ERXiXa#fMC~9=0TH6zwQ_89Nj=&|@9NP9n}@orHP{ z%j}}W$0COzL6rDdR3&0|B`07l(M{wi3<-SLJ_Lkma!}F=j z+%GP#eqtwST$%d`a4Gyr&WQ7A?Y{7IG8MrYcAz*wsa(AViEQODFSi029G6#Wg7q3K za#Jc-uc#==#O6Lsbg7WK79-*;j}ZMx<7zQN3?*XL2_vBvBgE&1h#%l@Q{cZ*Vjhz{ z@V8k+mN2>B!0e7kixo^F4bAR&wAjexu_i_{Mr>zN76|U3$B2DI5<{yV3x}3~<+0)% zlSDX&`yR+R5l+B*Ma5ju;GMS#LKAU&>ItF&5x1wFAX11V(w=%d*qI=%Gr>JIl8NFj z+u01Ym;iZ976}zGujG*3Q%@FkiI_e0Nk}zCEFfa`)aQXr65Bh!@%+vVhI!U50cqp3)`{&nJW%5vHqDW&KW{y z4&xxzykHcBA;&2|=5s$BL@{bc9Ko}K1tQ(6SX0vv@j2rHk(J06Ve9p!$Zs^%GdF2ZBBn>}Ceqdr@)(}0 zFB3h9IB$F>h8T^|aPxc?SpQCpVv++0j<4^;BqGim%f&fkC-BB{@n9{im+{64$o+fq z2ov-Ml9l2)BJT8QwW!O)_Jq}O-dH1=k;aUj3t(rh7;aLLH~s*!PK+aBym6Drd?Lmh zcYv%H-xxyP$UFd^Op9$qoHsU!14bjJz`Y&x#wKx`$s8c)jZNY_lf|{+Z6>h1S^UoA zdmuT%@@8?1i1XMMQS~+S&z8VrTf}4{#$%5_svpE0Cg?FFTg6Hu&STrf6(-hW+v7a; zqX@l@c^QvA3wCyhT11k`W95PD6m^Lhk5wY_F%jdjYCv|0A%>90S^(K2rV()-`$;S? z8qxMLtbIW9lUT~6GmwvotYXp)1}S=MpV-7?5D@g(KCzRC^Voiot9ELS?H4_X7>^Bx zR0qTmCg?FF2gOt(&SQtgPfV=G4##=yh&W9eP8bTi10pz3@M8tXQj2LY+|0R%nv zi};4geb$^6tC;vt8_ijfTo?Z^!Mpm^!Ojhl?tkf_mCYLmZxYc&oX2j821MM* zy(tzGF&=9Iss0oznV`pz{4I8|9UJ*?i}ZCdFBkc5$9e1@k%KhGV_m_{9nr+3B9HY3 za#yq>VmvmG$S@+tW1j-~S0oWh46T5t87G0<7p>~0hulpnoD0(VeGH+M1CGjc{!k{k z8#UxOlL6Y2EcMAw2+!wP!vs$z4Qc)sYsy=q8yJEolSZ?MN&7mMTyA7EUxEf#XzBb~ z?-_zmF!3$pbpEXvBJ&{`)Yxc>4K&XS()k;SxYcqx|Gpu?E+D<1cKwr@;A%O&|3DM8 z>{iPe{9H`zYT5J4G)0X&50`P4rT-FX+-h0+uM%-3l>Sgdf)Xl!6p^TS4qe}z9=B3&w) zRjwo7$B{o_#9^7U`Z>tX7Jn#c@GYCHen}<=0#cR9w1B)z#H?~p55iQR6G;hAJ_z$g zCL~Ll6kw9g-@>V|_g;lm+5Nv+^F3%%lNXpg=x2BzYnl>%{26nenbU8;BqNht{vsyj zfS{e+{%Ix;G0E#^Z;p1NqRYeKP-HN?0qW;vG8o81L<%#R1*9O5hy9XFz5((ik>{9f z1X2-50ly-X{Xl9GdBu=WgB38t0x9U%Wl|5wFd&ck&55LhE1e0^IqjqVL?(5BU@Z#y ziwyB=!gEjj-O?idY1Zt52#F)Eh@Yc{@z3W#wu9xz{E|%C0l{8Z)Za-Y8d?dYToiu0 z-Ous?rWzEQ4sS|gKP>4_YH7$^Ab2b03GPwJ8SSsYJn3I;LmKMO(8)tj`?)_v;`-{- zaeeh^zX)keU;T6_rg}1lOdwJ=hRh*SDTXW|QX__JAX1lzIamLg$TA{sytN~C{*6+gP1Q67e^9K=02~UJn*@nS)nf*0P76Qo)q=Ns4A%2t0 zrYBVNLmyF@gSM#XuZSVorWO6>?NQ@m%M1QJBCfqE$F)~wUv|J$F1A$mV{eaKfv8^D z&&C=Y%UCa`82~w_*5FKJG`V9e--3Eo_MeNfbDxOSpq>M9hvApEy_c|0Uv{Ay)Q9NA#F`;#}EZY>1EknFaq= z*|*Qlv0gZKoCfQKZvs~KSFjzdS6M309VYmzyG20rk`GDYPjbcwtHXPops5m&!a%A5 zscK2&-<9Tm?<98*Qrj89HGtlKr=vhC^i`Zq)E=Gie2+B9TE%wn09qdDY*; z$0LuV>sc+R^f`qj3nGTP`@Cm=TZ zy%~@vVKkxV{}&KDTRCE9tGa>4&Q0|KV&|r}{47+S#8AP`@Z0Y&3L5$cn6!kOmL0(( zZ~Oo2f@Owxvf$LHFOYZreoQ*SSRM(au|Jwg^`ha>aUf0nG9P0q*Xx@4b%?lL*VKQP ziM_wk)IZ%7Q=JKVUDLQ;=QOt0HT5r=RAJlen))R^Av^Ts8hc%{pzd}Sem@{~7H%F8 zI}5i6h@FL7`lZQoa`-0ffI1F`ce1P|(h%MjEDrtW!+^8~QYw~Y?9Ov#TdT=9g6GPQ z{I)%?%*lRN?!E2(eN2XM?``jkocqd! zWG#HD=Iz4ZDL>R3J(d!F=qGr)5y%if6O->i(-z23KOd8YV7WGsVSWiB&SS&l$~@dJ zOB&~~;rrcpi ztp9inxlg1Nk*H|;FL<;pYSQk}#`;x^hH7C_y-CE?Vx0dz5m$@EI6H}cd(yaCB>G*6 zxLPFo%M1zHVxqs=q@r3pG6GKi{mn6?G?AS|qGDX(a7expr>PxMb24b{S=`h$q8 z#U%ee5m$?;adxKqsxSK4)ncljjfktoRKJcPK`oN}w}@;Jb|07IzsJPx#b@2eI~V8Gu_YHk7Av8k2TZ%!b~0nG66jGxnGG%K_Ix+`rNO} zqyhX5p9ReD+cS9|2tGlW;SXR^7xqIdpgc4E=}ho_>~%!GVRE&c`RdCT{wgNodGpnm zFZ|6+4sA7g&GL6JxdH_9n&ls0vZ|xWYqo!!$u1z6*KGg1A=H0xy)nnX6+>`kKF1gR zO&qgpq`7`2CU%W9&+lYNu;yRj_a%}XvOBT`{smijmiT{@9oL_~^`9Gvxx3i1%ugT^ z75G&g@fkeh@T)Sxui|7UQpb?MW8e9gV+eZeJAeEjwCr|C%l)lPtjE6h&lwVUY^8sb zHP&M*{Vjvhj`Po&IRC8i_mal>XN`Y2hRlL8ukp_iadltg7l@{=`&$1oB5o|N^`Bs3 z$MRagG!r|P*ZLKh*s;9Uug1iV<+c9*nAowr)^AKCD(XY+aOAG_J2LqI2#(yf{val6 zf#Aqp=O;4R1q4U#I)4EZ$(r^4Y9@JDv)Vo1>Lo8m^wCjUXwxIVwxFHD5{JhVl!Uv_BfHcgIe(`3I2XO9sZ|GY%A~d$1<_4ywjh`q{S&?XO};V zNlzeXXIETL*d5mscKeGcmFo$6{53>OPxu#l!ao1Rr>T3wzPO&S&;OM)t|#pCuMu%Q zVW0ohaJ1v%*nYnZ5jR)v_g^3q6?s<~kL~xX84~p81Adbjf^qDC|CO;5ybJTQe}ssO zNQdLfeAquv8dv7S{_jLwnGgFVMx-wD5&sz?W*3Pw(GkB+48igo@oyO-ro)P87HE$8 zr9MMDQLzLFo*y3d#}G*g+cSq_{^v~WnZt2^I};mePx@DgxO$z5tJfL-4ryGy&iENd zV(x}yfmb~SvIO`uK;%1q1{tYH}mO1bLYe+E5T=2yhwBy!?7yM;JT-`7E8{$aX_46fvCuy8F z9Ko96yIq(31Eg^^z2s*bi@CeL`kSAdNL2g*dyrZ1Z@>AEFbV%0- z&oFtMHJAMgh6En_-LDfv&||;*YlyhI|KS%Nhvji~zZTc-*ZfkXaW%c>mm}ipbOP3{@oaYb^qJnIUZ~3>VC`LIRS}@NL!)T-SLYiA~DZO_7kZ=#QEn=oPX~4 z^+@CVbH`76LVm|@M4G6`u*JmiJAMl$Ie}mdzvH)K^412Ux$Adj(h3M_?)rV1G~Z-2 z|N29id;$bD|N5hu6k$8}{7Fp8vYmVWOeW7m?l`C1_m?o)&X(`T)%3o<-e{$^w z_srw^m5Qd^y)xLg>8{umY9UZ^`G>zwIMYh~|BoYNf)lFj@~$C4O|#2@l(~{HFBj`_$+Y|BTr%x`IhQOzskR8aLdzx7?w51P zwEN{;GVOjjmwb%uxHUj7Y4^(mV0VOTwp`Ngm&XIaHCrxe_sbviUO2b3`{g0L7tSs1 zei>e)r^uE^+Wm4x*5r|PzkC}!fGwC;+WoQz8f?M5vNDx0DiYvtI0o}cyI+142#)1^ z((aeb@qRhKwEN{(c)y%qzRPy(e)(b9oQd5pKP*3DV%L5J&8{HVOj#LmlwWZM055&7se>@9A^SVWd0;@*xaDz^|Z z5&MbJ@N87({XF%kEEd;Si^<1H#WV6K5m$?6WUiU1N8Gb< zwMb2{7SGB8l*-kjv@FHM)}pNZfryI<<>M@ump_rlm9V@#Ld2D@yv+GU>JnCv4-<)s z2jGO^d+<*M`52QNKz<-n%8=09_hAhQBtbS{@(qyNKq|^^L|kuqQJyuLps!Yvw_*s^ zy^>rq3(Mo`URiFKjl|WoYFtgL%AKTfHLWTS#E`pV;JKdsn+eW?dMuLA9JK7bQB}TR zNYLwEmeq-vnWzTHUzSsexDr;Avza_pCLFo~wSe!w&o#A}@-eIGlF6n+CThJVyD&Ko1ns;g2QazEn%Cth zCixB<&FgX+k(BT$&a1YZ!(>E2787x8Q9G_JYRi?RacxmsZXx3QTw8uLk31jvxsL2Y z#Q3K)v`!tFLd5y`fAT65>*xBi*8J3dt}lBLF?L=AJ8#LcM9edn8bBJ#DKX>?BC|{? z@%#=mJ2aHbnGA;gDb58Ab`G81&fjtx7CU{4-V}f_X+CT~4k)JRb0KLg*`o^R(nxRBe!qKMYDfv5cBN5kL z@5Hs&J8~CkTzff!<-vWEBbd7(Y2)EL@^p+HoMHbfucBXK-A!Ib(~XGh8}G<#h6H`% zU3rU$8-wr4w-*{8+Wqo-vN;pmH=4=~OzaqJDo+t{W3ZY0%MdY{Tc?@4$7Bf*96QaV zw+Qo!imR-7UuI_FK?|bheVL1hYvty$AQRil&1F#{?(SuCIf{sDo#t_^(_Bs^jcXl8 zZ0j_~!$$a%92xgaI5Y%$iz9P^e3pt-gl~-F{lgYPs+vGD!#O}eGTQO}fz@QRF~Jer zpB=F^{Xov9GP^eYKu%bUK6ES3mNJQmX^SaP!j>}A*Qwj|Lz#<-ZPRx0A`{!D?c^&< zsC9xlrM>J=1m5K0nzon2nAn=Omt##Tap(aPdppP}Os)dKHtis1G5I#5(R7sGG5HAy zYC6hoOwRIqH=X2OCYfNDgkJ3=k1)vqN6F~<&hiYCM}VNFv%JK__QNjnIuqLuyU06C zY(M;1reA7$rtOCxOHIV}!>%$16Wcmn<&-C}x40xW(A`e9dDlr*j%I%4~w zBQ{Dng7+mbZgiCu$d2n9U1fJeg7N-|>_^1(4O|s`B16kl_l<5+FtL53r|h*Nbx-Ii zJFIjh<2d+jN;zz`@tEx!z2q1swr}*3Q?bi zfS{(2T*G85-y`ZPw=nqy2=<@8au<{5c?Rhxe`ZpTXOMpKB$EP1OkVwE3X`%xFt7gd z3X^S@%$zbn{>|hZ5X@_U46QMBw|#7&6ijR%8z{3fv3+ci%+191u|e`tCcU$oaWPmH zXEGKD<~3M8%VY&>qOt;$U95@9s!Woz7&}8`Eha~Rpq(MI9+UP5O}&Q7W=sYFLCsLv zfyuwD876x($-(QNVRAT=7kK^ishq^59&0|8bD4x;ABQvbaQPLJyg)Fo;qrSXdxg=A zkn5TJ0t7W9$41MXOuBI#8!ZbmDa3JXjC_X4%N)nX$d{Q+U^`>wYfP52ow2e$la_2}oNUG9 zGqy8M_GIG2rW$=XUJhhZ3<%bJyd1&g3fq|=r!&dHc}uspT6xoc3dv9Wj>_Ei4CD8;l zQ|0OPSVH%HN|Nlm0f~#)NpTT7Ne(BCi`YqWTnxDfmXqXEA}$&y$s>jY(Ri9XO~gcF zT$xXk4K`x#Ze>10E@NWny9{zZJYt zE@slWvKhGxxH4ZXLtC&s=G+*^ z@?x2j3C{0^BoJ}^XR+L6NYH=2k_U*Gp73oUxCPxH*>J9&UfM}zkG=}_D5Z(ZlWepLV(uG6qLB3knW0De( z&O}neiCn_fvL}-|3E@z#M={lCCLh-ghe|_UtK~r^l`FvAOVF&5zcLw~-sH7b{>5Yp zl(_<=S}UuUgd)QY$sZQNxdoAXq=|-ZLGCq)Jh0ug#i$bC4XDLhnVreEklK)fOl~}3 z$rDT-gZ*hfN>!f83(z+Vsm3H{7E9_fDbNN^cA-bDl}(vs`_PhhOv*kB_gkT8Yh_O+ z3mb+*#VFNCBGJ&p5a-{ZT1+(>|AQP5`AIXM$zSj`cUB_bajM?npW5J;wQ?5`H+I&> zjh(gf2x;8dSu4*mvFqNovgKYd7c!beXq|XF>*VbiI}1UxPGi07FPqoroK8>*Q7*Ylz-vPmKv7XCg-l{{7ZIIWDhGO_cu)INfJFpfeYApn^N#-IF4ZQ++;i%jsGwei7 zG*li)?nHQlSe_>0_JhgtqS27$$3T-TtL(y5E=v3;`!TWoc^4DcpLfZjq;YM!E6%IC z&~gY#ci#S1_@0?3nz4iH&2&txAUY7Gn<9hgI`7M#CSa=`K zKOmFKay64}Kt>SRLd48p_^9xAd58(l1;r*Jxx@t5y-yMOo9&Fg2k$8oxzA)FkQa%F zqgb#00?)qQ1oDT>MnCLaLlNTdamoUFMj zJ282NHCJUnCg&R(JJ;lAOzr_eJJ;k?Chee=aaVg?&Sx?J2(AIH%jHa-hx5!$P?H;S zogvhwJBaKuB-FX7dG2sio?=obAUBDmgza2#Q`R|w{z(bjx!_M(`Xmw;H~x|X4GDG= zf6Ea>%sL#;2LG0!)5eZ{7H~`cP6T!V?4LXGPbSufcjP@L)`xfH182}qR9GM0m6@4X zAO0(IGO<4VR~BTF0iqWA@SZHnBqtE`;XU~@llrW=FP~@9fi?H#OHAfMJVZMo^(vD! zK+sM|{f~)ludsTDiEXd2YHmm{D$}VRMBLa(r_#<2=~R?7ZtSE}BiV9W=+Cb}+)Squ znbdj1jEi(?ks*{<8`At^NGQtfo?d181-)v<7rv*NUgaVZ4K;#37KK#lRX-*#0;w?> zZWgJk=S^EY3E$#IZ#qtN&RizYTXV*Csv6cFe ziH*-n^OrKxcoxVIBIArE7#9(h#Hm)- zw5bkqsvm)vR985a9Xkd59SoI9J*+{x*5oLBEBJX%L}7%L=|EUMy;u&DZvDH z6ElgF=2RG?Osdz3L_=r6vLWv>84lmh+Doa<86qZcGG5KBt}$5(1n0rb>XBcK#}0f5 zw?`pW7FCSNZ$K^*DNUq*2;ZH=yt1nKtl2RHy89F)OPHJi@(_`gOd3VaNXe#lvK@TS z7wu$Ir7uzLq2{2e3#qcH6+~S8c~C9-4K*(QJfwcVY=~XK=2T`zOY!Zjms4f?oiu*& zVes}0Sk9?RFi8M1m&ogeg!l2fC6{W-WYoKGjsluo%IwWk!V<{0MB0;POL%Sb+;L+$w^~CQGnVIO!c;#o!5PgEFb02;GrrT%%;veFM;NkipJ`J^ zj=y5gave!|+L9Eq>>_qnnyjyTWnf7#B%>N6&{;hkbU z*D9bUFv-MEA_}PKOiFDtc@JioJ3i`+0s(MuA zze*kpB6bn=W(>Jd5Z+x^pT>}?&EcIQwS`D>NOUwS*y8HZYiK7WY}>TBD$c~VX>s)o z6WgZ6Re2`1O^d6Sh`2shJg$!wSFe-C%@@U0eIl+W6j$SkM1!7CLM1V=J)wk}!({t9 z^)yNovEm&G@BjVbtjLLg6b$gXj zg_zj(Dx*p;vF%kxJbuHR#2x{W212eb(4vW#uefsZGtNCr}4av#tEtt6Th4}8%$6iGO;U}ggCDz zsD7j|UabywPf$rjqGD-HGruRO*-W}aU&Xyuf?CRC01(_;C8+gGtmiALt%d}iuc!{h z5cGUS^+ybO19E>sW&X?5%dW92sr*c==PRocOswZ$QqMB6o_|SIAmV1Cm(<&=u`^K> z)!LAtb*coGZR=D~U0GvWr-~ZL#I{bAxYntv#&BM?b*icvOl<2^RXdp2)~OoIU$z!i z)oIeWh*VX*_BZ;+tVMf+$6i+Th(v{LotIT3Cbo56R&ALSu3^?2uc$6eo(6&|^Hp{lTehd(~05nAo0KNA>=Pyb&q^FEHaXjyKe3 zCaC!b?7XQ?5pgTDy6QTUU)ihm)IUr%vd8MFba&9Q>%H~V<3v(uWrcOGAC%elmimDm z+w1D9GL*{Q*Q&1?5^<5XzG@Li((bM5tB#~`vA4eJMI=RI`b=^OiY;l%nwv)BK-yKn_5E^TdD-3@$2(hWlL3+Nom;2;OS*cRf~x|t8A(28WP?g zq+(6@&w#v3ny45K5#nRA)0|V;JxEJ6fQgORE!C$??AdZlHP(xhj0l{Mm4`Q0p}ktEHB2@F*-PXHlPcKDv<_Owj`!BVXtH~m)@m20vZJZBI!(ll z%GT;WYwVoTMr8_{wy;sXjmk^Jjkq?dC=t`6PCyCUsH#kG51T@yR$QvIqq2=^KpHnH z9kI`V+NkC+nga0bs*P$(#ErN%Y7G$+S8>FBs79nWwXo+=?Nzr7NL=jgq*`Qj8!DRth1WS#P-b2>MJI;XLeT0i9|&*_p#1u9h28!v|+F7 ztdg1FJoqw{r?cA41m{64VP|!Sh`FVVMoLj;7R+(>On(7RpEpjV?tN;C=nL{x~k%a1QDRCdWMOO09{oDCN=_mqN*^l z5#SS5%a9-fbW@F)*a*;F4Ps(PZVxqri5@7lobRayde|0jRQ6I|5OH&5 zZ?%+&ixR!nN+vc+^j4cVl^wZ#)Bz%HK4W^?VE&3B9+EYGjCb=`Xkm2BfcQ!Q?d{sOhWPF|lX4{Zv;b_AIxb z>dT}R#Be;B?5~C}=>r5;gZan?_ZF$t$$wQ#hxD_!Cvb)8sxxjVI#b>JT+U znY!D!I$V{*s~)hTw!5v7suB~so*$|H$HcDZN2*T@2{q?4>QQPCYwXj>QECK}%sf+% zQsbHIXl-WvQ7Vavt?4K=o5>Q6w4>A_CW!%A#$*e}%u#A1lT$!29*$BcnM7GLTK&dk z4r@j$5uv&VJH#<+i6Nnq|C%T|M%^OfddnE4G8rG*HRM>8or#TpW7V5XY>yhJ-X`Lr z#5mQRHFoYEuZ9{DtU$)AQB3R#WV}jZVk6sl^(EV}k!?a;9GjrNVU3Mr6VwJKHug?X z|1zJ1H4__cCaSeePC>83NHR(N$mDMz7)d6n z!%Uv!h%{N9XYvw9q{-?A6B})&s8AL&c5JknqOuTi(PpY@j~Az6qD_(-!NmG`n);lH z?Jd*dqRlk5j5Kc5G)<+?hL+tq+jOOgnDLG$rPI}EB5vpMx$2tTl-YXh3)P2-_1G6` z2ovkES!xs$>##^Bt0Tb)7Icg~r>#;d%l_9|xoU8T{alLMCoHypG z+SABXIKcIs6`ndiEjmD%ApSL@!gX5piG3T&CJG zv0uwvrq1TXROV}$cspX5O8bpgr@@suKKomyE}K;JwaoV*_hqUAUIc`%zuIrKey6Gs zF+Bmxvs^V|4L-NR_2F{Wfr%~8ay2w}>hdg)E05FI@+?=QO{$=|p zSE@&uTmXXOeWgk;B}+F7UOKb+dmdX=F7lEhHwZty+t8E}tL6(wTEPJ195)iT!n51#n!2C`XQ zEr_X%=01>QHTV%@$F5S6)n-G2+X!3LP9mnvoo2!}rc|q9raX3)@}t^XoJg>9*`@X{ zu{)Pt>M#?#bJ?v{Y9n>;i(Cy=pU))|rjwC$*Q!C?Kf$Nu6ZU2%d=H?eu*rg-Kr^csqTcy2@lK?Bh_g zUsW$4>3O!J@` z{w7^LIvbNX=$aV7bv8QcIX*FAk@vVDhj!%;Y5?`-xm- z@-f&!%@LLB8I$`QAgDQ_o+2`azQl48X0)TK91*hv`UuK%R83`KpUfUr+hR0>NK^7z zvK(6YG{hAm`AQ>kv&?Z-nuxJnHUf9vRD&3Tzq58+jbMU#;S76R-DHCMFGJpa4lVZ& zA-M{99an>xVC?;e$RZ|a$B=zQV#||uWp!MgB#oQ(j;qTt#FROq4CZcbL^pyN>$vL1 z1k2MATKTxz#sp)yN%b2OyhUJA6)kJ*U<@~@x-r4;nVVGGnBe!!O{xs#Oe*|^j?{S- z8)#G2WzFl^Y^u>rzJi+uCe>*s*Flq-jDvaGkcXZ(d7)R^P)!RmL9g~CGCD@ngX(Tm zp*KvbTdYBEm{hIGJ0F@`eX=91osH%dccd%`r}emJP9~(5tCa zp&g?+N2%OO@3@*%0n6iVex6W^nb=+A3H2S36n_lNP3_ae-AlENH7~X@r_CqSUM8;t z!CM3;)Dcc)cl0OKIo8-6{Yj-Nn%o<)ol`11leTQ=ZrdSh`9bH%oU(Hqb@SZ`ak#uDk2$P#8hTfVya(M{z|4i%Qu+F z_KPaY`fM9euGp3a?B!scHTLs5}4SN|MRLhlW(>d%jeZ#CcA*3<@0Jfk*M%i z8%>HzW>OvqYEslyLxPpe1=Zvw_y<^%*b}M?>MtU0r*Kh)s-VWqgLvY4QDu4Aq_T7F zWmV`EB<2hsXQC^r1QQx@W090*f<4@55}4o^#M$bKs%}VdL+Of|L?p%kte~ma6}5)R zhJc(fBy9JmS5%H_raU-y)NHhzKqSRamt^g%GbDHtaYb!qVxQh#RePD({ns^hn2Ftg zT~n8s*wf2v>LwF=I(JRgs%|`1ZHIX;@|v1V#H?2zhZ0^>Gh@gTL>4hY|I{Xur3TtD zUlKE#f<)Xd@|s%2#Ma`v%JM3vN(tLC--z2K-B9^SW9AF|y@?yD1`#*Q{8y@aF{ye$ zCO4ENSmx9OW1S&QDOFTdz7Nkppk6mrYbI|2=|rRxlcNja_6?AmYA};uAxhv{{igbi z$t@tbR==qdnGA$8M%4VNrZX7}1T}xEc}%Ll2X9V;<-gR|Oo{^;PGkjSmSi-0nS~(oL2AY3VMJ5x0{7vK)BBs|(f{}1XHDpcu;bvUiQ6DfF z0tDm69o2=&))$TDuIk0)6cE(hRf$ZNk1(2l)hs4^fuQDJwUmi{-}9bY$)tN_qq(Ox z5phrU@2h>RsZ!NgzORllc>@SqzOQaF$vnzvLOT2!`~!F+KM>S}bQVJ>`k^<%x>XFh z2PB=|NyJ6JjQT)~#+wrgWz-{HM|19+MCgpQ4Z$dy4Kzv@HN@Z21a4FT(Ygl_Gs`?j zWB?P4kS`J$!FC3{7!DcD$v2E;`($716e8~ZWvy?r27i%o0oaM?B5z_U_x^GwU5SW0 znarey%C=(i|+kD%-!_oOmpETs-A6#DE5+Roosp$ zlLR2xI@$COOlrZGadAG)uJU4Ffgdz&53ITaY7hrPEwj@9(szyWo2j7@`NEfb$c3e-$qn8nh();F5 zf#v)Rhu^|lxOOkBhcqA(?9Gelkwl_m)dyw`Swtr? z*$D*KkVW(iLjoT@rVBPq?Ze`_9}^r+ug`FP{uTa?nXnb`I!r9n0_yc&nrbncjsJ(HX^iGa(zGYy+O(8jY)H_iPwQnwjOS~>y7y^a z@ZHqy^{gIF#I;TtJ)Jc+9+uI^4GH35SzWFX+JP^?bF3??D>3;92*$&*x(1Pyu#Jc1 z^czfU>y*=PGqEjLPB$asB4jz;fi)N*6XwIYgC5En`+J(@^*Pqq-cnvCyoV)ptz03l zl`H7#q;aiWLBA10&O=@mbn_VU2a%pkuqXUYWFQml384j;YIsblEJWa6;7@W!+j}dZ zmWUlG0f}6!XTI=|U^S6DK=2C>0m*3lbHzZjrHPrX0+P{s-VxiT74>*3q3b^{=zWF+ z{pUq}gox=I1)vr$YSB1#|9MG2%fwoKInK|o=*FZmc8Y_YSMQ>yDI zlTJLR)X?LY4CXndhMs9P5czRVc~vi9@);1EFJ9H(5J?GoZ%zG!Awkcqsc$l|{imk( znqW=cEL=lVVUhx*1ChrJp%{+jf4UM8 zv#P}B4s~^PLxQ(s>gpA&!5&_FHflD+q#6u%>gw%GaEE9#KQY0PVl+pY;28+s>a44O ziLo<+>|7=i4Hau@&gbjua?MPyv#a;Iy3+fG*!HTY2N7{|Zhd`_HFnN@E6#^+>5HT> zK1_k!|4UP{Ip$?FxVL&s_aWlO&RcqoA;H*bptlflvA2Of(8842?z`XCLq9OYj-5vO zFcBAx-_tL*L`_tvN@ivCo_>wVqd>O6Kfb4%Fu~uy+5n`n{)owP-UT$)J&BlBMokkv zFovL=CVB*?s?2tp=*dhPu$?A)9+Szun`o-PX0n8L6HWDgB4)LWc{S6=VhHBdOrPUa z<6!S#G?$so;oU?touw5>q3)MP7|r`SKa;ya(9Zk11e4#^8BKHjER(G3ji$LyU~+7e z(X`N2nfw6+?X=K!h?p}F+5n+IF!gf^&g>-m;C?N{bn>7k@?5ujCE?`@^Wlg34WR(cwdsOSmLMms=x zTIo4V1_S8<@vxQtiplrv`POm`N+w`)GpPkm%87j6r0 zo2gF&d2sL0O&=!W_71)D3++ss;#kIYZ(sdB5jU3m=}v}-cXya`q<*>wlh#1+ z>1{tfj_ug_y}zEynk%s1`3=h4U(aIl0L*dMh^%2UiQ8*{KFnklx7PqI+M5#E705u{ zk%);2xDFqvyT=e*hY!?)IF+5z2I`AU?3!($zRJW#Xn7?%YAwQk*LU0G#qM1WGR#UK-v&l#iTfE2J1~so@dQqz0(ky8NY{A zQJt$Z)q-vj{03yW-Vj4}FGAAqW7I@L-;Ou?rV)BClg$As*cCO2p~5f^-hosjbP^Hs zYr?q}!!0KLzfV$oY;>H*M(f6;F&=9OsT@I%8Pbt7QPHxhdCECjcW2TL2*$e6dH|C* z;BA67U}uc}l*zk5J|QyB5b_3|#*fwWW61ZQ8LLG%EOSbD^6fp6UD`F$KYS`x`+B4%w|oHSMYI?VQcQ&Z0kH^K`Dykht+Rk495^w(~di4NH>4$C`#hhrW#^2Z8*O zifjaOEryu##M@a`Ag!H$Vp1iC(T=waHHAlE3EeC+FD}~5)1^pbqRkLWH8_TtygrK| z_{?{nUKm5ZOqB}#jH%{pYX{rQkY$_-SB$G6)qK5%3GR1{=17d?Eu_gk8f#%n_!E($ zOfaw11oJW^?RoEfT`I;7M&tQ$-k7gv$7t{uhv)01F?rpj+~Y0BlMOL;OugbY_hK~O zcmG|UOk-T#O?mP%!MdCBSPj-awFdqCf0emtjOE<_NA5{+n#^OdJf>%2RG+U)5^=Zt z=IilH>}|UFT1>!H{e%7TeEleqGd`AiDCKVN`_b+g)J}ta1NYsKmq|sp`^HnMAx!Wl z2L3ws0zH~YVrX5ZaA+lHzSNZxF?VwpYderdx>pQ2Lu5V^^r|82V>IFAm})B%EVI#= z*fK7JWj5qOj2)9oPjtEGB|B|nNF5^GCZWc}`PM`($B=G7zS0*bJ3EJgEYW%@lEhFQ zILFTSJrek9C^r5qWn$vb6QFSf<4-~=V&jk1xcFnq|G#!{TsX^E9*kp-*f_RSH%X$J ziv6%-#k)^SbxS7Kfi$FAv}f{l6{Gn^cV)602x`93{R|2AGT-Vwtg(BUW%?iyQ+Ir8 zb(zjQ4Rd#UneXG`#wuNvG$vJZ$ZM7UAE(0o4*q7xYTeTi-@aG7Mh|3S->Y4tM;JTe z2K*B4hhS%|9?#?s5VX8jFEOdYeclX*1_4>8e`jL%AnUX@-IUqxLDuQah6Hb1uG5dQ z#=iZ!PA4$gxCqu_aQd`Pzsuy^7s4TYqPkumBjV1H*6Tl6W6zN`=nS8m++Y33tob+S z%0%2uv_UtIBWWY#2Hk-)Ci3F~YJ=`c#GNc{&?^lIPL?+64Ma>^;HmybU1mn=7Tm0x z8scxL54Re@hsnA%lb?VbA(FN{TXiSW7|Xa8-KzVuW$XEE`coqA8T2+iHin!7%iDC4 zNforkHhq{#R7|{NRu|j!X(sc4U|!qwWs@pw+hV(JKGW38w%~R>nu%?}?Rpgx+Yf)# z`-!-=*b&#Ccj!~3ai0G#&BYi^vK~59u{V6SjUnr1vthemd!Ssm70=b*-U{&1Y<59ah^Y{)4n%) zSdS)6VrT=L4}A}wKdiS9iHgE-7h)%nBYG#3@<0v}`I$+6I2FNjlB40??l!I{x$vN6F_Mw6Eb&Xq<}C?=KBlw@L0 zzmMtCF{zBEA`#Pn&Op76>AFS}!rM@|6F;F#FEnjoN974UgNZ#MKcOcsG8%g(b5j3A z#6`AK`Zw0t$aY%)L&UY<>9`g=tshv7mQ4#Lu7n$aI#Ue6H-DW5{bMw_NaM!NX}!^q zVCe6i4-uJtxI~Wa}8sU2NqAvI~md8cEi#mZwN)YQV z>ZMHV7`&+0FtKCsqE2CAqr|T|;}W#&+UrtWy)Nmjq;Vt85o{ftcO1bUZb;hM;gZf1 zV+Z5mC0&|`Ytu{GTZ-jL3|2C~=}b)QO6E8H5EHwSxvcXuu`8L&x(JhAKf?HW2)-(* zOEQ@VB;zV1rHQ~V*R(aW@Ev8evOH}v3W(;Ct_N;HT1fx`aLG- zAG|MmRe!*#a$U8g9c$2Ic<=P8?iynU@10)NeThUxyVme^Jt*^4J(Nj5Ai0U$V6rmV zd?DnT*58=kvI7Xt4%c*TBIete8{i+W>$Xhr_7TpW*Y&5IN^oA+^>`-vIj`%w%eQ1X zIMchK4=yu#?WzmUQlLCH^hqYyfqX>d0ugtY=BB=CG-T(_bFc@~2UepUH%@Qs!s`vO zef6&1h((7{@Y&n&rMlH{qfBpSG95@xB3(*?B$VP$=39dI^ghz0__=0;LJx!Ho<7PX zLqN_kv19O_F0zqw58ki5r%N)~y4kEi?&(uR`U{N4c%${6zQDxZdcCKw5{ZgwL8?-l zOf9|vf}X#pTQb?O)12zx*X^0?27ao<368kkDJK z$q<>%nrVAX?inJBn0yTcbI%aj!Q_EWMw2mef=MnQsL2?)%A{;%qj?~5i%Cr&sCgg~ z#{Yr7F>-{_c#%v@z5s&%*NfyMGEm?=hz%|xb$-B90|oAm4H=Yd2)?Ia$X+7-1-_>+ z8Ag+c9A<*8j9&&8k#i;$?cbY$$3$f0Rh!`?yhw<~6re;NyB{HALz!1JOg8R5Ek+k>2vqaL~56>D&`&G$o zk!w5Aa!UA0&T!~1lrUSQ=q^L-?euJsYDA);DvjXn#WkoI#AFVTszf$$DtnhWTVxv( zd(S*uWG@qYyEt3qFcZ70%@#RL1m0PL)A(1(@EH{>?NINX(ByBo{?G4zJXeJ`ad6hn@tB52tVyBkHzCU?8L zLCc23*Yt%L%V)@Pyr%j82hFE38eC&T|ACUhND0<#c_Oo8G+E)+OP)y1@14W7;=CK`p2Y-&+E?^JLUh6@?<&T%3OssMTkU2 zq%548P~D$kQVa<0@$*E=5OMqWypbBL=?`^!8|>tbyuoA?kS0Xl=2Tcy+?(f%G>fr= z`|f;^51C-SYR^W}IYxuG*YZVrF~Oc-G=rF+Wuy6w39c$zLhkt@6JqRiBr@IFft3uN z{O60zCE{8+Ut~iJ!Mf**oZ(cs+JQkC${+ca364`-XXcOGG=%n^ICAqx#4qS)_l8ma z$T%kUWZ>b*E+%#+DiAr%#GWt|h%7scc3ku;5ZO({efy|jZ{1c;jW&^wj6)AWg>lF=d5fqISWwN@OdE=>Q zq!g3o-5}@5p-|CCIU@bV2_P7Ii$*H5rVvCLobiiBYOtm(kS#>sWKBEhaYi$mNm>4G zbJ55oPW3VnlWH~*(>m`!nTtm5a;hDJVLwPDLkiZSzc>q|Gm!|96hAYp*}jEHQZ(`) zlR`jN5-CW;y!+MzQWcAIBI3MJEYgFCy;D&vGLXraC*U{nAXV|ma3-sPd`VC$b{Dm9`=iufWwFsEwMc3(4^Ce2_;;o|l+)e#|Qpv(JwiC^4za zZ9YRKChrQH&uEGH{347JaL!m$eIfEVyrmi6#8Oi&68Ya2{zgwtwOqu0=dq?*D{^F= zt&L42!^3w$u>I6jJ8eF&9c*JY)lW7Cgkye_m~!w$6~~;Gn1&!6^M}L?EoNhGiyZVN z(>Xk*!^3AmIF%xahBuG3sd7n78VJV};23J*_{2+1m2@8S37&YVrBW`SM8mJV#kE>n z75#&y&zn{nh-~qtCyO&Gh0i@}tEv|{Rb9vjYreK>ERx5U4kA+^ACBoO(i5(;Vg1xr zLqtNpj1{Rj&c;j@+0~AFL2WfxbA&DXk(v))KUE|@t!8bwy-_dRa-h6 zc@kPU%RnoB%qWq;a6EZi8${NEa4K_|xAiFqUel|qhKiJi+Tc_-Seyn4e7&WvYH$Tp z1y4HFRVgH?p>JiBsH={P)Hw#Ns4V9Ehsb;x6YBcc6YQ8-SKW}9jPL|9u9oYnw41oC z)X-1xHAcP3aq6j=cc{$HP55GC2a@q2s1&%4bWKWFUuDX`QViB~v*B;`)liXDzFZ~Y z=f0M-$CwNmF%>_T!jek_$KH=%TlG~ll3>kNKix{EzUoLZyehz_8Un#louyk$%wEcQ zfC#SQcC(+0sd=Gn`gor z<30U<#hm^>#0<_H#HwC?7UoGtrW3yTm!X^WTZdGHBeh5 z#?EmK)NYBfb6f*;NMepi?{1)uN=%L=JjXRi*D@QZG>S=dw!mHB>#!FMRM#w6^L!?S zBY#7cDJzL%pHgn5#<7I$TB5Ox*#g28Y)Gm>yVBA;%F|AaS>>Pt*3rcIXK_m*Y z9i)wFt~loMX5M;xHJ&6GH#(#{IvxDJjH31W6cL6(tpLw z`9H+eaR2}FIS>=W`(?)syPof$tYD4ddOi@lp6{TJQ$C5*zi_napw5UqvWxHDc2E~Z zM!@+gKJ)gJx-K#c1fOSnN;wA0oahW|2X_pi<#kjmbD(gWzX8%sUCJBC_$?@{A41{h zAs3PiCkfhWH#LQ1B)x468abqz86$WtrJGtPf_sW9v~FryObo6wyQ#G#QF{A5$Na`Z zE6?S$_3RI0dH4u!Ch7kON|d&a>y~cnT^35Un_^ayaHAPP;Lp#CmJp|!OFuT_N=XkDoQfaKWpou9+#NgFn?iN?V&15%p(Q( zys3w(BQXWD*q9~~(+~vPd=J$|V#>jJ9Ou*7#(;244~gjwGakphEHNWMIOcVUspZEE zk(hRV%qWg=hRJzK4>d_r*)zl*YMP|7XNW!291$Fmc+2QvpU%j(JpK+JJCODUNZb!a3|&Xoo#ilP9=E?T2mQ zUi4P2Nrs2BKFoX3TXp6br`X%@L<6Mit@?{R1LvpVZSegM^|r_v7_qTE_f^AL!Zjfu z%(<@`OENtCyyV zi)48C2N2x%SJgifQ*)J#$xx2#xibjIJU|i+w}y2T*5Ruvhs5*-;h1=d>Emy!u*8h@ zw^dqV%E3Am_x)8>QDU9~!M5?LswFX*{qi)Dn1X(JT1kupt3fVLM~SHc!sY2MF^m0} z-V&4M$Mlz&FW?-X^Lblh_JeRfBP6C7tWLSi<0R%i5H9m1iKz#vIA)r}3;^MnITF(y zu0HX$k|ky|2ybf*3mx|=a0FjfWy|BSh=x<(-aF@9g=Ba*4z50N&J8%mc?qN*rFx%) zR|V}rUQ;zHP(IF7xB}CgWGD&8ybtoaIxaD@VOyV*lA`a%oGRBx&7Ea6wiaE%R7 zy-9|L2ZP{V3{m|hru11G^ES!IaAOdT86hzj(`?K*iP3({B#C)gTHO#eO=2obs~e)` zNX$upTgejR_%W*_=7PL?c8FRpF&eH^;G6n}sO=I{u@O8U4tqL8JyHqxJy;bCQIDsS z`{&9b>8=a}g5xTl;}22QDIb1YCQE%0oV#(I8N}e+%`wev46GCG6}^RT0oNM=?EcV~@LPE{IPXoZi@Hh-YTS3?P& znfy?VtIm?4QpmXoYmSfADweoqvOfG+Z6)D5;GaVJkJTfO(QX zwbKOkcrD5&Z_}(H=S?`u3F)p3B&Zq`!{--+DdvM1!4f8@xg=gY3gYa+bgH3o+7qaCaFFmwpS*pH%Ox4PH;~u53J-q zSMQ5-0~rtf>vQ#mNZSkW{078KSF1!igJ8^bwU>q3YAa|HGgMlP9Dt)ULshGTbr|%5 znW`>H@CLb=s;P+W1v6E97QYwFQpfAkvGBi{I9nyvW3jzpp0ZB`+ul7-E#?@%U(8cW zC6(<3^Hiz&oR94V3)FBC+vXRl6(Y8UFHG0MgBbfH^FsA4r3&WCMd@1jBDIZTf)>6= z?TZoTN4R^f(nx|9zDPaSfXeJY)BdG;NyN7BFVz4M+rpF8U=iEGlhsHO+rk&C4@7JW zU#t>DYztqaW{KDqzC?XR5)B_4z+?DVYPHB25FEq5QX3?d?FCEKb`jePma6?Cwihf@ zhed2JSf);rM8jTx-qvz;P9z@)Zfm)^BB^XoS)p!;*q*XNWopQEXnV>^m0iU4l$9zM z3HKD7f>xxXN9v=863Fp_LUP7wcL% zAyUbY`IE)(ajR9h5o|!NV`qidvRX}v5e>3NWp5nBz!%1x?IObpIDo7B}N zm@1feHp`rn>i4E?>ReNfv3+oxx+P-!&NfxxNsh5SZkt*uVtd?=>d|H#WBb>Rbp30G zsw6SCf9*)u-*>7y6cY{G_XzD&1)5{d(Xf4w&`$LQ39p)3!XJ03eG>CG%wKo}cd1(> ze5D;{nO*AP7MM@amv^P>%ez!biV6C1AhS|KrumI-lbM@&UAKD9gfa!l^=@* zzizN=lHID1i0$3G)ng*IckfZu!>8d%gNBgvUe!S41DMU*k~9|?;!AtU z$Bv?VRS$_-C99^rs-MVCU)~itCM|rgnj~^rTJK&pQ{=iIvqB_p0=N0SY6Ah3A^QA|G5 zXfLM32;M0^WzQWlFDnc8tte&|#RR?Slsd)|Zdm}H*MgYSD*k!euW&{^WGpC40KsEtaM3VdT{*1=iBcbuDkS09Kx z27)oas|1lla9)5hsVYh2CM4$)apNYmj|=L97};M4enY3$#K>l7V^>wq-n17P#Z}2O`*R+s++3#%N%3hVf&9-LlTUK|ELWlJZhcH4$s)BgjXlZ;zJJw95j%VSt2*`N7(09ZtG1H_^Wa^T>s5@2mHV%6+*JiBCKx5| zs!}9D&%LXTkOZ@yqfd$0Sa3_9~`Si<4q^&t3l zfDBrbM8i{H*29@GgU&56UxHkLn$MsMu+Y4WXEz!2a7p!@%#|7RSdx+9pFlz|7iQ2C zC8jU*3v8Jg^i<9#JQM_1gBkQ}lHe*t2E9yDwT3O@*?I>3y~uOE?3Psa96y6TOA@?4 zGlTw11g~OYPsyPF5wZ6sGUyEbxHfR?<(TXw+5r*6CLSbCXBvPK zw8L!r0g_-|&ZcvS*m*gdj%T6%)erJ{Ks#??K0#a6`s2YYc3$>$@gXdBhV}Gr5j(@? z&?zKQr&x)Q^DSIa%&F6cVydXq7sibg*j7$`^Ia64D^Gyr(fQvCB#or92-Xiv;C4#XbiM{LfSZEX|?1j_SSBK%T7_oNbX zTg9GRK))3ub)n1!^duJl8T&`|OcDFc(xZBbNPc*CANI<^`dg7FK=3MGVf~{>>$dO| z59C}#?-zL*r(KbXl5;toSL8*BDX$BN440Vlx`fCVu$I7aqk?`yBpGA@Ni~si z5>rvv6G@bqis_C{CEZM7{)Tnb0w{AO-A*K~M#x!C(v`(23eS+g2s>0+_YuK!f}*<} zr%JkJS5 z)z!tv@z(Q6dFrOy_quwH#3T=crz7^jxsy&7*#hz`$tn?B=6ZU)h%IwHy;a1PxxU^b zV#{1#r?B{CZlG&?z$M%dWyTe3L%l}iV<}I=bY*U+%Z}$%tGdGX(V&D4brq3KAj?VW zip=i7ZMBhZDzY2|+iD}-R^&H$))BYfSa%UQ1A_J3Sob6eMw=!&g=3tZ5QAf86W!oL zEDyII5ttF}8h~Xc#RRLkCR$CvRKcpCsm@8lV-&tgtf@Xt63qC`^}vsK-|e@;Tj`-9 zv*CST_->6>dX&iFX7H;Z*o#(rJPVBpSe{mT14-~jr&jujk1^-eko|>qD_vE@{)(-Y zzW+Dit@QoB0dKAAN~$m6>1*728{L#7=!0$29n&_t1H}Zha2suZe~K%#yn8X99lt^W zrJidQM!A1BZ=<`%okwjOyI_8salkjN|diFz?- z$jKfXqpm+1a=ci{9OT@Zww~xb{B(%ks?b({%;ll;?rBgP?er88T>r4l6v6e+JMeqY zc6xyb-f?DGN)ip*YjN%L8WDR|(oSy_ncf`U&IsFTuYZ($=7TII`I%$cwILK6J8w3EI-vNdFXTiV%Q_u5|BMc?EY$F3#1Xfp+KP7Ign!_Sm<(RoRt;lqpI zu00&ZE_x6NU)`+?TkoQGaVjSjVj7V+pHT_J$r*TT>8isbt3l#njOwaAk!O3tdwU?& zGdiEh%OFEY?(bjE>Ovet$8-e5Jge)I1YhOruA7P2eebTHm7F_1#l7G;{h~;3kR-_G zIsKZ*wXU$T0_maO63O@s{En66{_;Gphj9#*XDP%yuV;}2<#|D`6tV9FdqHm#u_b&_ z|H}D<8&-iUvXDhmvra4aiWvU^b_!4*!M!8>&x>JPH5R5B~SAKT6oye3-63 zhf^(v_46=@8K#?yV0%sk8Ls=0BswT-Kt|~liD^|G?ze!9(Kke}&EEnUtKXc9IR|T` z@%m$usB;r$v)S;s@p{laj2RimIR(d`@j8WtzWK{Cem=(Vp0pA=jN~sv}NbVnhl5~Zb zdMYu1GShS8)dUTrXjvQKBH^ zJY8=l3Fg6>y2&!!_uvaJv-DDuVD$S!uMx4M-xqqLh#mcA>mNyi(QmdsATd!`i{Z#N zTmMQjJp2g=mTby{u236ub*C8VOY;5-Zc#ZCAXliDxjNHIl%NknDiUrj z*e~YloU1T~XZ*pG&p47q=fx?|Z%8JIl*OI|GGEV+iAe%ks8@%(!t8@wp z@5NP+)jH=I-Y;zPEVW7aOzK~X=|mFL&o_Fdq{8!yqAB=Rg~H$Pws3rIM>3N{t{Q=? z)n7}D{m$%KeKjVg0QAalb;h-r52xx4sn+QnB*D4fcRD^M2Jb|Cr~8m>_3yfVufHSV zJF3`PHt8cGzm(!%pl{NrI3MRI2yT6oz8oXC^&fPGZ?Qb7p*R@%@ptQ6bT*N{Z*n`_ zqVtMmy});Gx9D3W!5FnA-I%aNXI+Oma~s3!qFb~}5}fC5(Je^0HgKJ=RlgD=4SJ%? zC)rB(j&Vf9=pWL~Q@sp+oC=Pi_6|)cHm1zVFl(MC`ur z)NNVfTEpC388XZx#8-0)I-Xy_sKc+ivy7#yr*WZvt!zZ8PJw2s2id+D}Jw2s& zh@3hCa}JCWr}Y7m?uX$?I+EX5Xiu@{p4N4K2wK8YidhpQIR2c`oi}4lFlwdg0V4L8 zrs)|X_L!#W6cKw&({!UPoR94VX?iG0P^)R_YBf#2PccEQruo-xaGXB^W%fncRu_mJ zTh7{4%C@LLY>NuSjtS@dRCY`_r$46hY>l&H!g>9E`haKRTlCis%so)7+E zV=~+KC$-VN3|_Uqt~ZkeN9U$4{Nuex`L-S^ zVvpBteO1IBuiLu!4o+o{&TXAS5}c9U)_+TkePiSuon9Gym1IVg%Q0cl9!o zU=$6xdqixFh1^4&%3u41+}~pa^U2^|lT@}=Gr4y}Y%j>652g4Vn=@MUKOz;zw6!>u_M3h zX5LF>4%?C6xDgRM@*B5+h#mPox44KM`91dul3+~|aeI*jMYyjzVV8ZPh%uc+hQdLku3usrc@ zGf8Dfl84-vNP;?i$nD3e{5pKdok9}S;lu6*7XM0nL02ERw^j?LtJQ*Teu@cdwV+#w zBpQAYt_bCY`Lv*0Qluit18|?Kpj%$#(~Nx0p^#f$WDW>kb139C5V3ayA9b6H*efuP zx*b?(zj8y)gz;f@xutBVru$0Bx3Qo{Y0 zBxqwL($z)@H``BGV_X{@pgbkqKfVPJ!K+Ut+?*7{*CC&!nC2o_!rmZ{xuZy;;ni@I zzXB=kju&YK*IU+;B#2yxvs%1+SlUez!Mj4gkjxRO0dkronT2W$uVR&U*B!z#b9pYp zin)xN=@%9(Prl#aEro6c5qo8zf;&ni58RI{4>1+p%_0RrYJgO7Z<4_KE?S423B}T7-L5e)Kj-@InEo*__+`WY%4cXyOq90O{wS9R zx8CL$JpYt#>&@Ku$AcJrvsp7Yfdrm4Y6$Pbg;dSlB#}BG6G-Ng@TzhONON~7$2gxs z&HqYrR>ZFTTDsR+=qTfvUCVUkY3atD2+EWBIL1IA{M)L2f)Twk{IQiU=Rk0zZRHlC zR9oZbOH6CGipYA2Y3;TW$uNfVY2&^ik_!a$Y2)W?pLA;Li+$255c~ojmZzN`^A-r^ z<4fi{4dAW_NP8QT`FdkmQG;}Fhtk#)on)x7t|#C4){7)D*R(7vV`3^$%=#Fqb5E)faPD<) zK6v;4-h43Ud-Flze6~`~+*XHD&U<2H1j#QVm}AUTzvmuqNr{R!+m( z2xjx%ZXFU{r5u8sd%K&@Voa)kee7j7|2Y(n*#}qX`npfCg#Wz@@96@0)qPeZw-a(O z=2f?sNS|l;3+%7CgGJ_d2|01U!(9Y-gvf4?oFpHJJO$5P6aeYxP7)amQjsKygxgOu zkpAvzj&VNe1^41edY;dWWp+yC4LPep2D+zN!qXw2A3@%9FG$P;n9;JNqWpY;Q_Y38 zS_WjOJLnIV^6(6BW02wQ6p?k4_zZD`J6FVx8zbB`B2j3Et)Ltu+xJj3NnI_-HrRCER+@!lQ0H3AbMSW>C~E{ujmsE&K!b5=pRDpWr56rWpSha}(T^ zBKEG?1b4lN{q4Xoy>G*X$Fwgh=siaMuWA zqT4{E6390s!$dA^<(NtC6cK#;4#rG!eNbvv!S7%ES3ZMcV(?oM{}q#vE@ml7VmM2tkdq}Vrdlm>8P4@sU>D%u zR%LtKR9Y3F@3xAH~vGP3h z?s>CO8d9pQai3h|`{qH69XA58<3=DElK9@lG(YF%o9~z1Ab7VTi21Mp$0YfwHu%zs z$`g#4N$!4!5fO|TPjde(GtVs> zlj^hoN6eU*7|wYL36IYsU`&|j&J>{;mSlwp_VG^p*+UWy_Z<#jz@e=l zk{EpZ5Z-H>=N=WoQ38+YJok*vryBehw5WOR#h936k{crUh9Z1AeV*&w#yaFOlSCamvMqPxLzqfh9mFhmN0Drf>r)!O(F_||?|#fN;kC2) zY<;~uMPv)edys0qJ4+-gG2gihMG_?DJ9oKAy~}V{WCna~*`Dkyl_X zicg|$aCeG~1(^ad8{D5o%ID*!Aj=_UlY3nx zJ{g{s0QtfFSELNc29m59sD8p5+Hm{X?7AWcL3TjQW;d@$wGj ztjKmZnPhY57r1V77`DFM&6)}KA~8Ji*^u)$?&+3nWLjH!a( z3hj1VvxMA-Le5j?p*6UlWucf*2qK>W+3U_B8AYx4d6F7gsScf1@N~q>Ap6{fB*FM| zB;ELP#9c)(+~&&{hr6M!{Sp)QO8gSj5qAg0BsvDJ$R38AkGRKUXsAf1cGbhqizirDl^J4cT9|2fqag;lO7h#nGt@ormL&RRoJ?YLDISti; z&#s(wzY@U@^RTR8p>5$^kCSdVPU;8t;#bJ|w4E<9XRI7@X28hyyA@^IY9QEFGhK*{ z*){-52yG+PPxTYX0}vC4Z9ixHm}j9yMIa`Sx1NFZ;eNOW?Z-?2!Do^KnRSU*xo7>D zWgxi9J?jpo{R-x|b8gLSxTnE+!Fjg<36DQGqk$-l31+m5?r=@@6Sn>9vO87;`xlPS zm)(gXce8UJyyDIfc~Ei86?d^nujAYYuez&5un+czeZT5{C-PlyUK?L?w~C~Iya?mr zHFvMbOz1nWL8|NSFCt%qyg_nY#FKpfcGEiGN9P!@VtX8sx<)a5vP= z3>6>>fg+*{BGYD$KZk@jYfg?#q zQ-@-Lu{Wc+e}$IOG^dzg?H7n$`$3swV&>DfdXfbFJ)`*_39Pl?3e`@C$z*;P84q%h zqI{?q;P{izOcB9#0*<2j z%$y<^lNy>@B;?@OlFuZQ1htyatVt*L*I_=hnPP%E%x6+a5}j=@wv4`rIqxcp+e)PM z5lViOT#Tjr33$sT$b-;3@!wWewLZ7!hkSV&X3ql<6Ubw-1_~^hERydvj(N=dB9i@8E5}3%fMBY}Oq$3ab$B)}WiE+it;@4{DRWb# z%Xp3{ZL*Z45{3tY;Hsds$tiMB@+o7=iPV!+WlSBBwSG(wkz#(#Ya;fHql|e=1kX6| z_qk=vFcJHWu*c2&BAwv9yI7vb%_k!E>tkijXCiap*Gw2w)_fsS3Vx@FXA@7Dl_LGu z@}53n?*C@l6K0#l*zb`&VGfHNY{m8bgh>_2a18oFS1mijO2fD6 z%w3VULHd(~ALDwqE9&ybh}ac%d6SRDsgvwD*rqF(CL%lF7y5I5fb(;cAo9QU@Vq}r zC6g-otf|g3b!GFXND2r(eN@@}Eiy=As+hYXQzWK}376s$e!YeBscMW!@)|37MRvT+ zXQNe30g>|{uS1!uni3-R%(t4UE@IDftC`j!1txON)yxMXAIR3LnJFS;Wb4(;T#;L_ z{=qd#HM2(K@>^Vwq-gErDaw(@f5=|5uSroH|t2E&dAMt zOskvyBDLzX)G)_I3PSx%hyAK)3Y5k21n01|%vci68Q+Rr%OsIR!)M@JcnhSeW#))n z0@+EjSY!~q#{-6Wr?y!o(y=9ceZ36IdXbkvGLmc+S@S21y^v2GvqxkP2#$4i%r7Eu zwuP}5q^>z8G7jV@Nt(zOm}Pzksb?;U{0ee`U{9aoN)2cj|$Br#6Oji**U$ihUiQp3^nP5H9!t@uxCrn(D!6J5U zYH7xZ*!iNRNf2ox{i3CrFJk*nOS4I2wDhKy=Aeijja!|ZTS zh6=o2EB0`0v@}&jHtvP%c?M%PirBBgwlsT0?3Z3!nj<3iyRI!wnuz_bYfE!Oq}E2b z@(r~L+p5T0?+x2x`B((M;=!^{1mAVfVk&W}B_CVq&Egz}TrYyQG*e>aWoUJ+%ncI$ zw$581ZH!YH^I>_1B#tB+ezqIDWuN3R629ZJW&@_GB{97pfmIdkNgLBf@}*c6-go=miZ-T+2!6!_>!*#0irDW>v@!E+ zs#ScH+nDVl_$>)ebwdQd9KlklDsRhvC!&pMFM?l%;FyUb_8Smw%t{gb;seKA6}bbo z!BVao=WM^`(8jbDvEOcJWBQ4l_}ZpgDpF>-l?K&0AJ3QDB9mdA$=m8$gJb&pvQDJF zFLi2iOio`mi@dYj9>MmtIOZV`oUPiJRU*}7j%#Dih_v)$;%jrNzTetZ{YB2~vNBs_ zmh{0k=ClZYO@{ZPa2?L4adCSD2Z=oH%VCitaE%RncN=p<1it~n`BbUP`QR5HSO$sU z_Z?W)h~U>8SZ;_s9^vt@jj2$N^QqVfuB~pvZS@uTM%h%OL>BtnN)ieCdwN6U3D>5o zQlE3)tgQ?ZneEFOk+*!g!Qz|*!6(Yvn1Kx_A9x=GOIve^CH&^&oO3%|j2S7!Ouxct@jynaSc@ zIsvmMeCDt28*WJ!Sfk@VV7v*-=K21ovDznF$;d?g;0wvmt#alPJ<1q){W3 z86vMi9vIWv%oiC1f-#-VQj%b0)y3Q<3GNPbF_oHN3Hk28<-4$6H}ypD?f}X&<|&fk z?m#z_D1!F_#zFdSW)2J89k>mtx|=&9A^3YnC*(Y5GB?F-@!f$qk|HEgx;tP%dYH;2 z!MSSv4LZAh7V}8B^^T?eTE`OJ3s)*8 zgS==qiyQ&@oMgAiuF7yn8l;ywDDpoLd1$ex*k^?Ln$99~V85`ZylS2kSq_3%pI$XDi!>-7a#A4Y*USKs79dAShKRhH z!1?quBSl7nU_SlKc#(q=)8Bl};(Q9*x&rz1H^*Y+ACLhiV{_WC@TqsyDg zKyXiAH#tQvRDm}F!X3APCSJs;3eRGb6cPCnVw!@yVM>c^0%=cDiG}L9JII@+d5jDM z8Dx5}IL{7)F&t#DNf6lyX906ThM1)>G81GdtYWdB^U?Vm?xVdU!q1Ctg_!qz!RJNy zfDHEqpBMcNWVFfIf@`C~N3dV;tX0&+i_`|GMN&uPBRD!8LB^OtBJ)JvH;YLU!w>!s z-q`~&W6esDav(2}tdmqtL8gI>Ggn2P75TuFXi4R9IzxMI1^YPOR2C`xGe286-ZUWL ztDyLN!g$l1gx?~9*WSmQZW4oi8J|xWZ+eN?=M%=8!6eaei=Q0l?}8XJNn&b3P0fcA zjyKaJ#$E{=Z2Y-kA>Lf=+>^<=h&7UHbzvub%LvvlEEeKwZ`q11J zc^z`bXP+jRtgZOy%ml$_pC*`xNrs2ce92=46seBC|kJ zNNS5Lyao4QK|VH(MVdeh|DB|jh`mz!vFS)MGK}AWI!`g(NQQ^;J5bk2dUFiD5vXoP z%y}2*L%rY=lBKP2zlMiPjD)u!fFznVA~<4iBH2t5b(+KYj4dJ26l%k5qt_)X&yw)m z^dqHupJaHrWrXWF(d-jh5_O!PDCVf-bLtQ11td2_>cCo~6g+D+*&J%i+j<(F&8Q0U znaSRc%X}Gf9tASpyf1=f9!Ii^h4%dulI-m%l`{$2AnwI<^RdXn99DiKi8}wBvNGi< z-g;@cO3bO2k_6AZO*i3=7!y46Hbd@zMV)nUOhcLBezwU=F??;O6||@srb~=urI@}k zl7|Gcy=QEh>5m)uEIQURK52n5TSGXuG>24keAx&R&IixZm`^C@U`AV*ZgsKH%%m7T zg7YDtg(mh_KTAng$Hc5A*(8E<_je@6MX#P^XXd(5;-SAI3nE_10w)_PhpW6K<0;DxTIU<7nvf(SuZj6xGypLL~I={G0(rk<-xX!+gjq6$JSvGgLTL;eK-{zcP!5m^S21r zAs*AOjME2m4(=f?H6O6}&oM4D2_#%*{1x^x^Zu)tD!8k-(yV(8g=4UOR-0`7NW#-* z@JzJYL`1#@!I@~ac~IogF^*Yd9u>I)f-!4MDUm({IOZEuL1Z)t#(ZOHiVW7=Q`VY> zBI7|YX02%{G6zOuoEg70Pl_MZ$2-gfZWn z4J151N9seIIW2;%g(ch{kHv6$9~w(35o|3itwpfMu?(~^&{|lgh+vOnSto)$4xeh+ zVE#uEjMy8}jfWe|S&HFN6rX<%1k22Fm13gd6EYKRFt>SI^fu81_?pEAlW73$7rpsy zDoJ(`>=!dha*E)da!kAk?kP)Q5^lX)C{>NuF=sB}1o%qFMic)Q*CF=PJaH&Vg9B+s zGJYsZ)Uk8!Mzez?m~%IpZ0}%9Fz0SE`AB%{;~}3-=5dnEakwpfs&kX6&M~y7_~hOu zQ(pvQ5-3%35!`pY-m=NGkBPzgc9ZE&5?o=}WRgiX)4YSvA8s;tN%#uGbjtaGcd^Wg zVZ6e?@(4+Ag<+HFCStEJY%={==nBJ9$ma+1qX-_0)gYVAeiFXIu%6^Ek|?czHiK+2 z8Q-H?rL|uw$Tm}eB&eTlrWD8c^|Q@X5V7^M&D0dZ`nf^*G>nPKm<@AoDPl{w%{&zo z6QP*yBtac+Gsz@D9d0w(hH;JIGo101Dz^yMAxkNepbod02_m)*x0xgss>AA#&vv7R zW6oP?RIdl}qsc|Wb=ZWYE(zCRE07)LX%?!(0U*0gf0E!T)?V`t$AlNbnbe#Oa0Szh z7Wo!rD5TnJCWwR!!Fe9YK9eYt2V^|SOp>5}_L~bN!BwpNrs#;Eei9+o0aH!{>j&j$ z(}*OfpF<`pV(aISNnqhN2C05Ae~5&jmR5tLm}?}`#z=CFq!vY2u{MJoHpN(|evW}0 zF%3w9Hg?3c<``;YeW8Aim`)l8CU1lt(iPdQ=+$HX{r z7wU)^MH1BE5wnjZXk$lAnNdLzl9iA|=IEL!5H^nRz!8&}EWVr~| z;R=}NPMEbZF@q>(Gf7ZCCya?=nS=T{VV)%6acl&odP)TAhvj9Gpngu6MIyF-PM9?; zR6j|O&q?Er;rhWNI2+`Y$w$KVvyh}J3D?h3kkh6a3)RocFw6mF013a3@iN4unXfp; z|8hi{SxquLY`+|lW;RHSy#tL8%P?9907TSq_xPYmT>K~ zjN|-iI*Hr{X<7m0Ig!aP@U@hS<|UCuAb2h1q8TXCw}s=(f}AgzWRVdff0+{`ywbx~ zciG&Qn0+VU&E=EeT+U<~kF^mE9|y@yqC^%~4>^k==PM?c$N`XVNFEj`dy&r+u9~7E z?LhEs;;Jdj;^b`vPrJa4nQLa9#MmpP*UeQCd!_VmQ{qD^k8=dBo#M5W8>S9RcxzL> zF8YrdBywEjmRT&R9()qMjsz{{w%H&tE%(D4U*JsXj=3T7oXEeX^aS44TOeg1=B}y3 z5?%(sQtt`kc!NZ?h=jbwlIk~*1h@*3!P_7)ZA*mU{n;TWqqkk;MPK%bG%O5PtSKgi zghvTHBg^O=j}ffHjNVyJ<&+!2=jIu`xR0>Re4PZ3X-2Oa39QWhm{uYMed$ROtjsfd zDI7y1HZ*d`r|id=b0YQAhu|qdh?$7OzvL&oPPLz3uVszN0DL~!h_L=u)5DR~mE!Gh%RW2%7QoRY`e zEHR@Y)oiG#yxwh*;`R8cv%KEG&#(@o;l26ctYrYkoMNHg)ByG!Qc27RNtNGwa2lox z)^+*4G9>&YA>N6|?^Plh8OA3G@lHg3ueQXThw^*{WzO$4mY9D*R*|%p7<;_(d(Vj2 z66W__7P0%4-+N00pGd@+D8Dz3h4x|{cX&FL$FXnrDC~u2und7Z97-{DL_UYPaw$j=FJ&h0#a%c^Yxu43LP^+5N)q?HOc{BDDwr!UY6Wdq3Cio>}BZiK@6^7?~TD!_r~CQm1BBRd4j9WHM~v+RRf-Bqgy=x-&O&X27C+1TyX5?*;`&jn8{ zcs)h1=2`lPU@yRXE*-srBG~3}z1qcjA+o6v z$8`3}E~GMt4~lg0dW)PFdD@#P5|VtndMP5e8p1Obu&rl2vxxHvLn@SKy(S_R;Jn~7 zkZ#^Ekp?2&y)`2C{Ng$9l88OO=;0Orl5?&F^B3mxyw_c%g-B0tib(t?yk9SP`$Wo# zyy%6KF`vY6N7(vY$fuWAL!_@rZ|^mds59*#pN+oc4H8)Zf~$*{yc~ITD_#OiIBqx}ufATANC6N$UVXgis79)Pmm+Zh#WL>Rpml zCuCdwyuk>5b}K+Xfal_KXPW}vrD z!MV6pl%gn4^GnQLi^iaDFky>rWEQ)ML_(t7E)j6vJ~t6Bx_Jc*!Do zyjTuN&URcKy{uCKBm`AoT-gS`?Ah@Sv zJa;qisXYgI--{QS0B0q5h2ed#IE(YxYjBhICtlmzeVOl z&Kz@BWH4Nh;uu@z<9?a5?!i5chL`W)(Rik3NK!-B9t$}Ipf+ZDmq>y&z%1{feVoef z=`62^NDkNwTwToa8i?3^|H5l7@+i~>#(d$uB7$F8!ZOeH-WRd8I@|kHBsa8Nd}qjP z?@JaMSBpUjXM3AT*Gdraqgg+=VX;~R4E-`32w zCCu~1rV7NSn&%}`KEaB5zDKW6g?et-yy8D&d4hHL zmtI*C?iU*%=1Z@^L9Rpl#hI@>`(}pbuq`a%a&Mi);I9B~k(?Jvfg_0P!&Tm0l3-l@ zI^DSXwfDdw+*Yv0{@T0${g8p+NQ-ZbT%9hTHQpmJ`4oby9&5ZRBAANh{wro{yo8uk zk5Q`gB*8IV-l@{ekxyjZj1LGi{CQ0dJ{>4+SuwP#l&Dc z-0IyR32I|Uy4u+7wLi>l)$aRlFImLa&pz)QNl+X6)78d)?>fZUnpJVGRKe+1LKvLt*2u@9zs!$^W7cs5-7P^*``pGkr}z2vp~AC@^9w&TxV-qRv>{Q1l4 zDPr5tWv`EjZ9kXOZT*V(2FFnS{0c4ViuVCY&?~Qb6Juhqey(}@NP_ygp00jwdgkc8 zZS1DkUBuSdZ7)H@w$(dc5=l^FchZ&lj<2w2??j zk+L9oB{>plAkq)Eh3|#P5osiLBST0=hV8M)85uLOR9D8&SAHCLoONl^2-BK=9CVXU#{uabAcJrZuK6QMQ=MUqHT z<7{s#9GSy0es3xqSuE19GW>=EQWc4;66po9faE(7yQf7XTSaVZDH_>J!sqY!Cg)<2 zUt$IFDHb_Sk{Yr-w^#(nBd8x`OXy4HbTOH2Uk+mIJEDD2_U&GQ*tcN$k~vQiSdUP7 zWb2vjJDq}<@_tO---AB*52dO|5&y} z@>ryc$T^T|B+rYqlo7I2EzfdS1b?5xlJ7hp9sGR?O9c`9 zeF{r!ktIw2W<%mf8oL2r8c^R(%a7>O1T*8XE ztdtR{G2P0OB7GjT@}kJoa2=BK86gr6*Tz_;i)3DGWv$2tKjx6g%zZZIvPi#zR@5I{ z!n>(fN{BoN=kC0%h9YGySb0ulryui<$kD%S%oLH=V7BLcR*JN{Vr8GmBZaM85Wy#l zIaSs_xr9IXF@;2q!PPL1sU`Am5t~mJk+199m^VcV7PT=GMLIXIF^fg^`7zr?n#0v^ z-qtCRq>?tDe?>cah7y?lBuvLF9Bh8`DbUcqtq6vPkvrHfFR)5m+O0&ND@d z^{_GDifqefV-AUIeB8=qkz=rK;e6C3F5yDIFBcd2+O;wDMQ-|ixtqvpzb_9FIorUd znk@3P-%po|Z1?-}ZjrlwOq$3vzb|L}i%U4$@23xod;{|i??qLS_I^KYFXBzHF|Uba z_WS8LkyCzOo+q-jmaw>p^7~)|kvIK*+FfLsA2U>>tlv+kh;;D#=}M7RQM;|ZA~*e*^CDCIIXCOy zT*9S(Uw%~NQ@@|q7J1t5r(Hz)`~CDyE4l5~CyLbf`{`nl*ZqFFU8ILU=bjRI)bFR6 zZ*U2-`*Utlk!^lVW0Cp$?ACjWyyf@Pu_9Uge!57ckl#;tid6LH+zTQH{1|nU%k%qR zc3Wjc-t_xvE0Hc&Y)n6qqJBU9L?qRpbC-*p@MC@!x#`cj*F{GA{WQ-%T%Ps*oLg0- zLQ%W*r$xH^{q!A?KmC{)BJKQsx>01dKj)qldC#A7Gv4B@|KRuK!XjDQ+kVBw~^nu%4p0)mbT1w=L3br;{h{g5%OW%UewyPBmuJ2oQ$b|CKc99G>E!ppH$`&!^XX)f zIKL0B5jo@c)59W*{g{75w)y?^!GF0tH~jguhR9*RpFSh9-|wgIie&ZY)0rY~_3Wf>ejhw0vfZCgLm7DM zo&EW=kjON@pVk-Y@AuQ5A_M*TbhOA=zn{(%X;{wg={Aw&{(O2?%e)_k_H&MH-e3`gBcl?;@BGdi( zw5!NUzc0Tl@|oXHXNYw3`{@ReH~fBj(uzNyX3ET4Z|wKeA|h}3{j{;jC4WBcEmF+y zr(;EoKc9XnveS>*E%N0)yYGLB4DtJ^i=XC#zLV{YjVUWq)bFQlM5_Ap=>U;KeoTVM zS${tLT4b=_Pk#}4)}K#rij?&GY5uHSo^$?uT3zIKKjs;cJN|t7uEF~vl>`~9@3$b5f3eMMxXKc9{l+2;4<#Uc;*^XVRu^L}5x zB+|(5r(PVF=O@3PmKXWapHJJ1ocH_b8zRg6ewrw<$)8VGi_EKFk9&&9_kKUUDe{*; zpXSfT<$3=9WA9Ahb*jGqzn^oS>*8|VYly^G7bR2XNJNpyJfwtjGezcTkW86FWQe+% z=czJ;%u|R=QO1z5A~K~6{XgsMwbp&^bMIsR4*%EdcfF3i&U>%D_S*aGb=EoOnKTBU zU=sa;*lEBdT;uCKCKEMI$1s_xIxCp0(tLV|Ndt{RUxe*_KVBua=kV-IQfmyBWAdBE zX%i-2s!nevn>0?RFuAJvbUl+#$4Or&ne5UyO_9p_6QTJu50iH^1}ih!t@*SSlRlbH z2Qhhehx9dv$xe;atxOi25S_D3dT9(sr?&nq)_hu+$s-zrwV6C|PV97KvRidVFqv^d zbiQKJMPu+sCPmXoKE2GOxW?f9k=CCV@dVf&uP2!7Q=JA((rFBKWimixa2%7hs7n^_1e5w2rwf^kD&8JzT zd9|oc873t(PGgxg)Hr>g$uiBSlbQH5PS-P;p!xI{CW}-jWm?<&XBww@nKafot-|CT zjnmdbG@lM;Qd#rq=S<$!INiqNg67jdnB>(sO`Fd8lV0;_5hhzzrw)_PHJ^53(oN%Z zB$LP!ax4}y$)j<)he>J8r&pNlRh_Kqtv{zVpO#_LRpT_4$*bq3ulJces&P7*Nx2AF ztLvHkqB_4Y@#Pbphzz#(K^mv|nXJ=%TAfKLjnno_-qbi9#^jRfEMU?^Q0>mtvAe^Xbb>&S)%mXHrx1>3AkTYMicS@}1_>BVtG6)SuDzzCh#j zAtv8wKCQrHMo~Ey&6%vxIPJ$I)ia_qok??z!Ec%LY#=(Pm_%p{MrN}9Ow~9o$mDa? zsl|jo?QPG!9ho%J7#zXmkml2cOrkXg_b@r5ae9Tx0@cZSzx8LU#%UQQT{27Wu}sEl zK7F6b9*xt1RxqsLl!|<1|hWGij!A>ON?D@1k+~kPywM&oZf|`LqR-t{SHw zF!@vS>1-yCYMgFml2P;NStdJFCvA-Nhkn!5u8ks0dTN~3VG?~pblzl=U*q&+CS^6B zE@E;(b@nnjtNHXQlO7tUS+iSznx2=wo@7!;lbHB5pRQvvMC0@X zlMR|rQ{=F{m(e)Q!{i-})5=W#Qk_;znroa6W->?f=@(1}Xg=M+WQ)e~1tw`VpWc_# z`g2ZWxdf9snonP1azNv>3zOe9pMJ*VqQ>b8CW|yq4>Q@U`P6yH_WpfQITksXe4}w% zp2_6OqSK5?OO3(4O#XRUbfz(h)EL~zq^ic?uT18uPQ=63pGQ6vJNcM2))=hHAOt2YYfIQ zDX>_^wVX*>jln}qX6z6h-y^p7eX5h4$1xRc2c zjlqjd_Nh+BJl3DKnol2R@|VVGeI^w&2H#^cxR&@cmPt#E!BtFN$0suE*pD!oq4_i{ zukAgh=F?nE-qkp*$fT?0(-usIX`Ft*q(xyl7PFZw)qJ{@N#7!(bCyZ0#%bDo)}JY* zM5ic|2Q*HfXVOda>03-zsLp66Pij70!lbdr=>aBdG?xEi60UI?li&I?P4j6vCd*Z) zDU*pBr+t~U&^VpWq?^X+CLx+nPcx~h`83U=w)Y+yr-hjOJznOg7L!66r*AOHtod{V zlU=H_kjVngr+b+6);Rr}N%|AgSC#_SpMn~vrJ0n|eEKqzL#orA$$8DEQrJ9uKBbjlVKXC1DR~nd^(%S(;BB+m~_!NJ;UUx z>O>c^{Z8Kn92EhgJFmPa$mp!swOlZzV52bjE|`Sc$qhcr%O3R{2v z(0p2s$z_exrc9P-oc3k1RrBd|CO>FC-Na<0#_4G$(<;mHN>jx4-dba@5R;6rh)!)L z(HeuDm^9NE{FuoC)mh9WujbQz(n@3S8k6IiPqP)Z{$$h`e2U3Mjnl?VmZ(l|Cc89F zr!eWM`E&!5shUrJWpYsCG*vO%dr!@$k1}~*W3UF3!kSMzFv*}XIGoAs9WsYsG5JY# zb~7n?Qgr@iGFW3U%VXA`ewt68WKvjTuo07M=fqAACO@mrL?$~lpRQxlM`Q2=lg*k> zQxvzoKcz94m&sq6PpdLHsyc0%WYHKL%4C?v;9Mp@sm}LII%qz<$mFWVX~q)PpGq2o zk24vn`LsS0`mTDLJ>O%}M)T=dCbKo4u40l}^XU;LT{TYqkK5jRXg++_L}w0@CK{*Pm`pDvI_H@DOXDn{$tu;!`h@joipFUfCapA1W0~~SIDKD;=F`bc>S#V) z&!m^e=`T#KX+Di8WqU8Gahjh=R?Vl?ne0}b_DmLOJ{`uSpT_9|CK*r2vG{>W5slN! zOe$zT&0O00b3}DYF}bAq^kpV}HBP%TdHuZfHGxTSjnlPEs%Snv&g7ixB!ANOo>KE^ z9ws9-PAfCnqWQEHlV>ze2QlfUaXN>|KdQ5hNo$SMb4=!IK22Z7`ZGlH>0?ZGYAnCV zB$MXT&P*7r*`P5g|_I^dq_Px~?1 ztZ_P>$;`@fyuM}9PGj&lCO8<(nB$GZG zgDK0|-iv8I&C4W{#$Z(@b9cxbwqi`);N7qi00EqOkU7@+LK9Njnhd?%mkUAZ6>ppOC(WFnLVl^h+j{G@pLYdYZ|P8p~;_T7MqUd|HUf6^-TEOd4uF?Zo7`#_7jQ{w^RM zE@pCF<8&XBa~h}DnCwa;t+G|K{_NL$`V^C`8mEn!%&9D`dNX-LV{j^y>9L}-kx534 z!QYs)(ilu#-S)mjbqX*k^r6_P$)uIW;2TU%X+9mnB&){YLMB%en zOrF&kjAQavA<4PRnEa|bKQYO!G58OY(Hf^QwXHwLRi_-2w>6(OVd7{E_GVIDV{i(S zk2RmJXYz)|;7KNfHJ_%aV|$;c`7|$+bed1AFzKan+L}pU&8LHz#A%#<&ZL9J={6?o zG@t&#WJnQN8|j|6{&d$kEyg7ElcH0XNluN^x0wvmeEJEK4XU%0$+MbIe`3-~Hf7&dwxCCf{g2y~bpO#%Z<}tv@+W$gy~e$>SQQjhR%@ zeA=7IFRC+@$yLp#8<`B!IQ@-DdyVDP^=$8@HBJjKsipa}CX>sm^9GYB&8H)n#A%!^ zWU^E9=^iGPHBPTE>8){^^(E_1ST323GECmkeANOy1NOtjA=Q=F`qhGHVRRF=?wYxQxki)j7yy!Vu}pG_<|9)fmjqCSPbijdt(>BmgkYMd@+vQ=YwACq(%r`MRw*L<3-iS=i@>Xc>j zxyI?MOgd?tzR%viQcB}AQ#0#N^;4qrIFnPV^AeMPG@o{1GDPEa43mx; z%PX0b)j0i`$@7{|{mpIfS5)U=Ch0VvKFegR#%T*CKWaYxfJrrt(^*XVX`Ft?BzZ0w z>F-S5)O;HCn)PRy=F`GVMr$nBW^zDdxg(Pp&8H)o_%u!zF=?#%bPtnL8mCv7n1bSA zmKN3@zs6u`CSe+buQ1uC`LqX<4>X@nV6sc&bS;wuRiv+DOy1ELOxDu&{<-GUTuicR z3|3;&L1XZBCaY9u5R=J6q_5AVmB!$9Cg(Jto@0_jV=&$8)*qk7U@<1^Rp$jJhgIio zCJQy6j%G4X^Xb=2e$zPJ&m@=T)9Xw=)ELax%KFn&^J!ToF&cxfGO4Edv=@_KRcA7j zWSURcGxSGxi*l;hIldFWJCi}0PtP-%p!qaIJL}Kenoo-} z*`%@jB9oCC%bl6@(KwA`l1}sKawd5+P7g8}RzpVWYj1nsqB_}`RMmW1o=FFd)22*z zXe{?(a-YWOR3-~GpKfHbQ+0l0GFS6yst!CG8mIZ04AwZUCPedTTPBS(pAKa*MB{WW zlN6dycQPrfae9eKZq26|-?081Rh`F~Y~ChwSf9zK8mI3u$#X(<#xg0Rak`30!&9R3 zGm|r_<94*YJLg0vCzD|srxlpIrLp`PlX4oT{h2h@d^&^4b=BF-oIAj`Se{TXEaVfW8xMR50^6u*BCs+B)P_*^Oo)XC(WlhnGDu^`V5oZ8mG;e z9I7IH^<~mUV{kf?gPKn_F?mp9@HCT78iQ%xw*IVDoq|lJ4UxWTG3lf+*pbOa&8H)o zJghOeh>2fga4(Z^{T{O`OpdBfmUpZ_Uu!-s&EzZ1r>`*iUE{O|lRTPFCo=g+V{jdl z-kMKOFv+Pgn7p&?y{6{VJWNijPGu%3G@rI+@|niqhfMmOl{x&9$x|AG-!n<2F?fN= zAF6ZTyVjpL&8NkgjL;aY$0QZLZ_nO)c4ksTWAIZZZ)rYV#^k)}9AuJLW6*T5y-(0M z&CcYE>Xc{FMq{uUlL(E$zD!=!7@WqWwdT`rnRLk~Gj@u}$C^(g-?RQK)i^D{B#Y+L znoI_1oW8+ii00GbOeSkS{ff!Eg{Al1Otxq&|HWjq#_|JQtv~%WPD?YnPxI+3O!8}- zc4soOhV(Uo$#&IQ%cO?p(_>6JX`CkOW_#bIvHS>=`!!B0G5K2a>FZ2>RGmRg7HB^G zoXNWy%iEa@)i^ybMDuBe?$)2inoo-}8K!Ysk4Y-cr=6LU(>RS|l27yLawaEK=Ma;v z+hh)%9=7)}8mBp#nM7y|E?{z4^XZRFhH5_ji^)EX(+7H6f1;~OU!|FJ(-?e(NlYuz>A@t2#^6LI z?`sUMW3pa#PB57{MC_#KV|(waF_@RhWzDBmndH_OY|A8EV{izQl$uZHGC83--!oaJ z`Sc=_#hOnu_O<@}p>bM*NxvE5b3G;_GzQ-l9nGhoG0CMdxPnO?&8LT$oK+pCpY1)B z=F^-^#%T;zU^3vW`12Z*@*0B!n55AdoXO;Z>U_s!tme~mOh##(rtfe4c@E#-YxC)2 zOloTkzR2W6QPJtl4(|nqn$zIi|%w$oV_|u9>SB>StOonTme!*mq=F=TanrS{g&t#;= zX@Y0-8@dGx=3@;+X8%CO$7`GG62K5R<1*h>r82?fn^z)0|8i zpAwx4OfIUoA$7 zI&U&Lr1^9dlNU5j7c&{Eak`I5bS@diH74COpJp3s{rN^?`6(t7G?p7PIj*tXi%A~M zr&E}u)HvP1q?P8=UzuFgI8F7D?Y&4r@i0G=)Ea};nLMX4*pA6j&8HtR8Ls(sK9ip` zPIoa$ule*(COtI`eKZE&WAd%)jAgQ9h}c=hq=&}f&rGgp zKJ^c`z30;ye27U(jlpM`q}F`eg2}I{^8u4w8iTW$EY*Cvg~wZ=@cfPYMicTk~N#;%3qk&)fkNU*!KRb=F|L4{!*Q4ObTfXwqr6) zU~9jnlbIvS>ct$)t$J z=_Mv{HKeahpICo>RGpGc>S{i1z~o(x)2>YRX)KRpl1<}uHItQ^PmeM=pgPGuwY@LV ze42|%4~^wYOg`2)eVxgE&8LHyw9tI|Ig`;Er`wsN)qHx6NhOWb^l{dow2NeZ9%FJ^ zbzWq$Yn$kFW->|R^iw8nPKeGjCKWYKe`3-?^QrmF_I_D)vNMS|Cw9s+iPJc3#-zK( zaz7?jG)|{8X{Gse6O(X_!P88#X+BLe#`-f;bqX;#qWQEIlb1A3-(WIa<8%a*^togd z3z_uPe7c9pMvdhwOeSkAXBlh#`9)*7G?V8~;P1e5Pnry-NqH3qve>7_9^j>&b+r>mG0&=@?zB(=t1*aX{ql;+c1Oirs# zB_??^2482gU-Ri8CV#5V=S(ilkg;!P@~Ot)c_wYviB5)z)}QtiIJ z&Sp|iV{j{z0*{N%A55;QPP)m~pQ0Lr#hA?0IIYVhqsHLdOy1HM{Det*jlrc%Vl@U2 zFnLq+=|4<*Yd(#cV*NR!`LrC9bsDElnLMQVv@es98mH5ljMjX*iOC$zr>B|pDlEq< z%~ad_j~dH`m~7KnuFd2ljnj@yvS~gY$>cGO(?v|i){wsTGTEy-SD3u4`84Y^>rYpW z(=tqc(pZjVl3nApCzCZA%afQKQk`#@EZ2N`l1VR(<&@KH@1JO#=3{bD^Jz6Etu&vu zWfG@xI+RHU&8PF2RM9xyB|4f<|73Djb?%>G{YkZ5=I{w7Q#DQ-GHHK8bhnViyCzQ&}W z=F@-8w*EwEoR($MLG$UWOs;60zR#pWLGf@hlXMz`>zUNh82p9FDb1%5b8PROHJ|2V za#Z8A8k4jdgYB5~(-{1SNo0HRXFijB8iPMD8K^OMnaMWQ$^5zXr>(|dDJFe224804 z`$YQc&ZMx$-~=X78iQ+@q|bVp7kfQ#$aJ4oizsQFsZ9C_$HGk8iS*ltk!(`HIsh%WXAS0IimUWI+G0=rw`7z z{yd`j^l2ueHBOr_8CyUs_h#~?=F_Q6`W6ps_rZ$pO`w$0Szs=`JQcG*16ya#&+I(^uA?!WyTKGx3nDo_HUcuxujpf5ke%5^IEVRA1)mYBSWUR(%1tys^pT5SVy2j}M(b0T5i^+M_ z*}~+(?Q*=%GMS-qns$-(r{f9HDaxdp#%Wz9AD$AOx0zg5ollrVpA(%WOeScY9$?Z( zWBEFhS{kPhF1G%3(0uwdlhhi6O_)5S`Lqv{FI8t6lV3ESe#@kh#_1_0pJ*&cere41s6_2;_A>61+A z78DO(VRE0wU=Jp>H3la#IivY>9h1SDPfsv8p>djGsqH<3#$aA1A7~6#W%6tX@uw}5 z0vdxun0%-)_$8C?Rp)yq9W(|nG8v#Tm~ol)$FKSHaVEty2J16Pr!m-t$$gqn$1usN zF}RXRVU59`nf$Ez)Lm|Szot45G5KhgjQv?A<243bFqyhRbOtb~qA@s&NyX!$^Bt3` zs&j@(am}aEE37}WGzN<>N&Sb|d7eoPjls8=6xA3U#l&a~e$6Cna>r6h$ zAvzDPwEn!JG59o-c_l@s2@^+Sun&`x8iUiAe5pF$GRdkjc#6q;8iSFmZ143n1`9H2 zt}$4P$vVxa9hrQPPiAZ+ljE9C7ctqSak`gDUd^XhnZ#+F{%f`MXM*O_vP|Y{K7EzR zfWp#yFD3^xmZvcJL1TG6lTjL{zc6`7^J&By+j}XE)BH>(Yb;l1a!7UBGijpvbQqIf z8m9}G9MxFXc@(R`cmAOa^Ey_h2$kV|gNzW13IbG3lVO ze1gdYjnfqCZ0`?fKF!Odmd0rfkHr6m_0t%!&kX2p0{;Hf`vF~hqR*_tuO7w!IqaYK z6zU`bj>4usq~xPUr~wQt}aZaW9XNe1NZ4y zbZNf`eld*7Qn{&g%(3byVCOo@s3^bb@Gb4%yk6$h9zU6XpE-+kdwK`QtNENfd6DLk#8k^)npbfJS;9@y#vNE_na=MY5Ba z2kQl{cUtGvKdp1>KXBe;y#$wW6R97^yt~ZyC;r(|@~z8x)^B#^vi{!Mc}v=dKHmoW z^WWN+^JnmU+S!rwM$+dA2YJTorQi}5_xOuHZzVpj1kdvySE&W^^mQubyzc0JU2i?a z@0Y+GGWGDCm#18F#9M!Ie8TiPK<0B#BYWJc;OQu}8~h}-cTHh$-)GKx_3`{0*56g0 z^nB(G?|kBzSNOU>>`Hkj>y_-v`I+p~x+VLxZt41j&SP|aLf17NN?Jb>&YR2=)!Ftp zDm|ru|3bw_aGoH&120;C>fsI}@c7s`xV8A8b~0b~d~KZ}`}QxsUi3nhH;cbe?eg$- zTX1~eD6YwG$uIN-gXZTSZ~gd81dbQ&ALIR8UcQar7amuXM(8uar5w+s#*=uyd}ged zM|?*7pm#HpUT{gT;NQNVWQ+cMX0g|gW3uq|WLdtRY=rB{o7ab#9e7Sa`SMph3!wbB zDh-wKcEw-mXB3_^1lG&EQGMY2%0Bt!Ab!a&I{%Pg4(>CkUx)jp>zKfP$xgz4C4S<| z$=_Q)zo}=>6S*Fy(lt?4$gVvP2FA_puA{16UU$qTFaNn_Q4O;1H(R{xf?HqzNv-d@ z@v95g3(dd1UUE$EzB4{yy&Z?k-K z&8v53Pv*H1-pN9C%lt(4eL6ofPquW-*>Oqr7drnBTx0D?KXToFfY(Fde&XXB+U`1U zeL3cFJPjj%#lDoG>`J|qKS$efZ^y5KlARl!uLAv(_O&-r|BkVCTqAapI^QMLUhGJD zqyEXi=#{p=9|ltyKkh?q67Gw=zMoqCEqiVK=_5(&iGFa|%zKXFm@!`In(W@ZBc45b zVJ7|cK)a5~;oWz*=I{N)ga6|Fm43)Sx(*Qkws~>rn72^Ub%F3ue$y}6Qv2{7)K_Br z!S%mxvwCu$E`CTEjq4J!(-yDt1lqI5H?jQ;9EZ|g%BFbLDzJUGUDmGDOL@l2tByI$ z^J~ZJH!BL*_IBL2Kd)k6j-R#b-u3aa`5pJ4yq=^VDHHbRGuD3^d*ENxZQ0(Pt8#PhFF-U1EEbZ&Qt-C=WM> zaabJO=kCQVfrImDF=UdA^kJ z{+rgLJkP07(b`GsdW*&_{okytx6|6$Hp8CRXrKDAe?HT`0ZEQ|+j~A1|2j;l=QImE zJ$X*UX8vu3&lJXeJNY-~1slIM{`}@>KjMk&|23AlpW`$vgkIuyRlK|<+-JV<@`%It zRW93$?>Aw+&y*NR{W@k|e<~C2clYMmXLfq8gE^*?w{CoV{&3719uJ+D$j-+PP#Iq@ zcBOu3Q2ipWU)O9Jhi13<7kJ$se7|O2pOoivq3>4?wWiJ-^Y{JMUnyl>{>=ByZl z&#trh_4^dw@j&AYr5B2eeJSmHI_7u$Di)nj$S$2v=r1bDKF6efLg|%GXZ;X+QohCc z>YA6oT;qE8{XVnbJ6?|I)t!29O`4$VVrehs-R3pwkMbJzN6$~BKZ%djFIYdud)Mu_ z9^rgz>t$Wz$*!j-`*=PWN#n+om@>Bg$+c7_ct%CZ z>s|4EkaX|*iGLkGsd3**KXUw&Y9F}nZ!~YA^yvQZKRMn|et1p<{C6w!ax3d4z+{r* zz3S(G+0HEQbrQ+X38x{@@7`Cb&S!3&5@Ramsi@ zm2&(Z;_H(+Ug_uSlrV38Zsji3f3ZESkN>1!vVN1A=l`T1|Ly+o z)jZrQJOAzZNUHzfJbt(9L+ss-9hu)cH^|d+oe^j^)OkU!3z8b|f1-U-{nC{{Qh&E| ze{-wj61`CKleB+wzwDUprN~p)wDevt6mHMYbe^`?tD-0Mc#Z`9dpW;%HV!+>fqvX8 zJE7)N>?bv^ck4%B`@8M`-_<@Xzi;(FH4oBHsPQCq9O!jG`U{-TJF#;w+lTUB{7PyZ zf&JfYd+8^XojdLS|Ce?${yX*eZrdl-FP&fQ^GtgllmBn!xF=;Vu$}mOr^oxh-9D7x zw{rfWd3C+#!g#-r_q;yw>mBm?MN{u}jQIEC#TB8W5TF0#xzDIdi8o_`mgZZ;w;(`R}lIfA;TPuYuqbmRBu z*nP|8^%;3SL;B0F(K>a^HBTS!=kiLwsp`G{A7+wy?^jP|UW_5VaC6Fg|3h+pzsdMZ zw*61u>m06r{@b<>w(B#eT3P+?xxb6-r;I1K4E{V_@P6>;!N@+1kL=U)B5R-e4E)3U zO`6d@K9Mn-O4qFR-e=-B)oRdwm?`DGzb2Vkd7Adad7hH>f z5P|3CyLmqqjfeUR9M_%NqtENp=aL$Aks?FaQs>rwjM=UrDh zCNt+ZnRhAgRsYlv&4ctq@7tq&iU;y%g8%mNKvMA@cs>&UJMi(n*?HDJU-6lQW&HQ@ zSRTB8>-yqPaQQob4nxWt_b>f9=9vz(er4a5^gOEZVEg=~p?5tOf4%&zcbtE~$03^&+)TdL0tK z)6cQX=g{f%@VDDmo#TC@`4Rta*1z~K zWy14i{Q34q_9%{}eW=o&R~$aC;B%MWdBvaTydv!ro|k;a?%(+QM1I`J&&2aZ=O+5Q z-F7!0uZ$y9DSqD0@g_g-#eEWeUj_XI&WHGu)OwMADgOrEZw0oOamsp@&$S7+*KfBz z&(<51@QykxS1%JPie2=Kut??O+$1(DK4#9C^{d4tm zq`~oO>-}1vRNVf%$4~PfINreiWSn0-Hzr{=J$5SBld#hMAmVrc@@7CmUvz5CF_TL-&&ww z@nTt}o_&q!{1t!|isDr*`rCzw+nEe&YJ=-0sf;q<6Ew#K)1o$BFEh;rDxmD(&~q zI;QIHXVo&M#z-UI*ETyhm|x#4G*gP>6ZG z+x}&Iq2|HPXXxuX8Hd6u z+myC_@awk0`(o#s_x_N?adG238`}Tid6Rx_w>-$>kn!ED{fGSg_ux}@ecO2t{ksF9 zeuqGQr=Tt7UmwiAD(wCfEk!L#pr_c8SP z_@DS44LZM4d-@z=CvSek&FM8{FS*$|#M%`*GCnD-J-mb0yDxM3_dERjyB}fPkJ$C` zzRwizM0Vrb*>U;J)Z(^3`}-mB^YHYeH`WjKBiP=}>ScVlTH5P)}<3wOAF^Uq-}-^y|J4Nk(DUe#@Q>D83A~Sxj<@tH^O0~J zx#siTRxgxaH#>f#@xCHj$CFUTf4(A&V4{8Uht3~V%5_O7`;wO{;(a${|H@Xfm^gpR zxTKWvCTyR$UGVXd_EOF+O8v?2(%dcmcA9mZ!yIOI3lr?T(kbnyOdnxEtRd`k3! z+sppl)CaDk;NyL(&;9LvCd~o;`HXzOtoT=vKM!n6$Jp-&#p|8kbx-2!I`N}>J$wAc zj+FAcNuMURzfkwNqIdaas~74zwQ&hsFZRb2xBZHrcHjC<^X1@rqm}ba2Yq+`coUfx=ZtX<9*j8ze4)KdZBo*UgG_p-s^n0f2eEimiO|7 zW2$-i+r~{`Jj(aA+R`!U`1^?EycOy^oK(9&yMeER(s7~JJ!za`H+bGc?Tda=ek9eO zy#6We?$)l@NveMukJz`rFY1`Q`)S^B9ks{Kzs!^9-AWlat{e3qs3+?vOU}S~j(@%3 zX6M;N&pG&Yq2P5P;|b=s>Sw~&!|m(k6u*J5j|a|csQJ3p{^)gavUij}zw$&Q+IRUr zIPrSCk=+~lwaRRTST4xaJ8SJ`K5>6nr^?D#{?qy0T8{El2(>d)oh8}pkoWo^6Q=kDUK{GP7-j**Rz z`0tgs@8j^9GyMC*x!))I^5-*O|3Pwm{Lu9UT`$V}K5lls5j>uxe&?6wFZg$U#oy2C zQU9*#(VR-ZndjYqlwxcU?QC~^F*4j(u1&z6qKFqZ7N#_IXZk)o7$ z;=jjP=Iv38nZ_OJd?NM1QsPPCNS>u*OG2dLb{@CZycz=}l{kr%)*mK1F=HN$E zhM871sq~p&y;6Q(%{5<)w|t{lI%bMjy5=mmAM_HfuP{^oekzlhZJxbwQ_g$-mE7#{ z?4>X-WF$K&O|L^#Mwrjbl73>p#s9l4@AUI&@;O8rFWryRc5RKOf7_XgopGo+>iuieu-`|nr+vQ`Luf+QHeHiiW zZZu!_V!hqS{=GPkGG6<<(q|SOwBrtpv%ql#`yYQ0bbOr>Mkp7%!f1-opD^ zD6Z`9(uEuQyHCma_m@)`J8vmX9`AE^5vHYArZTBIlbyuZ8^QB-r~7i8?DO9E=f|P! z1?vUxhiVs!%kh=xPNFBj8))-}YwYj4`Ay^*nvXCurWTdS%o#pj(oUY2+WUOR*xwn! zbDHI(Z%cZ8=l8;Nv~c{q-&^vTlU}~_nI;jWhx2ACt1ot?yxa2;*{6QR{s~^^ZG!Ie zr9b(-l9k@)JMsC#BD9YDW)!bWyKZlO{wR#~OyieQ><5>ryOEw_(zCwo?_vMm_vYVc zq?F&G3BJyW{oUGmo6ma*_i;SE>mGlC>z;dY{s|tB{rw-ue0Y`oaZOe)pZbl>t6`j1 zlbOBV{g=nN`5AKpjebGK_x?rWvo{0jN&Gxm2f z9P?Mr0+N5alIUPehKzZ-d`ivRkwQHk?S;h-;3Or1=|nKd-A?y;lbx!;o?tH z_uX_Ha&q1a?(ctN-!a$!r1_UP4Bp56MGbr0H+#QV=?3Y?xBL83LOZli$8#hQn+bECO>tEMA%h$j5dX9XJ|4Yh`q6zNDZrl%zGpYWPvMci=@p&)D71*EH zkK^lE+mGWthobZ3S3ExPM@p-Y=XI@Ue&VlxlNz7Yhn{B}hr#zDfqqKAa=b(NX^-3O z&$B&_@#DFber`0LLEgML{P{803~6lVNyd>>88}`!F2ToL@$ zf3y3J?u)*ZbX^wcN3j0g`W4s@tqYl_{>5)RKSjMbMw~uL=X2M*-v7q>cYA$H{dvb1 z{n2%`^!Fv-UrYI!w~yZgMV=tN?jih=*SBdM;HiT74*4Xd$&D>PwnEsdVXK9$F1DAj zy^N=8xv}NPRtQ@)Y_+h}#r6`mmrW|vr$T)y)TcsyD%7V!eJa$aLVaozi>(s2H%+7| z9~o&@V%vai5w@maB_h+ADrwT0I@qS0bfyN%ifJA&4NMH`bC^lksBG=aVcKJhgWSoN z3oI8{F0kB?b3@MU$#EvHDd{Uy(+pcnY;Amxp{|6twfB`U z3$VpuzqPNV>ENqp{`SS1`Pf!Q#=_rNGY#@0l;yEC#i&Z4T#Bub)6{$s+0@L!HXqx5 zZ1k@x`0mK&u+bbgn!`qO*k}$L&0(WCG@8RkbJ%DO8?B+!8al0^(;7Ohq0<^Vt)bHz zI<2A82DaKjuMPCtK(7t-+CZ-j^x8nL4fNVTudSKo>ug#(olSdeO-&bU-LUn<*4t!p zdZX-%tsmrmC5Lmmuy2+CpRq%+LycZQoo*r+_}jPSPo zC{H;f&2ntH%}BEvWhIoc=40r74Bd~RHwx`XK^_HpG|JH^KSB8^w$C7chH?zHvE~A{ z{mwX)<4}&rHUZm2Y?Gij$tzDelhNN~^fwv(O-6r{(ccu*PeJ_@_%jvtQ&B$^^;1zl z74_3lKMnQM;LCK#(;-hcXPp`52W+{`46_$yC6uvdChBLRekN?qf~{Gop9Nd9P(KUx zvr#`A^|N8?bCh3T`x4t+@VQ=j66IxQp119H=3_kb!M`#;W6N#6GRIL?LWz|Hz8Krr z*p^^hiftLT<=EDlOzt`pg)IxV>&`cjzk$5TBy%@I-eO+#ZNc%`X)3roVRxr_4rL{j zv1XT<;_d?5WoDqPgfiCrVCJ|#fc;?RqO626*8FIeyFY^cXjY@FgfiCb2HOp`8*De& zZm>OQy9aC!+U^0{19reT{sUkKOfr;}P{x{{%y9Q7GXz^xa}?V#$j49~M|m9ODU9h9 zd_RS8oH5V&|1in1H8tl=E&qAgI&bQttb{VwTtM9g)LlZ|CDdI)-6hmrLfvJs%V3wm zE`wbL`wRMiLH`QsuAuG;>aL*f3hIn6x!?Gj8lSJ0--k1X&sP^^C6uwo0S`lc7|L+e zhoe3m_2H-wM}2bCB}ZLK)TKmSO4Ox9T}sqNpe_P+sZp02b*WL88g;2r7YP;#76}#! z773OHEDcy1ury$4z@lIy3O3TBE-mWPqAo4!(xNUM>e8Vu1L`uME(7W^pe_UI?nB*u zsLO=9OsLC*x=g6cgu45E-Tn9bI{C8rzIC&pE{ksq%1S6>O;*%pMO`-3WkX#y)MZ0m zHq<=`9)tQAlsQnJ1NAvjp9A$dP@mH`+|B75f~~1}81loAABOx0?a!trJA=idn8***Pbs^V>R~J3{UVxg+GaAio9qEy$fAcZS>*5 zAa{Y>6>?X|T_Jae+#Pav$UPzVgxnKyFUY+h_k!F9av#WjAoqjZ4{|@q10WB8JOJ`Q z$O9n{gghAXV90|Z4}m-c@({=$LH-ExN05g@9u9dpWvmnoc zJPYz1$a5gifjkfLJjnAPFNC}h@{!*5579#dwh+;_xj?(_xWDK78icN*Dm~LU$5|^zJcK< zvHz=YQury~tnlA`^TW^jmWH4AZ3w^Q+Zle@w?F)E-_h`^zEk1XeHX%gcp)^kGu%z> z48hjaq=B3UavI3dkfR|-Lrw=d9prS7GdK;BXF!<|TPDbvQ2xug?$72-akDvyduIkp z#Jv-1Vw~k}3|Ne_8f7Jvu_ilgWrwZoXqOXmPRKbSKMdW6q5Cj&ABOJ3(9MPVT&T~5 z`n-_yLe2|0pOZXA0qhsRegW(kf?NnPT|E_pTnutC$i*QShg=+TNysH3mxNpjaw*8A zAeVt$267q5Phl(P_*0Za`HWL7>{;jKu!_#BVU?U_Vb3`&!zw!+!m2o(!>T$x!)ijW zCiH4M-BZ*?`8>+!y|Nw3x3TrZHax`(PDgCrvEdwmE1-H9V?F01Y?ZLZnwL=b66)%s ztdFt*$_6MKqHKurWt1t#QMUBTS-w_~TS0DvvJJ|1DBGdz;IvB70dfaV?wFzzeD8$)PS}4J<-1WEehK<>IKkS0KKoUzXrD(s*IhAr5Y%GI~Ww5afHkQH0GT2ywx)rEffw~o_TY}-Ucjc5RyKMg*3w2ClZ{S0$oav^PAqiF zW4|J{T`qLoO|ZQQwl~4{CfMEt+nZo}6KrpS?M<+~3AQ2oH^KHM*xm%&n_znrY;S_? zO|Xr6=#@N?kj zA)kkQ9`)zF{hbk)pmPcQ68I&sKOz4K`A^7~QFj^pm$84@+piY>H^%fg_EDN^&W4C< z(76VkYhc%)^N;gt_&-iFY%Q@(_ZxR}gmIhVQB@&47K*`sYuC6tBa*qR{Hd{JcE1YG z?B+I^-LFwrLK$naxnHEphBn#USbsLRH@14%KJ#V6l_@qin|m7je_*?ajr3zs7W2oT zT@2dApj`~w#h_gb+Qpz9HaEsi9hMV1IiZsiIys?}6FNDelM_1F+?=qJ%Z+t%!QWii zhir1AO>VTwjW)T_CO6vTMw{GdgU!wDZi~nb+xeiA4?6jvlMg!ippy?e*xdZ?@HF|| z3}N}VpbolKqVu~Iv6aQv+6M+s_S!>! z2lX-7hJ*cq@)>Ns{Uu<(1nif9{SvTW0`^Ow4P;Zs9cRk9$y1kii-nbUAIC=W2w!=( zG~`wO*U;~4?$Ok*xhJu;_q~QbTY|L&YYEm8td%=1bt|w|V6DJfd91as4R{;yHsEc* z+km%0`*vXMz}kVe18e8j3+w34P2Lf_qq`w>M|ZmaO~`Me{!Qq;37vPa{|@%wf!rB# zSNE&r{ZaPEJoU#s^~c!yV~qVVU;W(@*d}3%b^2qhLs35z^+QoV6m5p0{v(vbQBPNV z!@-B69#`;@BOs4}JOX?q_D5oWB=$!_cO=-y*#8*&qhNECSH_w+)WxB0ygNT~yt^M8 z^1oXZ`@172x?f62z{n&6VfVzpOn+!e~d@}fC@X6ql!Kb>LvF*o(YXPvSVAIj> zbo4hJeN9JSGth1ZbY?(j26Sd(e4Vt*#~XTkO?uvuWUz-D=DcjRpB&&K|2?9YL{ zFR;x6n+G-zY(B;{A8bDQn~%9%fc_SszXh1*1*ltqx&^3P;MGlvT!?lH(QYw(UJN^n zvA@{c-yOLG`%AFD1p7;{)|NwOIoNWrCD=-^m0&BuR)ehuTMf1v3{QF@ z*P{Qm=zlHxUyJ_NqW^E*_RhENCn>&l$E4Wd)=9I&oo>EI`8~>=D0iaVg>4_~>_h*D z5p#zTbB7UghjDBV!_HyYJB%?N#uyKykHhHWFl--2%pFEM)IqmO^kKx@VZ_{FtY0wj z*6v}f#bdB{4EBz}-Z9ua27AX~?-=YIgS}(0cMSH9!QL_0LmhOhL?45_W3YD&_Q1ef zyT@SfIP4vVz2mTT9JWrt)(O};0XrwW{cR{0VOxrAEw-ixI{p)|gUvmGbLmO9dy13b zr`>8PFQWZLw7-b`i)e!_>LP4igsqFPbI~mudCA?G<`VQSLGKduE>Z+BG6zugAWe`Ei;yDiN>IFI~;^N8^;z&1Cf@fSl$ z`{|>7{vT4N@Z&j?AJ3Wmc+TXA%7nKXTChp&*P6tmd9TY z`-Pl5{?@*N{-sfc{jpAA?4vYAv0u!;Kk6}TC7@rzpFFyRKPtKumJ6m#A{v;u}t6NLoaQnz(zXNQN{$w=^_7t_YihK zNphO3K0`0%X9?gW3n!g5FBxfMDpBQe;M3jZF<;(BGb8KUt!bbhhLs^Ms@}VfU zo^Y1@B$>X4i2NkEbd)jl_DqkLG-fsAQrN^#lEt6$0i0yvq$9o&7r6oCWSB7Omt^{W zBkGsr8Q|1!6KwQ80@5M5T3V|^@|-^LI_JR2H+rda*vD4CBjoAn;^o0{wrv;iI_WJZ zxg}m_q<(v0E0)1>l1q(==dB*FeG#ue-u6XumMq4M_ZhrS5Qy6kAbPg^u=5feyMb{GX zli=l9XG>3Ohxk;yc1|`)4u8g&=U6Uw!FcPC_#Aw$Y5+=->tW7CXH7|;+RO}_)w%64 z{7zvV$e31dEcGBi1)0{^tB@x_mT}F3Og_H>K0knyEWVLUzBTn(9r2Ag`SuRCrFrPa zGWkP%DRjg>$utjrnbTM(Mu^i`gp2>1!B=K6W-#=3LKdG%7MmoC4*pwBng<%oXvodGqkq_6%$(wmbe7ovmpM?lY~9?`eA+ zNxxVDdk$Fzc}hon9QQz`*gOe+k_+HFrcOit1v2^bC*%u|{V*Qp8grF7`STaHFACv( z$lyNs{V2Xay#!=>8(<9NvXJR3mB>!b0Qp78SjuK!tTE&>K924kM>;Mskn7`pwo9Nx zU$52YWqjTUGV!XvVf-ww!}|OSa(ZyGPwR@_hD0*?77O_!v@IWI<(9i~E?}A3lH7vz z8?pQj7GN{TbUrMKlj`ft>ma_`vz!N$F%k9ea9h&v5Bcp(J~JLNy@iP4l-71m$aIXJ zfqo%uhcH+49iaKREzRwC$R#k|_2BrpnCJf~mSz2vVou|l9w1ZOI(Uu0WHQU&f?_q6 zTR?sRa(ULLzN$c8j7e<;PX3g{oV>+yMx67zLf**wG%nJ~RMVJCkg4DA@wvF((5VOc zI*!Ey;B_F^?{3UUw(}kq>{!U#!Ixl-O=A6sbUrg3@|WO?z`tO*4h-ah9kNOKi^2Cm zUXOFdO2~8^>6rcqndU*_y#ZueKTT0K!B!1E(D{nw?3l=B;QM08+n?ie8tFWU{1I;Z ziaLa21)1!V{0MVe8>Jz)0H@wf@v3iM6K>to0r!O3Tu z^Jr{2?n4d*?-Il>;dApDl3RcNPK)vSky8S6s9*Zb>U?m|heq)-eTNhAN~}L0b_NEt z9S`{kPE;qrhX?Q&`1A7fKJzy?>1=9*+k7nexBwmEpF$@yIGzBQtR;-e%W`$_Vvr|6 zN7nf)$g(JcNc*&-$2eK*WVLC>%p3|f>cwHs_SX6?Y*RjwZ1m7IMY34U$0U>fn|NnY`l4fT0djwqGo(WPVmUA5 z@hsCkOb?L1g#2k`W8Q^M3fN!Q&BoMX@T*Pid4qU`R>(!r@j<3B(zV2@06Q1JCDyis zZ;CZ0TWXtwdf{TYI^?SXI%FqLZl7re?q@q*oPvK+2In{MQ~^AFfSe^j&dKt>Q08OV zJ8uVYT9f1(aT?2LjIl)|@-1{^yp_Pu=CSLXIO$WaB%VH>_Z=W3RwHZ*Wv(?O_EDL>oaepvFGrX4HyI(48=b66Wb4+j@{54h=pV+@@_5Xt5x$TWvL5qB=`TjHQE z$AWCe{$k91;3U_26XSzC39`)REXXuhO<{v%$&Vyg>u&R7ALRz1WQt&OFuLvcjsuA^AzJJ5D*0H<};e|!8I`xnlcwB9NO9J|fXp1`NtRP7L;GkKu*Q})7aAo$TZ$>W9%5SfJ?5-30ZQb zXCL!G_Va;DzeOR7Z{(-kFOZ+Y|AJgJzl~p#*W|D=t%3R->^#$0M86cvneM|iA>`(W z&0LU))7r}qxk`XO$r9r&Fb{MsbP+n_53Qx@m=CfqGI7a4#6>19;~EOSq?0i#GGabi z-T;~OX@0grt^---hh({b84r0uJ7cauXFBBVjnGFX91F;FPe+_=rbq5*4o>5m`XZi9 zuuT4RWqAYE)rXL2jKoPM{cSz0Og@W04Zy`8lEt4dA=92V|lOT73yaMtp$l}{CkY7cN*MSej$*@UPDb8n)@rH#=4ILVP=7^Bwd{a{cc1KAq--`Z~e( zDMy@vO!noO108Ex!xSSVf0x5&UW~Ca<-UfH`@<&Lp*ZzHru%n#RzUf>KJs!JH5D_fPP2FbbneXJI;-e<@`gkoPX%}((@v^ z-zS;ul!kAVAKw~a*G3`8X-Xld!4Bz!pF-?`_2Rx3gGpN&V=C-l!FjJj4%}r9r*wJ7Nq!sj?Cjz}&8na(XFzYxHi2JmN2*tjE|8jwZ5egJRAyeRuj zewGT5X)TR;9?u-%v+%2siIZ=sbK_hQFy1NwGU>~_k$wL&_SrAV8GG7u2SQeaz!&%pi${U(rUEz#=& zw65qG1wFeXS#mDv$hnt}%V*o|c?s#<%!6DiFV6RnSF=ocw%<^DP9T}?e@8r7#di{r&osBRW(s5AB-8xRwLvAc%~=@F{lIAs$$nGRZ-y-X zuZ1lB?}SYAOl?RO{r&%stNQ`3qblYHn!nozwvdp0^XVT^H{Ja!NZ!>P^F~;pY){430!FeET^FYRJ?sqZrkG(g4&PLn$rvo|9<8v-<@8yWM zJ&)tO7yS%#d>#XHoN$hGg7efbVjkyw|2y(${>-;?9c}e+Pn>17vswi zZ(!ZLhVnTobF`j|(VnZ2!#bJ&5!jZ!0bcFmJXi4e+Kl>ne(u6{F`xa(_H&%Sfc)!_ zV{PbhIoWeOXZCTgEW1S9FJ3NQAzmdO6!UWzYY(^g^Vi`za60CMSf6dzP4ENH;W#`4 z=Md!EHEx|Oy8wP3=fhKxL)&MRwB>VIjvvkyhhZDTw2he!E+;#ONX{mSk4k(CZ0+AF z-VR%PXlu{7@#tUNd5td^L&09?xA=-=NR}bp5btg%KELZc#U`gea_FGp2L3O=Tk4C&Q@Gk?0BCF zTOVGBvBjLj&dQ(bZpZn58rvi6zvu;j0kde)-NcHJLE+{Wq_@mBG6@i=VrihkJY+4(o|D&|gXf0pC6m+Q4< zS&uGj=C&~Bf^+igf?Ydodp99YPr);ye{z0rh-a|y4#W?=5@QyQ;gyL08Ga7tHuAi; z3+uJ*-7V($;hgz?#As{Ji!k@gO%>FO-`QAV+;Z3+wmCu$51WB29nNX)xBzus|s`A!0#=d&I=|MX&6t8sHwALdy5H^9~>%(3|x z<%#Eg3pwb@057_ldSG9K+>}nExYZ6WU;NB--Xkw9S#2&vVYSx8-A= z+s^qy+11HDp-;kR{hXiEJ8&&Hq&uINeht?dd*<-Zn9G|FTa=smeCKD2tDo)UxqUsh zm*!`tHRN#K)sOmlkI)#+?^)L1XXfy}X{~q*+HZY63fp+z3NxQ=rfolRE_y+j-!E`o z?<(bHj_t?ou+>T1zT>?xuYKP@Uymcs`maPCYjJEIeo}t^XWZ(i?S6!|^Ttk?V`C}W zb}`!X0PcVP;l%vDn8(P=nA7h<4$pObw}f+hu8ZT1^LFO&y&$f4_g8R#jydRVSk~6db0Bjrya?wU$=QN>Er-YNY^;RmsQt*XIIlt9spi|rxLxn)k9;C;!vWaZ z*+4z_t_Xi7pSJe*!1nBywr9T!B%ii?j*XX2!1ZVa#yR%E{lE6S@50QnecCJaFn&A=*#ddf851-$PtS&3_NGJ?u9=!(^LnTya^N=WVXn;ygdt^GVLf_e=hxE(IFF6Pc5O=G`PfFDw@1*1C2n0DZ|w6w-+}dA zme>CZ?o*h1N#(dVv>)LUb=lOi^s{-@-$ma$ZI`cTX-{nj{kgwO4 zJ@!5M7~r{`&pJ3B?E1?w!)rS4zZkb?q3qAMhB&WbS>{~53D0`Ei|gP~EAw-;UElk$ zjW$kb+waR^+h4SelNA!DHE#Qw@iXw>kFb6&%Rb>gW&O7A*q?mPyz&ZMzg!%*9bJ+#%se5*BKPLq0#>h4oq= z($jBLYm55BL+{^T6sO3Y>XSq8V|cDRA~ z0lb6vJDB^L=b2})J-m+avlY&(+t3c)lOBWL*}dV3@LsITj$hjPg#KiZUw3&Qu>|*M zcX3&?kGXO%QR@8)MHH^F>wllQG`GvCjD2KnpJHjD3J+RHUX&!gyqfTBc+2?%r#r0kg=KF%SW0Tu;n!ESR?CzUvj?MAE z0Cn2wUhmpL3WjN9Cawqtw{w!Wfme6E45{d}HfeY;NbhhZD5w2jpb5~nq8?co@+>&QMa z>(LyJ;kI=c11_G82iW?v6}Ha@x$o>a8b#dZ$+XRrX`3hC>BbnZt-KD7-jF|Q-GUq& zS6g8l|I9h(h2k0eL%5*xc`V~6;n*?rJ+!6uJpPd{<#9AETkq{C8#14$wKA`&_T^ z(=OhDdYI3BMB8}dvL|1RXJ>9%&ON%}F67u4<1uc25$pX9_QiW{#TeEcY|E|q{QA3y zb39l+>p5`_?hO%N0CTJ!dK-=rm}C2Vw1@R`zLA}u5w~&9`fb@IvTVODi*?zujN7uy zVH<}lU~W5)eLLTBuC)qrJ9Y+PJJ!~~c3z_GytEd!de*_V>@aN0Zjk(qlFzu+xk=)q zu+_5#wtBY0w%+ZMKQ8$@|0dt+--Wo^>RImU;TY%=_lOtZ9BBJ)w~MpiCdGTj`^CJ* z*%&*3xV3?{Hn4s>C)ga4*SJ>Pms*^*Hqf>o*PwnL@9+66a&eq~5o2i(?m&*+>vf5@ zpk9k_726nIzabyPRzLg1+<|=C7Fy%hHpXqt_h7v?HWt9PPkUk8r%PN8`=7QsNxzF{ z*CuB^OJRleYHLwq2`a*+JOayau*5uZ3+t z(zYL$;J7>3HrVRq7_;@RL%!PDz_{fPJG1>8#2aC2&nDQ~GYVUKXlu_F*!rKg{k~n| zKBM?mhimu*>avkoOAfryYU~M5!kkD!@9WaWr$Bj+{XWli2on%%|C%S z+h(6ZFn-Nxc!r7iS?IexXiw~N#xS>e3hqEXHpioFF1OFEi`&jR--z7*!hhUeuJ^BS z7xHZ$#dGO5KaXd+IF~YKKAt(Cd$JskPu_3#Am7I49^~AFZ9g72YxGC%ckh$H-$vUO zBfdcD=dyNPt|R9kKInOU$eD>bcJJHs`w_PD4_D>ihoad|jyL*e6ZtX4wpsr?B4+#N zzMQw8`Ayu*@ZOC+9P#gCUCd{lPdeZJJKSfTmS0D<;`0J-`!?j9hVA7$0Q6g6zI#9q z--)pcbKlu9+beyt134>h%iGEP7jW;=dN0N*{Le7&ukV4syec27tmhs)M`An6=m*;_ z#_ha1A91$%bkxIT2T}hL)`{)?HR|Md*0^0fE;ycJw9m}(S;syaLOyf0&&4xvm~p-j zWA7*)`C~j^aPc1_&UP|~@5wNS-UTzxdTgBYcq!o-i`8TCwa90iIreCqXR`e#t;e%z ztczX(e;rn+nM>YFJjwntL1&Q4Dq=`*dC1AJ7GJA+#{~T)`#pja|8Y= zj>jQ9@94+6?09?x@fgR{J&13E?~L%w8NLa&K4+cucEqo9=613F*W7^dia5Ov{*yEJ z3;T-k?;*x9!#ZuhF#a^+tcUS)aBs+cM_V6qUDp2P(&p>XZ}x833h6h-?R~HvSk^uV zr`i6kC|^VWnwd}EjOTak6Po>R@gc z3-LW(dZ}BM`ONtp>L13s?A(dN+;ww%;#q-T=pWoPj1J~tA8lk!<=WaUe-f% zoUooxAmFTyaCJFxt(S`>?_*tmp4idZ8@~&*zwE$ ze>WO)m8;+4tkbR$n_#;}upWz#N}RT90qeZf^(X!IZTbFXJ(jZ!n>QoDCLV$9#Tc7& zC7yes4UF@8&F>&=LB91B&9+_QVV}7;$M$ydxcE8zj^F7UY~Y+H@m=EG;s(~c4(Dxt zK0>!*Tpj*3+#ez5;9L}58RnlWu{}2L-TOE7Jg^#bmt*sK{)lt6)noJ9{Vt!|asakD zKh16A{WAOH!n5%?{s@jWw8!2Xj4|fFg1$xA+Xp{2mS3CvHXOegJLit(v3dK$u6`SD3y@>ukoDU+ig6oPtjCTK+LrB=W%=yr zVVtA*o*~;{-+`j-y8yI)w}S2b#Mcp%buEDz=P_7D{s`tL>ya}b{vPJYUvqxmId$jf zZz10AmSx}0#QwecR(wu__;MHLepw-A&exE0!UNb>5@$WOjf1fD4{d$I9P5*{Fx$-f z7o(jt&*AGNJ}l<3@CA&ilOM!+M&cXA%&C0L^R7S+`_1+Xm_6^p&^vf9cKBvI^TV?C z{EfEfU|S?kTl^7>*lh-w(XQ#jowlKjYhmx_Hcf*~Pgo z?rZkd`|y05-`!&y)*+w$Z|&h2qj`*M#j@jQ56$m0GS1_Rahk`}PIxDB>^qOUU>tpa#=f{GvCH4*JX9mc1~cv)!!lYcS-%U)!zd%|J#@gE|C0Q$)_!! zIo1Z&Z(ahkJ?um7yBKp$UL*J{J^UT!hg~>dqi>sM`rc6wVSJ*0x!>ObbN(}QD&{9} zzpLj$#Fk5)j9Y)M_?vk5-T0momhHl}+q>?xz3aY8@@HavcK-#}yMMxe5?=$eA1+7x z*TQywn1eQNzA&G!u5&qSzlHgUU27l4b7SONn>WGMX0Eq&DV~=hhwZ-?^VsJw ze;Y-P?jz1)`Q32tFTTS`Gykg5d|g{KA8{@_@Cfo@&Qv9BvD3?cXKKu5;!yG}^Xnx8!hN z-15GBU)bkRBj}S!$=NIB`w8y}upKy_wxK=N{@D4kNAqiL6?6D6ZY}mT?_apDng8L( z^11!B*e2eOGybate{%=%{cc?sq7Agodi?;p3zO`i! zz}7#!?ywE*-^ID)b;Z5yi)hEaH{knVxQA*(ycM4#e;hflxi;V8Y}Y9+YxlG3QRk=n z+toL}*{+Qa<2 z{+xebgZt>~7vfnY`g}F=A6bFFAM|DH6Um>0wmtVQ+;?JoxsA46OHdDu#l0ShpM`wJ zFZ&*@1rqNSFA-Off8%Y~@5ndv?}zkD4*P+B>tONsu^%MP?~mMudw+iSWQD}p=k|U( zZP(USE{AQVZTt+%vKPDdw{ORNvBcMk7rUHKB8T7U{_Oqun>aAr8R0zn63n*ooil!B znxdaSiGQze7=38Z2iOLBJMt$HzueWyIDK0)-*@yc#&XvrhqfI0vpAP>Zbn;vzdQe2 z$+3p^+n5=aZMhR|tYZHj_Cw4$CB9L-Njxg%eZi3!V`n^p`$vgyb>_Cv*3UGrHGCGj z9ky!?ZF2zT*t0uczxdAHi>QAbaT|NQmfeMWJ)UQn(~DjB^q4@5H$)drpXa*7IFl>vu|>yw|olKp8pPaNWtipZ+&FT$bm_-4f@%=K1ys ztZP!@JjNO4c@np{*?P12o8;^lb6c!!w6%fP8v9<=0p#2Dx^-sJhf`sTcSxM|9F4gR z-w*WBC+~VPKZme?uEM?2>&Ef?4(56}U*(vwb4VBJG55gC;W>?CelO<3KgF_~8~+;T z#;xdM`nGei&zU$G7U_Dh^U?!`Gl>gh+n*xx$iy6l`^Mn2co^3VDF`JdM2@9wst zUdB1DxWDYUX8nwxg8khq^)vpLY56mv&2AgH>=McGk;C!H^H0Bvb05(*ZgFU3^|ODL z%d+<%UfGn-OINr!zxPD*???>p$j7JMcQDSs>G5wa{u$hl@b8uJGg-F(*NC%DduNjE ze`F_)%TAoHWW5}3=YP!ej{0%_yn^pJ+=b;9<3HXXrHFG`w&4TMU@j`l&cw2Bx(0oR zde=#O8~W$17vb}spP&!1U)Y{YP~Wi2VZYJVCmSSAGtT^bFa}m&ZkeDS#%-TkKKqvD zSmhjeBW&k^O|Z>-X`2so&S3Q~$MSX#8I@&eJBKje)=P6+xL(@Uy9N1-b3AVq@546m zv!?|=!?hdc`2SN0pA(@!?LCU^lD`A}#`8u$^2c4A>!NM0vQy&M;e5;W{t)^5Q2)cr zv7In;*f!qN?Sk1Syr_Ph(=P^awv;BQ& zhsD|dE5rO5;C?J?*RQEqpRMZv+GF4MKj7BI^D}MZq_sWoPi(SBTOYC>u8aGE^_Us| z6Z)TjLxBA=fMYzX6FC;2ih5W--+}Cq`f015-+6yekS|NKe)b`kwK{3W+5c>_<=eI} zzERG5Y>%zCOV-OA+oz0M8<=nRJGAv%k6SOt|D;>?N^Cc6IkfFZ+S<=;;kuZ=KI95@g?GZ@p9Pep{;(}_T38D&JVP07x$5kXYM=mDpwEtZBWd(wT-qh%rRzWzM0#? zHt={{gSZ`!YhgR4XgfBUqiwT$3bsvMk1!|rGUk3b4=jS&PHv0F&v9{{b8KJG)_%6l z&PD66Ubgd4%%O*2w)1?{Nn3k(u6Q5nv~vaT>kq|TX*2$NA;9_W=lMB=)PPz=QE9su6`azn>~!WB zV_z+g^1j-IxQ!XcS4!OaiaBrqAjOm*hEwjk$Vzd5sQ9WICN5^t9r&b{os&3c;H_v}OZ z1$_Q<+b?r}4{`2C)@k{)jrktf#{2@<#yo9fp80ltoQiGae&IER%UVCMZB{?qZ02V! ze0Du`H=g06ecWDd7yq7yeb0#T8A<+k0D7@3&1bEQ^BL?0EV~3h+w<7Xh~IfF=C#s^B!dqzatb0kcOviH?L{;RzG7nJZ!6K0O>>$R};^Ewx2n_t7eYT$d>FCw3|`62xU zblN)X*Wtg(=f8K(IOmG|n-yKZ#=J{%IEUxo06ZP><%rwy!ehhs(MHMN1n=+1-^)Wj zZO0C6`_9MuuDL3I9x^J+GJeE0xc@@kbpJV!NmQdYb1C1fKUF@OGEO&&$SP z8>>5E8>_ou>qFYc>TcM!i}^M_Sr6OK>+&RQb?$|&&i$~}!#13OadkY#7rhkEKWXOJ zdReDkM_7-oi}hPyaant|O#kR#^5c=?grCJcI+3@>>bV&4|GB#8LwkRt4gJYF`JKuG zQh#elv977&eb`Q(=XtDkxH!jHm$*mr7f76S+8F4C2Yd6s1H<*&^=OIYvu*bG%-IIJ z?l8`K6Sjfzm0^C}Vf>qm-CPKD+8E<{&CEA5->$73SN2{9%|79~6aC1y{X*M*WRAV> zu^e&cvmZ9&n)1uvVxRpE_c0QmgZxok+>S?l750VY^PP>Q_}qb?tFFfQW}Mr#$}MZQ z{WvIft`Rfe`hn*h{_SG^t*W(%Tl<+~b2-|^^E%ktGwgf`+Q4OPd+nTg%^qCGT@H_< z4KU}`S7M!I*KZMW=u`0=@&V@!n6r%IJU1WboXQ}sBinI~g`ar^b1#>(8qc`C=X~5R z@^}9%Cq|s_EY#5+Li|^x& zqWuRy--PX*|1A=yExuLaw8gheoVNJ5#A%D~lsIkiT@t4)zFXq7#U~|BTYMC@&t%zt zGuv!tJI!pHne8#N4Q8&_%ypUD+<4~kQpG+!e-q9RI2QII$Ho<=m{ueSSZ#%=D=kNVku_94x41&>GC`g1vK?V+tbU2^VS;qrMeu*&71 zk2-0~=kpU=7j5fWgBvi;ff zEBsA>mB?9(I#2vl{@vJhQva}+=Q=(k{UP!P{7e-nRih|jLv zvd`fChsb#X>-rMbwbSKesCc_zySDOkTaL;07T?>Axb0Ks*nZ#a`r+NknUtKp&UM7M zA%}g-eadC+n!CY`2VN`pBhK-|IX^!yyY-3u8bN=lFE`iqub7jw9@@_BT$gzeV}Nbr zm_LBH%`5n~wru~l;u)xUDs0=;0rME){b?6$$4Cw9y0wgFJBQ(OYj{5P%Q(#IyUj6r zWZ4C>Y>IrVpKX2t^MRMJY%g*wzC_$FUM}XgybI^j+Tr-Oqp&SI&crdj=yKO3VzYe#|EVhYn)F+ z4!51lo(a!EJ)F;+1Fx0*b&@|UakksGo$IA$0*w|o>c@*oi^ErL+S_#{^eXHcqma|>rw8fcY%Q9}>DfzVJ?~*ue zapu^vjGHGVpSJwH5~nS`U*fdIxvbU6d^2;*t+R{%p>5fz5~nTB99x!gGsnqBjHO@W z{BFm~;n?46ur3>K9mu!w#?Reu!wpLId{}b2B!^>Q9<96-ivUVQhxr=qOJ)6Y4uw#&>p4sHEF+gxiCY}XOm#?L6sI=L+Cw`Cc(Ww*$(v@OfF*>eNh zo*R@g-aa%VKeuzce)z`xy{WCpvFqA)*xJK(TL07btdi}q_&UUGzc9zf3GY>Z^=W*D zfqOZ|ZEP_9D&p2}|BaphhS|Qy?fPVp{|yA&cINO{_$&IH@6z+L_&+Yq|K0_+%bsJ< zKgOKxO5|=t+jxvG#j<=J#rIDF)XyAy214^YGR$WV-z)nPa%jHaLXRVd{cp$DbNG8i zPb1DTa|G@^X+A&UyMpH<#{OhJ+symlfl~g=jqy`)&E@^1!8emDX7Shn;1`MHR3?jvra?RVxs zf_nCT8slU$>Zob^bg;q96`=b^z%w=OZHiS>vJy4ILBo6870gynSDkH+x^;Z z*v{w7w>kMP*p7us*!JUI@qAoIS}wyoe$&xTwEIX5m_E=Lx8fK_4*l_n!BT!Z>TkzaE#D zS7+rETxnM#cMAUXJC^Oe(au6!{o+r2{%WBzn+&S3{itnZk^&MtGgWm&x4 zyE-eU;4jTGZ;E&0VR<{(9me%f@xsH-Ig#b?Vf|S-?tcHY`~C96^Sp}=&zDbmUb9)ARKo@5=c{=KZwf$fqx2KZHjf@lI~fJz2cnyU&#mxxC3Ee~#Zz$J?Iozl7zK z8Fyvn)EVE&${90$nUyEbSpDv-UuS#-Wjp>=;e5Tdteoy$JL8X8{8krV@5;Mexy_Y3 zT-i3$^_wdfyYf<3u6N}_SvehV*c`Z=>wV7soXmXFd-(HT+|LJQo|FCD)}C*FSNjLD zpXa-u7qoB8etwJl`Mma@WUcUUgO2C3a(5!aVb))={Li`H-#zPpviPQ1M_kMGKb*Cr9d{9VySC0cE{i`t>tvJ| zKd%0L?)R_GIwSl2fmwao?`L+p{nvR(_VelP=OvvV%iTrSv=_cW>yY%emg5a*tsn$*K{_s^4iX)vT|+b zPqXsI&gW6KdpEgy)^+aA;$i1RRt|UmJ}W=dxi2d>biSIEcXa+=R&MM(>^k<(-JR1= z;(Xxh+0@yQ#iP!7SvlJIhOB(Bb759)>FmwQhda;C%B`K}X656Z%d&EN=S5lB?0h#$ zj1O1uc;|bw_|u(NX64S#HCg#==k-~+tMe0C`9fzsD|dJD?_W>%COiKTWxMwqSI^6x zU(Div?z}H6_jitF<*S|F%t~+ex3jW!_O`5?I=h*bGiE=9vfZ0GJKvujvwxb!kDmQ} zR(8$aot3586It0a`}bM7VD`SOJazV~DBHcoZuup%|1XPIX3zL2+u1*RURItrdjU!u zXD%<8y#zl`!yWrOvfp1j`=iu}rSnm`(Mfvt8ST30JU6k0aERJ?(CDt>i ze;t4S!8!T$d(E7m;pcYmI`{i^bE>zn9UJC6l$CeP*^08=yVKQww<|Yg%TM*`F!Nmx%qsgcWyq9I&<#VhS<&}b05gc%G@nk z**}-_t9EaxtLMDAk7V)XbH9_77tQ^CR<4-a%*xB=K8dp3yE4nib!6_FhuQvX=Pu34 zwR2Zw<&AS!XXU!NA456K+c5Vwl(^1h%T4p{nEQ{}&zs$PAJ5u_{hIyU?(K19+q``H zyIfhC=eB=dzMUt|yYTjGf6rTym8Z_TJS%(W<=c7Yy!YZ~oNu$`F|J%acg$P0fy-^2 zSIf$~=UtVRo92BuE2DYWqQtz><&Vz0A&Wma?-NIS-I7< z{V^+ByZ$pPr*!4xeQMXM__^Ji)s-J#i(PrCD{sikDc&7jJN}V*ce$S*bmf+=yk8&g z%KLR|SKdF5cjf)Fy({mZW>?-n<6Z2ZDc;jvdB5!J%KPQnuDoA%b>;o?LRY?jc6a6b zCviVdc6HyuxP>)8(&FQt6> z^{#xxl`pyS&~pC!<6U{VD{pb-eXjh0D^pj_JdVrZ{>PO!9+$6o-En#UhsW`_#rd`S zwaqL)*nP-1n7_6A9pB{7k9WTlCC(2$c|AQn`SK_B{L7<^&v)?!Svk$y+;h%tT<)Qs z{J48Ei?@5}@%i#EAD^Em_8y;a_dXZzdPDyE(i>d;?&k&B&+XpA>}Q-mTzR=GuXcGm z-OoR9KR@f1+vnnQPRQ#&?}Wo+wtHFjGmckR-s;NDu6)v!(@x}am`}O#3Rm9m${nuU zld4Elw#QvP_{pKXz2V=aS#BqFxx923zf2VkRvwEiBUuWd`8TaR| zzSB?6`z3JY;K_M?A3Ql9A8Ss|*MGJ9{k13O?OS_t-o6`8{@6~|_mk}RxbJl3tOa>{ z%dWiGl~-ovH1D1T94ELhbU#1uexA87U#{lL%~?6!+qG~;!tHxu;W1gcd*Ml0nJhdl zD<>D8mz6Is{6JRjU3hy|{&`_OFW{bVBNrca@dsUe%PIMJ=;2fH{{M}u?=7e1_1@{q*p;tk>&@o_t9tYK zK+v1d2L^jNAHaO7cP~Ew!1JTtSF`fk-h3Rc?ahy;8+(t=j+=G8C42^g=R3XmaW&lg z_Uz|7dWTRR;)w?A{&TMUYgQiO%{nt*{+KiQ z`$N34`?-8p{`0o8c-$T0{lJy6E1z`b4p;uhm9J!FyLaiE^YvZs$}3!1bLAda&N`cU z)4XHO&X1#V_H(=U4i~@F#cy))ZLa)@EC1rk@)EZ`S3c*;)8CTEYp%S{l|OOi^R9fw zmHyx5`LkSkohvt=lgFo3^71WNIo+#OJp2#m-*fYL?8<5V`Oo{Za*Frj(!Ka>>Jaa> zrFnlJ`c_w8RvzLV|5nDQc(=Tj;}6ec-0xG%dt08r)Rp(RGIr(6^YY(cnw8jP9zIs| zPQiaC;J={@@Z8t=v+&zWzPAWJe*t~ZINgo-kMMk!J{f+-`82p|YMyg8ywAn^;Kj%0 z`EQ3Wa=rwXz<3F~uAOBsC{~pJG z0scD~|1n;}f0jQ0TYd;zPF-?_BnQ*#gLOu*44cOK@0$ck>VYZ+7vE+=wR_D0nq>?i!alfU=Z-K4;R@mw< zOHQ}AM{+8#wYe%eed2z}4z`5B#y~9bvA;3v8Ad(hlApk~y{Y6+N{-iBIb(Qhr{R@j#9mUxfE`^5v2GYDJ%hp@GCSmKey zo8m+~0oy+9MxU8^4E=ISer=`M&htAkcaWSB@tAl*+>JU8)+v4xwmMtzeyZhki-*J` z;xTde>xyOj#5M5%Y-6u3@gZ?TJR*+8J7Bh%^9|bCoQnM;ia6ipIs(62iTt|6hr}b| z&5}PR@l-q^=6j!3zmKtQ?P(F0#q(jyuS&d6JRlwtH^i}cOq`1Ox&FcSi23=w#rfI1 zxhAfQ8{$};iv8(DJuTw0xLaHm_lXC@L$HmR5s6QTTaGN&J0M;S+c=?Z8|&hRctjkF z$Hb}FpHb9V7I%xQ;sNmxY}+*q^LSo~@i`_r-MII#HV=sF;)Zxc9E(%&gxGH{>gT^Z zZR@IvYvQ`NA>J&G#be@Bya%@ZLfd-%qY9VBRdGLTeYFf8!}$9-?xkyzQx^}38{$}8 z!THqM5Qsx@Bpwkr#j!XMr{W2*hj)E!y}r0Cu8RA_HE~@$ByNafaTU+M4sWu;o`J9!R_<@laeBN8*Nk=a&i_q`$KphsihaDNW!qj7m&Fxv zRUC+G;sJ3ej>JuIEKbC!*qc+d(-)V-WpPCuh(mEC9uYUi6XKS+MH{-sec}P}ka$Eq zCY}(t%#-@X6>(ME2iv#`Bt9Sx#dYzJI1-PDo8m+~A#Uj^+8l}_aV$>7KF(7&W8AL9 ze=V?WOIhOG;;Oh$Toc#D4RI_^#s0BH8_MFUxKCUY4~XmH2)1o$NPI-xl${^L zi>qROCS>P_n#2dhb#Wwah)2XtaV$>76JmdU(dLr4EbbOp#8q*hxF)WPhs2S%A#RGt z#EIBDsc3VHxC+~N?vwbCcto6tQ}KkD4^nI_`QjFFNn93J#8q*hI1mqsWAT_c6;Fu$ z1w}i{;%;$O+$XMy>*67CLmZ38#ECc+dkc%U`QjFFNn93J#8q*hI1q>8A#o&bipRu> zm>)zP-0$KRaYlq5jVvNY@b=s)`t^f@5~~Hwj5tvayk4giME`wxLaJ2eA@D>;y_#z4~Pfh z>%IK*g%IYpunn};8A+VB_=vdaavn!rwB;n?RLs9mVmZFJEN+Nnap~-0*^0O-4#YKa zD6WemaYNh`$KphsioGR8+kA0Z9Ed}4BKF==)Dwt9aUxE|-rp6=`r?wfEUt*F;y_#z zhvK?85;w$6aV$>6-Z@2^OX9M)BCd)9aZMbG>*9tu7AN9V>{W`k`QnneEUt(HaVU<& zO>rXj@GRqIFMo#C5Xa&%aVl;(w^+7MJP6zIJ|yumad%&_Y)xDjH^i}c4DKuCZJv;L zcYjf5MI49+#GyD6kBFP%F>xaHmKN*v#Vz8JxGe4#SHx9upEwZL#G$w@j>HY|h`1?^ z#be?`%n0ti6`O-*w#z)nBuz%Ez62HZSg?jw6!yoIBoIB#d$5JE#8zk zZSh3xonKtXY0D`|oVIwy#d+%UA#Y5sqJSLtHhbxQq4#D;uX&AQs9!bt9Y-6A) z@iB2C_Er`3m&9dwY+C*~Y`4TK;y!U84#kmp1h)2%!Q6Mhy&r$8O>+DziuRPn-Qqsj z>KTAp&!z{kuO(+l9EnH7P4SpG5l@I)-kYy${e$@1UhvI051}i)ZgEvy6W7HJaV$>7 z{`-ph%i?ZvO*|m3i-*J`F#D?e8~7f9#K**`c#`>U{@@2ids<-DbKE!acVb~1Z)M5p z7FWc5;y^qkj>IG4rZ^TS;#52#_G(4@eQ}GpBrc09;y_#%H^i|x6?^ZOHi%2&ZgEB2 zCl15|;vw;fc(Zs+yhA)8ZW$=r*#_JGr4NpIai4gZ{}KIo%21hbyIP|teFp{;F^ctqS3kHNN$iNss3 zEb8foxvnkS&}NAT;sJ3ej>ID{>-qQ(a7~wZ%T=;2ai4fVJS2`_YyXJEn-U+Bcp~u$ ziT8b=Xv2VbNIW7Q6OVkbShfk|1zh{wbe;_$=8y6WN~aU>oQH^pP(mNiA4C2_a7Pdp$V5|4-{V15p?68$r9 zby5F_ctYI$5y=rxh+D2HjW^US{}IV)N<0yJ*B1FDaYfuG4#WfEP#lSy;zaCS zSFE>1ToPBred0hoAP&Vt;z&FqZi*A}gt-5s`LV`lAj@FRX?Oo4_9JZPxJ)`wjuGDxaEc-rzuXvm5&uUfw=GEMSMs+BAyU;-&o`ih)2Yuu-&JO z!L}{q5}y>e+*IVW!nQ2U{#kV{{vIrB{WbvG{u&aGh{wbe;?gIIWy|7jaYbAe2jWm1 ziJM|J(%M-P_lbwZBjPdfgt%p0QD<4)4Rh{s-S6K={#3E9syGl2 zh(qxZeDD~7ZJf7+_`BFk@i)Bx5A#wO!yv!jiR<+uJ|vFB4e^M$DIOCi;t8?$>0({J zxJ6tRcZ&zaKSIvA^B$nk>rfR*3PEH$6y;jiNw9z ziuRPmWpPDZ6$j#)ct9MA>*7e<5I4oKI1#5}@9&HDcZ)0HK5-x(5RZsQVe8v**!puq za=JfLtan0OT3^J=;%;$8Tow1jw%$S5);lCQP4SpG5vOAB_M$z$xFjx%E8?m+5ZA@AR55u;uhQvq2qp+xLrU1KYAa zpDW`1u*EC?P_(TdwmJie55kroN<0!b#fjL%9M`tJBrd~t&Z$T|5D&uEo>1b$u(ckY;H8-f-ehi$!+uq|7;v&gB6M`6n!hb_PS`653NdtWHxC2>U@ zh(mGf#(b_g1)sz8IKL5}lk`ix4%@aw;-)widtWT_OXBeEA|8pG_Z0C&oQl1Bi=2|! z`?8D&aj>b#55>uSMSKr@$!Ym~fL;log86~>l_IAku86&_N{+Z94#c525;w((I2C&h zS(msfPQ>2VBwt(+2jWm%8ZDNshy!sb_U|w9%i^lICa#Mc;#i!D{jW>?;;OhN4#jnG zByNafaVqv6DAwzX+h7|rw2hgPTo*^;hPWw?#fdl-dz*_k`{I(gEUt)G!?umIZDR;u-;RGfXaSx*!Y8|Vej-j` zJCFI_C|rUqzbx^J#H$hyBwmwvDDk?)BZ)U8-W12;M4XDfZx(I##U*iBTou>Eb#X%+ zi&L?;Mb;}Wi7VnjTo*UQO>rXj9+Gv5OX9M)Dz1r};zXQ^{eLRfRTfvoRdFD$iR3c=IA`Zkg*xD0HJQ6o0ClPz!FP1HdE8;*r z2=jUD>?=Gkl=!g3BZ)V}qb}zcShgwgSe%Hx?b0@JSzHkZ;s|En{v3T<`9aZ#RrqE% zo&$+T;-)y3{6ylZ#JwLD_4}~ZUy^u5;(<66N8;d#qMjPed#Jy=0evoUuUX`j#EIC8 zi=0-N`)*-?<67cPaU%A9R4m&AbJ-@A4J00lqp`ftZ(WS~VY|0&!UxB;xHMkGE8;*L ziX(CPpNqCt#DO>zN8+Y95!arQI-f2ah(mEC_I4EcC2=fHeq4M`P1`u}o+(@sSHyuh zg6;Ee+UjXaoVIx4;{1%8wz#)bKAVOuUJ_R%hqj!mIFKCLazYo!>CdAr9*LV`?XCTA#FxR>V}Ej=(pG;U4#knU zA#RFeaUxE|_$T}ht}7M$|5n5UnCJYb&cb+eZh14#Mb78IiSu`0@8@~`&*9ZCdfrF> z>UrP&6PEo&abAkV{x6GlmEe<6#Y+5F5eMQLe6!05B_4^J;uyZ!1?ih5dMj-N-@;Cr#sIv{W`9E#* zf13O2vH!rjB)=jK#GBy{A%7+Mmwu)n{~qiykeV^SI-)?)5O+yc^5Xwrm93d~CDCn-bpvbJ_pJva~Im zNKOh{JNLN!_P?MHCEuGU*5$*N-v+b(Q;<(v{Uynt?{bzShqjz$E`9~#w8iVN)xX~5 z+=Lw3avGAeS>mz8cff4h=dmnp%chd!PZsMc!MxU7UBy0vx$L*FEN#oK7dK#Q=Vpn= zF!vqbccLw4hvay_kz)|%y7psTZLqDYBsue4&awZ6K9rngF8*G`XF#9J&owU`tS-ivLJcAtCa`uSZ zUe4?3_+PXQww(DcekJ0x#g~Z#*xJ9^~g+@9NKc4lC#6*Jck_Ga`w3R5&sYUAaVcqMg46s z`{8Wl(6($@a^}07Ymh@*&N3IjA932^t6luZh|?CY!?s=PUCv(Q(3aDXoXsw0&i`TC zB`21g9WLiwu(VjM#{qO*CXv--{PDQ*LzTV64m1x_pRP607 z;=VW#hvK?85;w$6aV$>6sn~y|XhR9Mc|uv@6^W-3_x@Nc>x;|csyGnW#G$w@j>HXd zQyhyEaVqw4UuXSa7FWfAxF!z8b#X%+ixb$M&(OBsRP6n^i2LG_xGbIz+gPHl&WgAy zUMBgpAM;MDvjm@v z?Ouuh$`Y?gyejdUIFy`7+!QBb5A#l2*C1?vXSEJndpLjPw*LpVy&>^foQi$SFKyYf zxB}a{suB+*UXyrT+z>YNzGVDvquZv@G0$cs5 z#68SYE$+j%-mISp|vPQ_ImqqeS^I2Na3AM+&3 zPsASPD;D>~WpMzrZ-?KG^B8Q~+Z69$4z~Sq{6|}zIMW==FNrJSDs1_I#6xjiavI`T zoQi$FsIx4tiu+-E|F9T_DAAUTM@5_192#h#7%J`F1=3b6bIr^T!*bchhaXaN)U)7 zry)6`F6V@G*ha~TB`1-1=?H0$I1q>8NZf#}ZLxS9wsxix_oo*5WpM@OKDyvSj8%!( z#C35)9E(fSWLw0cI1)F-iP)Q7)DyvM+itY2a%2$?#F4luPQ>1fV%d_o23sH2#Z8#& zz5XK4izV)3UTFCNZ08xyBP||Eye{#k#AAsk5>F-WwHNi5#AVplRgrjA;tg?AT*7y3 zY}o+jHoop+oRjfyD_guOu8Hg72)1o+NW3ZWSmLSJ!@mn`%a+6yaUib2*0xaMUS|>a z#U*iB9Kqb)li!JbD)CfYnO(Fk5I4o+u$`+DiF-#E%a+6yaSgU@@#YjR!ED=|Xj@I< zb@4EB+%=*JTOTIk^4y}%3T!!5i3bv|Nj#KzUE-0%o8rQBU8 zcM&g%lb#~(9bdR4u83=ID01rJhPZMRkSCJx1sxG9dsi8vK|3ySsn;-^EI2C(~iu{teEUt(HaZMbG>*7e<5I4oKI1#5} z@06mQzPKbVi!0(l9Eu}xLmZ1!v43jOhRSJ$192#h#9^<0@cCf^+c~6idf}=#5ZA<^ zxGs*w4RKQ(ixY7w_Rc8U&z3sHRdG#R z7dOPQI2HR#q<(Q#9G_FF4RI_Uhpj!{+lx9&;;OhVZir)XD)yHbb(Y0F zu&uW$@tU|UZir)XB2LBLJBs!C;N_Q0To*UQu{ag`mlXAs#AR_q9E(%2zoMw8EUtmlg4{xGJuRV{t0>FPD16RdG#R7dOPQxbdE%&RCqTEaLvE z!ewz)Toc#D4RI_^#kDJn`s?C`I2Na3|GmYsWpPzp6F0=MI2G4|qRzUwA&$kV*sm4K zmc>s($Kq7%4;IUo#kDJocwO8O`&Sh?WpQ2H5Xa)i z2a085ad~wSuZnBpSX};)3ofE1s=Kv!w zd0t&y{)ps=2d^pWseZJ`sfionSe%Oe>t$J(b6U<<>o*kfhBy|dV*g`Bepy@<55sm3 z*pT=rZ1;e%#K$E+mH4FOrynoY>)%+od{f~b*v|h|iPyw+aYG!7Q?dVvqW-eDDz1s^ z;)XaDr(*wRsb5?b_rn}BV_)On`zrEl;<~sYj>VI(^-trLqMle>|6~zwh+}ao_CF>0 z;#BO1MNV0qiv4<#Qxn(44RI_^#r~&@ddlLexF&9hV{s~O3>9_8;#BMp7dd5dRa_I- z#SL*RPQ}%~FY2#}>*9tu7AN9V?0=@Hvn;NPYvQ`tUoXpwtKyotE^dfpv46YNDXxlZ z;<`8%r(*xJQl~f(dmD!ToZ@lx;PRy z#7%K5PQrzv#HrY8$hyQ8aUc%Gb@=^LeQ(84z86Wn;o|Q>yeaY6#Rm{i zo!7wL*NQgyFzZ~4cuC@A7yk_66^U0}{0_teiPv2GUc~FpUxypc--2W3C*jn2C+v^p zZP*2uoqq{eohRU$^FFxl{8zZ)d}s&icb*O>u$^yH7e5+tZ?uT}Ft`19#9LvzHkBl& z>~hXTP7iF?sfy%O#r?3=6G*%!9)zu)P~yX|Ejub67f*`4`-^QUiL2t8xGrvpV{sz( zzAp8PE8?0s6xYR(xFK$eV{sx*#ohx&dwg+8ToG5rfw(5FiyPutoQPAg_h8YUs<JuIBKE#fEL##+#IIXa#zN8+Z~ zdrayS_rNw!s7O2zhvG#v5!HyyxihF)s%oCDlV7$+^cP-xA+*#xY;!qrk zo8m<5{iLX;B(8`9aVU<&O>rXjepdgd3(%VL!gd}= z#NN+~cu8FOWf2d=qrWQJAN+ff6N<+ti=5K$ikyl#5QpMO+!R+{F6s%yp*RvZ#ff+l zw$C!WJw=_Zu*FLf?~!=FcpSEQc*C z@#Gj2HtmzJNu!ooE(`Wy(>@8C^nu_|a3nYutbVZNBy7qli+I8&?yZR@?Ut~K`y!sO zi5~@FXi)1FD(q$vyb1P8Eb&xB3-P;ewT z7OZ}>>C3PwCt*{LC*ld4xW6Wzv}eL59*B6tCLRioM4E(6nwMa6FN;N*giRXtlWp^a zO}xA&p7hCtO&ca`(s+V>!69spJzZM-a4xwN1c!nn!Li`hb(Bxh$$9bX z?J)+Do7i|LI9|ub)w-6wrj~ud3t_V^+PazLJp>;GoBE6u@w-I)B@tgJ;$xfJysbC1 z9Ku;26P(-FrnyV-QJdI!>lUJ(a8kGAIyy>lc{5wSCpg~1##LL(Wx<|ce@mMt5F84Q z1iu8E`$E{x=JmF+>Z7aRx<1*=_c-m+j%urE05ZqrACW5LR^Y2v?GRy{12 z1$%-+!I9utu-ZeEBiIw{3l0R2-OHYr5H{x}5*!OwJ#Ct@U{A0wI1n5Pjs(YoRWDJ# z;MQ=Da{AoiiMTH~5F84Q1jm9^Z?P}Io?u^aAlUC?^9F)L!I9utuPDCpZ)w2`={&=>-S-*?1^85*!Ow{cZZP;81WRI2Nq-w|RZRf#C81HjO9P7aRx< z1xJEo!D^r_vn)71#KzU3mdk=Y!M@<|Fq=LS91B*1ZJM%RPp~gI5F84Q1ecGrWqN{r z!GYjVuo`Of27*Juk>FUcI?CoP3-$#2f&;;!;7D*RSRF0O7aSa8f;ZQinAPx84ojW0Mn&&Jg#%fV>N zQD8Y1tj5@QS+E)_;)3IgMEqjQo?u^aAUGDRF0pybff0Y&m7Y zo?u_FH&LX&)^Z?NU1#HE!Jc4Wa3DAo9NlQki3JCfY&;Yk362G;TWtEWU{A0wIJlL$ zAD_R>zl~?uHC()%wF20@Cqdn2*%Ryw4g`mSBf+s?b-O52urD|e914yE$FP~Ns?c&- zuqW6T90-o@)YFUcy2qw33-$#EfX9!GU1!QJdZutRA=VvS43uAUG5p362G;Cv2JONy}x}ymQqT@j&w5ZTe8K_mqwM zf`eylJQN%Wjs>gdMIB&stp$S1k&SzjU$k*wu=k3H3yuWGg3GVj^lG+cPp~gI5F84Q z1jmB?H*J}L;PP8G?g@?st2s7JS+FNKdfTRn1*>;#yev3;-^L@s>O&hZ3-$#2g5$Y1 zz52*nC8I20TSF8^qc#e>at=L-%5 zhk|3l>L;7GEZ7t53l0Q_f+NB4FSbmz!g5)#CpZ)wN&eO5jRmXUY`iSk6YL8P1c!nn z!LeZVyC`3m@U{$d3vS3fJFE|n$ z3-+pQIlkaPa40wu91B)8ww$tHPjFCg(}aR!!K%TgDGT-l`+@_(q2NexELb%WKbPNGb~ zo?u^aAUG5p362G;&Z2z5o?u^aAUG5p362G;oo)G^U|(=7Saq@KL&1^YSg`79)0YK% zf_=e(;81WRI2NqBiSh+|f_=e(;81WRI2NpS5#9AG&T91B(l*feFqo?u^aIMAk#1bc&Q+!q`O4h2VoW5Mb$TTWT9C)gJp z2o41+Uz8)*6YL8P1c!nn!Li`-5w?6!urD|eTs~5y7wiiT1eb@3^n!z9T)X~utW6UL z4h2Vo)o~&(Y@Xi(!J*(tuz$QrFE|t&30A{x`m$h8urD|e914yE$AZfz*z!HW!3Y}< z1xJEo!RkbtzAQKr91B(_iS&X!!Mf8ZJJPUBsdnVM%wg|;8<{Qo=p=9js(Yo)hL_3 zEI1fz`T7UrVj*%g5%q48g;wnvS3eeC^!-v-(mBrJ1v(dTlNI| zf&;;!;7D-!ZhI~~!9HxRwLowvI1(HSF5e@{6db{(%vi9x*T&0&J;A=FTx_^?eM30Bi>ye!xg>9 zu;oXBW5M22HjOVh5*!OIKV#E-f`iD$Bf)B>jh6*`f_=e(;81WRI2Np4u;r^4-RwL3 z37fuG7VHW31qXsd!I9utuzE?9FW3|83l0Q_f+NAPU^PpWFW3|83l0Q_f+NA|Wzjxx z);=O$7IAM)d^f(Eov=yoi+I8&9taLanuJZ7NW>F1@pw%<`ObX8CazwwTo$Ze6>-6V z;81WRI2K%f-In7C4h2VoW5MbTo3||36YL8P1p9B=yn*0Yu=lo2;|mT1hk_%)vEb+( zTTU$4d)LN&!GYjVa3r|=zRg?yz_KSe6dZqO?-6RQ<+9-LBU?@+Sk1HXvS3fJFWCFo zruPL0fevY?`uQPjDnS7OXxMc?Ac8L&1J*(+7e>!I9utuv%dA zmIZr)eZhg?P;ewzeId$}ywJuy!O>T4_BVXhVw>1a40wu9K)uZgiSeWxs4}m;^j5*WSmUc#61yD*u;Iofk>0E zNfU~A!X_TAi6`S^!X_RIRzKQ!__O6maQPP-_XPWb1Ho#AOFUc zT4l>A3-$zuf+NAfUvB05hu^ro_iPRCm*YKVtJCo_8GZY*Njs>eao4zdA z6YQ6A**KiA8S4VUq2NexELhdsauPP>ltnyY6Zh7{EAw6v_eDHmlRgj}iZltEG?9oW zY~t~ncxB!z;;O->DGT;tb8kx6loJRJ1xJEo!K#VPTNdoWru>9W`M!uJY~sP1c+yr0 zn|LVV37dE%I2LIVHfhv4X&sU>6E^Yknt0My37fbl*cTj%^a-2vk>FUcTGys23-;iw zO+?%m@q|tJ!J2rbO+-8t@q|tKNN_CDBy7^CrlL(?6EClcSK36xJ;A= zUlUK-Dq#~31c!oSkv?IQUafDrEZ7t53l89{O+-8t@q|tJ(VBRrO+-8v@q|r!wSna_ zoVAIFdm^5&$?LC)SK36x1HqwS)!gPS3-$#2f&;;!;7D*RSZyfE7wif41qXsd$(z`6 zBEhj>)xxGJ3-$#2f&;;!;7D*RSZ!*{_XPWb1Hqx-NN_B;+)|V&I1n5Pjs>f-$Sc?v z914yE$AVQWTTWSUuvt!hxt>zTH!!!{JePgO7q+(PBf+s?)yAd?1xJEo!Dx%`;7D*RSZ!tVmIZr)gZ4H}C^!-v3szg(^ku=GU|(<`I20TSjs>d@ zqI|)gU|+D>R-_l~3HAkh+uQWM;1HhZroStXMO<~X>Af8+2ZBSvk>FUc+R^4M3-$#2 zf&;;!;7D*RSalNR3-$#2f&;;!;7D*RSnVXr7wif41*^^?z2H!AB)HtgruPJwyNUQN zmVLoN4;v2!M}lL)kOyrub6TP=QyoZ;iU3ebI1qI=TQ|k6uBaqc@lbZ^C%X(!4r2uhbRj543NQ*BmiV zz79=AFQZY_O3g->)Uu7gWAqbxxn8Mn(Q{3dx^W$)=Ab{3$M0Bsp(D|6O{p#S_?uC; zW=frcZbj433N&zirOrlIp($t%`VQT^fl|v*D-O3Sx*t7{mZ0r6RBA_b654hnjsty$ znr=+p(N*Y-P2f$Lx1)2>WYmklm307m2+cxs(e7oX&P3OvzO5(|y@6^sQ))A`-R4T2 z*P8mEwr!{fdIY_JmZITX@b|aSljueC18Uor<3ul^CFm!#Q#;-Vj;5jhTPZaWy@2MS zCj7v6M>K0|rG7^1cTnoWZIrqaeTKe5>u#&m$>@Ak;M8|QC!xpCJE(4ZrM5!-(Jb^f z>e!LvMW>?6(0j?hJ1Et#qf!Th@8pxG(((ZHYRfol!3|22DmEqUQV2-spbx0$PB^_h)~o&HnUXG#w+30P>@42P$_F z*&#~pfO?~g(9`H$v>25Rr5(|^Xc{UEQmP#qfKEeqp{m1_IuK1lZ=w!^xz5o;Xa(wf zxKd}K%g{CGRkXG$Xov;eI;lzpKK z&?Gb!ZFm%U(GBQ+^ahI2GSud1_KB`Q@1kE(+hdd(hR#IyqSsKvFzSH1q48)w+Td8O zUDOYaK$oJgQH$fa_K=T8p-)hg}=ovH{?S2AdCz_3xqXS3K z$Ivpg;fY*Z=s0u>dI>E-&PhsbiuOKPsl(8Lr*i($)o4DdI*sE*W6)FRQ?$Y9oCh=w z^*%$X{m^vu3p)Bt#xQgidI4Q_7Hx;7p_kByXgQj4HunMa5!&J$(xZ;&axAF%NX8_z z9eN7=ijF&vu@b$HHXg;bfZjs$(E{`n>U%z813Gpz=NP>cD7D@g+60Zhfc8bRFXUc_ zmZ24B%dzYOy@6sR?MrO)wgX?nBGaW;b)MM@OO)QIknZ zwMTzL=5kMSr2wrf^)S@F0B`6{k{P^c>plA?_9E?P;|8!(4yp zQ`BoZ<2;&)mY`Lr$s?Q>GzqIu$0x&$plr##8L z2`xj1{hfc&?K3F*DaI+(4V{hNMJv$GPt(rm5;Ort=p)qW8O}9&3N1tGS;ilob! zjzkZlr_fCF0g6%km$+}tqFU%1)a7NyH8c{vh&F$P>lh6|=c8-Uqv&V!JIcRGdUPZ@ z37v^9M)#mMP^Z`E&*&bs6!n=+JE7yy=C3Pt4!RFLf?h!C4aR-68G05S`zHMby^8c( z2%p=fI=uY%Js(pvC3w1;uD!xaxs2K97&HYl4N-bUL~ig=oNMTs!E#&#CVM?h#*by`kY>l6N8VA9Ua% z>V@W^wqNmVfc9EUzemH-b?5=K6gB&rxe)634f9j95Y>Lmaib1P=#%IM6r$Ibd`lwVFCL0_Za(0V`8C(!`3r*?Sdm7_GD zSNBHEcoI4f%|&0LrRa`4e;W&RjbP8I6en+Pj9rXr!rpi$rsvR}1&QW)wIp`~N zYROSAqn}WxdPiN1en#zBtL%$@Kvhi~wKu9?$59)gZ_pp8-@1-E7@dJGLLZ}YQ%CK$ zo}=DE>o;@Mw&-}Y9IZqF6%>KI*!WqXwWaP@9eUyIklgG;0&;g1$vdXtU~^RxNWmmPV^tVyojKn%a{yU&DyG zgQK==LJ#Z01JenbyY?bJZNk8q&cRvpBa5vmhU-8-rC)z0by z)m2?b^m=uOxwEBe9pR0@10(GhSQeCFL zQkSbG>I(IPx=Q`5CaRU{TJ)fg8 zoXM)>+@%_vd(=A4eQG`Dezm?cMKyP(s+P_))yjETZRSi@t(`~I7S5w;OJ{~^=RBvj za-LW1orov#j12RNUpfzASTu=9mF!ugV? z|Ap#AXR$iT`C6Uge5X!xmZ&qF@73APGIg%AT%GUytODmZRtNr6W1YX$B`h*r=4fYv zlXtFgs+_BwTIU+4iF2*f)VbbS-?`D*(7D-Z;oRbso!gyOPUy6D?sT?r?sK+u9&omD z9(1oP%JmzfYJn8JF+FZ1~`kI1D$W3L!2efAm@8$u=9iCJ3l!?ofXc}&acie=Xd8g=TB$2 z^OrNiar8-!t50$A`gEsCpXJo(bDcVUo>Q;Scbe$HSyx}+tf$91>+6f1=K4}+BYl~( zslMDP>nohi^i@u4eT}n)zSh}NU+-+CZ*sQQw>aDA+nnum=ycR~Iy>sSoSpPNP8WTj zvx|Pf*-by_c={pdZ~9SZFa4y`ThDO%>SvsO`Z;G`9Xb8=3(f)hCFel>vU9M0#Tleu zbq>?7IfM0VXNZ2?IYPhT9IfAUj@55DBlH~SRQ-U|}`U5A> zA37K4xz1Sqk#nh@=Zw=IJD2JC&UpQabGiQ1xl(`TT%$jCCh7&wwfYO^I{l?{y#v+!^kU~${k3zu{>HgOf9p)v-#K^dCC>pz^C`cLNty~=q}|K+@_S39q1 zrDtnLzoE5$OXu_)o!9T_g8on!^;})8Kh`BZUpMH_^g24$P4zh}5%y{-OBZ?BcxNxN=mop-zHqPvT(cDw6(w})=x?y1*td+KIx zFTK9oTQ_(6=#AXIx`n&9F1!77Yq!5{>kiOcx&!rA?m>D-caYxMJxq6T2kUO`;d&SM z7`>}|toGdF_3rKox`%tB-pf5%_i|6wecUtjVD~KTyXWW;?nr%}J4&DLj@E%YMvrkX z)MMR?^rh~_`U>|_eU&?2Pjn~fd)zDaz3$ceK6j#iz`agSb8pg*x|8%1?k)OB_jdhv z_YNJolXdLgtG{ul=%3uFdZqiQc5;vFrnx8d#<{=i&2!J{j=AS`*W66)-Tf3^ar`sI?gHgtDNh8n=80Way9Pvxstmq z*V0{?Yvr!WwRW9+TQ{F?=N9uF+`9bE?oRpc?#_A7_42#Bd*pk#ee!#_ee-*}=jHpk z=jRW0$L5E)7w3<4AIu-`K9WDdosmD$eI?v-0u?3Mef*eCZ*v2Si^v0v_|;=Z|Gi~HsNC=Sg1Sv(~7 zS8-5ISFxgY0;>f%ZtSYV4m`J2sM&C4v=!=eyrDC1;=W&ry|J1#gbMxkJ2S%y{cs1* zG8H>44!yQ#(9>AQPIm|j0iZeQvxl9_nC5yGrVh?7t zi22LlVp7VgjG8i!Nn`CYdiGLtly7JBaYj{Hx=l0MF{AxX;u)l}k84}-)KH<#@RVjU zXGv+pOAL*C!q5TPQCj-pKy&2B(HgHXhhgm?OV_Eri5;@Fp_@7wYQH(pc*!(O?ZynZ zO@+F4;&xn0V)k6N<2f#E-2ptkq;%+phBj$1^ma2tz1BB$BlGn%$Hm!JTe7A3BUq2C zPxkxRNJCFF_(WoYd+Xl%dTvzpqY?0PZJN7amLm1CRF$dLBBV-Dk5V5H*HpsZa^8_3#RB{qcE)C%3lD4*LjN!KGA z`LAN#AszXr_cL@2Bhqf0CF!2n+R%y)hT1WH?NQmfJ6Bms8}VG2(tzJsm#J)xGkWh} z(~|q#$%=AXGS8anejnV4(XbNxa0}K2D)d@wL-rgscAwFEvtm=pasD#X_UHZ0(AN_T zeZbRgI%Y5KV#v0^|Mu~|Kg=BO+H3##d#oRFq^#Vq8nd86wpNXunJ2PV`)}&pSWDWP z+BUVZ=leTq(w0e0yANWmt3p3)=cv0Y)MG!h^_h$g;95;{9G}qxY@JfcVN14@tbXmd zRkDu(`xvrY_hDV8CdDVn(DpwoB@K%@Jm_uv>euYWiDcYhxqLbF2ZTZLs1M(;CO@`mg&~ zdu$M^jcF;3(drXTk4XBTG`{Ubs3eNbC>HV9jUk2-5kfL%MIE4 z%!vbdBH(Vqs_wpK6tJ|CS?>Lnt>1EwnpUCGZf116FY6oc-_3_8m90ChH21Bq{$_g4 z=$%-*<-GH$^UWsj2`BTpU?pa+)nT5ae(jp1du$ae{M{1jz8h<@75cEdqt>m^72PPg zLOcDzr+yVWC8NzV>Xp%<87<$Rb=h1}vfXbz`~8W#4x{-9Q@?&a9rbySB=%HB>+~|Q zmKo`cW@qU>%4l##MfS0%QeNi)rd<|uM6DRTk~LcXa$AMI%4kGJw`6pFMn7kCc}Cw+ zm$Z~!`Z#JxrMz*yS%a>St${tt4q5H(*161qpWQR5)e{-n@@zWWbADuovZ|89_MFC! z-1fRpE;a2uHZatX^(K2}-p|g*|2($zAk)r`mD1Q&8=Kh9QIGab+Q8dlb`zLj_TP@jijm4(4r@vI@VavHDcNvhBl3cMV9k!#hh8oNJpT^E-WJvEM zQ!{ET?}$le?)VG+FRfK$>B>_~d5vwgrEJ5eG-)X#zxvN|G-qWZ&GFP^Gm5T#A2vsr z8{7Kd#MWN&+PD5U`)w?5@3r>v#&R?kORnD+4oiATV_W}k zjA>>CJ%=VolpNcD3jN=B9RJ&OPFkaI?7utH$<}uNcI$srmw!AT(ZAhC^BTTEF#O-u z@4u-*V|kO~{e&6z|4F|;IJ@#LaLl+{%w`m)@G1Qeo<>-)$!4@Rhn*Ks=xXL5CuJ19 zYVJZOw=#5BY-j|ZlBe@_8@nr;8O`fyw%Sr&=f0iZ7dF|%(2^5Oc^k2ElFrTkF-K6T zeUc-k#&WFw*_5(9bBpxey&g03bf&*NYnPdO@;!*k?7=>b*}ZK#$mIQO(|@hY+PB(L z>@#fgT$|RVvDh{|tEF3u?ak9pd!DM(r?I{~`=*q9M)1#c9#1i8YglRsOgdYaqxmL9 zx{tMQ9iQF1=bp>w9hDifEydERtVc}P+nnFVVz!4RXC^)8+g;Chw=3szuU;mvExECn z-P)RGu=F_A9A(Yt39H%Z{6)R=DU?MX!Ew8@vkjpW5;Gs);7o5M}dD#m-g|$ zG5Vxr$E#ECH2w62;|z^`(9q%8lfRvty`McfG&TY^7TYy@rn9}Xv2-VK^_+HEGR8Kx z)y6E@TG`m^pP1SwcLRNTQr-p`4a~^N$c}{XWn=p<88x<#wa4c1?X7=aU9dSuZq9ei z&iQ{oN}FTt<=G>*IsVhw7+UB0^OL%~w486ESLj^6pP15rTFTgfZ-kCcO4*htlXQIP z<{Nro3v;iqs{xkA2Ie}lv11N4qpgh{l&zs0#ClHu3)q?X?Bwz#d>_3MyL4aHPaE0V z`obi~m8`v{Tg%%Uviq>do7_WhtmLq5YUu>_ksjsQ**f9V8U1#G*?Kv#^m_X!qdPJh z$Gy?LG^y3cP+f)QLK{_RU*;QIR>{cn!#c*;zVh~?ci$FXTfU7>VNW9yvM@BK<${&#AS zbi%X-%d-7GlF@!y4Ys09|GE7pawkq>Nv+%~NGw)i?Rm2`eTL7v0bxtZ)RKVKB~5)mt6Ue$C2OG^qewO zbJag?{cp~`ZJ`^po;^P6&%0+-oAvB{vYy@N|EOp0@K3e3M{cP(y?y4@|9F&F^6luf zCw`I9!nvk(%iL4at+tdtubaLRW+T^vjBL8u&ziigo-?$vqoc09CaJ-`JY}U%A~uJO z{mgg7)BS$HH^@_3x2?(1<`^@7ZfqZol{Y&!ISxD5&{xdd(vlC!YTs?1+4}XjW@}^n zxIX(N?wyQ2ZDMMA>4zq7^QI>tt`&@%)wcja%C|>agpQ*vr~{i{aah8vAtpttotKgC{M% zM|Z0kb7u50<*mI2&ao!P|4v=(Hw<3lcHrfbTAl5h<7k;tvzyHK|Mvc!&)O=r|Ncf3 zyZJX0+iw>>53Ou{cadr5mfZ7JS7KLjRiq>E5!>_alN*w~H63PRKi5ML>7W`}13;3U%ZuKTY?}!hdZSd%T_Z=9i?E9B=hC^vdD< z>b(+sJiBWw8_qASDzQbE&?hT&#KopAw$)B$PWM%1>*0r(mOQ10slh<*Ug>q-X%9mV zcc3++SvFeqeAUEkTiNnH%f`;$vrM{{*+~8HTobc-Hy+5ndQ#Ftv$7u6Se?6Nt+6+K zDD4qz&tcOgzu8V(e943KwOf+Cy#du!=n1GvgFr|w$0M2Fq3f(!< zwBImlwWJbjY>c=#yN-_J9Hm#3y^hYwuA|0|cUD(^HS>MBeLll zJJWV-vfo2qecZpc>0?&uznbH{KcmKuvSBs9s=X~~tGTE0`@0GyW68-CvRC{c z>^D8iy|N>>$18ev)Ct-|v|1q$S%@8aqdiX5SlrXG3#EO>8i9A=hg9 zoct_jKc%tRRr^4dN%vMeehEG~+3)607}{$q^G(_NA2(#%-k!lGKbW@PKf4RrzHxFE zEox75KG~=`14Jx!KGBwyHyW&4%(w~kreY0`R-fQjk_RdQt-EL1CvTb#B*~DJT zsK7OpmOO~_JFQZKU#2iBSLjb=#^USg*=gJNI-Fm1R<>>f&8pBOCc$&><}lRw@us{l znOmeKC(kV@*%`&aJxr`sHj3JszUuRoRVmN=n@Km6r>V4*$EzH*^F7JlwyH678L{0e zv9I|BVoJ6=OK%@z#-<*83*?%6lTz$fyWdOLI{Ln3>uN^eblzmQ+8nliZ)Wwoni{0_ zvpK%qj}?ad|8Z|yc;<+n8gJ;Zj2_F{@BVBarm}rBd*0;uG3ya_Z58G)Z?!Mmr94)T@=)uLl^K z__fKgg4RgC+5awg?0^1_zr9D5c}{uY$)sd^&Df*-;6UC9@%Mk+`pmaxA2yvW&)!3A zdAo5foI4{arDN7sHm}`>?N>Ih-CJWvG-)=!<$g9Pxv^1ilWfcx%Lv@1l5Wn+W-ibw zi>=^}-MzBa*6L2~N4+btN3tt^laS}SN~|g)TT^?7`0Pc~LQiD$?i;4R+;xfB`gBHf zXPVgKgLrFEWgkPbt&h$zTQ|vi_JvvB{Wu#-e&FeIP$h4VVdk3dKAG?!Tzr#@%sK-Lb^*y4*=8?B_Xzm~99$_JnFCWy+`*SL=6 zRcNOntol``WouJjn{5pB_f5$&cQdiKv+=YC%N6N~|{v%J%kV_8rYBKk>VD&M_-n8EwKfp2qIro|k?Tb%&juHBU+l zW|?Ou`@HIAZR!?Gt$J4(3fdZ4n$ePRCU(+UW^X5-Y3Q|#_GD{XgN-w~g{^7qSgxbA z{qh<4mzmhNv}wBL_T6+7TlkovAz58!W%MxV(j)&fYlDeTm>kb!G@h+#4fbIHa1CX# zml$c&Qj#}zq+4%-(s|DI)F9n@>M6WyqSE%;eQ!n;+t(U9GaE2+r+IDPIH9GCrDN0G z^z3v59?o4TC7Wa2?AmIRU0e1HZeBLW+q;o-c~3TOOv%WeRgb!)$9qK!Q_Arf&7iH) zvo$cg@@h9VIfiBQN_LJ0Gs8=BT$tShCS+R=&04ojmd<;FrmenPf(YmZ!rRTTHUOZR4l3Y=9yO_L>d}U}{7VDA4 zj`hseZ?dcVh?1ioe>Ev(Qg+{O?2cpaA9hytcs6b{mZPz~{iih@$_VmprB;KN@UFZH zHC6*#=l^+KzT?RzJs*wLss-0fy0x*EOzM}O)uetY9hr@`@dT6ir|e$VHH+EfuywY_ zVP|B2WTQ`Gt@|}2>*=$T^L8a?a7=|pXJpHpk)72!8GV`6bVXLH-?LaLyH;&Y8$0Lc zlzGEQWxqvjsO=VpeycXLPe$#Unppd741JVsJw2mUjOb~}uQ-N|&bD4$G_mLU8R}SN zuB~nP-gIrdtPYXSOzWF71&wHdk)!e9Y`+W&qPT3+b7eo1Kq< zx}?3to|yw^yY#McbVjyE*c#Zjw|Q+kJC1kC=Gnvc=b4>rll7Q6JhNA*v2;VSyR-cb zZ|Qr}FtsdgLv#bgu=x zH|O8x_<$T~-fOdT$uA>bs^oZrXM?mZ-!b=2)7iGN&*yXaY%yJBvcJ`8Y}MJG%lG!? zSJ&?($I)@AQiCh>Cr>shbv(iRR{FaKXx++IvF3J^QkPd^CmhJH87lPs;rt4=LI>~6 znW&JhX=D3cpV{FfA0{qqljE-W$<_h%rbjCD`w~`DDwOoFH!9>o z^D1P2`DcIOW`D`GoyW5{<0ro%-IL!9e4fzSe{XNEY5U82Tl{?7EbAmi)o=M7yHdmEM`YC*hi`Cw67-lCE958Eq2&XV0PE zv5$0xswP`gUBL=ky1FXr(nxvs+1akr*|j;lnrDyAuAA94x2wyh7r&H|ZJ|@fC{_Me z@t^&!%WHR-U*+AC(GNc=b@z8kx(T%X!xh?t?=qz$+}qcfqwMh@Z)dA)o!6hwPAYWJ z2BrpMV^*Rov1#;@bY!)kvDja(4L*h^s!BTBpO-o2DQiK_klmYI{k7#?GuVu4k8>8% z&%ErB+gi0O{cHU`Io3SAKXo{>7WzJKVa#G%zt1XACDvFC?0#)s?Db~ra@A@+=lnh? z`S{L`8c`wp{U$qR@0zWBoz8JMh!q2J6f5-6>D0bLHNWs_T!pG8@}{i{opms8MXb=f zj9Ob&Xe47n`Ww_1CmCveqM_Q|O>3NexuJQUp}n%$b6Ko?7PCFVK4aTw@yoN%qgFm; z%Cq08w9n%6_BC~}ziPC+5#*|Ye=e>Yo~on!iLV?DbyeK-BY^U5sm z_$=@0tIgJ3&o-qbZ){vMN6Kh;_Pl=wdrP-I$bEkr*Nt4ku)n4Klk@#{W$P9D^Txgk zea2_epH!%vo%7^<0O_xEmr$!OD_fJ_W2fI9OMZ`?lKnO13)!lv?KwYWSF-(GuWkDs zvu8Eiy0%By-=*4~WBbOy?09V(w0_Q67X6bzB$+t|pSW$4Hud^3(~gm*IXRGzLHyp_@L=_Y2M*(dM>o|f`d zMvF7D&*#areVXpyJ*lT#lPC3*{_#mYjs4@3dK%*uacgok_N2b(3A43hmabVwlNbfk zQqIVzXGYC48uO+(@>WpVcTdQA_WoJyo~O;$@7^$UcXkGoHIH;}eYZ4cb%%^Tzrn0aFO5Tx@ zrW>4(Vyq@iC86Xt_$Cvsib>(XWk-Oq2yE0&H3IA`}~x5 zELO;V=fvJME?dO!_bXfNUHri3&DpwZp}Di)&G#+3R?>c*0 z+fCk;pBox?s-dfRa!6-J&vr26a%W0o&CW1%dUI2kI?iA^ZY-h(XY)A*ZzOJQ-kUOx zXOi>{D)xNX)#;5lbJW{>F2_5v+L#+G(P{K_=_uKmSXEV-AZXJ3=!Q&ijF*A!bX=k=J-^kFwjGAUS?6Z~q^vm|dv4J^CdmmiIHx(Vk zuVq8txKN?iV@x|Q>SxaW9z3C?eKKZUG;RB>7|qhy44-$QR`S}pvTc{mN1AhF&qt42 z%yA^|NJ-ziHh}Y%(x^@NHX8F=-uauYQS8FjwBNfIm~r>#TTN^VInpuvd`62j-HJ(O z>+iG8aWuBKh(CaMXp)$PhvRq74?`dbtACa%?;Do^C?mIWg3 z;95;qMIy_}RYZQkwYp1H6Zx%NL*#c{tGjtWucPk4tJI(6I^wHvt?uQWy}Z>2uTrad zgHeIoneT0O&?fmwILtJIzR0huOhGOpEgYD41B<5lXeRvQt&8`o+kZxQBK&v=!( zr`0CJ@5Qxxk+%x7UWZqy`&w;E{C-@kS-feOw?pGq>VZ~e;!|*~UQw-xzlv9>2U~4M zd@8QhYrK(|Svp>&9%|K^_%vLr*Lim_Z=uGk)WfZ|AU++}>P_BW%$uU|D)mUKEr~yh zYxOp7GuG-I-e;_NGjRv}J>F}q)%$9D`~$TE{vmHT)@rWmjDN&?khPkpy5S$IT`6-u zu6dhrclc9WtIyQ#@aMQzvFZUYz_t29?FoO0Yqe1IgcsqOw-@(@OSo1ooWAg;IPZ~m z`oU#f^9JL6;mvT(Ta5d|ZE(%oj0eDNam`ze2g2=e&6|x6g4^Sow;CUUZ|e*qvK_8f zCucCelQRV0#W{lbuDIsC$3x-nxaQr*N5gyJTJ>~>!M$+J`;d==``}vjb%w)x<68A| zM!@^vn!k{A61*R-d3W+DxbK{X4|C2Sek`ulan4!r@wisQopaz5aIHo-BjFQq&HI%{ z!6)OI_biWwPsKIwTOI?Sj%(h#d?9=$uGLx2Mey0UR_8dEz~|yxjdaGr=iyq7a>m2w z<64b&Ccpu%)fneW_ySz33!SUsvA9+jITPWFam{<2uY)hewYto?0Uys>skOR^cT%%5 zgKIU3cT+p+7F?@ao!jBta7F{?4miZMx`Qv2@osdS5x}_{zstFo$lbVB_we>=N8O8S zbsulB<{dyd*C}tartk4SYu-7IYc-#DTJ!vhYxODbwPu!sYyJ||<8X{?wZM52{sPzP zOWu3!sD-#zi=3z7uW+pvJI}&j<63>gJF)qM4cF>BXC}M^*J`QrBK$qB)la-9n`Z@F zt6z9uHt$u(wOZ-C2LFm{^_%lL{5!7IAI_WbpSV`5oH_7cxK^v3cVMO8fgSxGtZ`md ztUrKrxK?>R7cSsh74jwA~T&q*{I`C<@R;TNx@EN#PXX<9~ zS-4hb>kZ&@aIMbO8^R-TtyT3xQ&;S+Uxyt~_hxQEj|?zVVOcY7keaK;&T2e=PT%ebBJQEq4a ze76fe+U9ZSFz%WcLvKA$Jfy%^i$C;trvNM{%uQ zb&r5w!?l|24uxOGwR*!n8h#V!?&A)F-^IDVxW~csaPAlGaD1`L``FdjIM=3o68tUB zwdtM$FTuGs-P7RjajllQXTU$;S}k|af`7!hHr;dJUvaKYcO?8f&b8@|g8#&sv*bqO zrQ8@I^|)3IxeMVYxaLooUW9Lxy9D1hHxAz}Hy+>~PMhcMhi}FiU31A( z_boVQAvYDi4QF)CO@l+6(KR<6z7yx{&_WFbz==U%~=?~q@L@0edknoc<9CBGc* zf^&BAKf&E_t#;4<0{;zXOv|r?_rRGO!Z1H-@jnxw`W$@LTdNiQI~F zb>~~bx8qt(&2J7rgmaDO+rSUw%#-tN;YV<0!ufXa^Emw~-yWWc)35R!;Fob`v-xe| zS8-;Q`R(DkI9Gjs2Y4RNtTNvTo{uxD%y))A#hF#+yTG60TE+Qp@B*AsBEKvAC9c(v z`R?#fxK=;scZYw$xyJK7;6HKtTVYSw!MWZGJz*E;-dgAlSK(S!7y80AIHN(KA6$=eI$HCokt-Qi;cz0Z@zZFKnJ#g;A zg_GbtaqcpOQ{bMsR=o6vp9~6vpG17ABB)9L^o5a3wq*r%x8H#;-3-#BVQL zM?A!}x}$Idd?(J>Rk#Vh3uo*qOoH#hdG0IR3g3rob${V@{DHz9_>{tA{K3NA_|(F^ z_(sM1@s7nQc&Fl2yi0K!dAs6V(Z%Wb9>quTJ&TXydljF=dlqNly^2rcy^GJ{eTvWH zeTy^ke#I9lVIN$p{fe{j{>4}D{fn>R1B$QX2Nd7L2Nvhx2NvJK4=TQgA6)zZKcqMp zKeRXxA5@%=4=#R+`^C@kBZ>>~ql#a$m!ok;hT=T-HjRv+VxDpkGl z&#U_4aaBKjLDjzaw^jY|@2dvjHPr+0`s#!5X4Qw_>sJq=gbi?xqIxjAAY>E9#5ua^qv5S^#)s-*c<1Wl@UGRviFd=b+O>KF-lO^?e6Q+Li1)a?s^%-zqoPJn+7JhK`IryOJk;D(f=}Xn4;KOm+uzED?f349t(3s;YW&%l`>SC5C!!kHmgPk_(CnITtS36I3-UDa2^qi}jx^+f!J>g({E zs&Bw=uD*$_lW^`V)sx^`ah~t0Z^iGez8!y{`VQh#aIW0y$?#O1vsryNJPqfZR^JOx z$F+L2`hNU{>M8iF>Z!zE#<{apPlI2@SsSUI4$sD!XI4Lo&#itOkE@@=zp0*qFRgwW z|GD~E{MYK|@zvEcaku70yt-xV>oDdNx6B!8>x#hO}tR!s?ixuyaCyk;Hz%bKS6uQko^KWjF?t7|vJ zOSK#0>(#cvo7c9)Th+G0+thB3Z&TX_?^xRw?^4?i-?g?q-mA6)zIW}m_yM)s;|JI7 zfcv$b@FQzG<3nq^;K$To!x=V1cZXDjDZahAyZUR1}?#dijE6%uAcQt-$-9-G%y6f!|K&cmYo9)jbP;iF045 zdmjD@=e|%k6aE@!EUkMH{tl;w>t?}AaYom=SKwthZC>{pyc}nBrS5h3XPniQx;Nn! zICqn}Iqa8sQ7Lg^cP{nB^%2BoEV z^U^YW!_sonY=kq0lzxIY!RalfU*Jt~MwQY^xQx?(O25II;XKil{(xKKtml+g!EJG7 zo2AuoJDfgNa`KMa8t3`67ng`~l9> zYw0?8F3#PgbOSsOXUr_!1kcBLdM!L z#+jv*?uNg`88b`w!b@?+%+mevGMq89GzDIcGiH{i!aw88y-U;Jl{j~?(scMYoH4WX zDEtS`I9YleUX3$0)<226^)ra%aILE9pT?WiKZ`f5e;(hkekQ(A{fng87-#*teiqyU zXBE2s6@1J3*YI}ruM^)2XFgE>Cf>Dv4&JT)9ej`a_wb(eAK-oJ=i+_q=aGJIoad?f z`FQ{OPx1ZhKgS2uFTjti|B^IAah{Co7r{s4%ogew!^3c{n)+|>%j&Dnb;CONx(!Y7rVY)=yB^LxqG1Dk{e}(kjT$z_ zTQ{`8w`^#MZ`aTY@6xb2>AT{zSVJ3l7o2gpp)I@{&Z<;HJG_5Gdwg(12mJ7cZP_{m z=NY_VdwfL04n$7GnL#yl!q02yOk@-I-5PV_7Abe57VEn6wA^7r!BS`-vPCsuL3jd5VH)uE-UV*d1 z(=ZG#H8~EiZ!(;C15O`qG6G%)=Z@UuB)oHzQ}C`$P9xq8XGNvS8St(+v$7^<;k!3E z2Or#IB=N&>?kP=1!AIiUQ<{v1kHVRyHyMMU+T_Cjhq5z)Z=zcN_d7E!TU%(7E@|2( zZ4nU_S;{J+q-~mRDN73lTuNvIl0=|;;MYUif8<*H2FPeRavgpn zuS^OqQzZ$t7{ws0=d^2(*d@FJjOW%eZDUr?aqsYy0cjPPZIkKBg;9J0qFx8uKn^n{T+@LxiD!pNQYuOPi&$}ZYnW~cBa#7`iLylCGa*+@mUeK6#X_V2a`j}f;fF$ImMqcu zBFOcWB^EydGDfn*!RsyYaI_^6mRMXYErncLS(0I`r9F{4NV~OkfHzw@!donz;H{P` z;8aUzc$=jQoM!0;Z?~kv>6V`G4oh!Jm;q_qmcICzkP(ZeAAT03H@5W0&xZ6fmh13y zAV-14jh_qYt1apHd63bI#e<&@>Afvp`~t{Kf+ZU+wB*7^Ek3x~G7vsz84TB33dnpO zawTgS3b$H{h`b4DtCkV?w;{cd<$ConNYI-N)_NE@@x!1sZ)G3!kH z)sXXubr${_$a%y%8-FciJa3(Y9{}m`taI^ckk)9OhtGhtM(cchCgiMbU4YMmjP0%W z;d3BoaO(s3JjmGI`XD|ZGPbua#1Dd;t*ndiLm=mL>tcK%WSnnZf*%GM=UbQJhePH_ zt;_HuAuZXu9Df6(Pqwba-vk-+TUX;pLHcLw8vJNTYqze&mqNz;)^+$Xkl7XMv-ok4 z`D*KWSZUorqzW?Hw{FDOK#mUUCVU;_=&&~98z9Gpbu+xf`U;U5kd|-Vf}aU#`PSF) zvmh48TqE0D_>PbqxvO_lMk7v315@2N@68y5QZAzS`CepAH$v+EVcz$ZV~xC-m8R!$G#b#0NwAZCgKl z0i@ry^~Vo|^xL-U@I{b*+vdiPfb`q8bo}*@Yg?NKebAl7TF7X`R)DXET%X#8;wM0^Pi;l`CP=St8-bq&>D6u5plvLEF{EdJmL0Ye^8owMe zp0U;9S3+8{tsZW)H4=FNG8(r{#J>o+%Cj}$UxKuA+Z6oEkl9PyE%<*ydVbqf_?~SV z+-{o=ciU#bJ+_(Td;)3nwps8C+iW5Sp)OzA=D`2h=EDEl<`F*z>E~_p@xMa)dD{ZK zL@mJUQTIV3>H!!M^&kw5S_oT2Eh48S5b4>ZrA_f7CkYj(QfRMXe_@9nub?HsC#w_7k-c-Vn73 z-Wb&kZ;ILsi=$qFqoTGzf7EN_kA_@HMZJy>K(3^sw&KS^=0l?1!k0s?CZgWKS3=rS z)HXOFYCDmMkP$-E4*YG99xrMqem11Xi`s>s18F%?yYX`&=lZBU_<4|Xebiq3e8~Ad zY9D+kYCl{UbpSpbbr3F&Is_k!`Wh~c`j-61A+0FtFkBvW1g?lW3RgxQgR7!`gsY>D z!zZIokiP~pDvmmdUke%KMxBBiqclFv{{m#*JIcVn2ALy`;-Hn-io@@R zw5aHKdEXI7j#7@6G?)M2cp~KQy{%xbO(F~NbeWj5#JHg`$c!ccY?IK z=qvD7K>EPw&iKxd(P?xSd>6>IXLL7wH%L2-PQ~|tj4q;k;(I|x7ty`(eIP9}x-b4} zNXv=t2ggSDhvTBJgJscfmX3#xm6`hT*hqSTiT>J#c zCm5rBaB}oOI3;>8@tYxI)aU~It&kQNJrv#+T|{IWq&JHmfu9aJJ4as+?~1+=&W$dH z_eA^Q6VWB)EQhq8=m1<9J(kESNc)K{!#@d`vx+Wg zU60=kIsZmC;$MMWF-1?rZ-LA~MK|I94QXA`Q}AyyUGC%mNq} zb02iXJU~1iGH)F7ApR;yONdzrd&De)SH~>=^EX7|3IX}iMgT9#M zMDihLtC*E=Y|LsR;~?!JW(|Hkqz%NZ#aBVvK+HOP4P=xR^DMpr(gtGI<0nAwWyfs5 zPlB|En2q?!kTwvr2~Le^hIhtnCO#7~28($GKMT?$#caXPhV)1=ufaJnufw}ywi2HU z`P@s)TX12_J47CaoY7*o;TJ>BXffOIOCW6^W(R&P`1vOZAWuZ>#~Q$A%KQ12RI0ZHd1VGD3)L4eyB!BQhUy)fO9pUjXTi zW81+su@)jvL1u?yZTP1lS8cJ;a6@b?d^I+X_-l|JI5r;tI^+|Bv5EMtkeP>A7yd2C z=hI@7@$W#kZESnEBenyP49UjsQ3?KALeAxENpCVm}cHo!g$ zzaBELWuJ}T06F8^=fI8jxkO%oj4kc+@GnA+U;BLgOOPJhz5u@k(o5U#!@mI;1K1yc zZ`vP(Z`l{Zx9yAIJNCu!UHcNa&At@AXI}=l+n2-l?JMC9`)bPh0Mat;Yw#aJ#tHVd z_>Um1)V>aWY=0K+v9E`p*f+qv_KoCx3Ynd-Z^C~DnK!dH<3ERtY3-Zg7xq_(9E7x9 z`xg8m$hDjOHTbRlb@-iqEBxO67Cd5q2mZ&t4IZ^`hyS(jfXD1R;Scs*@JIV@_>+AP zJZ|3$f41*~C++*;ul57*l>H!-xI<8j`x@$T-$EnqFbs)10z>1D!WMDIV9U54VQSoQ z*dy))>=}2G+V+BsG2%|)`#{DRaT?#)yBgB!;tc#XkTGx^ABB{(xR$Ust~K#G$QdLq z4Br5mS&fUp{{zw*M0|30L>#r4I10BLV= z{qP?`+FM+I{6~=X7Iz)~V@P|8bK^gOw70l){HKui7U#i#25E0`Ui{~fmKK+dKL}}2 zak==zkaiX4!ykdPtGI#qqmXtLHyD2m(yrnP@IOM@RoqbgaY(z0D}q+X2qHE}Kjyd| z9}Vfp95>=)A^n)67#{~2!#Mo-c*r=}QG!o|Tyr@B_+-djfnzLe?`ane@8u$Yaz2_jz;_dNZWHv#HT@K$sA4i49F~*V+uYKGE3&T z1)l{uJ3FT0b0BAD$25E%WW3~-0Ii~-*oJPZ#j0uw;g-nJC42ZUB^DS z&9NW8=Qsf0cN~N}9Eacsj<4ZP$G7l9$6>h3aRh$kILfQ+hVpp`r;Tro z*C0J@d>Gz<^tAC2_)ths8{ZD!5^^sx-hyufxpNV3!-qrel*LEGw(+sBU3?sjjE{%* z_(T{N?;_Iy>7V11VXyf1@VfX8#0Nl*h4_y6G{~_K-wB@qITqrtz-L0*e0*no9;D63 zcfsdF+If68d?928I6f6W3^E%Q-xEIq(&poP+qG3mLKoNS3_EUd^)}sa*l}iz=n7)oDiQ)d?KW^$LHdkAgw*#ho1tu%7`Bb zZ;c-eZ;LM=J`Hk>89x+19WomnUxc3lneUAs0q=^x9?p%w5#AkN3|Gec;i~u&xGp|G z{xguzXvL4kKL+Rd@s;q6_-go8d@VU|Lt1QnJ^o!t`;2eIe*kHp@e}bM zLRw&a6MiqG-;SRGKaanK$N@-ui=T==2x)Ke)8L`_>F|;S^-Q}CkeP&pnfQ*7*{XzD z_$wjTi3zjuS3&MRB+S8gh0J0l%*A(yoY@oR;d?+@PQrYAFGy=iSO5nn+y_e%9w1%{ z>BkZt#Fs((v4n;Aa>(9HScI>H?9GJ5_-e=*KVb>HIbkW0TOfT-!ZQ5rkn5C$<@h@w zy->nRI45B>ygOkH@p+KGC}Ay}pRf)tPI#91Bal8PVLg5cq|Zs%fL{vfa}qYi3dqZXy6A$70LPqt8U*r2huJIGU#rKDtgAxzpheD3N#3T3{AxB^0 zQG79EMltai-VeFzPy7*I0-0A#JdO`Q_D`e*ZLPkf4ec|E6enh^9jJgy1!~Y~+2ahGXVJl}k zv^za8&gmu70olvWY)n;~ZxZ{&GlbagM-W3280P>+x4XT8r~WIKWv<#0{BYcKV^mSpqYi0qAv(g}Kf$ za`GU3yR#gh4;jxmEAfLM$Gfu{KLpa}J8SWUkhutFJsja|Br*~*BjKEgzX39L?QFu| z1ev>bPQj0Y^!CnM@S`Dph*Le$wG?uX&p8c01~RANoQ@v{nRjx|z>kN_Lpo>TD$Q+b&Hmr5dAyNnFy`Ac*v2!8)hI1Z%9;DxJ&WDSf3*bMU_rZ+zac^%TvJ6GekLPjZ0^^DZFAU%n5 zEquqh4!-Mr7H)H{hwnKzkh2{!R&j2`?|_U|oSX1FA!8M1Gu-9e3_o(d0(U#Nz>l4; z!9C8`$@~N|=67zze+p^y&bRQNL0Y);9sEJanZmgZe+bgro!jBp&K>X@=T73^LR!0X z7d-6T4ZnBpfk&Ks;eVX_;8Ev(_+RG%_=EEx{Ly&`{^a}`9(R5VLtKX`Efg|_aUFpz zT}O$uf{bKb$M9_+BN^9^_;AQb#&sOu7SeONPQXalNg@_V|LHn~w?VEWTv}W1#k&k> zcZI?@S4-${wTAJoFqq(qfQhbl(CM;3m&*o|T+uMu70VNIQXog1D-K@biiaIsiSSaF z3wCrR!^>RlVJBAyc)6=1yu#H9Ug^35c6N1!SGl^tF0O8{t1A_DbM=JXUAIZwe`opVT*THLCZrInetMEUw3vYImb)7uGjI;Le5#Pt@!njbC&BZxY6|vkryESiEA7FMM!_* z+Kzt-(pR{4;I~5h2iH#gJCNhuwF`da+6{NR_7MLVa-_TV!cScLi0p-2mALlf_d(8R zt^@c3kmKET5FT_Lf?vA6hJBO1h5eHblXESkr6nD~4}i3^q@(yWNJ~pPhR=Ysw4@*L znUI#2bR3@rX=zC(@Hvpym2?uH4{2RVr|^Ryts+Tl$9_yQ;FKi3;3{*HTEe@MTJx-} zxsX0NDGWakaut~r0oNq8gD)jnh;N3>r6k$#uRzY%NzwQ(Anz_I7Jiu&2M;C16aNa* znH#x|4IsNrUX8WFI~QvX7Dn!p!8s(3@NUvyz9x z!O2DB41pZo$s_QEkYhIadi;%$V>bCld@Hn|L64!QnHF2^@PuD_Bi@lznjV{$e8YjQ1-*^u#Jay|ZT$X(;)M)*+j zMEHDi6Y&j@Gjj42xGDJ-A}>Pbb(5#U*OR9ac>{80Or8$+CC`BSlV`%ulhyOw4nU5D zj;s?8iR>xl&6xfPWNnb&zrpu1q-u*Q9(+ z{3*!YrIc^+PeZPl%N{0Lu9IS$`QIRW2E zISJoQIYrJk$ha#-<0*ODA>*zT1HS{(eo{j5pF?_^l$Q7}U>m8EVre4{;)fHY1Wu9w zoGfGE%~A$$l}dP%s9)zo8A$(F6@tm!vsd<<@ zL(RkFIcgpz&r|a-`6o3G<5^f`@I`7KCNEL*FnO7phw)UadiW|e595hd6X6@wJdCGN zO@VJy^Dv$_H5I-`&BJ)c)C~9mH4o#tQnTPk)I5x5NzH+uQ1dXJA2kntM$N-`X4C@s z1vL+oFR6K$d_~Q}aQP24510Q^^Kkirnup6z)I3~%rsm=D3pEdyU#U3{ zUgPOZJVlJBGlfeCPiG337Ce_JTw3u&rf_M)vzWqpGSw8=mgg_=)G?mC6fRb68jRuz zOW_j3vz5Zd&Qq1b#liEG!X<$xDTVX&s<|+UrzeF=3eQanmrHnJQn*~o6O+Q_GM<GHq;R>CrzC~*e5yq}!>qfu9`?{Sz+T!W*hg!IS8JPj{?UcTwsjDNh%diX?}^+Z;*DVC*t<8m|158DI>g*_XxREC5#;|s&q z!(n0Ti3|@bmSs{!<}$u_xe3;hxr}dLHsdFdxlAUJxlAULxk4T$bA>!Y<_dWJtK<_hSIMW8xr%RJ7SqD64c`n0 zgl~dr;YUNBlZ^0Yd}jE1m=%7ENKSY$EoMc;X1FS16MUL)7`@N8hnn%vMXZO<^Zldu z`NmK&PcD0r%pH6)XcPQb#4DjYWFwJB$UGtcB=dy4K;{W~k<1hF5}7CDWin65zsNixuac>0 zzmTbEzmlmj;kBWKrsuf$@(v3CUaT7Pd$w$u^AtdxE{7h z+)t!cVzFGR_etCguTIS<(Ns%MaSsh&w@mj15uX=k?n9n8@qT~9l6 z_3kiF9}a!`WH>^i;Ekr~U((JN2K)+^PRe=1%<=GEeE3c0Lt$O252wX!t4p%FZpr z9Y+3Do5f)ax@r?Fyvk2x*j3H=;a9DPBd;nZa>G@{JdNwNs~>3hhH?AV3){5|xqJZa zHss0ywA+yG18BD)JqFNjLwXIM-G=lTK)VgOdO$Hx!n&5s$dCbKMurR4xs5R$weQb-mQ3j^gW7b z%`fGkQD_NTfuh@pc+s8cQS>DG4n;?Zj6gN$9<&U-jE*C%tw?M19vah*UmZaYqIXdj z9&|bsO+jCw|Dd1Hixy5VR(>@CJ&Km2f1|HZl}+Rp^jGAL;t9lP6?z7}fI_2L7v-V? zbThgGSz<(7s3-a;mVIMqo5zXFM-QN9(2M9TG$NjTh}NTb(dXzm(i8X{2$YMap>=2v z>dG_hC!(q71@sr5bALB#M*Gk+N&J2r`V>8w%zj22(JSaZ)G37=)T%wtMn(;2CVC&O z;VIo4(W_`18q|S(f-2A*=x=BNdKrC;ay#|-~M|2Pk>p~kvTe`Bm8~Yr^cNe(=J%iM9hL4~YscZ+d0qsDq_29Rn zdeUCdKvaq*qq%4idItRq?Lu+AL^`5TXbD=0_M(I6Fgk@=@$}y$)Dz{PVsr?#?L&J< zm!cogugKMxw~e}^`_Y7}`5j}lq90{n!+t}@&`ESjf3_JKkLu7fXcO9k?z@(Kgtnp2 zP|S5a7anyOK-)vpk?v-Dp%>7n=v#DE8qZiqx1%ReemdI`6{E4J5#5UJL?5EV=wBHk zhKJ)0^~&VfLo2hWE83aOF_I&40`1OazoFNC>{C=cNThHu`yYLbjtt>=Dvl97pKBar7yuB^{iz zg6)fH8+dJWNh56?*(cypS9A^9IFWjxf=RShv>2^LFE{bpXyjy((P%t+WQxdYboDJF zGp6$EsHo>OeuWs_hL)lCk#;-n4;7)gXcPJgT|S+1Q2ZU_p_Ma;Bg>uC7hQoyp!dt_ksA#`>bGkrp$E|_v1ZC>f47Kl9@`q-gO;FY&{g;FKG46=fcd<~zq5_d zcJw9s9%&0WChntexL?GNzCckA@Z5IP5B-8-9^`dU_CwSOJ%Ls&{jo=00y++vO`)E`}sZbpmI8z|vXeuW1;g%&QMUw({b=snb7Dg6_A8`VBee~I>> zBgndp-!n!N(RTDP`VoacA(D;?QOt7s50sDoiL5I)U!uY2CNvd=tz=uH11PYHeSvO6 zccF*S3iKj+6@7_jtfmbk^_!|gp5&akhW3X>qw(ktbPu}sDb716b}g@uGM}bSXfgT{ zMX%$$g=V6M(b{J@PdvwVUeCGudFrx(ZT3(02YM8(N4wE4Xz51!bo5`;;sy2(Dn%VP z(RZPbUgY_7A(>i9Ot9cn_`(Gk?|9ojKczvg@rwSJen zp|8;A+eEs($38_qGz@jy&asECf1lhPw0+bY<)Oc#_t7Wl$`3^PpuRgrJSgTvj#ZS7 za#06m*=@UoLuc&Pco^FbUqU%v2-@5FG(og|9j>22< zsYs;0>8QTV=SSm_`X=3-=+@SJk{Z2@F6Fbdsi+h^f}TJhpr|lDS%5Aw&X-g>`Xw)Riz*^(pk%zwXKufx$Z zOM=_^o^yYSlOyKLf4^O?f#3Hy^WSfmy?FPTCBl65x&PD}!)R4!{yTq}jo|9@-d`wt z{mg#}mB%N?RoD( zWvQ};t4n6)ki+>cjJ6WR?_9+2%NB8B7Y9n>*CtXVSuToCl7=$HBVLq+vQe(&NFMT`d^AV~%3w4E6-t2& zMK{RxawED46{AsTwD_5^_e&`n!>s){=Im>@zfgjjx+apTuyQi;uLovI3;KynxVDOLbaBtwbn{&gTl2iJ{T9KwMFfa zg5+Lc-t z?JBLC)>Z3{dT6OyPt;rMrS(C5Q9tc!?Hbe{U8h~ExwQdWx|XJSv<%IwWop@4mX?F^ zv|KG;^J#;$f!YvluvVxQXhTtvHcT6iMrtFp8?@`So3tCXV&vCGX`@l8R-%p30@^rj ztTtXN(<-!btxBuZYP4#tPOH@#wFYgHHc^|RP1bJFZq}x1w`$Y0+qCK0?b;0O4sE7( zr#4Ibi#A*Pt2Rgbn>JUwOPi0Guk@sIqg~Pd2PM+Pi=#?Nqa$S)?U;$ zYcFZ9XfJD9w0~)B^$0yuZ>L*ziyo!h^cX!_kJIhCQ%}@gC|OU^+v_QM2mKQLQgoT# zQSXE#Q&A7pOYf=o(R=It^sDv$`ZfBsXn=m5o}s7fL-fIV zpArhcbBOaF`hH+{B#mp(_oTc4}nqtDa-uFu!+)fedZq5IK4 z^au1u^hNrk`eOYteTlvlJ)tktm!lPEmA+DcQeUmFK~JG)^mY1r{W*Pu{=EL8zDa*c zZ`NPdH|wwJTlCk^8~W?|oBCG$ZT&5MoBpo;zP?@mK;NP7M4#w;^iTD@`abv>{~px8 z&=2Wf>fh*J>))d9&|!2$|6V_?|D>PLf7X9Nzv?G-%@9LJA%TQ* zB(fkYvY{vxjbczNvZFZUKnX^?k%*iq$#5AdMzYZ!bucb5E;BkBmm8goE6`O&XQK=1 zin^ihC>8ZUJy9>z8}&8%7+0fy=o-`?U5h+MhLMT9C<|qy9F&Xl4WBU(4MKy_5LAE) z(NHuD6`>KvaAPF89^HU$L^q*PMzP^XqfrSeMFCW9j5jKc3ZvSnGHQ()qtR$ECK?lr z+l^_)bo3Wvrtw!}mN6Us4b4Gwjk}BojQfp$pa;>T#$w|!V~O#&vDA3NSZ4gw*kHV1 zY&15ZX5&R;v+^AnGPtacU zDf-OVXY5CxqeI4*##iWT^sVuY@g4fn_`x`C{A8Rkem1la3DJ>(+Jv+Y2}9v10<}f$ zP$aS-TZlCzIwUG22E`&fibD<*j}lNKa-x)wrWxwS)Z-SQS^T;*9;ecFXc+g4w63+AOps4c1f>z#gPjoqFzTX(nT%+}p=Hnzu% z9hFH8fer0b7@_5~;QHG115IC`?P#f%egPx2!?5UdB%_szQ-XEM4q^D$aScvQxj zRDOYW9m6?88w?}Nbssdj*yIwEN98t_E;s#JlLxe}5zM}5erRYnn|#>hIvAn7VEVVA zMgOR+%BgCn;_4OK>kCY;*inB8b~YnR%%$CQm1AiA*f)mehu7=sy%(GD5|aUwQ*`wz zQ*`wnXX}ws%$#Zef(y;1i%c#y*-=-o-d*Hkh!cd%UguB$% zQ+|=5_TXA$Tav2tEy;@0P0oTIV=ZKFnvta`%u^aw?TLh}R@A~ zS19IoRvcsUR%mGJ;42~OT^yCe_;*6o(sx4Cdq2vzITVj}Wwz9ejBlZGj>g>>kn2q}z94kSAuI}=&Gl9nlSQHPOs{BYkHZM< zX;>7x$&4!&g>E&yqM`i+8OdMA{HLx;YuQ5W_b`)Fjh+Kk&R{szP_;6&yV8_b+mKcY zn?n^B>1wT6q1EYXiz&_uRgu{yi}k}9DqnH2nYpk6H?q1g&lnRgeeG8KzL z?=`(*m|1dB=uJgxsbaCNj@gCgd(Uopc(`gUs+?(NX+@!q(JE7MR_LQ}wn;<#03V^L zNUhmp8`{!w>bU+V+-k1-PRru)?5~!=9zM9&mQ7HlDHessPE=m8C^XUZibthAoMmp| z*(T{9h#1=alhj^N+c`p0G_*}bibBICt2!ty(p9|K+!tXj-k8Gi+j7S(s?4_26hE5I z-J4eBGZd%7-K{>mQ!#0#Vx`I1CO?E8W7I6gTcM%-1AgooG@JQsligaY^Um&8Bj%{3 zYP(G})Lz@&>hil(Z>jtN?Q#6>R^#TXrK9F4e>d&B(W~ zSa17)I$tP8Xo^SW3RtWw9?()ARFVI}=Fm|OsYo3x)*ppjslml24ee?CY`xDywarye zxTTHq&7rDqXWzAFsmTLc>SDDGeK0jl)qHoWyYYs$9v(2yo(Hs@_B$!A z+~*Bb>>sxLQF?eYzNO9HCF->fKqEwXBSiV^kR!@#{T@^AOZC;agl$}^YS`&<6+a0h zv=+;hcbfFT=Fni|OMHZO#EctHs2n?7Y(|!tYz_-9^%36^ruN#_FtwMrhIL=A@?V7? zd+uDJ+J@qfVd@B4VjdT>_28>SuT+`eui_p@hm1$Nfes~i=@ z#oDXSsqJ&qdQ}ItXG0?%!y8)U^J)vL)?$fJ@tNU@hE}^l?FF^p4`|*0skZrF;cWeG zllMX+%zi zwJ)oP+Ox~e78ur2<@3v_Z22j=dKbGR6c1=`yrxQU|63i)S@2g{cC^WROCT%;Ezsh7fJSwVJ>DW%4t@x!oa`-(-lPc02s+JmB z`Yy%cuvQC37UDSrc2@DOAF1uEwokA0H$GNdHFy+!iC^8W!yc8B1D9*XrdK2ISK6se zLuvqboH6z8k@*d;O&s7OOn|$hk`gD%x%uudVZ-!%cr0b((@a|ey};z4QK0KlRkJrD~5))9Y$zsYe#6R zXP#=b{!YDL#jRmJcvNP?17^!Hv|qnxKU#uY;GrWb|5<2>P^3PlSNk;A@(_2d_A%SU z_kx%e;&~934&0wQp!I=A`Tahg6>hZRj?`2`y>77{JYS@8KdM%{1{zu(JfNv3*v{5f z{x*wx9_3U+wXrL#-*9(npMEd*lq~ulxKCH#quZyCfD1HrO!=*I~GM~M``W2*?gN(uARb~ozp7!YlChvj=tm>NUYm?uaJYwC?U8tib zJ;rm~Cor^c;A}mCyHKW%vD^2a*wQE!>JH70TH{&&DqozBrtgfjSmSz5Z zc6m*Y^Ou@`d3zG_A|E=J*sW`~^XkN_@aNg3rKvqGSbX~Lv&(CGT(GkGOD!AZuk%-S z>)Jh7@VURtWp(Ek1nrs9f_XhoucbEGxyad^x^5RF1poB1jxY6Gy@Ts@?{V&por|1T z(gg{1-PE66r9P-{u(X1L)UG{>hjf+7lHpC0{i92iLtUjVnBem_bd{0{^PfP~SpV2S zWuS`Cgy7=BvR>|r9>a>=6%A!o4gPvsKsR#}`P7y++d|NJ`OAmA-Gj@`3a9q&5zIOF zS8x-aTTo|OFL~ZRsBbsPuBs@j3b^a){7v0QUGQfrf4WgR@}Nwm#;Owj$@5Qc$}6iX z50vJW)i>lMVRQN|%D4Xr6YOD;@o%w5EU1^{$Pz8`T~*RpSI2ft^N(d|p})SIe})A7 zr30%fnhI+CRs88LX(+2!COf^lq9SniuQO>EMAZf)sUoehqFf~e>R8b;ftSegSCv+n ze^O3mjlVAFRZT0(8k)|FscN_<`pX*3jPpw@syiLbu4)L34b+R8<)lr}BG{NqYfy}1Y zU55E98UuxmHMFnplI^XlZmcP*8jC-@gS!ix(@ZiqU3V#{W^0=5RIPCCE$~-x(FLJ% zjp>5$+0Ai5w6cT}d9PG7(2(BPz+OwME@c;1b4-nOv-yiFS!nhl6UM5&U02Vp3zYII z4gQjbvl(V5|EC$Mj3NH=K&HPWkls{M5pYi!d$CgfSB@%YSXoJVpf1Z_S6W3&Db6od zl~h%@=mK|xzlt~5t5418cS2j^2=J@JskpMVKDerCffq*2cYQ(h50cHW%J%suU0BT7 z6)wJHLa;(+Z^zjx)qD@<{!&E_synwJXuah5khcfwiF%_xspd{P-F>G@+NjiEdrLjP zy``$=Goh@WH$ITV&d)JePhz&aw6siZjSGUlM*8rYil*~}szw=ss(Lz#;<2SAmBAWc z7`ZU#cPRu^iwo8_eOy`1u<8oBSlU^zu-}A!Q`+x~J6%#nUDJ@ps-m*0Qcg*OswW2O z(yIew#*~$m(dQM{6qVN1oLTq(l&M~qot6`*E2nCu^})(r7~y5k+wAO=9_$p8y%gU3+ya?8W)|Oyuk!qHEV)XGdOUi(+8aD_FM5VI*>XLhw%?A#YFA8}&Jzefl-1 zUT^VsLwtJL+ov~w_c4pht}0>NSJAs$9~K8gX`EEN-TRoYf5v-zvb-1S8_XG6nAwLi z`m$1AsZCAA^guoPN?~17@EqmklSXu<{DRRqjw~TPhNOy3X1h`EsbuO;FgKO0?eTVFQY~j!3d{=U{R)-Os(8$X017S;Z(mD zbpEt7whPKg6Hl6CrinLAveG0wO>)vCH%;==#Fr-dX)-WP2Bpd1G#Qd61!+>4CPUL? zSeg{2$?!B8ktQR9uMjMq68&g2DoJCz@NX$Av0c(+42fwnE=|hPWPF;Gr%44VX;PIY z)oD_bCbhwm&U@RzLN5qhxLrs{lZG^DOp^&|GBH>{aEKM$F2M+!BUqGaCQ~bSy7cMO zE7hIh$?V*tdpCFI9=*D{JE!&Rmex5vt#3C^w?3IYQq$6DKqwt$q>CqAGSkJIE?Mb} ztRyF0a?>R*U3}^4Gxr12Wl*{dPM0C+Qjji%=`u83eGXrB4@K!RJY7bl%gEs0Y5tP( zv7FAUN(%#(X7}1y7vS^yY6tz%GP9iOy7HQ`KuMsWv2F}!$KS7A^rsoBjNrNZ4-5E{ z#cJ&WMj#9dfB(W4U7*&;t}1J|=tA{o|8SvN(-%;e24jE!S{Gg5Ju@uH2-H=U)iY+e za79(3I%8ZIRh9UCROO!ClELyWT+J-Z90Xl#>2IoXkyRNr`KuZ(Twqq^Vhhf_m>O|i zWTmsCu?v@-c^4OM!=W`axHQ%F7=fQ|bLzeRd6wVLF)$jHq;pvFZz)Zj!#Z8Y(4^C4 zT)LE{%lLFDPnQZ((xr;Sqk%d9nsliRw)*pq<6u+2Aizeu;P3i$X-HRJUYU?C6Vqi< zx-_NBWL|X~``2HQ=Whzsb;}UH8>OLil#wBx49Uz8Z-!)Ln1|jV27tV^>lFjBPrXDMxzo`njwJ< z8N(}N$hZtC%aHLIQl23d8B&=cRT)y9AvGCNn;~_)ZiX~uNMnXf$dHK{GATovGGsEP zxINSyrK1dwcs!EHCj$9EAfE^HNDiL}^hlmZd>+a7$Uu(_^2lJ14Dm>TM+!YM)FZ<@ zQsj~09vR`0k(A;`qfrSe^+>=YV>~j}BjY?$=8^FpDfdW)M=Cv1<&kQS)Oe)UBXu6B z_eg_B8a*<>BNII`$s2jOc|UhLo%fxQwlR>Xr>Iyl%h=a1)~v}GLlmKXf!H8rI`}QlrfnyHdDrBN?E3i z&y?~^smPSdOsUG0>P)H0l-f+G%ar;|X~>kuOqq}=6EkH}rZi>BWJ+;+sUu298GNGB zE16#LdL_%tMU&)sCD$u?Uh#P)-zx*XGRP}~y)wir1zsui%22Ni^GcCdhI?g%S4L8b zAB{#OsMIR~uZ;1^Sg(xpN|{&2d!^hf6<(?IN|jfty;9?qTCdc3rQRzIUTO5o1g}i= z$|SEed1W%CxU;AuN=F%d;xkJ!v&5SvSy_^uB{^A=n(i!EE$+(Hr;}TK%k;q z@8TYVvSe_U49Sv$EGf*Ap;%Y-!Av3E46+TP9^oQ?^W|6n73)Md>IbM?5)_nIqmD$;y%J9LdR%Ts~gQr)&9e zZH^4&=QX>KiL-%*(~{9J9yyv*i^zQkf%FIZ~Y?H91n7BXz8lBMmvy zm?IN%WMYm?%8{lVnao=WGZv@x8>OLil#wf*T*=H8Z?0tJN;V(3 z&XwF;$qR0@(>o_{tE=3IPi7|i~oWuq@T)(n<+c8qh8;b5@T zKhH2*i8=cC!vg+rJQ=LPMMj3f7ry9%n!3P6>^{#U{M!c zKm!lH(Tff~gC+iUm>DeY_tD>!_4`(E`T)6b!Ffl-g$vH@qu-7mPgmfgqsMdYjln+ zOMai}Cp(ZUV=h{Yu@|id(Q&y_mMi0Pr94+E&Rey*sP5d4kC^J19!@qtU1YmF7txPsWguC*$&@EKkPgNqL@BnGQuY#DaDUQqY_l=lYmdg z_++e4#`&boC*yrm?vo0iRQjaKC)GZw@ky;u>U>h~lLntO`ecGnCi-NOPnvu(nNr;O z)DfkljC}FrOJ=@!^Cc@^via&xzU1ahUcUJ9B|l#V=F6ab8JsUe@}(eO3iD-Xz6{Hk zqI?;iFC+40WWKpgGpp-L0>$~}mObNDyWwuo7(9@+FrsqQ zaMu7fw&pKe&zDtx+Nbw4PeF4$F1cxKIk zRcb}%TdUN9>gu|)YpJ)vi~oPFb^5i;TK&(m|3{W8i%n!^4L|b^|ERj>Cy)65NgnzC zll;GO)kZs0<^PqdYJC2#IJ*=7>@EIgg|qv6V3m2d&0l%JKJ@;snf#9xPH)8_{?amk zg}LDe1?n;@8XE$^cXPV=^A`UsMU@gfPJ)du-yi%pyWU+AS4wR%6p#EIj#Q z!9c!@p(^<@E?>&>WqiJr=SxMtROU-nu!=ccRRl^4tAp?Q++Q{MQkySzg!84rUq{vQ zr7>S7K;gch0;;RK=BNe|Hs;!Hn-06TB7(xsqS;$bF05*j&}w- z9%3h7cFDGED;^`+8TPNgYXKxh$x5F6bahn}lK?nRAP9n2ZMkmCO&iCc#Xeo1wA%8k zEw^pCYs-CG9@^4wO9vMaasLoRxPjP~L0g{MGHlDJEzfOvL1YQOF}?}DX$Ys#vTe(*EpKhf+fuY;-nOtl=-799wmE}*GE}C%IZ

    OvNy9+qkEIAXkbssd{fkP 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 z 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 JA9dyM{{VF;OA!D7 diff --git a/App/HiNC-2025-win-desktop.pdb b/App/HiNC-2025-win-desktop.pdb index 70d3b241172aefd26eb7460657dbf88d78fe30e2..21a2b7526f02d1796c0bb7abf4f0ddf45f9cd24b 100644 GIT binary patch delta 39470 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 diff --git a/App/HiNc-Resource.dll b/App/HiNc-Resource.dll index 763cb63f4490affc1098bb2c44a411204a9d74a1..047737644a84d31deed704a71ee3de0ff25112a0 100644 GIT binary patch delta 301 zcmZqJ!Q8Nec|r#Z*9q%I8+$yM87((oWq!{naIkRUz89D5d}eY4zumiR{gla9Sie}9 z>lrXGm@qQv8|xYBnVM^x8Ce>bnIsvfnHrgxr=*!CrJ5xrrX`yjnH!`TTbLvQQL15z zndu~U8J25HJw8oVU=I+mcsu>rUFWloOFfndyq@QlG`WG@PXQ`8@hMagsJiHg^2<)P zO(zT1gh~rdc4So8%*Qe39H%7%BLg!71B2z}&DTCNGMaB*exsT(*qlL|!HmI(!IHrM zNSiPuF&HzXF_;2HOc=}=Qo!sahE$+j5lX`C zJp%>?6GjGoV?9GXQ&Vk26Eic@B=a@qBjUu?ckR$vbh=;3~4}KB0~z0HUdHepqL?$Zw?eO1(F~PA`O6~1yCjp$T9}XB?I|JV4cR3OK+L7 Snlk7y7;N5n%b$^nfdK%U9$8`l diff --git a/App/HiNc.dll b/App/HiNc.dll index 92ce0de98a9090ba52e988caa254feab5957acd9..7c57f72aa97836717c4ef421871cd7a7ca95cd9e 100644 GIT binary patch literal 380928 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%0A&;v!M@ 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അWg0}^bvVMGa3 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

    $D0OQzg|NUYckJ66<6t(STf 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

    o?9gbz8=QuN)*$W;*Hl%N~ViO6??13lx3m? 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 diff --git a/App/HiUniNc.dll b/App/HiUniNc.dll index 8b8744544ecfeacaa93c2fb4abae1f3f8ec18aa9..c3a525c5bd1404d85069da379e5e5aff0787db3d 100644 GIT binary patch delta 3700 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 DpaW1d diff --git a/App/en/HiGeom.resources.dll b/App/en/HiGeom.resources.dll index d136286601c6b670105c756660663618b67ef3d6..b178adfb1323fa77345134ce0a12b085feb61cb7 100644 GIT binary patch delta 229 zcmZorX;7Ka!D48$^7_UeCuYWu&F7hUnFO9}lYQ56oXdB|xr-s2&7NMK{D$?Pg_)iK z1A{3egMqQ0p`M|!nYL+avRO)+nL(0)v5A>cs!@tjib-l>qFJhuWlExjv8j=zQL=er z+GZv89A?fA21W*E1_p+X&C|I=nHbGBujQ#{3^ZfVW-w()Wk_Z)V@P301Cj;|NkDAO zU;<B zK(SPyNHUN%VX%bKra*B^u&fDCl>tx&q&^wQHUUBdhBUC4(d1x$OQ7++{KZTF7dbVa delta 224 zcmZorX;7Ka!Lsr?>w}FwPRxw6HlJq}WfFL+@n$XC%FBMsHk^+3oT{g=`3q|nqos+S z0Rw|6BZGmlo}r$hsfo6^nPHllk+Hdjv8hR7qIpuHQKDr^in)nJN=jN{qJd>FnQ`IA<|1GB7hRFwELKo$DnNqsit*-g?Gh69#Pta|Sa8LxwaUX~bX*Z}6i)?0L!fR8AZ@{5HaVEz5@>uce=!pP Dupl>s diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Common.CsvUtils.CsvInputKit.html b/App/wwwroot/HiAPI-docsite/api/Hi.Common.CsvUtils.CsvInputKit.html index e9770a75..b22b7033 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Common.CsvUtils.CsvInputKit.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Common.CsvUtils.CsvInputKit.html @@ -309,6 +309,52 @@ Class CsvInputKit + + +

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

    + +

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

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

    Parameters

    +
    +
    titleList IList<string>
    +

    Column titles, in CSV column order.

    +
    +
    row string
    +

    CSV data row (not the header line).

    +
    +
    + +

    Returns

    +
    +
    Dictionary<string, string>
    +

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

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

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

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

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

    Remarks

    -

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

    +
    +

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

    • Using RenderingCanvas with DispEngine
    • diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.ClStripService.ClStripServiceBase.html b/App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.ClStripService.ClStripServiceBase.html deleted file mode 100644 index 2436a8f9..00000000 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.ClStripService.ClStripServiceBase.html +++ /dev/null @@ -1,302 +0,0 @@ - - - - - Class ClStripService.ClStripServiceBase | HiAPI-C# 2025 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - -
      -
      -
      -
      -
      Table of Contents
      - -
      -
      - -
      -
      -
      - -
      -
      - - - -
      - -
      - - - -

      -Class ClStripService.ClStripServiceBase -

      - -
      -
      Namespace
      Hi.Grpcs
      -
      Assembly
      HiNc.dll
      -
      - -

      Base class for server-side implementations of ClStripService

      -
      -
      - -
      -
      [BindServiceMethod(typeof(ClStripService), "BindService")]
      -public abstract class ClStripService.ClStripServiceBase
      -
      - - - - -
      -
      Inheritance
      -
      - -
      ClStripService.ClStripServiceBase
      -
      -
      - - -
      -
      Derived
      -
      - -
      -
      - -
      -
      Inherited Members
      -
      - - - - - - - -
      - -
      -
      Extension Methods
      -
      - - - - - - - -
      - - - - - -

      Methods -

      - - - - -

      - StepRan(Empty, IServerStreamWriter<DictionaryStep>, ServerCallContext) - -

      - -

      data returned if step ran.

      -
      -
      - -
      -
      public virtual Task StepRan(Empty request, IServerStreamWriter<DictionaryStep> responseStream, ServerCallContext context)
      -
      - -

      Parameters

      -
      -
      request Empty
      -

      The request received from the client.

      -
      -
      responseStream IServerStreamWriter<DictionaryStep>
      -

      Used for sending responses back to the client.

      -
      -
      context ServerCallContext
      -

      The context of the server-side call handler being invoked.

      -
      -
      - -

      Returns

      -
      -
      Task
      -

      A task indicating completion of the handler.

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

      - StepSelected(Empty, IServerStreamWriter<DictionaryStep>, ServerCallContext) - -

      - -

      data returned if step selected.

      -
      -
      - -
      -
      public virtual Task StepSelected(Empty request, IServerStreamWriter<DictionaryStep> responseStream, ServerCallContext context)
      -
      - -

      Parameters

      -
      -
      request Empty
      -

      The request received from the client.

      -
      -
      responseStream IServerStreamWriter<DictionaryStep>
      -

      Used for sending responses back to the client.

      -
      -
      context ServerCallContext
      -

      The context of the server-side call handler being invoked.

      -
      -
      - -

      Returns

      -
      -
      Task
      -

      A task indicating completion of the handler.

      -
      -
      - - - - - - - - - - - - -
      - -
      -
      - - -
      - -
      - -
      -
      - -
      - - - - diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.ClStripService.ClStripServiceClient.html b/App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.ClStripService.ClStripServiceClient.html deleted file mode 100644 index 408776af..00000000 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.ClStripService.ClStripServiceClient.html +++ /dev/null @@ -1,560 +0,0 @@ - - - - - Class ClStripService.ClStripServiceClient | HiAPI-C# 2025 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - -
      -
      -
      -
      -
      Table of Contents
      - -
      -
      - -
      -
      -
      - -
      -
      - - - -
      - -
      - - - -

      -Class ClStripService.ClStripServiceClient -

      - -
      -
      Namespace
      Hi.Grpcs
      -
      Assembly
      HiNc.dll
      -
      - -

      Client for ClStripService

      -
      -
      - -
      -
      public class ClStripService.ClStripServiceClient : ClientBase<ClStripService.ClStripServiceClient>
      -
      - - - - -
      -
      Inheritance
      -
      - - - -
      ClStripService.ClStripServiceClient
      -
      -
      - - - -
      -
      Inherited Members
      -
      - - - - - - - - - -
      - -
      -
      Extension Methods
      -
      - - - - - - - -
      - - - - - -

      Constructors -

      - - - - -

      - ClStripServiceClient() - -

      - -

      Protected parameterless constructor to allow creation of test doubles.

      -
      -
      - -
      -
      protected ClStripServiceClient()
      -
      - - - - - - - - - - - - - - - -

      - ClStripServiceClient(CallInvoker) - -

      - -

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

      -
      -
      - -
      -
      public ClStripServiceClient(CallInvoker callInvoker)
      -
      - -

      Parameters

      -
      -
      callInvoker CallInvoker
      -

      The callInvoker to use to make remote calls.

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

      - ClStripServiceClient(ChannelBase) - -

      - -

      Creates a new client for ClStripService

      -
      -
      - -
      -
      public ClStripServiceClient(ChannelBase channel)
      -
      - -

      Parameters

      -
      -
      channel ChannelBase
      -

      The channel to use to make remote calls.

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

      - ClStripServiceClient(ClientBaseConfiguration) - -

      - -

      Protected constructor to allow creation of configured clients.

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

      Parameters

      -
      -
      configuration ClientBase.ClientBaseConfiguration
      -

      The client configuration.

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

      Methods -

      - - - - -

      - NewInstance(ClientBaseConfiguration) - -

      - -

      Creates a new instance of client from given ClientBaseConfiguration.

      -
      -
      - -
      -
      protected override ClStripService.ClStripServiceClient NewInstance(ClientBase.ClientBaseConfiguration configuration)
      -
      - -

      Parameters

      -
      -
      configuration ClientBase.ClientBaseConfiguration
      -
      -
      - -

      Returns

      -
      -
      ClStripService.ClStripServiceClient
      -
      -
      - - - - - - - - - - - - - -

      - StepRan(Empty, CallOptions) - -

      - -

      data returned if step ran.

      -
      -
      - -
      -
      public virtual AsyncServerStreamingCall<DictionaryStep> StepRan(Empty request, CallOptions options)
      -
      - -

      Parameters

      -
      -
      request Empty
      -

      The request to send to the server.

      -
      -
      options CallOptions
      -

      The options for the call.

      -
      -
      - -

      Returns

      -
      -
      AsyncServerStreamingCall<DictionaryStep>
      -

      The call object.

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

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

      - -

      data returned if step ran.

      -
      -
      - -
      -
      public virtual AsyncServerStreamingCall<DictionaryStep> StepRan(Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default)
      -
      - -

      Parameters

      -
      -
      request Empty
      -

      The request to send to the server.

      -
      -
      headers Metadata
      -

      The initial metadata to send with the call. This parameter is optional.

      -
      -
      deadline DateTime?
      -

      An optional deadline for the call. The call will be cancelled if deadline is hit.

      -
      -
      cancellationToken CancellationToken
      -

      An optional token for canceling the call.

      -
      -
      - -

      Returns

      -
      -
      AsyncServerStreamingCall<DictionaryStep>
      -

      The call object.

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

      - StepSelected(Empty, CallOptions) - -

      - -

      data returned if step selected.

      -
      -
      - -
      -
      public virtual AsyncServerStreamingCall<DictionaryStep> StepSelected(Empty request, CallOptions options)
      -
      - -

      Parameters

      -
      -
      request Empty
      -

      The request to send to the server.

      -
      -
      options CallOptions
      -

      The options for the call.

      -
      -
      - -

      Returns

      -
      -
      AsyncServerStreamingCall<DictionaryStep>
      -

      The call object.

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

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

      - -

      data returned if step selected.

      -
      -
      - -
      -
      public virtual AsyncServerStreamingCall<DictionaryStep> StepSelected(Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default)
      -
      - -

      Parameters

      -
      -
      request Empty
      -

      The request to send to the server.

      -
      -
      headers Metadata
      -

      The initial metadata to send with the call. This parameter is optional.

      -
      -
      deadline DateTime?
      -

      An optional deadline for the call. The call will be cancelled if deadline is hit.

      -
      -
      cancellationToken CancellationToken
      -

      An optional token for canceling the call.

      -
      -
      - -

      Returns

      -
      -
      AsyncServerStreamingCall<DictionaryStep>
      -

      The call object.

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

      -Class ClStripServiceReflection -

      - -
      -
      Namespace
      Hi.Grpcs
      -
      Assembly
      HiNc.dll
      -
      - -

      Holder for reflection information generated from Grpcs/ClStripService.proto

      -
      -
      - -
      -
      public static class ClStripServiceReflection
      -
      - - - - -
      -
      Inheritance
      -
      - -
      ClStripServiceReflection
      -
      -
      - - - -
      -
      Inherited Members
      -
      - - - - - - - -
      - - - - - - -

      Properties -

      - - - - -

      - Descriptor - -

      - -

      File descriptor for Grpcs/ClStripService.proto

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

      Property Value

      -
      -
      FileDescriptor
      -
      -
      - - - - - - - - - -
      - -
      -
      - - -
      - -
      - -
      -
      - -
      - - - - diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.ClStripServiceRunner.html b/App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.ClStripServiceRunner.html deleted file mode 100644 index ae76baba..00000000 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.ClStripServiceRunner.html +++ /dev/null @@ -1,333 +0,0 @@ - - - - - Class ClStripServiceRunner | HiAPI-C# 2025 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - -
      -
      -
      -
      -
      Table of Contents
      - -
      -
      - -
      -
      -
      - -
      -
      - - - -
      - -
      - - - -

      -Class ClStripServiceRunner -

      - -
      -
      Namespace
      Hi.Grpcs
      -
      Assembly
      HiNc.dll
      -
      - -

      Service runner for the ClStrip gRPC service.

      -
      -
      - -
      -
      public class ClStripServiceRunner : ClStripService.ClStripServiceBase
      -
      - - - - -
      -
      Inheritance
      -
      - - -
      ClStripServiceRunner
      -
      -
      - - - -
      -
      Inherited Members
      -
      - - - - - - - -
      - -
      -
      Extension Methods
      -
      - - - - - - - -
      - - - - - -

      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<DictionaryStep>, ServerCallContext) - -

      - -

      Streams step data as steps are executed.

      -
      -
      - -
      -
      public override Task StepRan(Empty request, IServerStreamWriter<DictionaryStep> responseStream, ServerCallContext context)
      -
      - -

      Parameters

      -
      -
      request Empty
      -

      Empty request

      -
      -
      responseStream IServerStreamWriter<DictionaryStep>
      -

      Stream to write step data to

      -
      -
      context ServerCallContext
      -

      Server call context

      -
      -
      - -

      Returns

      -
      -
      Task
      -

      Task representing the asynchronous operation

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

      - StepSelected(Empty, IServerStreamWriter<DictionaryStep>, ServerCallContext) - -

      - -

      Streams step data when a step is selected in the UI.

      -
      -
      - -
      -
      public override Task StepSelected(Empty request, IServerStreamWriter<DictionaryStep> responseStream, ServerCallContext context)
      -
      - -

      Parameters

      -
      -
      request Empty
      -

      Empty request

      -
      -
      responseStream IServerStreamWriter<DictionaryStep>
      -

      Stream to write step data to

      -
      -
      context ServerCallContext
      -

      Server call context

      -
      -
      - -

      Returns

      -
      -
      Task
      -

      Task representing the asynchronous operation

      -
      -
      - - - - - - - - - - - - -
      - -
      -
      - - -
      - -
      - -
      -
      - -
      - - - - diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.DictionaryStep.html b/App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.DictionaryStep.html deleted file mode 100644 index a188020b..00000000 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.DictionaryStep.html +++ /dev/null @@ -1,710 +0,0 @@ - - - - - Class DictionaryStep | HiAPI-C# 2025 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - -
      -
      -
      -
      -
      Table of Contents
      - -
      -
      - -
      -
      -
      - -
      -
      - - - -
      - -
      - - - -

      -Class DictionaryStep -

      - -
      -
      Namespace
      Hi.Grpcs
      -
      Assembly
      HiNc.dll
      -
      - -

      step which data type is dictionary

      -
      -
      - -
      -
      public sealed class DictionaryStep : IMessage<DictionaryStep>, IEquatable<DictionaryStep>, IDeepCloneable<DictionaryStep>, IBufferMessage, IMessage
      -
      - - - - -
      -
      Inheritance
      -
      - -
      DictionaryStep
      -
      -
      - -
      -
      Implements
      -
      -
      IMessage<DictionaryStep>
      - -
      IDeepCloneable<DictionaryStep>
      -
      IBufferMessage
      -
      IMessage
      -
      -
      - - -
      -
      Inherited Members
      -
      - - - -
      - -
      -
      Extension Methods
      -
      - - - - - - - -
      - - - - - -

      Constructors -

      - - - - -

      - DictionaryStep() - -

      - -
      -
      - -
      -
      public DictionaryStep()
      -
      - - - - - - - - - - - - - - - -

      - DictionaryStep(DictionaryStep) - -

      - -
      -
      - -
      -
      public DictionaryStep(DictionaryStep other)
      -
      - -

      Parameters

      -
      -
      other DictionaryStep
      -
      -
      - - - - - - - - - - - - -

      Fields -

      - - - -

      - DictionaryFieldNumber - -

      - -

      Field number for the “Dictionary” field.

      -
      -
      - -
      -
      public const int DictionaryFieldNumber = 1
      -
      - - - - -

      Field Value

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

      Properties -

      - - - - -

      - Descriptor - -

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

      Property Value

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

      - Dictionary - -

      - -

      all data in dictionary type.

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

      Property Value

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

      - Parser - -

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

      Property Value

      -
      -
      MessageParser<DictionaryStep>
      -
      -
      - - - - - - - - -

      Methods -

      - - - - -

      - CalculateSize() - -

      - -

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

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

      Returns

      -
      -
      int
      -

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

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

      - Clone() - -

      - -

      Creates a deep clone of this object.

      -
      -
      - -
      -
      public DictionaryStep Clone()
      -
      - - -

      Returns

      -
      -
      DictionaryStep
      -

      A deep clone of this object.

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

      - Equals(DictionaryStep) - -

      - -

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

      -
      -
      - -
      -
      public bool Equals(DictionaryStep other)
      -
      - -

      Parameters

      -
      -
      other DictionaryStep
      -

      An object to compare with this object.

      -
      -
      - -

      Returns

      -
      -
      bool
      -

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

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

      - Equals(object) - -

      - -

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

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

      Parameters

      -
      -
      other object
      -
      -
      - -

      Returns

      -
      -
      bool
      -

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

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

      - GetHashCode() - -

      - -

      Serves as the default hash function.

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

      Returns

      -
      -
      int
      -

      A hash code for the current object.

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

      - MergeFrom(CodedInputStream) - -

      - -

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

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

      Parameters

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

      Remarks

      -

      See the user guide for precise merge semantics.

      -
      - - - - - - -

      - MergeFrom(DictionaryStep) - -

      - -

      Merges the given message into this one.

      -
      -
      - -
      -
      public void MergeFrom(DictionaryStep other)
      -
      - -

      Parameters

      -
      -
      other DictionaryStep
      -
      -
      - - - - - - - - -

      Remarks

      -

      See the user guide for precise merge semantics.

      -
      - - - - - - -

      - ToString() - -

      - -

      Returns a string that represents the current object.

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

      Returns

      -
      -
      string
      -

      A string that represents the current object.

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

      - WriteTo(CodedOutputStream) - -

      - -

      Writes the data to the given coded output stream.

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

      Parameters

      -
      -
      output CodedOutputStream
      -

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

      -
      -
      - - - - - - - - - - - - - -
      - -
      -
      - - -
      - -
      - -
      -
      - -
      - - - - diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.PlayerService.PlayerServiceBase.html b/App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.PlayerService.PlayerServiceBase.html deleted file mode 100644 index 336b4632..00000000 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.PlayerService.PlayerServiceBase.html +++ /dev/null @@ -1,380 +0,0 @@ - - - - - Class PlayerService.PlayerServiceBase | HiAPI-C# 2025 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - -
      -
      -
      -
      -
      Table of Contents
      - -
      -
      - -
      -
      -
      - -
      -
      - - - -
      - -
      - - - -

      -Class PlayerService.PlayerServiceBase -

      - -
      -
      Namespace
      Hi.Grpcs
      -
      Assembly
      HiNc.dll
      -
      - -

      Base class for server-side implementations of PlayerService

      -
      -
      - -
      -
      [BindServiceMethod(typeof(PlayerService), "BindService")]
      -public abstract class PlayerService.PlayerServiceBase
      -
      - - - - -
      -
      Inheritance
      -
      - -
      PlayerService.PlayerServiceBase
      -
      -
      - - -
      -
      Derived
      -
      - -
      -
      - -
      -
      Inherited Members
      -
      - - - - - - - -
      - -
      -
      Extension Methods
      -
      - - - - - - - -
      - - - - - -

      Methods -

      - - - - -

      - Pause(Empty, ServerCallContext) - -

      - -

      Pause file playing if playing; otherwise do nothing.

      -
      -
      - -
      -
      public virtual Task<Empty> Pause(Empty request, ServerCallContext context)
      -
      - -

      Parameters

      -
      -
      request Empty
      -

      The request received from the client.

      -
      -
      context ServerCallContext
      -

      The context of the server-side call handler being invoked.

      -
      -
      - -

      Returns

      -
      -
      Task<Empty>
      -

      The response to send back to the client (wrapped by a task).

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

      - Reset(Empty, ServerCallContext) - -

      - -

      Reset file player to the state as before running Start function.

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

      Parameters

      -
      -
      request Empty
      -

      The request received from the client.

      -
      -
      context ServerCallContext
      -

      The context of the server-side call handler being invoked.

      -
      -
      - -

      Returns

      -
      -
      Task<Empty>
      -

      The response to send back to the client (wrapped by a task).

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

      - Resume(Empty, ServerCallContext) - -

      - -

      Resume file playing if paused; otherwise do nothing.

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

      Parameters

      -
      -
      request Empty
      -

      The request received from the client.

      -
      -
      context ServerCallContext
      -

      The context of the server-side call handler being invoked.

      -
      -
      - -

      Returns

      -
      -
      Task<Empty>
      -

      The response to send back to the client (wrapped by a task).

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

      - Start(Empty, ServerCallContext) - -

      - -

      Start file playing.

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

      Parameters

      -
      -
      request Empty
      -

      The request received from the client.

      -
      -
      context ServerCallContext
      -

      The context of the server-side call handler being invoked.

      -
      -
      - -

      Returns

      -
      -
      Task<Empty>
      -

      The response to send back to the client (wrapped by a task).

      -
      -
      - - - - - - - - - - - - -
      - -
      -
      - - -
      - -
      - -
      -
      - -
      - - - - diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.PlayerService.PlayerServiceClient.html b/App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.PlayerService.PlayerServiceClient.html deleted file mode 100644 index 2b80f27e..00000000 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Grpcs.PlayerService.PlayerServiceClient.html +++ /dev/null @@ -1,1100 +0,0 @@ - - - - - Class PlayerService.PlayerServiceClient | HiAPI-C# 2025 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - -
      -
      -
      -
      -
      Table of Contents
      - -
      -
      - -
      -
      -
      - -
      -
      - - - -
      - -
      - - - -

      -Class PlayerService.PlayerServiceClient -

      - -
      -
      Namespace
      Hi.Grpcs
      -
      Assembly
      HiNc.dll
      -
      - -

      Client for PlayerService

      -
      -
      - -
      -
      public class PlayerService.PlayerServiceClient : ClientBase<PlayerService.PlayerServiceClient>
      -
      - - - - -
      -
      Inheritance
      -
      - - - -
      PlayerService.PlayerServiceClient
      -
      -
      - - - -
      -
      Inherited Members
      -
      - - - - - - - - - -
      - -
      -
      Extension Methods
      -
      - - - - - - - -
      - - - - - -

      Constructors -

      - - - - -

      - PlayerServiceClient() - -

      - -

      Protected parameterless constructor to allow creation of test doubles.

      -
      -
      - -
      -
      protected PlayerServiceClient()
      -
      - - - - - - - - - - - - - - - -

      - PlayerServiceClient(CallInvoker) - -

      - -

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

      -
      -
      - -
      -
      public PlayerServiceClient(CallInvoker callInvoker)
      -
      - -

      Parameters

      -
      -
      callInvoker CallInvoker
      -

      The callInvoker to use to make remote calls.

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

      - PlayerServiceClient(ChannelBase) - -

      - -

      Creates a new client for PlayerService

      -
      -
      - -
      -
      public PlayerServiceClient(ChannelBase channel)
      -
      - -

      Parameters

      -
      -
      channel ChannelBase
      -

      The channel to use to make remote calls.

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

      - PlayerServiceClient(ClientBaseConfiguration) - -

      - -

      Protected constructor to allow creation of configured clients.

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

      Parameters

      -
      -
      configuration ClientBase.ClientBaseConfiguration
      -

      The client configuration.

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

      Methods -

      - - - - -

      - NewInstance(ClientBaseConfiguration) - -

      - -

      Creates a new instance of client from given ClientBaseConfiguration.

      -
      -
      - -
      -
      protected override PlayerService.PlayerServiceClient NewInstance(ClientBase.ClientBaseConfiguration configuration)
      -
      - -

      Parameters

      -
      -
      configuration ClientBase.ClientBaseConfiguration
      -
      -
      - -

      Returns

      -
      -
      PlayerService.PlayerServiceClient
      -
      -
      - - - - - - - - - - - - - -

      - Pause(Empty, CallOptions) - -

      - -

      Pause file playing if playing; otherwise do nothing.

      -
      -
      - -
      -
      public virtual Empty Pause(Empty request, CallOptions options)
      -
      - -

      Parameters

      -
      -
      request Empty
      -

      The request to send to the server.

      -
      -
      options CallOptions
      -

      The options for the call.

      -
      -
      - -

      Returns

      -
      -
      Empty
      -

      The response received from the server.

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

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

      - -

      Pause file playing if playing; otherwise do nothing.

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

      Parameters

      -
      -
      request Empty
      -

      The request to send to the server.

      -
      -
      headers Metadata
      -

      The initial metadata to send with the call. This parameter is optional.

      -
      -
      deadline DateTime?
      -

      An optional deadline for the call. The call will be cancelled if deadline is hit.

      -
      -
      cancellationToken CancellationToken
      -

      An optional token for canceling the call.

      -
      -
      - -

      Returns

      -
      -
      Empty
      -

      The response received from the server.

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

      - PauseAsync(Empty, CallOptions) - -

      - -

      Pause file playing if playing; otherwise do nothing.

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

      Parameters

      -
      -
      request Empty
      -

      The request to send to the server.

      -
      -
      options CallOptions
      -

      The options for the call.

      -
      -
      - -

      Returns

      -
      -
      AsyncUnaryCall<Empty>
      -

      The call object.

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

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

      - -

      Pause file playing if playing; otherwise do nothing.

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

      Parameters

      -
      -
      request Empty
      -

      The request to send to the server.

      -
      -
      headers Metadata
      -

      The initial metadata to send with the call. This parameter is optional.

      -
      -
      deadline DateTime?
      -

      An optional deadline for the call. The call will be cancelled if deadline is hit.

      -
      -
      cancellationToken CancellationToken
      -

      An optional token for canceling the call.

      -
      -
      - -

      Returns

      -
      -
      AsyncUnaryCall<Empty>
      -

      The call object.

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

      - Reset(Empty, CallOptions) - -

      - -

      Reset file player to the state as before running Start function.

      -
      -
      - -
      -
      public virtual Empty Reset(Empty request, CallOptions options)
      -
      - -

      Parameters

      -
      -
      request Empty
      -

      The request to send to the server.

      -
      -
      options CallOptions
      -

      The options for the call.

      -
      -
      - -

      Returns

      -
      -
      Empty
      -

      The response received from the server.

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

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

      - -

      Reset file player to the state as before running Start function.

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

      Parameters

      -
      -
      request Empty
      -

      The request to send to the server.

      -
      -
      headers Metadata
      -

      The initial metadata to send with the call. This parameter is optional.

      -
      -
      deadline DateTime?
      -

      An optional deadline for the call. The call will be cancelled if deadline is hit.

      -
      -
      cancellationToken CancellationToken
      -

      An optional token for canceling the call.

      -
      -
      - -

      Returns

      -
      -
      Empty
      -

      The response received from the server.

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

      - ResetAsync(Empty, CallOptions) - -

      - -

      Reset file player to the state as before running Start function.

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

      Parameters

      -
      -
      request Empty
      -

      The request to send to the server.

      -
      -
      options CallOptions
      -

      The options for the call.

      -
      -
      - -

      Returns

      -
      -
      AsyncUnaryCall<Empty>
      -

      The call object.

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

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

      - -

      Reset file player to the state as before running Start function.

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

      Parameters

      -
      -
      request Empty
      -

      The request to send to the server.

      -
      -
      headers Metadata
      -

      The initial metadata to send with the call. This parameter is optional.

      -
      -
      deadline DateTime?
      -

      An optional deadline for the call. The call will be cancelled if deadline is hit.

      -
      -
      cancellationToken CancellationToken
      -

      An optional token for canceling the call.

      -
      -
      - -

      Returns

      -
      -
      AsyncUnaryCall<Empty>
      -

      The call object.

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

      - Resume(Empty, CallOptions) - -

      - -

      Resume file playing if paused; otherwise do nothing.

      -
      -
      - -
      -
      public virtual Empty Resume(Empty request, CallOptions options)
      -
      - -

      Parameters

      -
      -
      request Empty
      -

      The request to send to the server.

      -
      -
      options CallOptions
      -

      The options for the call.

      -
      -
      - -

      Returns

      -
      -
      Empty
      -

      The response received from the server.

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

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

      - -

      Resume file playing if paused; otherwise do nothing.

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

      Parameters

      -
      -
      request Empty
      -

      The request to send to the server.

      -
      -
      headers Metadata
      -

      The initial metadata to send with the call. This parameter is optional.

      -
      -
      deadline DateTime?
      -

      An optional deadline for the call. The call will be cancelled if deadline is hit.

      -
      -
      cancellationToken CancellationToken
      -

      An optional token for canceling the call.

      -
      -
      - -

      Returns

      -
      -
      Empty
      -

      The response received from the server.

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

      - ResumeAsync(Empty, CallOptions) - -

      - -

      Resume file playing if paused; otherwise do nothing.

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

      Parameters

      -
      -
      request Empty
      -

      The request to send to the server.

      -
      -
      options CallOptions
      -

      The options for the call.

      -
      -
      - -

      Returns

      -
      -
      AsyncUnaryCall<Empty>
      -

      The call object.

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

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

      - -

      Resume file playing if paused; otherwise do nothing.

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

      Parameters

      -
      -
      request Empty
      -

      The request to send to the server.

      -
      -
      headers Metadata
      -

      The initial metadata to send with the call. This parameter is optional.

      -
      -
      deadline DateTime?
      -

      An optional deadline for the call. The call will be cancelled if deadline is hit.

      -
      -
      cancellationToken CancellationToken
      -

      An optional token for canceling the call.

      -
      -
      - -

      Returns

      -
      -
      AsyncUnaryCall<Empty>
      -

      The call object.

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

      - Start(Empty, CallOptions) - -

      - -

      Start file playing.

      -
      -
      - -
      -
      public virtual Empty Start(Empty request, CallOptions options)
      -
      - -

      Parameters

      -
      -
      request Empty
      -

      The request to send to the server.

      -
      -
      options CallOptions
      -

      The options for the call.

      -
      -
      - -

      Returns

      -
      -
      Empty
      -

      The response received from the server.

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

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

      - -

      Start file playing.

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

      Parameters

      -
      -
      request Empty
      -

      The request to send to the server.

      -
      -
      headers Metadata
      -

      The initial metadata to send with the call. This parameter is optional.

      -
      -
      deadline DateTime?
      -

      An optional deadline for the call. The call will be cancelled if deadline is hit.

      -
      -
      cancellationToken CancellationToken
      -

      An optional token for canceling the call.

      -
      -
      - -

      Returns

      -
      -
      Empty
      -

      The response received from the server.

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

      - StartAsync(Empty, CallOptions) - -

      - -

      Start file playing.

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

      Parameters

      -
      -
      request Empty
      -

      The request to send to the server.

      -
      -
      options CallOptions
      -

      The options for the call.

      -
      -
      - -

      Returns

      -
      -
      AsyncUnaryCall<Empty>
      -

      The call object.

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

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

      - -

      Start file playing.

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

      Parameters

      -
      -
      request Empty
      -

      The request to send to the server.

      -
      -
      headers Metadata
      -

      The initial metadata to send with the call. This parameter is optional.

      -
      -
      deadline DateTime?
      -

      An optional deadline for the call. The call will be cancelled if deadline is hit.

      -
      -
      cancellationToken CancellationToken
      -

      An optional token for canceling the call.

      -
      -
      - -

      Returns

      -
      -
      AsyncUnaryCall<Empty>
      -

      The call object.

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

      -Class PlayerServiceReflection -

      - -
      -
      Namespace
      Hi.Grpcs
      -
      Assembly
      HiNc.dll
      -
      - -

      Holder for reflection information generated from Grpcs/PlayerService.proto

      -
      -
      - -
      -
      public static class PlayerServiceReflection
      -
      - - - - -
      -
      Inheritance
      -
      - -
      PlayerServiceReflection
      -
      -
      - - - -
      -
      Inherited Members
      -
      - - - - - - - -
      - - - - - - -

      Properties -

      - - - - -

      - Descriptor - -

      - -

      File descriptor for Grpcs/PlayerService.proto

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

      Property Value

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

      Namespace Hi.Grpcs

      -
      -
      -
      - -

      -Classes -

      -
      -
      ClStripService
      -

      milling process service based on dictionary data type.

      -
      -
      -
      -
      ClStripService.ClStripServiceBase
      -

      Base class for server-side implementations of ClStripService

      -
      -
      -
      -
      ClStripService.ClStripServiceClient
      -

      Client for ClStripService

      -
      -
      -
      -
      ClStripServiceReflection
      -

      Holder for reflection information generated from Grpcs/ClStripService.proto

      -
      -
      -
      -
      ClStripServiceRunner
      -

      Service runner for the ClStrip gRPC service.

      -
      -
      -
      -
      DictionaryStep
      -

      step which data type is dictionary

      -
      -
      -
      -
      PlayerService
      -

      numerical file player service.

      -
      -
      -
      -
      PlayerService.PlayerServiceBase
      -

      Base class for server-side implementations of PlayerService

      -
      -
      -
      -
      PlayerService.PlayerServiceClient
      -

      Client for PlayerService

      -
      -
      -
      -
      PlayerServiceReflection
      -

      Holder for reflection information generated from Grpcs/PlayerService.proto

      -
      -
      -
      -
      PlayerServiceRunner
      -

      Service runner for the Player gRPC service.

      -
      -
      - - -
      - -
      -
      - - -
      - -
      - -
      -
      - -
      - - - - diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment.html b/App/wwwroot/HiAPI-docsite/api/Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment.html index 09ba504c..2553ef5a 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment.html @@ -155,6 +155,9 @@ Interface IMachiningEquipment + 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 21685237..e822cf4b 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html @@ -166,6 +166,9 @@ Class MachiningEquipment + diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.html b/App/wwwroot/HiAPI-docsite/api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.html index c2ce19fd..b5ce1bae 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.html @@ -153,6 +153,56 @@ Class MachiningEquipmentUtil + + +

      + AlignWorkpieceProgramZeroToIso(IMachiningEquipment, Vec3d) + +

      + +

      Places Fixture under the kinematic +chain so that ProgramZeroAnchor coincides with +the world position the spindle reaches when the machine coordinate +equals isoOffset (a G54/G55/… entry).

      +

      Other anchors (FixtureBuckle, +ProgramZeroAnchor, +WorkpieceBuckle) must already be at their intended +geometric positions (typically via the buckle “general rule”: +bottom/top centers of geom). Only +GeomToTableTransformer is mutated.

      +

      Returns the assigned translation, or null when workpiece / +fixture / Xyzabc machine tool is missing.

      +
      +
      + +
      +
      public static Vec3d AlignWorkpieceProgramZeroToIso(this IMachiningEquipment equipment, Vec3d isoOffset)
      +
      + +

      Parameters

      +
      +
      equipment IMachiningEquipment
      +
      +
      isoOffset Vec3d
      +
      +
      + +

      Returns

      +
      +
      Vec3d
      +
      +
      + + + + + + + + + + +

      diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.MachiningProject.html b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.MachiningProject.html index 3ced9fb7..ec1ab289 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.MachiningProject.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.MachiningProject.html @@ -581,6 +581,41 @@ Class MachiningProject + + +

      + SoftNcRunnerFile + +

      + +

      Gets or sets the project-relative file path of the SoftNcRunner +XML. When non-null, MakeXmlSource(string, string, bool) writes the runner to this +side file and embeds a file reference in the project XML; when null the +runner is inlined. Mirrors MachiningChainFile.

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

      Property Value

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

      diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.MachiningProjectDisplayee.html b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.MachiningProjectDisplayee.html index 8170087f..821e4756 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.MachiningProjectDisplayee.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.MachiningProjectDisplayee.html @@ -156,9 +156,6 @@ Class MachiningProjectDisplayee
      Extension Methods
      - @@ -168,12 +165,6 @@ Class MachiningProjectDisplayee - - diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.SessionShell.html b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.SessionShell.html index 54dee489..41b1a1e4 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.SessionShell.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.SessionShell.html @@ -2292,6 +2292,49 @@ public FeedPerCycleMachiningMotionResolution AdjustedFeedPerCycle(double scale, + + +

      + AlignWorkpieceProgramZeroToIso(string) + +

      + +

      Places workpiece + fixture so that ProgramZeroAnchor +coincides with the world position the spindle reaches when the machine +coordinate equals isoCoordId's entry (G54/G55/...). +The buckle anchors must already be set per the general rule (typically by +the project XML): FixtureBuckle at the bottom +center of the workpiece geom, WorkpieceBuckle at the +top center of the fixture geom, ProgramZeroAnchor +at the workpiece-geom top center (or any chosen tip). Only +GeomToTableTransformer is mutated. Delegates topology +math to AlignWorkpieceProgramZeroToIso(IMachiningEquipment, Vec3d).

      +
      +
      + +
      +
      [JsAce]
      +public void AlignWorkpieceProgramZeroToIso(string isoCoordId)
      +
      + +

      Parameters

      +
      +
      isoCoordId string
      +

      ID into the IsoCoordinateTable, e.g. “G54”.

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

      diff --git a/App/wwwroot/HiAPI-docsite/api/numerical.UniversalNcService.UniversalNcServiceBase.html b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningSteps.IStepPropertyAccessHost.html similarity index 54% rename from App/wwwroot/HiAPI-docsite/api/numerical.UniversalNcService.UniversalNcServiceBase.html rename to App/wwwroot/HiAPI-docsite/api/Hi.MachiningSteps.IStepPropertyAccessHost.html index 51547022..01c1d707 100644 --- a/App/wwwroot/HiAPI-docsite/api/numerical.UniversalNcService.UniversalNcServiceBase.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.MachiningSteps.IStepPropertyAccessHost.html @@ -2,11 +2,11 @@ - Class UniversalNcService.UniversalNcServiceBase | HiAPI-C# 2025 + Interface IStepPropertyAccessHost | HiAPI-C# 2025 - + - + @@ -84,70 +84,49 @@

    -
    +
    -

    -Class UniversalNcService.UniversalNcServiceBase +

    +Interface IStepPropertyAccessHost

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

    Base class for server-side implementations of UniversalNcService

    +

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

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

    Properties +

    + + + + +

    + StepPropertyAccessDictionary + +

    + +

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

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

    Property Value

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

    Methods

    - + -

    - GetNcStepGrpcCsvRowDictionary(GrpcNcStep, ServerCallContext) +

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

    -
    +

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

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

    Parameters

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

    Unique key.

    +
    +
    name string
    +

    Human-readable name; may equal key.

    +
    +
    unit string
    +

    Physical unit name (PhysicsUnit); nullable.

    +
    +
    formatString string
    +

    Display format string; nullable.

    +
    +
    variableFunc Func<MachiningStep, object>
    +

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

    +
    -

    Returns

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

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

    +
    +
    +
    +
    IStepPropertyAccessHost
    +

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

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

    For legacy compatible. Use GeneralXyzabcMachineTool instead.

    +

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

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

    For legacy compatible. Use GeneralXyzabcMachineTool instead.

    +

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

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

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

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

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

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

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

    + + +

    + OnSessionReset() + +

    + +

    Clears CountByTarget; leaves MaxIterationsPerTarget untouched.

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

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

    - - -

    - Reset() - -

    - -

    Clears CountByTarget; leaves MaxIterationsPerTarget untouched.

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

    +Class FanucWhileDoIterationDependency +

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

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

    +

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

    +

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

    +

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

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

    Constructors +

    + + + + +

    + FanucWhileDoIterationDependency() + +

    + +

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

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

    + FanucWhileDoIterationDependency(XElement) + +

    + +

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

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

    Parameters

    +
    +
    src XElement
    +

    Root element named XName.

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

    Fields +

    + + + +

    + DefaultMaxIterationsPerLoopId + +

    + +

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

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

    Field Value

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

    Properties +

    + + + + +

    + CountByLoop + +

    + +

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

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

    Property Value

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

    + MaxIterationsPerLoopId + +

    + +

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

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

    Property Value

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

    + XName + +

    + +

    XML element name used to register this dependency with XFactory.

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

    Property Value

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

    Methods +

    + + + + +

    + MakeXmlSource(string, string, bool) + +

    + +

    Creates an XML representation of the object. +This method may also generate additional resources such as related files.

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

    Parameters

    +
    +
    baseDirectory string
    +

    The base directory for resolving relative paths

    +
    +
    relFile string
    +

    The relative file path for the XML source

    +
    +
    exhibitionOnly bool
    +

    if true, the extended file creation is suppressed.

    +
    +
    + +

    Returns

    +
    +
    XElement
    +

    An XML element representing the object's state

    +
    +
    + + + + + + + +

    Remarks

    +

    For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. +The baseDirectory is typically the folder at the nearest configuration file folder. +Since the folder can be moving with the configuration file.

    +
    + + + + + + +

    + OnSessionReset() + +

    + +

    Clears CountByLoop; leaves MaxIterationsPerLoopId untouched.

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

    + Reg(XFactory) + +

    + +

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

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

    Parameters

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

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

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

    + + +
    +
    FanucWhileDoIterationDependency
    +

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

    +

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

    +

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

    +

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

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

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

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

    Two consumers share one allocator:

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

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

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

    + + +

    + OnSessionReset() + +

    + +

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

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

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

    - - -

    - Reset() - -

    - -

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

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

    +Class MachiningServiceDependency +

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

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

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

    Constructors +

    + + + + +

    + MachiningServiceDependency() + +

    + +

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

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

    + MachiningServiceDependency(Func<IMachiningService>) + +

    + +

    Initializes a new instance with the given ServiceProvider.

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

    Parameters

    +
    +
    provider Func<IMachiningService>
    +

    Delegate that resolves the live service at lookup time.

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

    Properties +

    + + + + +

    + Service + +

    + +

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

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

    Property Value

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

    + ServiceProvider + +

    + +

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

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

    Property Value

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

    + XName + +

    + +

    XML element name used to register this dependency with XFactory.

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

    Property Value

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

    Methods +

    + + + + +

    + MakeXmlSource(string, string, bool) + +

    + +

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

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

    Parameters

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

    Returns

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

    + Reg(XFactory) + +

    + +

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

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

    Parameters

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

    +Class StepPropertyAccessDictionaryDependency +

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

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

    +

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

    +

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

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

    Constructors +

    + + + + +

    + StepPropertyAccessDictionaryDependency() + +

    + +

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

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

    + StepPropertyAccessDictionaryDependency(Func<IStepPropertyAccessHost>) + +

    + +

    Initializes a new instance with the given HostProvider.

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

    Parameters

    +
    +
    provider Func<IStepPropertyAccessHost>
    +

    Delegate that resolves the live host at lookup time.

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

    Properties +

    + + + + +

    + Host + +

    + +

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

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

    Property Value

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

    + HostProvider + +

    + +

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

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

    Property Value

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

    + XName + +

    + +

    XML element name used to register this dependency with XFactory.

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

    Property Value

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

    Methods +

    + + + + +

    + MakeXmlSource(string, string, bool) + +

    + +

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

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

    Parameters

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

    Returns

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

    + Reg(XFactory) + +

    + +

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

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

    Parameters

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

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

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

    Two consumers share one allocator:

    + +
    +
    MachiningServiceDependency
    +

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

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

    + +
    +
    +
    StepPropertyAccessDictionaryDependency
    +

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

    +

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

    +

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

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

    -Class ClStripService +

    +Class FanucConditionReader

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

    milling process service based on dictionary data type.

    +

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

    +

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

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

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

    +

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

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

    Properties -

    - - - - -

    - Descriptor - -

    - -

    Service descriptor

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

    Property Value

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

    Methods

    - + -

    - BindService(ServiceBinderBase, ClStripServiceBase) +

    + ReadCondition(JsonNode)

    -

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

    +

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

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

    Parameters

    -
    serviceBinder ServiceBinderBase
    -

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

    -
    -
    serviceImpl ClStripService.ClStripServiceBase
    -

    An object implementing the server-side handling logic.

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

    - BindService(ClStripServiceBase) - -

    - -

    Creates service definition that can be registered with a server

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

    Parameters

    -
    -
    serviceImpl ClStripService.ClStripServiceBase
    -

    An object implementing the server-side handling logic.

    -
    +
    node JsonNode
    +

    Returns

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

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

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

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

    +Class FanucWhileDoSyntax +

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

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

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

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

    +

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

    +

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

    +

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

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

    Remarks

    +

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

    +

    Given this Custom Macro B source:

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

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

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

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

    +
    + + +

    Constructors +

    + + + + +

    + FanucWhileDoSyntax() + +

    + +

    Parameterless instance.

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

    + FanucWhileDoSyntax(XElement) + +

    + +

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

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

    Parameters

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

    Fields +

    + + + +

    + BeginLineNoKey + +

    + +

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

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

    Field Value

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

    + WhileFramesKey + +

    + +

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

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

    Field Value

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

    Properties +

    + + + + +

    + Name + +

    + +

    Syntax kind name (typically the concrete type name).

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

    Property Value

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

    + XName + +

    + +

    XML element name used to register this syntax with XFactory.

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

    Property Value

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

    Methods +

    + + + + +

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

    + +

    Build syntax arrangement into the +syntaxPieceNode in-place.

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

    Parameters

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

    + MakeXmlSource(string, string, bool) + +

    + +

    Creates an XML representation of the object. +This method may also generate additional resources such as related files.

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

    Parameters

    +
    +
    baseDirectory string
    +

    The base directory for resolving relative paths

    +
    +
    relFile string
    +

    The relative file path for the XML source

    +
    +
    exhibitionOnly bool
    +

    if true, the extended file creation is suppressed.

    +
    +
    + +

    Returns

    +
    +
    XElement
    +

    An XML element representing the object's state

    +
    +
    + + + + + + + +

    Remarks

    +

    For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. +The baseDirectory is typically the folder at the nearest configuration file folder. +Since the folder can be moving with the configuration file.

    +
    + + + + + + +

    + Reg(XFactory) + +

    + +

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

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

    Parameters

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

    Classes

    +
    +
    FanucConditionReader
    +

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

    +

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

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

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

    +

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

    +
    +
    FanucGotoSyntax

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

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

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

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

    +
    +
    +
    +
    FanucWhileDoSyntax
    +

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

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

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

    +

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

    +

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

    +

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

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

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

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

    + +

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

    +

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

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

    Parameters

    +
    +
    segmenter ISegmenter
    +

    Segmenter used to slice the file into Sentence blocks.

    +
    +
    ncDependencyList List<INcDependency>
    +

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

    +
    +
    absPath string
    +

    Absolute path to read line content from.

    +
    +
    labelPath string
    +

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

    +
    +
    fileIndex int
    +

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

    +
    +
    sentenceIndexBegin int
    +

    Starting execution-order index for the produced pieces.

    +
    +
    probeSyntaxes List<ISituNcSyntax>
    +

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

    +
    +
    match Func<JsonObject, bool>
    +

    Per-candidate predicate; true selects the first match.

    +
    +
    diag NcDiagnosticProgress
    +

    Sink for any diagnostics produced by the probe syntaxes.

    +
    +
    + +

    Returns

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

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

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

    Parameters

    segmenter ISegmenter

    Segmenter used to slice the file into Sentence blocks.

    +
    +
    ncDependencyList List<INcDependency>
    +

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

    absPath string

    Absolute path to read line content from.

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

    -

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

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

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

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

    Parameters

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

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

    +

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

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

    Fields +

    + + + +

    + FormulaKey + +

    + +

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

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

    Field Value

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

    Properties

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

    +

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

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

    -Class NumericalService.NumericalServiceBase +

    +Interface ISessionResettable

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

    Base class for server-side implementations of NumericalService

    +

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

    +

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

    +

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

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

    - GetNcStepGrpcCsvRowDictionary(Empty, ServerCallContext) +

    + OnSessionReset()

    -
    +

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

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

    Parameters

    -
    -
    request Empty
    -
    -
    context ServerCallContext
    -
    -
    -

    Returns

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

    +

    +Lifecycle of the condition fields. +

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

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

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

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

    + ConditionEvaluated + +

    + +

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

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

    Property Value

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

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

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

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

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

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

    + + +

    + ConditionEvaluated + +

    + +

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

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

    Property Value

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

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

    +Class FanucWhileDo +

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

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

    +

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

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

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

    +

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

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

    Properties +

    + + + + +

    + Condition + +

    + +

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

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

    Property Value

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

    + ConditionEvaluated + +

    + +

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

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

    Property Value

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

    + LoopId + +

    + +

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

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

    Property Value

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

    + Term + +

    + +

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

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

    Property Value

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

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

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

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

    Examples

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

    - PlaneNormalDir - -

    - -

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

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

    Property Value

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

    +

    +Lifecycle of the condition fields. +

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

    + +
    +
    +
    FanucWhileDo
    +

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

    +

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

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

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

    +

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

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

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

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

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

    Examples

    +

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

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

    #AfterBuild:

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

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

    -

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

    +

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

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

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

    -

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

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

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

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

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

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

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

    +

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

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

    Remarks

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

    Examples

    +

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

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

    #AfterBuild:

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

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

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

    #BeforeBuild:

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

    #AfterBuild:

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

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

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

    #AfterBuild:

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

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

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

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

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

    +

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

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

    Remarks

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

    Examples

    +

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

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

    #AfterBuild:

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

    Examples

    +

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

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

    #AfterBuild:

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

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

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

    #AfterBuild:

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

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

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

    #BeforeBuild:

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

    #AfterBuild:

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

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

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

    #AfterBuild:

    +
    {}
    +

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

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

    #BeforeBuild:

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

    #AfterBuild:

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

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

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

    #BeforeBuild:

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

    #AfterBuild:

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

    Remarks

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

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

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

    #AfterBuild:

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

    Examples

    +

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

    +

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

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

    Remarks

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

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

    +

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

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

    Remarks

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

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

    +
    {}
    +

    #AfterBuild:

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

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

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

    #AfterBuild:

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

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

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

    #AfterBuild:

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

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

    +

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

    +

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

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

    Examples

    +

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

    +

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

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

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

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

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

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

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

    +

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

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

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

    +

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

    +

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

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

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

    -

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

    +

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

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

    +Class FanucWhileDoParsingSyntax +

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

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

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

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

    +

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

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

    Examples

    +

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

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

    #Input: END 1 +#Output:

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

    Constructors +

    + + + + +

    + FanucWhileDoParsingSyntax() + +

    + +

    Parameterless instance for bundle composition (no XML state).

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

    + FanucWhileDoParsingSyntax(XElement) + +

    + +

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

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

    Parameters

    +
    +
    src XElement
    +

    Root element named XName.

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

    Properties +

    + + + + +

    + Name + +

    + +

    Syntax kind name (typically the concrete type name).

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

    Property Value

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

    + XName + +

    + +

    XML element name used to register this syntax with XFactory.

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

    Property Value

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

    Methods +

    + + + + +

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

    + +

    Build syntax arrangement into the +syntaxPieceNode in-place.

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

    Parameters

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

    + MakeXmlSource(string, string, bool) + +

    + +

    Creates an XML representation of the object. +This method may also generate additional resources such as related files.

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

    Parameters

    +
    +
    baseDirectory string
    +

    The base directory for resolving relative paths

    +
    +
    relFile string
    +

    The relative file path for the XML source

    +
    +
    exhibitionOnly bool
    +

    if true, the extended file creation is suppressed.

    +
    +
    + +

    Returns

    +
    +
    XElement
    +

    An XML element representing the object's state

    +
    +
    + + + + + + + +

    Remarks

    +

    For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. +The baseDirectory is typically the folder at the nearest configuration file folder. +Since the folder can be moving with the configuration file.

    +
    + + + + + + +

    + Reg(XFactory) + +

    + +

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

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

    Parameters

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

    + +
    +
    +
    FanucWhileDoParsingSyntax
    +

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

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

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

    +

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

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

    -

    - GetSentences(LazyLinkedList<IndexedFileLine>, NcDiagnosticProgress) +

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

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

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

    Parameters

    indexedFileLines LazyLinkedList<IndexedFileLine>

    The lazy linked list of indexed file lines.

    +
    +
    ncDependencyList List<INcDependency>
    +

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

    ncDiagnosticProgress NcDiagnosticProgress

    Diagnostic progress reporter.

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

    - GetSentences(LazyLinkedList<IndexedFileLine>, NcDiagnosticProgress) +

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

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

    Parameters

    indexedFileLines LazyLinkedList<IndexedFileLine>

    The lazy linked list of indexed file lines.

    +
    +
    ncDependencyList List<INcDependency>
    +

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

    ncDiagnosticProgress NcDiagnosticProgress

    Diagnostic progress reporter.

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

    - GetSentences(LazyLinkedList<IndexedFileLine>, NcDiagnosticProgress) +

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

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

    Parameters

    indexedFileLines LazyLinkedList<IndexedFileLine>

    The lazy linked list of indexed file lines.

    +
    +
    ncDependencyList List<INcDependency>
    +

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

    ncDiagnosticProgress NcDiagnosticProgress

    Diagnostic progress reporter.

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

    - GetSentences(LazyLinkedList<IndexedFileLine>, NcDiagnosticProgress) +

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

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

    Parameters

    indexedFileLines LazyLinkedList<IndexedFileLine>

    The lazy linked list of indexed file lines.

    +
    +
    ncDependencyList List<INcDependency>
    +

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

    ncDiagnosticProgress NcDiagnosticProgress

    Diagnostic progress reporter.

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

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

    +
    +
    +
    +
    ISessionResettable
    +

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

    +

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

    +

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

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

    +Class CsvRowSemantic +

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

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

    +

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

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

    Properties +

    + + + + +

    + DisplayName + +

    + +

    The process name shown on UI.

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

    Property Value

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

    + XName + +

    + +

    XML element name for Generators registration.

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

    Property Value

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

    Methods +

    + + + + +

    + MakeXmlSource(string, string, bool) + +

    + +

    Creates an XML representation of the object. +This method may also generate additional resources such as related files.

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

    Parameters

    +
    +
    baseDirectory string
    +

    The base directory for resolving relative paths

    +
    +
    relFile string
    +

    The relative file path for the XML source

    +
    +
    exhibitionOnly bool
    +

    if true, the extended file creation is suppressed.

    +
    +
    + +

    Returns

    +
    +
    XElement
    +

    An XML element representing the object's state

    +
    +
    + + + + + + + +

    Remarks

    +

    For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. +The baseDirectory is typically the folder at the nearest configuration file folder. +Since the folder can be moving with the configuration file.

    +
    + + + + + + +

    + Reg(XFactory) + +

    + +

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

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

    Parameters

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

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

    + +

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

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

    Parameters

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

    Returns

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

    -
    +
    -

    -Class MachiningProjectGrpcServer +

    +Class CsvRowSyntax

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

    Server for exposing machining project functionality via gRPC.

    +

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

    +

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

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

    Constructors +

    Fields

    - -

    - MachiningProjectGrpcServer(LocalProjectService) +

    + CsvRowKey

    -

    Initializes a new instance of the MachiningProjectGrpcServer class.

    +

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

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

    Parameters

    + + + +

    Field Value

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

    - MachiningProjectGrpcServer(XElement, LocalProjectService) - -

    - -

    Initializes a new instance of the MachiningProjectGrpcServer class from XML.

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

    Parameters

    -
    -
    src XElement
    -

    XML source element

    -
    -
    localProjectService LocalProjectService
    -

    The local project service.

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

    Properties

    - + -

    - IsServiceRunning +

    + Name

    -

    Gets whether the service is currently running.

    +

    Syntax kind name (typically the concrete type name).

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

    Property Value

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

    - ServicePort - -

    - -

    Gets or sets the port used by the gRPC service.

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

    Property Value

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

    - WebApplication - -

    - -

    Gets the web application instance for the gRPC server.

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

    Property Value

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

    +

    XName

    -

    Name for XML IO.

    +

    XML element name for Generators registration.

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

    - Dispose() +

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

    -

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

    +

    Build syntax arrangement into the +syntaxPieceNode in-place.

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

    - Dispose(bool) - -

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

    Parameters

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

    +

    MakeXmlSource(string, string, bool)

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

    -

    Remarks

    +

    Remarks

    For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file.

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

    - + -

    +

    Reg(XFactory)

    -

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

    +

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

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

    - StartAsync() - -

    - -

    Starts the gRPC server asynchronously.

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

    Returns

    -
    -
    Task
    -

    A task representing the asynchronous operation

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

    - StopAsync() - -

    - -

    Stops the gRPC server asynchronously.

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

    Returns

    -
    -
    Task
    -

    A task representing the asynchronous operation

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

    +

    Class CsvRunnerConfig

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

    Configuration class for CSV Runner.

    +

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

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

    +

    CsvRunnerConfig()

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

    +

    CsvRunnerConfig(XElement)

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

    +

    ActualTimeTag

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

    +

    CutterLocationPrefix

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

    +

    DurationTag

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

    +

    FeedrateTag_mmdmin

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

    +

    LineBeginCsScriptTag

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

    +

    LineEndCsScriptTag

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

    +

    MachineCoordinatePrefix

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

    +

    ParsingDictionary

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

    - + -

    +

    SpindleDirectionTag

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

    - + -

    +

    SpindleSpeedTag_rpm

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

    - + -

    +

    ToolIdTag

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

    - + -

    +

    XName

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

    - + -

    +

    MakeXmlSource(string, string, bool)

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

    -

    Remarks

    +

    Remarks

    For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file.

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

    - + -

    +

    Reg(XFactory)

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

    -Class PlayerServiceRunner +

    +Class CsvSegmenter

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

    Service runner for the Player gRPC service.

    +

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

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

    Constructors +

    Properties

    - + -

    - PlayerServiceRunner(LocalProjectService) +

    + Name

    -

    Initializes a new instance of the PlayerServiceRunner class.

    +

    Display name of this segmenter.

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

    Property Value

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

    + TitleList + +

    + +

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

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

    Property Value

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

    + XName + +

    + +

    XML element name for Generators registration.

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

    Property Value

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

    Methods +

    + + + + +

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

    + +

    Segments the indexed file lines into Sentences.

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

    Parameters

    -
    localProjectService LocalProjectService
    +
    indexedFileLines LazyLinkedList<IndexedFileLine>
    +

    The lazy linked list of indexed file lines.

    +
    +
    ncDependencyList List<INcDependency>
    +

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

    +
    +
    ncDiagnosticProgress NcDiagnosticProgress
    +

    Diagnostic progress reporter.

    +
    +
    + +

    Returns

    +
    +
    IEnumerable<Sentence>
    +

    A sequence of Sentences.

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

    + Reg(XFactory) + +

    + +

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

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

    Parameters

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

    Methods -

    + - - - -

    - Pause(Empty, ServerCallContext) +

    + ToXElement()

    -

    Pauses the player.

    +

    Get the XElement to represent the object.

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

    Parameters

    -
    -
    request Empty
    -

    The empty request.

    -
    -
    context ServerCallContext
    -

    The server call context.

    -
    -

    Returns

    -
    Task<Empty>
    -

    Empty response.

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

    - Reset(Empty, ServerCallContext) - -

    - -

    Resets the player.

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

    Parameters

    -
    -
    request Empty
    -

    The empty request.

    -
    -
    context ServerCallContext
    -

    The server call context.

    -
    -
    - -

    Returns

    -
    -
    Task<Empty>
    -

    Empty response.

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

    - Resume(Empty, ServerCallContext) - -

    - -

    Resumes the player.

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

    Parameters

    -
    -
    request Empty
    -

    The empty request.

    -
    -
    context ServerCallContext
    -

    The server call context.

    -
    -
    - -

    Returns

    -
    -
    Task<Empty>
    -

    Empty response.

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

    - Start(Empty, ServerCallContext) - -

    - -

    Starts the player.

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

    Parameters

    -
    -
    request Empty
    -

    The empty request.

    -
    -
    context ServerCallContext
    -

    The server call context.

    -
    -
    - -

    Returns

    -
    -
    Task<Empty>
    -

    Empty response.

    +
    XElement
    +

    XElement to represent the object.

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

    -Class PlayerService +

    +Class CsvSoftRunner

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

    numerical file player service.

    +

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

    +

    +Default NcDependencyList: +

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

    Properties -

    - - - - -

    - Descriptor - -

    - -

    Service descriptor

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

    Property Value

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

    Methods

    - + -

    - BindService(ServiceBinderBase, PlayerServiceBase) +

    + Create(CsvRunnerConfig)

    -

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

    +

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

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

    Parameters

    -
    serviceBinder ServiceBinderBase
    -

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

    -
    -
    serviceImpl PlayerService.PlayerServiceBase
    -

    An object implementing the server-side handling logic.

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

    - BindService(PlayerServiceBase) - -

    - -

    Creates service definition that can be registered with a server

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

    Parameters

    -
    -
    serviceImpl PlayerService.PlayerServiceBase
    -

    An object implementing the server-side handling logic.

    +
    config CsvRunnerConfig
    +

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

    Returns

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

    Namespace Hi.Numerical.CsvParsers

    +
    +
    +
    + +

    +Classes +

    +
    +
    CsvRowSemantic
    +

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

    +

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

    +
    +
    +
    +
    CsvRowSyntax
    +

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

    +

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

    +
    +
    +
    +
    CsvRunnerConfig
    +

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

    +
    +
    +
    +
    CsvSegmenter
    +

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

    +
    +
    +
    +
    CsvSoftRunner
    +

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

    +

    +Default NcDependencyList: +

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

    Property Value

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

    The enumerable collection of NC code lines

    machiningSession MachiningSession
    -
    +

    The machining session that owns runtime state for this run.

    +
    sessionProgress SessionProgress

    The session message host for logging.

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

    Provides functionality for running and processing csv lines.

    -
    -
    -
    -
    CsvRunnerConfig
    -

    Configuration class for CSV Runner.

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

    Namespace HiNc.Grpcs

    -
    -
    -
    - -

    -Classes -

    -
    -
    MachiningProjectGrpcServer
    -

    Server for exposing machining project functionality via gRPC.

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

    -Class Empty -

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

    Constructors -

    - - - - -

    - Empty() - -

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

    - Empty(Empty) - -

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

    Parameters

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

    Properties -

    - - - - -

    - Descriptor - -

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

    Property Value

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

    - Parser - -

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

    Property Value

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

    Methods -

    - - - - -

    - CalculateSize() - -

    - -

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

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

    Returns

    -
    -
    int
    -

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

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

    - Clone() - -

    - -

    Creates a deep clone of this object.

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

    Returns

    -
    -
    Empty
    -

    A deep clone of this object.

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

    - Equals(object) - -

    - -

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

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

    Parameters

    -
    -
    other object
    -
    -
    - -

    Returns

    -
    -
    bool
    -

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

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

    - Equals(Empty) - -

    - -

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

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

    Parameters

    -
    -
    other Empty
    -

    An object to compare with this object.

    -
    -
    - -

    Returns

    -
    -
    bool
    -

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

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

    - GetHashCode() - -

    - -

    Serves as the default hash function.

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

    Returns

    -
    -
    int
    -

    A hash code for the current object.

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

    - MergeFrom(CodedInputStream) - -

    - -

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

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

    Parameters

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

    Remarks

    -

    See the user guide for precise merge semantics.

    -
    - - - - - - -

    - MergeFrom(Empty) - -

    - -

    Merges the given message into this one.

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

    Parameters

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

    Remarks

    -

    See the user guide for precise merge semantics.

    -
    - - - - - - -

    - ToString() - -

    - -

    Returns a string that represents the current object.

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

    Returns

    -
    -
    string
    -

    A string that represents the current object.

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

    - WriteTo(CodedOutputStream) - -

    - -

    Writes the data to the given coded output stream.

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

    Parameters

    -
    -
    output CodedOutputStream
    -

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

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

    -Class GrpcCsvRowDictionary -

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

    Constructors -

    - - - - -

    - GrpcCsvRowDictionary() - -

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

    - GrpcCsvRowDictionary(GrpcCsvRowDictionary) - -

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

    Parameters

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

    Fields -

    - - - -

    - CsvRowDictionaryFieldNumber - -

    - -

    Field number for the “CsvRowDictionary” field.

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

    Field Value

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

    - StatusFieldNumber - -

    - -

    Field number for the “Status” field.

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

    Field Value

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

    Properties -

    - - - - -

    - CsvRowDictionary - -

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

    Property Value

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

    - Descriptor - -

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

    Property Value

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

    - Parser - -

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

    Property Value

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

    - Status - -

    - -

    Status: 0:ok; 1: failed.

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

    Property Value

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

    Methods -

    - - - - -

    - CalculateSize() - -

    - -

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

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

    Returns

    -
    -
    int
    -

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

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

    - Clone() - -

    - -

    Creates a deep clone of this object.

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

    Returns

    -
    -
    GrpcCsvRowDictionary
    -

    A deep clone of this object.

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

    - Equals(object) - -

    - -

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

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

    Parameters

    -
    -
    other object
    -
    -
    - -

    Returns

    -
    -
    bool
    -

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

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

    - Equals(GrpcCsvRowDictionary) - -

    - -

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

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

    Parameters

    -
    -
    other GrpcCsvRowDictionary
    -

    An object to compare with this object.

    -
    -
    - -

    Returns

    -
    -
    bool
    -

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

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

    - GetHashCode() - -

    - -

    Serves as the default hash function.

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

    Returns

    -
    -
    int
    -

    A hash code for the current object.

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

    - MergeFrom(CodedInputStream) - -

    - -

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

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

    Parameters

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

    Remarks

    -

    See the user guide for precise merge semantics.

    -
    - - - - - - -

    - MergeFrom(GrpcCsvRowDictionary) - -

    - -

    Merges the given message into this one.

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

    Parameters

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

    Remarks

    -

    See the user guide for precise merge semantics.

    -
    - - - - - - -

    - ToString() - -

    - -

    Returns a string that represents the current object.

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

    Returns

    -
    -
    string
    -

    A string that represents the current object.

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

    - WriteTo(CodedOutputStream) - -

    - -

    Writes the data to the given coded output stream.

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

    Parameters

    -
    -
    output CodedOutputStream
    -

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

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

    -Class GrpcNcStep -

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

    Constructors -

    - - - - -

    - GrpcNcStep() - -

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

    - GrpcNcStep(GrpcNcStep) - -

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

    Parameters

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

    Fields -

    - - - -

    - CsvRowDictionaryFieldNumber - -

    - -

    Field number for the “CsvRowDictionary” field.

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

    Field Value

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

    - FeedrateMmdminFieldNumber - -

    - -

    Field number for the “Feedrate_mmdmin” field.

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

    Field Value

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

    - FileIndexFieldNumber - -

    - -

    Field number for the “FileIndex” field.

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

    Field Value

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

    - FilePathFieldNumber - -

    - -

    Field number for the “FilePath” field.

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

    Field Value

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

    - LineFieldNumber - -

    - -

    Field number for the “Line” field.

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

    Field Value

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

    - LineIndexFieldNumber - -

    - -

    Field number for the “LineIndex” field.

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

    Field Value

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

    - SpindleDirectionFieldNumber - -

    - -

    Field number for the “SpindleDirection” field.

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

    Field Value

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

    - SpindleSpeedRpmFieldNumber - -

    - -

    Field number for the “SpindleSpeed_rpm” field.

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

    Field Value

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

    - StepIndexFieldNumber - -

    - -

    Field number for the “StepIndex” field.

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

    Field Value

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

    - ToolIdFieldNumber - -

    - -

    Field number for the “ToolId” field.

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

    Field Value

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

    - WorkTimeFieldNumber - -

    - -

    Field number for the “WorkTime” field.

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

    Field Value

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

    Properties -

    - - - - -

    - CsvRowDictionary - -

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

    Property Value

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

    - Descriptor - -

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

    Property Value

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

    - FeedrateMmdmin - -

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

    Property Value

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

    - FileIndex - -

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

    Property Value

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

    - FilePath - -

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

    Property Value

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

    - Line - -

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

    Property Value

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

    - LineIndex - -

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

    Property Value

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

    - Parser - -

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

    Property Value

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

    - SpindleDirection - -

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

    Property Value

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

    - SpindleSpeedRpm - -

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

    Property Value

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

    - StepIndex - -

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

    Property Value

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

    - ToolId - -

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

    Property Value

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

    - WorkTime - -

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

    Property Value

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

    Methods -

    - - - - -

    - CalculateSize() - -

    - -

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

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

    Returns

    -
    -
    int
    -

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

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

    - Clone() - -

    - -

    Creates a deep clone of this object.

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

    Returns

    -
    -
    GrpcNcStep
    -

    A deep clone of this object.

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

    - Equals(object) - -

    - -

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

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

    Parameters

    -
    -
    other object
    -
    -
    - -

    Returns

    -
    -
    bool
    -

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

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

    - Equals(GrpcNcStep) - -

    - -

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

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

    Parameters

    -
    -
    other GrpcNcStep
    -

    An object to compare with this object.

    -
    -
    - -

    Returns

    -
    -
    bool
    -

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

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

    - GetHashCode() - -

    - -

    Serves as the default hash function.

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

    Returns

    -
    -
    int
    -

    A hash code for the current object.

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

    - MergeFrom(CodedInputStream) - -

    - -

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

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

    Parameters

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

    Remarks

    -

    See the user guide for precise merge semantics.

    -
    - - - - - - -

    - MergeFrom(GrpcNcStep) - -

    - -

    Merges the given message into this one.

    -
    -
    - -
    -
    public void MergeFrom(GrpcNcStep other)
    -
    - -

    Parameters

    -
    -
    other GrpcNcStep
    -
    -
    - - - - - - - - -

    Remarks

    -

    See the user guide for precise merge semantics.

    -
    - - - - - - -

    - ToString() - -

    - -

    Returns a string that represents the current object.

    -
    -
    - -
    -
    public override string ToString()
    -
    - - -

    Returns

    -
    -
    string
    -

    A string that represents the current object.

    -
    -
    - - - - - - - - - - - - - -

    - WriteTo(CodedOutputStream) - -

    - -

    Writes the data to the given coded output stream.

    -
    -
    - -
    -
    public void WriteTo(CodedOutputStream output)
    -
    - -

    Parameters

    -
    -
    output CodedOutputStream
    -

    Coded output stream to write the data to. Must not be null.

    -
    -
    - - - - - - - - - - - - - -
    - -
    -
    - - -
    - -
    - -
    -
    - -
    - - - - diff --git a/App/wwwroot/HiAPI-docsite/api/numerical.NumericalReflection.html b/App/wwwroot/HiAPI-docsite/api/numerical.NumericalReflection.html deleted file mode 100644 index f6dbab7a..00000000 --- a/App/wwwroot/HiAPI-docsite/api/numerical.NumericalReflection.html +++ /dev/null @@ -1,212 +0,0 @@ - - - - - Class NumericalReflection | HiAPI-C# 2025 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - -
    -
    -
    -
    -
    Table of Contents
    - -
    -
    - -
    -
    -
    - -
    -
    - - - -
    - -
    - - - -

    -Class NumericalReflection -

    - -
    -
    Namespace
    numerical
    -
    Assembly
    HiGeom.dll
    -
    - -

    Holder for reflection information generated from UniversalNcs/numerical.proto

    -
    -
    - -
    -
    public static class NumericalReflection
    -
    - - - - -
    -
    Inheritance
    -
    - -
    NumericalReflection
    -
    -
    - - - -
    -
    Inherited Members
    -
    - - - - - - - -
    - - - - - - -

    Properties -

    - - - - -

    - Descriptor - -

    - -

    File descriptor for UniversalNcs/numerical.proto

    -
    -
    - -
    -
    public static FileDescriptor Descriptor { get; }
    -
    - - - - - -

    Property Value

    -
    -
    FileDescriptor
    -
    -
    - - - - - - - - - -
    - -
    -
    - - -
    - -
    - -
    -
    - -
    - - - - diff --git a/App/wwwroot/HiAPI-docsite/api/numerical.NumericalService.NumericalServiceClient.html b/App/wwwroot/HiAPI-docsite/api/numerical.NumericalService.NumericalServiceClient.html deleted file mode 100644 index d04c0216..00000000 --- a/App/wwwroot/HiAPI-docsite/api/numerical.NumericalService.NumericalServiceClient.html +++ /dev/null @@ -1,540 +0,0 @@ - - - - - Class NumericalService.NumericalServiceClient | HiAPI-C# 2025 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - -
    -
    -
    -
    -
    Table of Contents
    - -
    -
    - -
    -
    -
    - -
    -
    - - - -
    - -
    - - - -

    -Class NumericalService.NumericalServiceClient -

    - -
    -
    Namespace
    numerical
    -
    Assembly
    HiGeom.dll
    -
    - -

    Client for NumericalService

    -
    -
    - -
    -
    public class NumericalService.NumericalServiceClient : ClientBase<NumericalService.NumericalServiceClient>
    -
    - - - - -
    -
    Inheritance
    -
    - - - -
    NumericalService.NumericalServiceClient
    -
    -
    - - - -
    -
    Inherited Members
    -
    - - - - - - - - - -
    - -
    -
    Extension Methods
    -
    - - - - - - - -
    - - - - - -

    Constructors -

    - - - - -

    - NumericalServiceClient() - -

    - -

    Protected parameterless constructor to allow creation of test doubles.

    -
    -
    - -
    -
    protected NumericalServiceClient()
    -
    - - - - - - - - - - - - - - - -

    - NumericalServiceClient(CallInvoker) - -

    - -

    Creates a new client for NumericalService that uses a custom CallInvoker.

    -
    -
    - -
    -
    public NumericalServiceClient(CallInvoker callInvoker)
    -
    - -

    Parameters

    -
    -
    callInvoker CallInvoker
    -

    The callInvoker to use to make remote calls.

    -
    -
    - - - - - - - - - - - - - - -

    - NumericalServiceClient(ChannelBase) - -

    - -

    Creates a new client for NumericalService

    -
    -
    - -
    -
    public NumericalServiceClient(ChannelBase channel)
    -
    - -

    Parameters

    -
    -
    channel ChannelBase
    -

    The channel to use to make remote calls.

    -
    -
    - - - - - - - - - - - - - - -

    - NumericalServiceClient(ClientBaseConfiguration) - -

    - -

    Protected constructor to allow creation of configured clients.

    -
    -
    - -
    -
    protected NumericalServiceClient(ClientBase.ClientBaseConfiguration configuration)
    -
    - -

    Parameters

    -
    -
    configuration ClientBase.ClientBaseConfiguration
    -

    The client configuration.

    -
    -
    - - - - - - - - - - - - -

    Methods -

    - - - - -

    - GetNcStepGrpcCsvRowDictionary(Empty, CallOptions) - -

    - -
    -
    - -
    -
    public virtual GrpcCsvRowDictionary GetNcStepGrpcCsvRowDictionary(Empty request, CallOptions options)
    -
    - -

    Parameters

    -
    -
    request Empty
    -
    -
    options CallOptions
    -
    -
    - -

    Returns

    -
    -
    GrpcCsvRowDictionary
    -
    -
    - - - - - - - - - - - - - -

    - GetNcStepGrpcCsvRowDictionary(Empty, Metadata, DateTime?, CancellationToken) - -

    - -
    -
    - -
    -
    public virtual GrpcCsvRowDictionary GetNcStepGrpcCsvRowDictionary(Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default)
    -
    - -

    Parameters

    -
    -
    request Empty
    -
    -
    headers Metadata
    -
    -
    deadline DateTime?
    -
    -
    cancellationToken CancellationToken
    -
    -
    - -

    Returns

    -
    -
    GrpcCsvRowDictionary
    -
    -
    - - - - - - - - - - - - - -

    - GetNcStepGrpcCsvRowDictionaryAsync(Empty, CallOptions) - -

    - -
    -
    - -
    -
    public virtual AsyncUnaryCall<GrpcCsvRowDictionary> GetNcStepGrpcCsvRowDictionaryAsync(Empty request, CallOptions options)
    -
    - -

    Parameters

    -
    -
    request Empty
    -
    -
    options CallOptions
    -
    -
    - -

    Returns

    -
    -
    AsyncUnaryCall<GrpcCsvRowDictionary>
    -
    -
    - - - - - - - - - - - - - -

    - GetNcStepGrpcCsvRowDictionaryAsync(Empty, Metadata, DateTime?, CancellationToken) - -

    - -
    -
    - -
    -
    public virtual AsyncUnaryCall<GrpcCsvRowDictionary> GetNcStepGrpcCsvRowDictionaryAsync(Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default)
    -
    - -

    Parameters

    -
    -
    request Empty
    -
    -
    headers Metadata
    -
    -
    deadline DateTime?
    -
    -
    cancellationToken CancellationToken
    -
    -
    - -

    Returns

    -
    -
    AsyncUnaryCall<GrpcCsvRowDictionary>
    -
    -
    - - - - - - - - - - - - - -

    - NewInstance(ClientBaseConfiguration) - -

    - -

    Creates a new instance of client from given ClientBaseConfiguration.

    -
    -
    - -
    -
    protected override NumericalService.NumericalServiceClient NewInstance(ClientBase.ClientBaseConfiguration configuration)
    -
    - -

    Parameters

    -
    -
    configuration ClientBase.ClientBaseConfiguration
    -
    -
    - -

    Returns

    -
    -
    NumericalService.NumericalServiceClient
    -
    -
    - - - - - - - - - - - - -
    - -
    -
    - - -
    - -
    - -
    -
    - -
    - - - - diff --git a/App/wwwroot/HiAPI-docsite/api/numerical.NumericalService.html b/App/wwwroot/HiAPI-docsite/api/numerical.NumericalService.html deleted file mode 100644 index 4249045b..00000000 --- a/App/wwwroot/HiAPI-docsite/api/numerical.NumericalService.html +++ /dev/null @@ -1,290 +0,0 @@ - - - - - Class NumericalService | HiAPI-C# 2025 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - -
    -
    -
    -
    -
    Table of Contents
    - -
    -
    - -
    -
    -
    - -
    -
    - - - -
    - -
    - - - -

    -Class NumericalService -

    - -
    -
    Namespace
    numerical
    -
    Assembly
    HiGeom.dll
    -
    - -
    -
    - -
    -
    public static class NumericalService
    -
    - - - - -
    -
    Inheritance
    -
    - -
    NumericalService
    -
    -
    - - - -
    -
    Inherited Members
    -
    - - - - - - - -
    - - - - - - -

    Properties -

    - - - - -

    - Descriptor - -

    - -

    Service descriptor

    -
    -
    - -
    -
    public static ServiceDescriptor Descriptor { get; }
    -
    - - - - - -

    Property Value

    -
    -
    ServiceDescriptor
    -
    -
    - - - - - - - - -

    Methods -

    - - - - -

    - BindService(ServiceBinderBase, NumericalServiceBase) - -

    - -

    Register service method with a service binder with or without implementation. Useful when customizing the service binding logic. -Note: this method is part of an experimental API that can change or be removed without any prior notice.

    -
    -
    - -
    -
    public static void BindService(ServiceBinderBase serviceBinder, NumericalService.NumericalServiceBase serviceImpl)
    -
    - -

    Parameters

    -
    -
    serviceBinder ServiceBinderBase
    -

    Service methods will be bound by calling AddMethod on this object.

    -
    -
    serviceImpl NumericalService.NumericalServiceBase
    -

    An object implementing the server-side handling logic.

    -
    -
    - - - - - - - - - - - - - - -

    - BindService(NumericalServiceBase) - -

    - -

    Creates service definition that can be registered with a server

    -
    -
    - -
    -
    public static ServerServiceDefinition BindService(NumericalService.NumericalServiceBase serviceImpl)
    -
    - -

    Parameters

    -
    -
    serviceImpl NumericalService.NumericalServiceBase
    -

    An object implementing the server-side handling logic.

    -
    -
    - -

    Returns

    -
    -
    ServerServiceDefinition
    -
    -
    - - - - - - - - - - - - -
    - -
    -
    - - -
    - -
    - -
    -
    - -
    - - - - diff --git a/App/wwwroot/HiAPI-docsite/api/numerical.UniversalNcReflection.html b/App/wwwroot/HiAPI-docsite/api/numerical.UniversalNcReflection.html deleted file mode 100644 index 60880a5a..00000000 --- a/App/wwwroot/HiAPI-docsite/api/numerical.UniversalNcReflection.html +++ /dev/null @@ -1,212 +0,0 @@ - - - - - Class UniversalNcReflection | HiAPI-C# 2025 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - -
    -
    -
    -
    -
    Table of Contents
    - -
    -
    - -
    -
    -
    - -
    -
    - - - -
    - -
    - - - -

    -Class UniversalNcReflection -

    - -
    -
    Namespace
    numerical
    -
    Assembly
    HiGeom.dll
    -
    - -

    Holder for reflection information generated from UniversalNcs/universal_nc.proto

    -
    -
    - -
    -
    public static class UniversalNcReflection
    -
    - - - - -
    -
    Inheritance
    -
    - -
    UniversalNcReflection
    -
    -
    - - - -
    -
    Inherited Members
    -
    - - - - - - - -
    - - - - - - -

    Properties -

    - - - - -

    - Descriptor - -

    - -

    File descriptor for UniversalNcs/universal_nc.proto

    -
    -
    - -
    -
    public static FileDescriptor Descriptor { get; }
    -
    - - - - - -

    Property Value

    -
    -
    FileDescriptor
    -
    -
    - - - - - - - - - -
    - -
    -
    - - -
    - -
    - -
    -
    - -
    - - - - diff --git a/App/wwwroot/HiAPI-docsite/api/numerical.UniversalNcService.UniversalNcServiceClient.html b/App/wwwroot/HiAPI-docsite/api/numerical.UniversalNcService.UniversalNcServiceClient.html deleted file mode 100644 index 512bd047..00000000 --- a/App/wwwroot/HiAPI-docsite/api/numerical.UniversalNcService.UniversalNcServiceClient.html +++ /dev/null @@ -1,540 +0,0 @@ - - - - - Class UniversalNcService.UniversalNcServiceClient | HiAPI-C# 2025 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - -
    -
    -
    -
    -
    Table of Contents
    - -
    -
    - -
    -
    -
    - -
    -
    - - - -
    - -
    - - - -

    -Class UniversalNcService.UniversalNcServiceClient -

    - -
    -
    Namespace
    numerical
    -
    Assembly
    HiGeom.dll
    -
    - -

    Client for UniversalNcService

    -
    -
    - -
    -
    public class UniversalNcService.UniversalNcServiceClient : ClientBase<UniversalNcService.UniversalNcServiceClient>
    -
    - - - - -
    -
    Inheritance
    -
    - - - -
    UniversalNcService.UniversalNcServiceClient
    -
    -
    - - - -
    -
    Inherited Members
    -
    - - - - - - - - - -
    - -
    -
    Extension Methods
    -
    - - - - - - - -
    - - - - - -

    Constructors -

    - - - - -

    - UniversalNcServiceClient() - -

    - -

    Protected parameterless constructor to allow creation of test doubles.

    -
    -
    - -
    -
    protected UniversalNcServiceClient()
    -
    - - - - - - - - - - - - - - - -

    - UniversalNcServiceClient(CallInvoker) - -

    - -

    Creates a new client for UniversalNcService that uses a custom CallInvoker.

    -
    -
    - -
    -
    public UniversalNcServiceClient(CallInvoker callInvoker)
    -
    - -

    Parameters

    -
    -
    callInvoker CallInvoker
    -

    The callInvoker to use to make remote calls.

    -
    -
    - - - - - - - - - - - - - - -

    - UniversalNcServiceClient(ChannelBase) - -

    - -

    Creates a new client for UniversalNcService

    -
    -
    - -
    -
    public UniversalNcServiceClient(ChannelBase channel)
    -
    - -

    Parameters

    -
    -
    channel ChannelBase
    -

    The channel to use to make remote calls.

    -
    -
    - - - - - - - - - - - - - - -

    - UniversalNcServiceClient(ClientBaseConfiguration) - -

    - -

    Protected constructor to allow creation of configured clients.

    -
    -
    - -
    -
    protected UniversalNcServiceClient(ClientBase.ClientBaseConfiguration configuration)
    -
    - -

    Parameters

    -
    -
    configuration ClientBase.ClientBaseConfiguration
    -

    The client configuration.

    -
    -
    - - - - - - - - - - - - -

    Methods -

    - - - - -

    - GetNcStepGrpcCsvRowDictionary(GrpcNcStep, CallOptions) - -

    - -
    -
    - -
    -
    public virtual GrpcNcStep GetNcStepGrpcCsvRowDictionary(GrpcNcStep request, CallOptions options)
    -
    - -

    Parameters

    -
    -
    request GrpcNcStep
    -
    -
    options CallOptions
    -
    -
    - -

    Returns

    -
    -
    GrpcNcStep
    -
    -
    - - - - - - - - - - - - - -

    - GetNcStepGrpcCsvRowDictionary(GrpcNcStep, Metadata, DateTime?, CancellationToken) - -

    - -
    -
    - -
    -
    public virtual GrpcNcStep GetNcStepGrpcCsvRowDictionary(GrpcNcStep request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default)
    -
    - -

    Parameters

    -
    -
    request GrpcNcStep
    -
    -
    headers Metadata
    -
    -
    deadline DateTime?
    -
    -
    cancellationToken CancellationToken
    -
    -
    - -

    Returns

    -
    -
    GrpcNcStep
    -
    -
    - - - - - - - - - - - - - -

    - GetNcStepGrpcCsvRowDictionaryAsync(GrpcNcStep, CallOptions) - -

    - -
    -
    - -
    -
    public virtual AsyncUnaryCall<GrpcNcStep> GetNcStepGrpcCsvRowDictionaryAsync(GrpcNcStep request, CallOptions options)
    -
    - -

    Parameters

    -
    -
    request GrpcNcStep
    -
    -
    options CallOptions
    -
    -
    - -

    Returns

    -
    -
    AsyncUnaryCall<GrpcNcStep>
    -
    -
    - - - - - - - - - - - - - -

    - GetNcStepGrpcCsvRowDictionaryAsync(GrpcNcStep, Metadata, DateTime?, CancellationToken) - -

    - -
    -
    - -
    -
    public virtual AsyncUnaryCall<GrpcNcStep> GetNcStepGrpcCsvRowDictionaryAsync(GrpcNcStep request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default)
    -
    - -

    Parameters

    -
    -
    request GrpcNcStep
    -
    -
    headers Metadata
    -
    -
    deadline DateTime?
    -
    -
    cancellationToken CancellationToken
    -
    -
    - -

    Returns

    -
    -
    AsyncUnaryCall<GrpcNcStep>
    -
    -
    - - - - - - - - - - - - - -

    - NewInstance(ClientBaseConfiguration) - -

    - -

    Creates a new instance of client from given ClientBaseConfiguration.

    -
    -
    - -
    -
    protected override UniversalNcService.UniversalNcServiceClient NewInstance(ClientBase.ClientBaseConfiguration configuration)
    -
    - -

    Parameters

    -
    -
    configuration ClientBase.ClientBaseConfiguration
    -
    -
    - -

    Returns

    -
    -
    UniversalNcService.UniversalNcServiceClient
    -
    -
    - - - - - - - - - - - - -
    - -
    -
    - - -
    - -
    - -
    -
    - -
    - - - - diff --git a/App/wwwroot/HiAPI-docsite/api/numerical.UniversalNcService.html b/App/wwwroot/HiAPI-docsite/api/numerical.UniversalNcService.html deleted file mode 100644 index b44bcfdd..00000000 --- a/App/wwwroot/HiAPI-docsite/api/numerical.UniversalNcService.html +++ /dev/null @@ -1,290 +0,0 @@ - - - - - Class UniversalNcService | HiAPI-C# 2025 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - -
    -
    -
    -
    -
    Table of Contents
    - -
    -
    - -
    -
    -
    - -
    -
    - - - -
    - -
    - - - -

    -Class UniversalNcService -

    - -
    -
    Namespace
    numerical
    -
    Assembly
    HiGeom.dll
    -
    - -
    -
    - -
    -
    public static class UniversalNcService
    -
    - - - - -
    -
    Inheritance
    -
    - -
    UniversalNcService
    -
    -
    - - - -
    -
    Inherited Members
    -
    - - - - - - - -
    - - - - - - -

    Properties -

    - - - - -

    - Descriptor - -

    - -

    Service descriptor

    -
    -
    - -
    -
    public static ServiceDescriptor Descriptor { get; }
    -
    - - - - - -

    Property Value

    -
    -
    ServiceDescriptor
    -
    -
    - - - - - - - - -

    Methods -

    - - - - -

    - BindService(ServiceBinderBase, UniversalNcServiceBase) - -

    - -

    Register service method with a service binder with or without implementation. Useful when customizing the service binding logic. -Note: this method is part of an experimental API that can change or be removed without any prior notice.

    -
    -
    - -
    -
    public static void BindService(ServiceBinderBase serviceBinder, UniversalNcService.UniversalNcServiceBase serviceImpl)
    -
    - -

    Parameters

    -
    -
    serviceBinder ServiceBinderBase
    -

    Service methods will be bound by calling AddMethod on this object.

    -
    -
    serviceImpl UniversalNcService.UniversalNcServiceBase
    -

    An object implementing the server-side handling logic.

    -
    -
    - - - - - - - - - - - - - - -

    - BindService(UniversalNcServiceBase) - -

    - -

    Creates service definition that can be registered with a server

    -
    -
    - -
    -
    public static ServerServiceDefinition BindService(UniversalNcService.UniversalNcServiceBase serviceImpl)
    -
    - -

    Parameters

    -
    -
    serviceImpl UniversalNcService.UniversalNcServiceBase
    -

    An object implementing the server-side handling logic.

    -
    -
    - -

    Returns

    -
    -
    ServerServiceDefinition
    -
    -
    - - - - - - - - - - - - -
    - -
    -
    - - -
    - -
    - -
    -
    - -
    - - - - diff --git a/App/wwwroot/HiAPI-docsite/api/numerical.html b/App/wwwroot/HiAPI-docsite/api/numerical.html deleted file mode 100644 index a53f52ee..00000000 --- a/App/wwwroot/HiAPI-docsite/api/numerical.html +++ /dev/null @@ -1,172 +0,0 @@ - - - - - Namespace numerical | HiAPI-C# 2025 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - -
    -
    -
    -
    -
    Table of Contents
    - -
    -
    - -
    -
    -
    - -
    -
    - - - -
    - -
    - -

    Namespace numerical

    -
    -
    -
    - -

    -Classes -

    -
    -
    Empty
    -
    -
    -
    -
    GrpcCsvRowDictionary
    -
    -
    -
    -
    GrpcNcStep
    -
    -
    -
    -
    NumericalReflection
    -

    Holder for reflection information generated from UniversalNcs/numerical.proto

    -
    -
    -
    -
    NumericalService
    -
    -
    -
    -
    NumericalService.NumericalServiceBase
    -

    Base class for server-side implementations of NumericalService

    -
    -
    -
    -
    NumericalService.NumericalServiceClient
    -

    Client for NumericalService

    -
    -
    -
    -
    UniversalNcReflection
    -

    Holder for reflection information generated from UniversalNcs/universal_nc.proto

    -
    -
    -
    -
    UniversalNcService
    -
    -
    -
    -
    UniversalNcService.UniversalNcServiceBase
    -

    Base class for server-side implementations of UniversalNcService

    -
    -
    -
    -
    UniversalNcService.UniversalNcServiceClient
    -

    Client for UniversalNcService

    -
    -
    - - -
    - -
    -
    - - -
    - -
    - -
    -
    - -
    - - - - diff --git a/App/wwwroot/HiAPI-docsite/api/toc.html b/App/wwwroot/HiAPI-docsite/api/toc.html index d6b5949f..71966515 100644 --- a/App/wwwroot/HiAPI-docsite/api/toc.html +++ b/App/wwwroot/HiAPI-docsite/api/toc.html @@ -1170,46 +1170,6 @@

    W& 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⁢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

  • -
  • - - Hi.Grpcs - - -
  • Hi.HiNcKits @@ -1439,6 +1399,9 @@
  • IMachiningService
  • +
  • + IStepPropertyAccessHost +
  • MachineMotionStep
  • @@ -2387,6 +2350,9 @@
  • ISentenceIndexed
  • +
  • + ISessionResettable +
  • IndexedSentence
  • @@ -2488,6 +2454,9 @@
  • FanucToolOffsetVariableLookup
  • +
  • + FanucWhileDoIterationDependency +
  • RetainedCommonVariableTable
  • @@ -2565,6 +2534,9 @@
  • FileIndexCounterDependency
  • +
  • + MachiningServiceDependency +
  • NcKinematicsDependency
  • @@ -2574,6 +2546,9 @@
  • SegmenterDependency
  • +
  • + StepPropertyAccessDictionaryDependency +
  • SyntaxPieceLayerDependency
  • @@ -2676,6 +2651,9 @@ Hi.NcParsers.EvaluationSyntaxs.Fanuc
  • @@ -2790,6 +2771,9 @@
  • FanucProgramNumber
  • +
  • + FanucWhileDo +
  • Feedrate
  • @@ -3211,6 +3195,9 @@
  • FanucProgramNumberSyntax
  • +
  • + FanucWhileDoParsingSyntax +
  • @@ -3708,6 +3695,28 @@
  • +
  • + + Hi.Numerical.CsvParsers + + +
  • Hi.Numerical.FilePlayers @@ -3716,9 +3725,6 @@
  • CsvRunner
  • -
  • - CsvRunnerConfig -
  • HardNcRunner
  • @@ -4233,56 +4239,6 @@ -
  • - - HiNc.Grpcs - - -
  • -
  • - - numerical - - -
  • diff --git a/App/wwwroot/HiAPI-docsite/api/toc.json b/App/wwwroot/HiAPI-docsite/api/toc.json index d1858224..ebcaa417 100644 --- a/App/wwwroot/HiAPI-docsite/api/toc.json +++ b/App/wwwroot/HiAPI-docsite/api/toc.json @@ -1,2 +1,2 @@ -{"items":[{"name":"Hi.Cbtr","href":"Hi.Cbtr.html","topicHref":"Hi.Cbtr.html","topicUid":"Hi.Cbtr","type":"Namespace","items":[{"name":"CachedTris","href":"Hi.Cbtr.CachedTris.html","topicHref":"Hi.Cbtr.CachedTris.html","topicUid":"Hi.Cbtr.CachedTris","type":"Class"},{"name":"CachedTris.SweepingMode","href":"Hi.Cbtr.CachedTris.SweepingMode.html","topicHref":"Hi.Cbtr.CachedTris.SweepingMode.html","topicUid":"Hi.Cbtr.CachedTris.SweepingMode","type":"Enum"},{"name":"CbtrPickable","href":"Hi.Cbtr.CbtrPickable.html","topicHref":"Hi.Cbtr.CbtrPickable.html","topicUid":"Hi.Cbtr.CbtrPickable","type":"Class"},{"name":"ConstructionDefectDisplayee","href":"Hi.Cbtr.ConstructionDefectDisplayee.html","topicHref":"Hi.Cbtr.ConstructionDefectDisplayee.html","topicUid":"Hi.Cbtr.ConstructionDefectDisplayee","type":"Class"},{"name":"CubeTree","href":"Hi.Cbtr.CubeTree.html","topicHref":"Hi.Cbtr.CubeTree.html","topicUid":"Hi.Cbtr.CubeTree","type":"Class"},{"name":"CubeTree.DefectNodeInfo","href":"Hi.Cbtr.CubeTree.DefectNodeInfo.html","topicHref":"Hi.Cbtr.CubeTree.DefectNodeInfo.html","topicUid":"Hi.Cbtr.CubeTree.DefectNodeInfo","type":"Class"},{"name":"CubeTree.DefectNodeInfo.TriWireInfo","href":"Hi.Cbtr.CubeTree.DefectNodeInfo.TriWireInfo.html","topicHref":"Hi.Cbtr.CubeTree.DefectNodeInfo.TriWireInfo.html","topicUid":"Hi.Cbtr.CubeTree.DefectNodeInfo.TriWireInfo","type":"Class"},{"name":"CubeTree.DefectTriWireInfoInterop","href":"Hi.Cbtr.CubeTree.DefectTriWireInfoInterop.html","topicHref":"Hi.Cbtr.CubeTree.DefectTriWireInfoInterop.html","topicUid":"Hi.Cbtr.CubeTree.DefectTriWireInfoInterop","type":"Struct"},{"name":"CubeTree.InfNodeInfo","href":"Hi.Cbtr.CubeTree.InfNodeInfo.html","topicHref":"Hi.Cbtr.CubeTree.InfNodeInfo.html","topicUid":"Hi.Cbtr.CubeTree.InfNodeInfo","type":"Class"},{"name":"CubeTree.TriWireRelationInterop","href":"Hi.Cbtr.CubeTree.TriWireRelationInterop.html","topicHref":"Hi.Cbtr.CubeTree.TriWireRelationInterop.html","topicUid":"Hi.Cbtr.CubeTree.TriWireRelationInterop","type":"Struct"},{"name":"CubeTree.diff_response_func_t","href":"Hi.Cbtr.CubeTree.diff_response_func_t.html","topicHref":"Hi.Cbtr.CubeTree.diff_response_func_t.html","topicUid":"Hi.Cbtr.CubeTree.diff_response_func_t","type":"Delegate"},{"name":"CubeTreeExportExtensions","href":"Hi.Cbtr.CubeTreeExportExtensions.html","topicHref":"Hi.Cbtr.CubeTreeExportExtensions.html","topicUid":"Hi.Cbtr.CubeTreeExportExtensions","type":"Class"},{"name":"CubeTreeFile","href":"Hi.Cbtr.CubeTreeFile.html","topicHref":"Hi.Cbtr.CubeTreeFile.html","topicUid":"Hi.Cbtr.CubeTreeFile","type":"Class"},{"name":"DiffAttachment","href":"Hi.Cbtr.DiffAttachment.html","topicHref":"Hi.Cbtr.DiffAttachment.html","topicUid":"Hi.Cbtr.DiffAttachment","type":"Class"},{"name":"GeomBoolCache","href":"Hi.Cbtr.GeomBoolCache.html","topicHref":"Hi.Cbtr.GeomBoolCache.html","topicUid":"Hi.Cbtr.GeomBoolCache","type":"Class"},{"name":"GeomBoolCacheEnum","href":"Hi.Cbtr.GeomBoolCacheEnum.html","topicHref":"Hi.Cbtr.GeomBoolCacheEnum.html","topicUid":"Hi.Cbtr.GeomBoolCacheEnum","type":"Enum"},{"name":"IGetInitStickConvex","href":"Hi.Cbtr.IGetInitStickConvex.html","topicHref":"Hi.Cbtr.IGetInitStickConvex.html","topicUid":"Hi.Cbtr.IGetInitStickConvex","type":"Interface"},{"name":"InfDefectDisplayee","href":"Hi.Cbtr.InfDefectDisplayee.html","topicHref":"Hi.Cbtr.InfDefectDisplayee.html","topicUid":"Hi.Cbtr.InfDefectDisplayee","type":"Class"},{"name":"InitStickConvex","href":"Hi.Cbtr.InitStickConvex.html","topicHref":"Hi.Cbtr.InitStickConvex.html","topicUid":"Hi.Cbtr.InitStickConvex","type":"Class"},{"name":"LsStl","href":"Hi.Cbtr.LsStl.html","topicHref":"Hi.Cbtr.LsStl.html","topicUid":"Hi.Cbtr.LsStl","type":"Class"},{"name":"Substraction","href":"Hi.Cbtr.Substraction.html","topicHref":"Hi.Cbtr.Substraction.html","topicUid":"Hi.Cbtr.Substraction","type":"Class"},{"name":"UnhighlightablePickable","href":"Hi.Cbtr.UnhighlightablePickable.html","topicHref":"Hi.Cbtr.UnhighlightablePickable.html","topicUid":"Hi.Cbtr.UnhighlightablePickable","type":"Class"},{"name":"UnmanagedSubstraction","href":"Hi.Cbtr.UnmanagedSubstraction.html","topicHref":"Hi.Cbtr.UnmanagedSubstraction.html","topicUid":"Hi.Cbtr.UnmanagedSubstraction","type":"Class"},{"name":"WireCube","href":"Hi.Cbtr.WireCube.html","topicHref":"Hi.Cbtr.WireCube.html","topicUid":"Hi.Cbtr.WireCube","type":"Class"},{"name":"node_diff_t","href":"Hi.Cbtr.node_diff_t.html","topicHref":"Hi.Cbtr.node_diff_t.html","topicUid":"Hi.Cbtr.node_diff_t","type":"Struct"}]},{"name":"Hi.Collision","href":"Hi.Collision.html","topicHref":"Hi.Collision.html","topicUid":"Hi.Collision","type":"Namespace","items":[{"name":"AnchoredCollidableLeaf","href":"Hi.Collision.AnchoredCollidableLeaf.html","topicHref":"Hi.Collision.AnchoredCollidableLeaf.html","topicUid":"Hi.Collision.AnchoredCollidableLeaf","type":"Class"},{"name":"AnchoredCollidablePair","href":"Hi.Collision.AnchoredCollidablePair.html","topicHref":"Hi.Collision.AnchoredCollidablePair.html","topicUid":"Hi.Collision.AnchoredCollidablePair","type":"Class"},{"name":"CollidableStl","href":"Hi.Collision.CollidableStl.html","topicHref":"Hi.Collision.CollidableStl.html","topicUid":"Hi.Collision.CollidableStl","type":"Class"},{"name":"CollisionFlag","href":"Hi.Collision.CollisionFlag.html","topicHref":"Hi.Collision.CollisionFlag.html","topicUid":"Hi.Collision.CollisionFlag","type":"Enum"},{"name":"CollisionIndexPair","href":"Hi.Collision.CollisionIndexPair.html","topicHref":"Hi.Collision.CollisionIndexPair.html","topicUid":"Hi.Collision.CollisionIndexPair","type":"Class"},{"name":"CollisionUtil","href":"Hi.Collision.CollisionUtil.html","topicHref":"Hi.Collision.CollisionUtil.html","topicUid":"Hi.Collision.CollisionUtil","type":"Class"},{"name":"FuncAnchoredCollidable","href":"Hi.Collision.FuncAnchoredCollidable.html","topicHref":"Hi.Collision.FuncAnchoredCollidable.html","topicUid":"Hi.Collision.FuncAnchoredCollidable","type":"Class"},{"name":"IAnchoredCollidableBased","href":"Hi.Collision.IAnchoredCollidableBased.html","topicHref":"Hi.Collision.IAnchoredCollidableBased.html","topicUid":"Hi.Collision.IAnchoredCollidableBased","type":"Interface"},{"name":"IAnchoredCollidableLeaf","href":"Hi.Collision.IAnchoredCollidableLeaf.html","topicHref":"Hi.Collision.IAnchoredCollidableLeaf.html","topicUid":"Hi.Collision.IAnchoredCollidableLeaf","type":"Interface"},{"name":"IAnchoredCollidableNode","href":"Hi.Collision.IAnchoredCollidableNode.html","topicHref":"Hi.Collision.IAnchoredCollidableNode.html","topicUid":"Hi.Collision.IAnchoredCollidableNode","type":"Interface"},{"name":"IAnchoredCollidableStem","href":"Hi.Collision.IAnchoredCollidableStem.html","topicHref":"Hi.Collision.IAnchoredCollidableStem.html","topicUid":"Hi.Collision.IAnchoredCollidableStem","type":"Interface"},{"name":"ICollidable","href":"Hi.Collision.ICollidable.html","topicHref":"Hi.Collision.ICollidable.html","topicUid":"Hi.Collision.ICollidable","type":"Interface"},{"name":"ICollidee","href":"Hi.Collision.ICollidee.html","topicHref":"Hi.Collision.ICollidee.html","topicUid":"Hi.Collision.ICollidee","type":"Interface"},{"name":"ICollisionArena","href":"Hi.Collision.ICollisionArena.html","topicHref":"Hi.Collision.ICollisionArena.html","topicUid":"Hi.Collision.ICollisionArena","type":"Interface"},{"name":"ICollisionIndex","href":"Hi.Collision.ICollisionIndex.html","topicHref":"Hi.Collision.ICollisionIndex.html","topicUid":"Hi.Collision.ICollisionIndex","type":"Interface"},{"name":"IGetAnchoredCollidablePairs","href":"Hi.Collision.IGetAnchoredCollidablePairs.html","topicHref":"Hi.Collision.IGetAnchoredCollidablePairs.html","topicUid":"Hi.Collision.IGetAnchoredCollidablePairs","type":"Interface"},{"name":"IGetCollidable","href":"Hi.Collision.IGetCollidable.html","topicHref":"Hi.Collision.IGetCollidable.html","topicUid":"Hi.Collision.IGetCollidable","type":"Interface"},{"name":"IGetCollisionIndexPairs","href":"Hi.Collision.IGetCollisionIndexPairs.html","topicHref":"Hi.Collision.IGetCollisionIndexPairs.html","topicUid":"Hi.Collision.IGetCollisionIndexPairs","type":"Interface"},{"name":"IGetDefaultCollidablePairs","href":"Hi.Collision.IGetDefaultCollidablePairs.html","topicHref":"Hi.Collision.IGetDefaultCollidablePairs.html","topicUid":"Hi.Collision.IGetDefaultCollidablePairs","type":"Interface"},{"name":"IGetTriTree","href":"Hi.Collision.IGetTriTree.html","topicHref":"Hi.Collision.IGetTriTree.html","topicUid":"Hi.Collision.IGetTriTree","type":"Interface"},{"name":"MechCollisionResult","href":"Hi.Collision.MechCollisionResult.html","topicHref":"Hi.Collision.MechCollisionResult.html","topicUid":"Hi.Collision.MechCollisionResult","type":"Class"},{"name":"MechCollisionUtil","href":"Hi.Collision.MechCollisionUtil.html","topicHref":"Hi.Collision.MechCollisionUtil.html","topicUid":"Hi.Collision.MechCollisionUtil","type":"Class"},{"name":"TriTree","href":"Hi.Collision.TriTree.html","topicHref":"Hi.Collision.TriTree.html","topicUid":"Hi.Collision.TriTree","type":"Class"}]},{"name":"Hi.Collisions","href":"Hi.Collisions.html","topicHref":"Hi.Collisions.html","topicUid":"Hi.Collisions","type":"Namespace","items":[{"name":"AnchoredCollidabled","href":"Hi.Collisions.AnchoredCollidabled.html","topicHref":"Hi.Collisions.AnchoredCollidabled.html","topicUid":"Hi.Collisions.AnchoredCollidabled","type":"Class"},{"name":"IAnchoredCollidabled","href":"Hi.Collisions.IAnchoredCollidabled.html","topicHref":"Hi.Collisions.IAnchoredCollidabled.html","topicUid":"Hi.Collisions.IAnchoredCollidabled","type":"Interface"}]},{"name":"Hi.Coloring","href":"Hi.Coloring.html","topicHref":"Hi.Coloring.html","topicUid":"Hi.Coloring","type":"Namespace","items":[{"name":"ColorUtil","href":"Hi.Coloring.ColorUtil.html","topicHref":"Hi.Coloring.ColorUtil.html","topicUid":"Hi.Coloring.ColorUtil","type":"Class"},{"name":"DictionaryColorGuide","href":"Hi.Coloring.DictionaryColorGuide.html","topicHref":"Hi.Coloring.DictionaryColorGuide.html","topicUid":"Hi.Coloring.DictionaryColorGuide","type":"Class"},{"name":"DiscreteQuantityColorGuide","href":"Hi.Coloring.DiscreteQuantityColorGuide.html","topicHref":"Hi.Coloring.DiscreteQuantityColorGuide.html","topicUid":"Hi.Coloring.DiscreteQuantityColorGuide","type":"Class"},{"name":"FilteredColorGuide","href":"Hi.Coloring.FilteredColorGuide.html","topicHref":"Hi.Coloring.FilteredColorGuide.html","topicUid":"Hi.Coloring.FilteredColorGuide","type":"Class"},{"name":"FuncRangeColorGuide","href":"Hi.Coloring.FuncRangeColorGuide.html","topicHref":"Hi.Coloring.FuncRangeColorGuide.html","topicUid":"Hi.Coloring.FuncRangeColorGuide","type":"Class"},{"name":"IColorGuide","href":"Hi.Coloring.IColorGuide.html","topicHref":"Hi.Coloring.IColorGuide.html","topicUid":"Hi.Coloring.IColorGuide","type":"Interface"},{"name":"IColorGuideProperty","href":"Hi.Coloring.IColorGuideProperty.html","topicHref":"Hi.Coloring.IColorGuideProperty.html","topicUid":"Hi.Coloring.IColorGuideProperty","type":"Interface"},{"name":"IGetColorGuide","href":"Hi.Coloring.IGetColorGuide.html","topicHref":"Hi.Coloring.IGetColorGuide.html","topicUid":"Hi.Coloring.IGetColorGuide","type":"Interface"},{"name":"IGetRangeColorRule","href":"Hi.Coloring.IGetRangeColorRule.html","topicHref":"Hi.Coloring.IGetRangeColorRule.html","topicUid":"Hi.Coloring.IGetRangeColorRule","type":"Interface"},{"name":"IGetRgb","href":"Hi.Coloring.IGetRgb.html","topicHref":"Hi.Coloring.IGetRgb.html","topicUid":"Hi.Coloring.IGetRgb","type":"Interface"},{"name":"IGetRgbWithPriority","href":"Hi.Coloring.IGetRgbWithPriority.html","topicHref":"Hi.Coloring.IGetRgbWithPriority.html","topicUid":"Hi.Coloring.IGetRgbWithPriority","type":"Interface"},{"name":"PlainColorGuide","href":"Hi.Coloring.PlainColorGuide.html","topicHref":"Hi.Coloring.PlainColorGuide.html","topicUid":"Hi.Coloring.PlainColorGuide","type":"Class"},{"name":"QuantityColorGuide","href":"Hi.Coloring.QuantityColorGuide.html","topicHref":"Hi.Coloring.QuantityColorGuide.html","topicUid":"Hi.Coloring.QuantityColorGuide","type":"Class"},{"name":"RangeColorRule","href":"Hi.Coloring.RangeColorRule.html","topicHref":"Hi.Coloring.RangeColorRule.html","topicUid":"Hi.Coloring.RangeColorRule","type":"Class"},{"name":"RatioRgbFuncEnum","href":"Hi.Coloring.RatioRgbFuncEnum.html","topicHref":"Hi.Coloring.RatioRgbFuncEnum.html","topicUid":"Hi.Coloring.RatioRgbFuncEnum","type":"Enum"},{"name":"RgbSeed","href":"Hi.Coloring.RgbSeed.html","topicHref":"Hi.Coloring.RgbSeed.html","topicUid":"Hi.Coloring.RgbSeed","type":"Class"}]},{"name":"Hi.Common","href":"Hi.Common.html","topicHref":"Hi.Common.html","topicUid":"Hi.Common","type":"Namespace","items":[{"name":"BinIoUtil","href":"Hi.Common.BinIoUtil.html","topicHref":"Hi.Common.BinIoUtil.html","topicUid":"Hi.Common.BinIoUtil","type":"Class"},{"name":"BitUtil","href":"Hi.Common.BitUtil.html","topicHref":"Hi.Common.BitUtil.html","topicUid":"Hi.Common.BitUtil","type":"Class"},{"name":"BlockingTimer","href":"Hi.Common.BlockingTimer.html","topicHref":"Hi.Common.BlockingTimer.html","topicUid":"Hi.Common.BlockingTimer","type":"Class"},{"name":"BytesUtil","href":"Hi.Common.BytesUtil.html","topicHref":"Hi.Common.BytesUtil.html","topicUid":"Hi.Common.BytesUtil","type":"Class"},{"name":"ConcurrentTimeCounter","href":"Hi.Common.ConcurrentTimeCounter.html","topicHref":"Hi.Common.ConcurrentTimeCounter.html","topicUid":"Hi.Common.ConcurrentTimeCounter","type":"Class"},{"name":"ConsoleUtil","href":"Hi.Common.ConsoleUtil.html","topicHref":"Hi.Common.ConsoleUtil.html","topicUid":"Hi.Common.ConsoleUtil","type":"Class"},{"name":"CppLogUtil","href":"Hi.Common.CppLogUtil.html","topicHref":"Hi.Common.CppLogUtil.html","topicUid":"Hi.Common.CppLogUtil","type":"Class"},{"name":"CppLogUtil.LogDelegate","href":"Hi.Common.CppLogUtil.LogDelegate.html","topicHref":"Hi.Common.CppLogUtil.LogDelegate.html","topicUid":"Hi.Common.CppLogUtil.LogDelegate","type":"Delegate"},{"name":"CultureUtil","href":"Hi.Common.CultureUtil.html","topicHref":"Hi.Common.CultureUtil.html","topicUid":"Hi.Common.CultureUtil","type":"Class"},{"name":"DuplicateUtil","href":"Hi.Common.DuplicateUtil.html","topicHref":"Hi.Common.DuplicateUtil.html","topicUid":"Hi.Common.DuplicateUtil","type":"Class"},{"name":"EnumUtil","href":"Hi.Common.EnumUtil.html","topicHref":"Hi.Common.EnumUtil.html","topicUid":"Hi.Common.EnumUtil","type":"Class"},{"name":"EnumerablePlayer","href":"Hi.Common.EnumerablePlayer.html","topicHref":"Hi.Common.EnumerablePlayer.html","topicUid":"Hi.Common.EnumerablePlayer","type":"Class"},{"name":"IAbstractNote","href":"Hi.Common.IAbstractNote.html","topicHref":"Hi.Common.IAbstractNote.html","topicUid":"Hi.Common.IAbstractNote","type":"Interface"},{"name":"IBinaryIo","href":"Hi.Common.IBinaryIo.html","topicHref":"Hi.Common.IBinaryIo.html","topicUid":"Hi.Common.IBinaryIo","type":"Interface"},{"name":"IClearCache","href":"Hi.Common.IClearCache.html","topicHref":"Hi.Common.IClearCache.html","topicUid":"Hi.Common.IClearCache","type":"Interface"},{"name":"IDuplicate","href":"Hi.Common.IDuplicate.html","topicHref":"Hi.Common.IDuplicate.html","topicUid":"Hi.Common.IDuplicate","type":"Interface"},{"name":"IGetQuantityByKey","href":"Hi.Common.IGetQuantityByKey.html","topicHref":"Hi.Common.IGetQuantityByKey.html","topicUid":"Hi.Common.IGetQuantityByKey","type":"Interface"},{"name":"IGetSelectionName","href":"Hi.Common.IGetSelectionName.html","topicHref":"Hi.Common.IGetSelectionName.html","topicUid":"Hi.Common.IGetSelectionName","type":"Interface"},{"name":"INameNote","href":"Hi.Common.INameNote.html","topicHref":"Hi.Common.INameNote.html","topicUid":"Hi.Common.INameNote","type":"Interface"},{"name":"IPreferredFileName","href":"Hi.Common.IPreferredFileName.html","topicHref":"Hi.Common.IPreferredFileName.html","topicUid":"Hi.Common.IPreferredFileName","type":"Interface"},{"name":"IProgressFraction","href":"Hi.Common.IProgressFraction.html","topicHref":"Hi.Common.IProgressFraction.html","topicUid":"Hi.Common.IProgressFraction","type":"Interface"},{"name":"ISourceFile","href":"Hi.Common.ISourceFile.html","topicHref":"Hi.Common.ISourceFile.html","topicUid":"Hi.Common.ISourceFile","type":"Interface"},{"name":"IToPresentDto","href":"Hi.Common.IToPresentDto.html","topicHref":"Hi.Common.IToPresentDto.html","topicUid":"Hi.Common.IToPresentDto","type":"Interface"},{"name":"IUpdateByContent","href":"Hi.Common.IUpdateByContent.html","topicHref":"Hi.Common.IUpdateByContent.html","topicUid":"Hi.Common.IUpdateByContent","type":"Interface"},{"name":"IUriGetter","href":"Hi.Common.IUriGetter.html","topicHref":"Hi.Common.IUriGetter.html","topicUid":"Hi.Common.IUriGetter","type":"Interface"},{"name":"IWriteBin","href":"Hi.Common.IWriteBin.html","topicHref":"Hi.Common.IWriteBin.html","topicUid":"Hi.Common.IWriteBin","type":"Interface"},{"name":"IndexSegment","href":"Hi.Common.IndexSegment.html","topicHref":"Hi.Common.IndexSegment.html","topicUid":"Hi.Common.IndexSegment","type":"Class"},{"name":"IntegerKeyDictionaryConverter","href":"Hi.Common.IntegerKeyDictionaryConverter.html","topicHref":"Hi.Common.IntegerKeyDictionaryConverter.html","topicUid":"Hi.Common.IntegerKeyDictionaryConverter","type":"Class"},{"name":"IntegerKeyDictionaryConverter","href":"Hi.Common.IntegerKeyDictionaryConverter-1.html","topicHref":"Hi.Common.IntegerKeyDictionaryConverter-1.html","topicUid":"Hi.Common.IntegerKeyDictionaryConverter`1","type":"Class"},{"name":"InternalException","href":"Hi.Common.InternalException.html","topicHref":"Hi.Common.InternalException.html","topicUid":"Hi.Common.InternalException","type":"Class"},{"name":"InvokeUtil","href":"Hi.Common.InvokeUtil.html","topicHref":"Hi.Common.InvokeUtil.html","topicUid":"Hi.Common.InvokeUtil","type":"Class"},{"name":"JsonUtil","href":"Hi.Common.JsonUtil.html","topicHref":"Hi.Common.JsonUtil.html","topicUid":"Hi.Common.JsonUtil","type":"Class"},{"name":"LooseRunner","href":"Hi.Common.LooseRunner.html","topicHref":"Hi.Common.LooseRunner.html","topicUid":"Hi.Common.LooseRunner","type":"Class"},{"name":"LooseRunner.MergedCancellationTokenRun","href":"Hi.Common.LooseRunner.MergedCancellationTokenRun.html","topicHref":"Hi.Common.LooseRunner.MergedCancellationTokenRun.html","topicUid":"Hi.Common.LooseRunner.MergedCancellationTokenRun","type":"Delegate"},{"name":"ManualUtil","href":"Hi.Common.ManualUtil.html","topicHref":"Hi.Common.ManualUtil.html","topicUid":"Hi.Common.ManualUtil","type":"Class"},{"name":"MaskUtil","href":"Hi.Common.MaskUtil.html","topicHref":"Hi.Common.MaskUtil.html","topicUid":"Hi.Common.MaskUtil","type":"Class"},{"name":"NameUtil","href":"Hi.Common.NameUtil.html","topicHref":"Hi.Common.NameUtil.html","topicUid":"Hi.Common.NameUtil","type":"Class"},{"name":"PacePlayee","href":"Hi.Common.PacePlayee.html","topicHref":"Hi.Common.PacePlayee.html","topicUid":"Hi.Common.PacePlayee","type":"Class"},{"name":"PacePlayer","href":"Hi.Common.PacePlayer.html","topicHref":"Hi.Common.PacePlayer.html","topicUid":"Hi.Common.PacePlayer","type":"Class"},{"name":"Pair","href":"Hi.Common.Pair-2.html","topicHref":"Hi.Common.Pair-2.html","topicUid":"Hi.Common.Pair`2","type":"Class"},{"name":"ProgressFraction","href":"Hi.Common.ProgressFraction.html","topicHref":"Hi.Common.ProgressFraction.html","topicUid":"Hi.Common.ProgressFraction","type":"Class"},{"name":"Range","href":"Hi.Common.Range-1.html","topicHref":"Hi.Common.Range-1.html","topicUid":"Hi.Common.Range`1","type":"Class"},{"name":"ResourceUtil","href":"Hi.Common.ResourceUtil.html","topicHref":"Hi.Common.ResourceUtil.html","topicUid":"Hi.Common.ResourceUtil","type":"Class"},{"name":"RoutineBlocker","href":"Hi.Common.RoutineBlocker.html","topicHref":"Hi.Common.RoutineBlocker.html","topicUid":"Hi.Common.RoutineBlocker","type":"Class"},{"name":"SearchResult","href":"Hi.Common.SearchResult.html","topicHref":"Hi.Common.SearchResult.html","topicUid":"Hi.Common.SearchResult","type":"Enum"},{"name":"SeqPairUtil","href":"Hi.Common.SeqPairUtil.html","topicHref":"Hi.Common.SeqPairUtil.html","topicUid":"Hi.Common.SeqPairUtil","type":"Class"},{"name":"SeqPair","href":"Hi.Common.SeqPair-1.html","topicHref":"Hi.Common.SeqPair-1.html","topicUid":"Hi.Common.SeqPair`1","type":"Class"},{"name":"ServerFileExplorerConfig","href":"Hi.Common.ServerFileExplorerConfig.html","topicHref":"Hi.Common.ServerFileExplorerConfig.html","topicUid":"Hi.Common.ServerFileExplorerConfig","type":"Class"},{"name":"StringLocalizer","href":"Hi.Common.StringLocalizer.html","topicHref":"Hi.Common.StringLocalizer.html","topicUid":"Hi.Common.StringLocalizer","type":"Class"},{"name":"StringUtil","href":"Hi.Common.StringUtil.html","topicHref":"Hi.Common.StringUtil.html","topicUid":"Hi.Common.StringUtil","type":"Class"},{"name":"TaskUtil","href":"Hi.Common.TaskUtil.html","topicHref":"Hi.Common.TaskUtil.html","topicUid":"Hi.Common.TaskUtil","type":"Class"},{"name":"TimeCounter","href":"Hi.Common.TimeCounter.html","topicHref":"Hi.Common.TimeCounter.html","topicUid":"Hi.Common.TimeCounter","type":"Class"}]},{"name":"Hi.Common.Collections","href":"Hi.Common.Collections.html","topicHref":"Hi.Common.Collections.html","topicUid":"Hi.Common.Collections","type":"Namespace","items":[{"name":"DictionaryUtil","href":"Hi.Common.Collections.DictionaryUtil.html","topicHref":"Hi.Common.Collections.DictionaryUtil.html","topicUid":"Hi.Common.Collections.DictionaryUtil","type":"Class"},{"name":"EnumerableUtil","href":"Hi.Common.Collections.EnumerableUtil.html","topicHref":"Hi.Common.Collections.EnumerableUtil.html","topicUid":"Hi.Common.Collections.EnumerableUtil","type":"Class"},{"name":"FixedSizeConcurrentLinkedListUtil","href":"Hi.Common.Collections.FixedSizeConcurrentLinkedListUtil.html","topicHref":"Hi.Common.Collections.FixedSizeConcurrentLinkedListUtil.html","topicUid":"Hi.Common.Collections.FixedSizeConcurrentLinkedListUtil","type":"Class"},{"name":"LazyLinkedListNode","href":"Hi.Common.Collections.LazyLinkedListNode-1.html","topicHref":"Hi.Common.Collections.LazyLinkedListNode-1.html","topicUid":"Hi.Common.Collections.LazyLinkedListNode`1","type":"Class"},{"name":"LazyLinkedList","href":"Hi.Common.Collections.LazyLinkedList-1.html","topicHref":"Hi.Common.Collections.LazyLinkedList-1.html","topicUid":"Hi.Common.Collections.LazyLinkedList`1","type":"Class"},{"name":"LinkedListUtil","href":"Hi.Common.Collections.LinkedListUtil.html","topicHref":"Hi.Common.Collections.LinkedListUtil.html","topicUid":"Hi.Common.Collections.LinkedListUtil","type":"Class"},{"name":"ListIndexBasedEnumerable","href":"Hi.Common.Collections.ListIndexBasedEnumerable-1.html","topicHref":"Hi.Common.Collections.ListIndexBasedEnumerable-1.html","topicUid":"Hi.Common.Collections.ListIndexBasedEnumerable`1","type":"Class"},{"name":"ListIndexBasedIEnumerator","href":"Hi.Common.Collections.ListIndexBasedIEnumerator-1.html","topicHref":"Hi.Common.Collections.ListIndexBasedIEnumerator-1.html","topicUid":"Hi.Common.Collections.ListIndexBasedIEnumerator`1","type":"Class"},{"name":"ListUtil","href":"Hi.Common.Collections.ListUtil.html","topicHref":"Hi.Common.Collections.ListUtil.html","topicUid":"Hi.Common.Collections.ListUtil","type":"Class"},{"name":"ListUtil.OuterPolationMode","href":"Hi.Common.Collections.ListUtil.OuterPolationMode.html","topicHref":"Hi.Common.Collections.ListUtil.OuterPolationMode.html","topicUid":"Hi.Common.Collections.ListUtil.OuterPolationMode","type":"Enum"},{"name":"SearchTargetMode","href":"Hi.Common.Collections.SearchTargetMode.html","topicHref":"Hi.Common.Collections.SearchTargetMode.html","topicUid":"Hi.Common.Collections.SearchTargetMode","type":"Enum"},{"name":"SeekDirection","href":"Hi.Common.Collections.SeekDirection.html","topicHref":"Hi.Common.Collections.SeekDirection.html","topicUid":"Hi.Common.Collections.SeekDirection","type":"Enum"},{"name":"SortedListUtil","href":"Hi.Common.Collections.SortedListUtil.html","topicHref":"Hi.Common.Collections.SortedListUtil.html","topicUid":"Hi.Common.Collections.SortedListUtil","type":"Class"},{"name":"SubList","href":"Hi.Common.Collections.SubList-1.html","topicHref":"Hi.Common.Collections.SubList-1.html","topicUid":"Hi.Common.Collections.SubList`1","type":"Class"},{"name":"SynList","href":"Hi.Common.Collections.SynList-1.html","topicHref":"Hi.Common.Collections.SynList-1.html","topicUid":"Hi.Common.Collections.SynList`1","type":"Class"}]},{"name":"Hi.Common.CsvUtils","href":"Hi.Common.CsvUtils.html","topicHref":"Hi.Common.CsvUtils.html","topicUid":"Hi.Common.CsvUtils","type":"Namespace","items":[{"name":"CsvInputKit","href":"Hi.Common.CsvUtils.CsvInputKit.html","topicHref":"Hi.Common.CsvUtils.CsvInputKit.html","topicUid":"Hi.Common.CsvUtils.CsvInputKit","type":"Class"},{"name":"CsvOutputKit","href":"Hi.Common.CsvUtils.CsvOutputKit.html","topicHref":"Hi.Common.CsvUtils.CsvOutputKit.html","topicUid":"Hi.Common.CsvUtils.CsvOutputKit","type":"Class"},{"name":"CsvUtil","href":"Hi.Common.CsvUtils.CsvUtil.html","topicHref":"Hi.Common.CsvUtils.CsvUtil.html","topicUid":"Hi.Common.CsvUtils.CsvUtil","type":"Class"},{"name":"ICsvRowIo","href":"Hi.Common.CsvUtils.ICsvRowIo.html","topicHref":"Hi.Common.CsvUtils.ICsvRowIo.html","topicUid":"Hi.Common.CsvUtils.ICsvRowIo","type":"Interface"},{"name":"IGetCsvDictionary","href":"Hi.Common.CsvUtils.IGetCsvDictionary.html","topicHref":"Hi.Common.CsvUtils.IGetCsvDictionary.html","topicUid":"Hi.Common.CsvUtils.IGetCsvDictionary","type":"Interface"}]},{"name":"Hi.Common.FileLines","href":"Hi.Common.FileLines.html","topicHref":"Hi.Common.FileLines.html","topicUid":"Hi.Common.FileLines","type":"Namespace","items":[{"name":"FileBeginEventArgs","href":"Hi.Common.FileLines.FileBeginEventArgs.html","topicHref":"Hi.Common.FileLines.FileBeginEventArgs.html","topicUid":"Hi.Common.FileLines.FileBeginEventArgs","type":"Class"},{"name":"FileEndEventArgs","href":"Hi.Common.FileLines.FileEndEventArgs.html","topicHref":"Hi.Common.FileLines.FileEndEventArgs.html","topicUid":"Hi.Common.FileLines.FileEndEventArgs","type":"Class"},{"name":"FileLineCharIndex","href":"Hi.Common.FileLines.FileLineCharIndex.html","topicHref":"Hi.Common.FileLines.FileLineCharIndex.html","topicUid":"Hi.Common.FileLines.FileLineCharIndex","type":"Class"},{"name":"FileLineCharIndexSegment","href":"Hi.Common.FileLines.FileLineCharIndexSegment.html","topicHref":"Hi.Common.FileLines.FileLineCharIndexSegment.html","topicUid":"Hi.Common.FileLines.FileLineCharIndexSegment","type":"Class"},{"name":"FileLineIndex","href":"Hi.Common.FileLines.FileLineIndex.html","topicHref":"Hi.Common.FileLines.FileLineIndex.html","topicUid":"Hi.Common.FileLines.FileLineIndex","type":"Class"},{"name":"FileLineUtil","href":"Hi.Common.FileLines.FileLineUtil.html","topicHref":"Hi.Common.FileLines.FileLineUtil.html","topicUid":"Hi.Common.FileLines.FileLineUtil","type":"Class"},{"name":"FileUtil","href":"Hi.Common.FileLines.FileUtil.html","topicHref":"Hi.Common.FileLines.FileUtil.html","topicUid":"Hi.Common.FileLines.FileUtil","type":"Class"},{"name":"IFileChangedEventSupport","href":"Hi.Common.FileLines.IFileChangedEventSupport.html","topicHref":"Hi.Common.FileLines.IFileChangedEventSupport.html","topicUid":"Hi.Common.FileLines.IFileChangedEventSupport","type":"Interface"},{"name":"IFileLine","href":"Hi.Common.FileLines.IFileLine.html","topicHref":"Hi.Common.FileLines.IFileLine.html","topicUid":"Hi.Common.FileLines.IFileLine","type":"Interface"},{"name":"IFileLineCharIndex","href":"Hi.Common.FileLines.IFileLineCharIndex.html","topicHref":"Hi.Common.FileLines.IFileLineCharIndex.html","topicUid":"Hi.Common.FileLines.IFileLineCharIndex","type":"Interface"},{"name":"IFileLineIndex","href":"Hi.Common.FileLines.IFileLineIndex.html","topicHref":"Hi.Common.FileLines.IFileLineIndex.html","topicUid":"Hi.Common.FileLines.IFileLineIndex","type":"Interface"},{"name":"IGetFileLineIndex","href":"Hi.Common.FileLines.IGetFileLineIndex.html","topicHref":"Hi.Common.FileLines.IGetFileLineIndex.html","topicUid":"Hi.Common.FileLines.IGetFileLineIndex","type":"Interface"},{"name":"IGetIndexedFileLine","href":"Hi.Common.FileLines.IGetIndexedFileLine.html","topicHref":"Hi.Common.FileLines.IGetIndexedFileLine.html","topicUid":"Hi.Common.FileLines.IGetIndexedFileLine","type":"Interface"},{"name":"IIndexedFileLine","href":"Hi.Common.FileLines.IIndexedFileLine.html","topicHref":"Hi.Common.FileLines.IIndexedFileLine.html","topicUid":"Hi.Common.FileLines.IIndexedFileLine","type":"Interface"},{"name":"ILineChangedEventSupport","href":"Hi.Common.FileLines.ILineChangedEventSupport.html","topicHref":"Hi.Common.FileLines.ILineChangedEventSupport.html","topicUid":"Hi.Common.FileLines.ILineChangedEventSupport","type":"Interface"},{"name":"IndexedFile","href":"Hi.Common.FileLines.IndexedFile.html","topicHref":"Hi.Common.FileLines.IndexedFile.html","topicUid":"Hi.Common.FileLines.IndexedFile","type":"Class"},{"name":"IndexedFileLine","href":"Hi.Common.FileLines.IndexedFileLine.html","topicHref":"Hi.Common.FileLines.IndexedFileLine.html","topicUid":"Hi.Common.FileLines.IndexedFileLine","type":"Class"},{"name":"IndexedFileLineChar","href":"Hi.Common.FileLines.IndexedFileLineChar.html","topicHref":"Hi.Common.FileLines.IndexedFileLineChar.html","topicUid":"Hi.Common.FileLines.IndexedFileLineChar","type":"Class"},{"name":"LineBeginEventArgs","href":"Hi.Common.FileLines.LineBeginEventArgs.html","topicHref":"Hi.Common.FileLines.LineBeginEventArgs.html","topicUid":"Hi.Common.FileLines.LineBeginEventArgs","type":"Class"},{"name":"LineEndEventArgs","href":"Hi.Common.FileLines.LineEndEventArgs.html","topicHref":"Hi.Common.FileLines.LineEndEventArgs.html","topicUid":"Hi.Common.FileLines.LineEndEventArgs","type":"Class"}]},{"name":"Hi.Common.Messages","href":"Hi.Common.Messages.html","topicHref":"Hi.Common.Messages.html","topicUid":"Hi.Common.Messages","type":"Namespace","items":[{"name":"ActionProgress","href":"Hi.Common.Messages.ActionProgress-1.html","topicHref":"Hi.Common.Messages.ActionProgress-1.html","topicUid":"Hi.Common.Messages.ActionProgress`1","type":"Class"},{"name":"BootstrapTheme","href":"Hi.Common.Messages.BootstrapTheme.html","topicHref":"Hi.Common.Messages.BootstrapTheme.html","topicUid":"Hi.Common.Messages.BootstrapTheme","type":"Enum"},{"name":"DebugUtil","href":"Hi.Common.Messages.DebugUtil.html","topicHref":"Hi.Common.Messages.DebugUtil.html","topicUid":"Hi.Common.Messages.DebugUtil","type":"Class"},{"name":"ExceptionUtil","href":"Hi.Common.Messages.ExceptionUtil.html","topicHref":"Hi.Common.Messages.ExceptionUtil.html","topicUid":"Hi.Common.Messages.ExceptionUtil","type":"Class"},{"name":"MessageBoardUtil","href":"Hi.Common.Messages.MessageBoardUtil.html","topicHref":"Hi.Common.Messages.MessageBoardUtil.html","topicUid":"Hi.Common.Messages.MessageBoardUtil","type":"Class"},{"name":"MessageFlag","href":"Hi.Common.Messages.MessageFlag.html","topicHref":"Hi.Common.Messages.MessageFlag.html","topicUid":"Hi.Common.Messages.MessageFlag","type":"Enum"},{"name":"MultiTagMessage","href":"Hi.Common.Messages.MultiTagMessage.html","topicHref":"Hi.Common.Messages.MultiTagMessage.html","topicUid":"Hi.Common.Messages.MultiTagMessage","type":"Class"},{"name":"MultiTagMessageUtil","href":"Hi.Common.Messages.MultiTagMessageUtil.html","topicHref":"Hi.Common.Messages.MultiTagMessageUtil.html","topicUid":"Hi.Common.Messages.MultiTagMessageUtil","type":"Class"},{"name":"ShowMessageBoardDelegate","href":"Hi.Common.Messages.ShowMessageBoardDelegate.html","topicHref":"Hi.Common.Messages.ShowMessageBoardDelegate.html","topicUid":"Hi.Common.Messages.ShowMessageBoardDelegate","type":"Delegate"}]},{"name":"Hi.Common.MinMaxUtils","href":"Hi.Common.MinMaxUtils.html","topicHref":"Hi.Common.MinMaxUtils.html","topicUid":"Hi.Common.MinMaxUtils","type":"Namespace","items":[{"name":"IndexedMinMaxPos","href":"Hi.Common.MinMaxUtils.IndexedMinMaxPos-2.html","topicHref":"Hi.Common.MinMaxUtils.IndexedMinMaxPos-2.html","topicUid":"Hi.Common.MinMaxUtils.IndexedMinMaxPos`2","type":"Class"},{"name":"MinMaxUtil","href":"Hi.Common.MinMaxUtils.MinMaxUtil.html","topicHref":"Hi.Common.MinMaxUtils.MinMaxUtil.html","topicUid":"Hi.Common.MinMaxUtils.MinMaxUtil","type":"Class"}]},{"name":"Hi.Common.NativeProgresses","href":"Hi.Common.NativeProgresses.html","topicHref":"Hi.Common.NativeProgresses.html","topicUid":"Hi.Common.NativeProgresses","type":"Namespace","items":[{"name":"NativeProgressFraction","href":"Hi.Common.NativeProgresses.NativeProgressFraction.html","topicHref":"Hi.Common.NativeProgresses.NativeProgressFraction.html","topicUid":"Hi.Common.NativeProgresses.NativeProgressFraction","type":"Class"},{"name":"progress_monitor_t","href":"Hi.Common.NativeProgresses.progress_monitor_t.html","topicHref":"Hi.Common.NativeProgresses.progress_monitor_t.html","topicUid":"Hi.Common.NativeProgresses.progress_monitor_t","type":"Struct"},{"name":"report_progress_func_t","href":"Hi.Common.NativeProgresses.report_progress_func_t.html","topicHref":"Hi.Common.NativeProgresses.report_progress_func_t.html","topicUid":"Hi.Common.NativeProgresses.report_progress_func_t","type":"Delegate"}]},{"name":"Hi.Common.ParallelBulkUtils","href":"Hi.Common.ParallelBulkUtils.html","topicHref":"Hi.Common.ParallelBulkUtils.html","topicUid":"Hi.Common.ParallelBulkUtils","type":"Namespace","items":[{"name":"ParallelBulkReader","href":"Hi.Common.ParallelBulkUtils.ParallelBulkReader-1.html","topicHref":"Hi.Common.ParallelBulkUtils.ParallelBulkReader-1.html","topicUid":"Hi.Common.ParallelBulkUtils.ParallelBulkReader`1","type":"Class"},{"name":"ParallelBulkWriter","href":"Hi.Common.ParallelBulkUtils.ParallelBulkWriter-1.html","topicHref":"Hi.Common.ParallelBulkUtils.ParallelBulkWriter-1.html","topicUid":"Hi.Common.ParallelBulkUtils.ParallelBulkWriter`1","type":"Class"},{"name":"ReadBulkDelegate","href":"Hi.Common.ParallelBulkUtils.ReadBulkDelegate-1.html","topicHref":"Hi.Common.ParallelBulkUtils.ReadBulkDelegate-1.html","topicUid":"Hi.Common.ParallelBulkUtils.ReadBulkDelegate`1","type":"Delegate"},{"name":"SequentialBulkReader","href":"Hi.Common.ParallelBulkUtils.SequentialBulkReader-1.html","topicHref":"Hi.Common.ParallelBulkUtils.SequentialBulkReader-1.html","topicUid":"Hi.Common.ParallelBulkUtils.SequentialBulkReader`1","type":"Class"}]},{"name":"Hi.Common.PathUtils","href":"Hi.Common.PathUtils.html","topicHref":"Hi.Common.PathUtils.html","topicUid":"Hi.Common.PathUtils","type":"Namespace","items":[{"name":"ExtendedNamedPath","href":"Hi.Common.PathUtils.ExtendedNamedPath.html","topicHref":"Hi.Common.PathUtils.ExtendedNamedPath.html","topicUid":"Hi.Common.PathUtils.ExtendedNamedPath","type":"Class"},{"name":"HttpUtil","href":"Hi.Common.PathUtils.HttpUtil.html","topicHref":"Hi.Common.PathUtils.HttpUtil.html","topicUid":"Hi.Common.PathUtils.HttpUtil","type":"Class"},{"name":"Lang","href":"Hi.Common.PathUtils.Lang.html","topicHref":"Hi.Common.PathUtils.Lang.html","topicUid":"Hi.Common.PathUtils.Lang","type":"Class"},{"name":"NamedPath","href":"Hi.Common.PathUtils.NamedPath.html","topicHref":"Hi.Common.PathUtils.NamedPath.html","topicUid":"Hi.Common.PathUtils.NamedPath","type":"Class"},{"name":"PathUtil","href":"Hi.Common.PathUtils.PathUtil.html","topicHref":"Hi.Common.PathUtils.PathUtil.html","topicUid":"Hi.Common.PathUtils.PathUtil","type":"Class"}]},{"name":"Hi.Common.QueueCacheUtils","href":"Hi.Common.QueueCacheUtils.html","topicHref":"Hi.Common.QueueCacheUtils.html","topicUid":"Hi.Common.QueueCacheUtils","type":"Namespace","items":[{"name":"QueueCacherHost","href":"Hi.Common.QueueCacheUtils.QueueCacherHost-1.html","topicHref":"Hi.Common.QueueCacheUtils.QueueCacherHost-1.html","topicUid":"Hi.Common.QueueCacheUtils.QueueCacherHost`1","type":"Class"},{"name":"QueueCacher","href":"Hi.Common.QueueCacheUtils.QueueCacher-1.html","topicHref":"Hi.Common.QueueCacheUtils.QueueCacher-1.html","topicUid":"Hi.Common.QueueCacheUtils.QueueCacher`1","type":"Class"}]},{"name":"Hi.Common.XmlUtils","href":"Hi.Common.XmlUtils.html","topicHref":"Hi.Common.XmlUtils.html","topicUid":"Hi.Common.XmlUtils","type":"Namespace","items":[{"name":"FileRefSource","href":"Hi.Common.XmlUtils.FileRefSource-1.html","topicHref":"Hi.Common.XmlUtils.FileRefSource-1.html","topicUid":"Hi.Common.XmlUtils.FileRefSource`1","type":"Class"},{"name":"IMakeXmlSource","href":"Hi.Common.XmlUtils.IMakeXmlSource.html","topicHref":"Hi.Common.XmlUtils.IMakeXmlSource.html","topicUid":"Hi.Common.XmlUtils.IMakeXmlSource","type":"Interface"},{"name":"IToXElement","href":"Hi.Common.XmlUtils.IToXElement.html","topicHref":"Hi.Common.XmlUtils.IToXElement.html","topicUid":"Hi.Common.XmlUtils.IToXElement","type":"Interface"},{"name":"ProjectApiVersion","href":"Hi.Common.XmlUtils.ProjectApiVersion.html","topicHref":"Hi.Common.XmlUtils.ProjectApiVersion.html","topicUid":"Hi.Common.XmlUtils.ProjectApiVersion","type":"Class"},{"name":"SetFileDelegate","href":"Hi.Common.XmlUtils.SetFileDelegate.html","topicHref":"Hi.Common.XmlUtils.SetFileDelegate.html","topicUid":"Hi.Common.XmlUtils.SetFileDelegate","type":"Delegate"},{"name":"XFactory","href":"Hi.Common.XmlUtils.XFactory.html","topicHref":"Hi.Common.XmlUtils.XFactory.html","topicUid":"Hi.Common.XmlUtils.XFactory","type":"Class"},{"name":"XFactory.XGeneratorDelegate","href":"Hi.Common.XmlUtils.XFactory.XGeneratorDelegate.html","topicHref":"Hi.Common.XmlUtils.XFactory.XGeneratorDelegate.html","topicUid":"Hi.Common.XmlUtils.XFactory.XGeneratorDelegate","type":"Delegate"},{"name":"XFactory.XmlExceptionDelegate","href":"Hi.Common.XmlUtils.XFactory.XmlExceptionDelegate.html","topicHref":"Hi.Common.XmlUtils.XFactory.XmlExceptionDelegate.html","topicUid":"Hi.Common.XmlUtils.XFactory.XmlExceptionDelegate","type":"Delegate"},{"name":"XmlUtil","href":"Hi.Common.XmlUtils.XmlUtil.html","topicHref":"Hi.Common.XmlUtils.XmlUtil.html","topicUid":"Hi.Common.XmlUtils.XmlUtil","type":"Class"}]},{"name":"Hi.CutterLocations","href":"Hi.CutterLocations.html","topicHref":"Hi.CutterLocations.html","topicUid":"Hi.CutterLocations","type":"Namespace","items":[{"name":"IGetProgramCl","href":"Hi.CutterLocations.IGetProgramCl.html","topicHref":"Hi.CutterLocations.IGetProgramCl.html","topicUid":"Hi.CutterLocations.IGetProgramCl","type":"Interface"},{"name":"SimpleCl","href":"Hi.CutterLocations.SimpleCl.html","topicHref":"Hi.CutterLocations.SimpleCl.html","topicUid":"Hi.CutterLocations.SimpleCl","type":"Class"}]},{"name":"Hi.CutterLocations.ClPath","href":"Hi.CutterLocations.ClPath.html","topicHref":"Hi.CutterLocations.ClPath.html","topicUid":"Hi.CutterLocations.ClPath","type":"Namespace","items":[{"name":"ClCircleArc","href":"Hi.CutterLocations.ClPath.ClCircleArc.html","topicHref":"Hi.CutterLocations.ClPath.ClCircleArc.html","topicUid":"Hi.CutterLocations.ClPath.ClCircleArc","type":"Class"},{"name":"ClLinear","href":"Hi.CutterLocations.ClPath.ClLinear.html","topicHref":"Hi.CutterLocations.ClPath.ClLinear.html","topicUid":"Hi.CutterLocations.ClPath.ClLinear","type":"Class"},{"name":"IClPath","href":"Hi.CutterLocations.ClPath.IClPath.html","topicHref":"Hi.CutterLocations.ClPath.IClPath.html","topicUid":"Hi.CutterLocations.ClPath.IClPath","type":"Interface"}]},{"name":"Hi.CutterLocations.ClStrips","href":"Hi.CutterLocations.ClStrips.html","topicHref":"Hi.CutterLocations.ClStrips.html","topicUid":"Hi.CutterLocations.ClStrips","type":"Namespace","items":[{"name":"ClStrip","href":"Hi.CutterLocations.ClStrips.ClStrip.html","topicHref":"Hi.CutterLocations.ClStrips.ClStrip.html","topicUid":"Hi.CutterLocations.ClStrips.ClStrip","type":"Class"},{"name":"ClStripPos","href":"Hi.CutterLocations.ClStrips.ClStripPos.html","topicHref":"Hi.CutterLocations.ClStrips.ClStripPos.html","topicUid":"Hi.CutterLocations.ClStrips.ClStripPos","type":"Class"},{"name":"RgbFunc","href":"Hi.CutterLocations.ClStrips.RgbFunc.html","topicHref":"Hi.CutterLocations.ClStrips.RgbFunc.html","topicUid":"Hi.CutterLocations.ClStrips.RgbFunc","type":"Delegate"}]},{"name":"Hi.Disp","href":"Hi.Disp.html","topicHref":"Hi.Disp.html","topicUid":"Hi.Disp","type":"Namespace","items":[{"name":"Bind","href":"Hi.Disp.Bind.html","topicHref":"Hi.Disp.Bind.html","topicUid":"Hi.Disp.Bind","type":"Class"},{"name":"Box3dDispUtil","href":"Hi.Disp.Box3dDispUtil.html","topicHref":"Hi.Disp.Box3dDispUtil.html","topicUid":"Hi.Disp.Box3dDispUtil","type":"Class"},{"name":"Box3dDispUtil.BoxableExpandToBox3dDel","href":"Hi.Disp.Box3dDispUtil.BoxableExpandToBox3dDel.html","topicHref":"Hi.Disp.Box3dDispUtil.BoxableExpandToBox3dDel.html","topicUid":"Hi.Disp.Box3dDispUtil.BoxableExpandToBox3dDel","type":"Delegate"},{"name":"DelegateFuncDisplayee","href":"Hi.Disp.DelegateFuncDisplayee.html","topicHref":"Hi.Disp.DelegateFuncDisplayee.html","topicUid":"Hi.Disp.DelegateFuncDisplayee","type":"Class"},{"name":"DispEngine","href":"Hi.Disp.DispEngine.html","topicHref":"Hi.Disp.DispEngine.html","topicUid":"Hi.Disp.DispEngine","type":"Class"},{"name":"DispEngine.ImageRequestedDelegate","href":"Hi.Disp.DispEngine.ImageRequestedDelegate.html","topicHref":"Hi.Disp.DispEngine.ImageRequestedDelegate.html","topicUid":"Hi.Disp.DispEngine.ImageRequestedDelegate","type":"Delegate"},{"name":"DispEngineConfig","href":"Hi.Disp.DispEngineConfig.html","topicHref":"Hi.Disp.DispEngineConfig.html","topicUid":"Hi.Disp.DispEngineConfig","type":"Class"},{"name":"DispFrameUtil","href":"Hi.Disp.DispFrameUtil.html","topicHref":"Hi.Disp.DispFrameUtil.html","topicUid":"Hi.Disp.DispFrameUtil","type":"Class"},{"name":"DispList","href":"Hi.Disp.DispList.html","topicHref":"Hi.Disp.DispList.html","topicUid":"Hi.Disp.DispList","type":"Class"},{"name":"DispUtil","href":"Hi.Disp.DispUtil.html","topicHref":"Hi.Disp.DispUtil.html","topicUid":"Hi.Disp.DispUtil","type":"Class"},{"name":"Drawing","href":"Hi.Disp.Drawing.html","topicHref":"Hi.Disp.Drawing.html","topicUid":"Hi.Disp.Drawing","type":"Class"},{"name":"FuncDisplayee","href":"Hi.Disp.FuncDisplayee.html","topicHref":"Hi.Disp.FuncDisplayee.html","topicUid":"Hi.Disp.FuncDisplayee","type":"Class"},{"name":"GL","href":"Hi.Disp.GL.html","topicHref":"Hi.Disp.GL.html","topicUid":"Hi.Disp.GL","type":"Class"},{"name":"IDisplayee","href":"Hi.Disp.IDisplayee.html","topicHref":"Hi.Disp.IDisplayee.html","topicUid":"Hi.Disp.IDisplayee","type":"Interface"},{"name":"IGetDispEngine","href":"Hi.Disp.IGetDispEngine.html","topicHref":"Hi.Disp.IGetDispEngine.html","topicUid":"Hi.Disp.IGetDispEngine","type":"Interface"},{"name":"IGetPickable","href":"Hi.Disp.IGetPickable.html","topicHref":"Hi.Disp.IGetPickable.html","topicUid":"Hi.Disp.IGetPickable","type":"Interface"},{"name":"IGlContextDirver","href":"Hi.Disp.IGlContextDirver.html","topicHref":"Hi.Disp.IGlContextDirver.html","topicUid":"Hi.Disp.IGlContextDirver","type":"Interface"},{"name":"MatStack","href":"Hi.Disp.MatStack.html","topicHref":"Hi.Disp.MatStack.html","topicUid":"Hi.Disp.MatStack","type":"Class"},{"name":"MatStack.ItemDisposable","href":"Hi.Disp.MatStack.ItemDisposable.html","topicHref":"Hi.Disp.MatStack.ItemDisposable.html","topicUid":"Hi.Disp.MatStack.ItemDisposable","type":"Class"},{"name":"MvpBoxRelation","href":"Hi.Disp.MvpBoxRelation.html","topicHref":"Hi.Disp.MvpBoxRelation.html","topicUid":"Hi.Disp.MvpBoxRelation","type":"Enum"},{"name":"Pickable","href":"Hi.Disp.Pickable.html","topicHref":"Hi.Disp.Pickable.html","topicUid":"Hi.Disp.Pickable","type":"Class"},{"name":"PopModelMat","href":"Hi.Disp.PopModelMat.html","topicHref":"Hi.Disp.PopModelMat.html","topicUid":"Hi.Disp.PopModelMat","type":"Class"},{"name":"PushModelMat","href":"Hi.Disp.PushModelMat.html","topicHref":"Hi.Disp.PushModelMat.html","topicUid":"Hi.Disp.PushModelMat","type":"Class"},{"name":"Segment3dDispUtil","href":"Hi.Disp.Segment3dDispUtil.html","topicHref":"Hi.Disp.Segment3dDispUtil.html","topicUid":"Hi.Disp.Segment3dDispUtil","type":"Class"},{"name":"ShowEventPickable","href":"Hi.Disp.ShowEventPickable.html","topicHref":"Hi.Disp.ShowEventPickable.html","topicUid":"Hi.Disp.ShowEventPickable","type":"Class"},{"name":"Stamp","href":"Hi.Disp.Stamp.html","topicHref":"Hi.Disp.Stamp.html","topicUid":"Hi.Disp.Stamp","type":"Enum"},{"name":"StringDrawing","href":"Hi.Disp.StringDrawing.html","topicHref":"Hi.Disp.StringDrawing.html","topicUid":"Hi.Disp.StringDrawing","type":"Class"},{"name":"Tri3dDispUtil","href":"Hi.Disp.Tri3dDispUtil.html","topicHref":"Hi.Disp.Tri3dDispUtil.html","topicUid":"Hi.Disp.Tri3dDispUtil","type":"Class"},{"name":"Vec3dDispUtil","href":"Hi.Disp.Vec3dDispUtil.html","topicHref":"Hi.Disp.Vec3dDispUtil.html","topicUid":"Hi.Disp.Vec3dDispUtil","type":"Class"},{"name":"WrappedDisplayee","href":"Hi.Disp.WrappedDisplayee.html","topicHref":"Hi.Disp.WrappedDisplayee.html","topicUid":"Hi.Disp.WrappedDisplayee","type":"Class"}]},{"name":"Hi.Disp.Flag","href":"Hi.Disp.Flag.html","topicHref":"Hi.Disp.Flag.html","topicUid":"Hi.Disp.Flag","type":"Namespace","items":[{"name":"ColorScaleBar","href":"Hi.Disp.Flag.ColorScaleBar.html","topicHref":"Hi.Disp.Flag.ColorScaleBar.html","topicUid":"Hi.Disp.Flag.ColorScaleBar","type":"Class"},{"name":"CoordinateDrawing","href":"Hi.Disp.Flag.CoordinateDrawing.html","topicHref":"Hi.Disp.Flag.CoordinateDrawing.html","topicUid":"Hi.Disp.Flag.CoordinateDrawing","type":"Class"},{"name":"CubicalFlagDrawing","href":"Hi.Disp.Flag.CubicalFlagDrawing.html","topicHref":"Hi.Disp.Flag.CubicalFlagDrawing.html","topicUid":"Hi.Disp.Flag.CubicalFlagDrawing","type":"Class"},{"name":"DimensionBar","href":"Hi.Disp.Flag.DimensionBar.html","topicHref":"Hi.Disp.Flag.DimensionBar.html","topicUid":"Hi.Disp.Flag.DimensionBar","type":"Class"},{"name":"DispCoverUtil","href":"Hi.Disp.Flag.DispCoverUtil.html","topicHref":"Hi.Disp.Flag.DispCoverUtil.html","topicUid":"Hi.Disp.Flag.DispCoverUtil","type":"Class"}]},{"name":"Hi.Disp.Treat","href":"Hi.Disp.Treat.html","topicHref":"Hi.Disp.Treat.html","topicUid":"Hi.Disp.Treat","type":"Namespace","items":[{"name":"LineWidthSwap","href":"Hi.Disp.Treat.LineWidthSwap.html","topicHref":"Hi.Disp.Treat.LineWidthSwap.html","topicUid":"Hi.Disp.Treat.LineWidthSwap","type":"Class"},{"name":"LineWidthTreat","href":"Hi.Disp.Treat.LineWidthTreat.html","topicHref":"Hi.Disp.Treat.LineWidthTreat.html","topicUid":"Hi.Disp.Treat.LineWidthTreat","type":"Class"},{"name":"PointSizeSwap","href":"Hi.Disp.Treat.PointSizeSwap.html","topicHref":"Hi.Disp.Treat.PointSizeSwap.html","topicUid":"Hi.Disp.Treat.PointSizeSwap","type":"Class"},{"name":"PointSizeTreat","href":"Hi.Disp.Treat.PointSizeTreat.html","topicHref":"Hi.Disp.Treat.PointSizeTreat.html","topicUid":"Hi.Disp.Treat.PointSizeTreat","type":"Class"},{"name":"RgbSwap","href":"Hi.Disp.Treat.RgbSwap.html","topicHref":"Hi.Disp.Treat.RgbSwap.html","topicUid":"Hi.Disp.Treat.RgbSwap","type":"Class"},{"name":"RgbTreat","href":"Hi.Disp.Treat.RgbTreat.html","topicHref":"Hi.Disp.Treat.RgbTreat.html","topicUid":"Hi.Disp.Treat.RgbTreat","type":"Class"},{"name":"RgbWrapper","href":"Hi.Disp.Treat.RgbWrapper.html","topicHref":"Hi.Disp.Treat.RgbWrapper.html","topicUid":"Hi.Disp.Treat.RgbWrapper","type":"Class"},{"name":"TransformationWrapper","href":"Hi.Disp.Treat.TransformationWrapper.html","topicHref":"Hi.Disp.Treat.TransformationWrapper.html","topicUid":"Hi.Disp.Treat.TransformationWrapper","type":"Class"}]},{"name":"Hi.Fanuc","href":"Hi.Fanuc.html","topicHref":"Hi.Fanuc.html","topicUid":"Hi.Fanuc","type":"Namespace","items":[{"name":"FanucVarTable","href":"Hi.Fanuc.FanucVarTable.html","topicHref":"Hi.Fanuc.FanucVarTable.html","topicUid":"Hi.Fanuc.FanucVarTable","type":"Class"},{"name":"FanucVarValue","href":"Hi.Fanuc.FanucVarValue.html","topicHref":"Hi.Fanuc.FanucVarValue.html","topicUid":"Hi.Fanuc.FanucVarValue","type":"Struct"}]},{"name":"Hi.Geom","href":"Hi.Geom.html","topicHref":"Hi.Geom.html","topicUid":"Hi.Geom","type":"Namespace","items":[{"name":"ArrayUtil","href":"Hi.Geom.ArrayUtil.html","topicHref":"Hi.Geom.ArrayUtil.html","topicUid":"Hi.Geom.ArrayUtil","type":"Class"},{"name":"AxisAngle4d","href":"Hi.Geom.AxisAngle4d.html","topicHref":"Hi.Geom.AxisAngle4d.html","topicUid":"Hi.Geom.AxisAngle4d","type":"Class"},{"name":"Box2d","href":"Hi.Geom.Box2d.html","topicHref":"Hi.Geom.Box2d.html","topicUid":"Hi.Geom.Box2d","type":"Class"},{"name":"Box2d.NoInit","href":"Hi.Geom.Box2d.NoInit.html","topicHref":"Hi.Geom.Box2d.NoInit.html","topicUid":"Hi.Geom.Box2d.NoInit","type":"Class"},{"name":"Box3d","href":"Hi.Geom.Box3d.html","topicHref":"Hi.Geom.Box3d.html","topicUid":"Hi.Geom.Box3d","type":"Class"},{"name":"Box3d.NoInit","href":"Hi.Geom.Box3d.NoInit.html","topicHref":"Hi.Geom.Box3d.NoInit.html","topicUid":"Hi.Geom.Box3d.NoInit","type":"Class"},{"name":"Cylindroid","href":"Hi.Geom.Cylindroid.html","topicHref":"Hi.Geom.Cylindroid.html","topicUid":"Hi.Geom.Cylindroid","type":"Class"},{"name":"DVec3d","href":"Hi.Geom.DVec3d.html","topicHref":"Hi.Geom.DVec3d.html","topicUid":"Hi.Geom.DVec3d","type":"Class"},{"name":"Dir","href":"Hi.Geom.Dir.html","topicHref":"Hi.Geom.Dir.html","topicUid":"Hi.Geom.Dir","type":"Enum"},{"name":"ExtendedCylinder","href":"Hi.Geom.ExtendedCylinder.html","topicHref":"Hi.Geom.ExtendedCylinder.html","topicUid":"Hi.Geom.ExtendedCylinder","type":"Class"},{"name":"Flat3d","href":"Hi.Geom.Flat3d.html","topicHref":"Hi.Geom.Flat3d.html","topicUid":"Hi.Geom.Flat3d","type":"Class"},{"name":"FractionStatus","href":"Hi.Geom.FractionStatus.html","topicHref":"Hi.Geom.FractionStatus.html","topicUid":"Hi.Geom.FractionStatus","type":"Enum"},{"name":"Fraction","href":"Hi.Geom.Fraction-1.html","topicHref":"Hi.Geom.Fraction-1.html","topicUid":"Hi.Geom.Fraction`1","type":"Struct"},{"name":"GeomCombination","href":"Hi.Geom.GeomCombination.html","topicHref":"Hi.Geom.GeomCombination.html","topicUid":"Hi.Geom.GeomCombination","type":"Class"},{"name":"GeomUtil","href":"Hi.Geom.GeomUtil.html","topicHref":"Hi.Geom.GeomUtil.html","topicUid":"Hi.Geom.GeomUtil","type":"Class"},{"name":"IExpandToBox2d","href":"Hi.Geom.IExpandToBox2d.html","topicHref":"Hi.Geom.IExpandToBox2d.html","topicUid":"Hi.Geom.IExpandToBox2d","type":"Interface"},{"name":"IExpandToBox3d","href":"Hi.Geom.IExpandToBox3d.html","topicHref":"Hi.Geom.IExpandToBox3d.html","topicUid":"Hi.Geom.IExpandToBox3d","type":"Interface"},{"name":"IFlat3d","href":"Hi.Geom.IFlat3d.html","topicHref":"Hi.Geom.IFlat3d.html","topicUid":"Hi.Geom.IFlat3d","type":"Interface"},{"name":"IGenStl","href":"Hi.Geom.IGenStl.html","topicHref":"Hi.Geom.IGenStl.html","topicUid":"Hi.Geom.IGenStl","type":"Interface"},{"name":"IGeomProperty","href":"Hi.Geom.IGeomProperty.html","topicHref":"Hi.Geom.IGeomProperty.html","topicUid":"Hi.Geom.IGeomProperty","type":"Interface"},{"name":"IGetStl","href":"Hi.Geom.IGetStl.html","topicHref":"Hi.Geom.IGetStl.html","topicUid":"Hi.Geom.IGetStl","type":"Interface"},{"name":"IGetZrContour","href":"Hi.Geom.IGetZrContour.html","topicHref":"Hi.Geom.IGetZrContour.html","topicUid":"Hi.Geom.IGetZrContour","type":"Interface"},{"name":"IGetZrList","href":"Hi.Geom.IGetZrList.html","topicHref":"Hi.Geom.IGetZrList.html","topicUid":"Hi.Geom.IGetZrList","type":"Interface"},{"name":"IStlSource","href":"Hi.Geom.IStlSource.html","topicHref":"Hi.Geom.IStlSource.html","topicUid":"Hi.Geom.IStlSource","type":"Interface"},{"name":"ITri3d","href":"Hi.Geom.ITri3d.html","topicHref":"Hi.Geom.ITri3d.html","topicUid":"Hi.Geom.ITri3d","type":"Interface"},{"name":"IVec","href":"Hi.Geom.IVec-1.html","topicHref":"Hi.Geom.IVec-1.html","topicUid":"Hi.Geom.IVec`1","type":"Interface"},{"name":"IZrListSourceProperty","href":"Hi.Geom.IZrListSourceProperty.html","topicHref":"Hi.Geom.IZrListSourceProperty.html","topicUid":"Hi.Geom.IZrListSourceProperty","type":"Interface"},{"name":"Mat4d","href":"Hi.Geom.Mat4d.html","topicHref":"Hi.Geom.Mat4d.html","topicUid":"Hi.Geom.Mat4d","type":"Class"},{"name":"Mat4d.IndexFlag","href":"Hi.Geom.Mat4d.IndexFlag.html","topicHref":"Hi.Geom.Mat4d.IndexFlag.html","topicUid":"Hi.Geom.Mat4d.IndexFlag","type":"Enum"},{"name":"MathNetUtil","href":"Hi.Geom.MathNetUtil.html","topicHref":"Hi.Geom.MathNetUtil.html","topicUid":"Hi.Geom.MathNetUtil","type":"Class"},{"name":"MathUtil","href":"Hi.Geom.MathUtil.html","topicHref":"Hi.Geom.MathUtil.html","topicUid":"Hi.Geom.MathUtil","type":"Class"},{"name":"NativeFraction","href":"Hi.Geom.NativeFraction.html","topicHref":"Hi.Geom.NativeFraction.html","topicUid":"Hi.Geom.NativeFraction","type":"Class"},{"name":"NativeStl","href":"Hi.Geom.NativeStl.html","topicHref":"Hi.Geom.NativeStl.html","topicUid":"Hi.Geom.NativeStl","type":"Class"},{"name":"NativeTopoStld","href":"Hi.Geom.NativeTopoStld.html","topicHref":"Hi.Geom.NativeTopoStld.html","topicUid":"Hi.Geom.NativeTopoStld","type":"Class"},{"name":"NativeTopoStlfr","href":"Hi.Geom.NativeTopoStlfr.html","topicHref":"Hi.Geom.NativeTopoStlfr.html","topicUid":"Hi.Geom.NativeTopoStlfr","type":"Class"},{"name":"ObjUtil","href":"Hi.Geom.ObjUtil.html","topicHref":"Hi.Geom.ObjUtil.html","topicUid":"Hi.Geom.ObjUtil","type":"Class"},{"name":"PairZr","href":"Hi.Geom.PairZr.html","topicHref":"Hi.Geom.PairZr.html","topicUid":"Hi.Geom.PairZr","type":"Class"},{"name":"PairZrUtil","href":"Hi.Geom.PairZrUtil.html","topicHref":"Hi.Geom.PairZrUtil.html","topicUid":"Hi.Geom.PairZrUtil","type":"Class"},{"name":"PlyUtil","href":"Hi.Geom.PlyUtil.html","topicHref":"Hi.Geom.PlyUtil.html","topicUid":"Hi.Geom.PlyUtil","type":"Class"},{"name":"Polar3d","href":"Hi.Geom.Polar3d.html","topicHref":"Hi.Geom.Polar3d.html","topicUid":"Hi.Geom.Polar3d","type":"Class"},{"name":"Segment3d","href":"Hi.Geom.Segment3d.html","topicHref":"Hi.Geom.Segment3d.html","topicUid":"Hi.Geom.Segment3d","type":"Class"},{"name":"Stl","href":"Hi.Geom.Stl.html","topicHref":"Hi.Geom.Stl.html","topicUid":"Hi.Geom.Stl","type":"Class"},{"name":"Stl.StlType","href":"Hi.Geom.Stl.StlType.html","topicHref":"Hi.Geom.Stl.StlType.html","topicUid":"Hi.Geom.Stl.StlType","type":"Enum"},{"name":"StlFile","href":"Hi.Geom.StlFile.html","topicHref":"Hi.Geom.StlFile.html","topicUid":"Hi.Geom.StlFile","type":"Class"},{"name":"StlFuncHost","href":"Hi.Geom.StlFuncHost.html","topicHref":"Hi.Geom.StlFuncHost.html","topicUid":"Hi.Geom.StlFuncHost","type":"Class"},{"name":"StlUtil","href":"Hi.Geom.StlUtil.html","topicHref":"Hi.Geom.StlUtil.html","topicUid":"Hi.Geom.StlUtil","type":"Class"},{"name":"TransformationGeom","href":"Hi.Geom.TransformationGeom.html","topicHref":"Hi.Geom.TransformationGeom.html","topicUid":"Hi.Geom.TransformationGeom","type":"Class"},{"name":"Tri3d","href":"Hi.Geom.Tri3d.html","topicHref":"Hi.Geom.Tri3d.html","topicUid":"Hi.Geom.Tri3d","type":"Class"},{"name":"Tri3dUtil","href":"Hi.Geom.Tri3dUtil.html","topicHref":"Hi.Geom.Tri3dUtil.html","topicUid":"Hi.Geom.Tri3dUtil","type":"Class"},{"name":"Vec2d","href":"Hi.Geom.Vec2d.html","topicHref":"Hi.Geom.Vec2d.html","topicUid":"Hi.Geom.Vec2d","type":"Class"},{"name":"Vec2i","href":"Hi.Geom.Vec2i.html","topicHref":"Hi.Geom.Vec2i.html","topicUid":"Hi.Geom.Vec2i","type":"Class"},{"name":"Vec3d","href":"Hi.Geom.Vec3d.html","topicHref":"Hi.Geom.Vec3d.html","topicUid":"Hi.Geom.Vec3d","type":"Class"}]},{"name":"Hi.Geom.Resolution","href":"Hi.Geom.Resolution.html","topicHref":"Hi.Geom.Resolution.html","topicUid":"Hi.Geom.Resolution","type":"Namespace","items":[{"name":"IPolarResolution2d","href":"Hi.Geom.Resolution.IPolarResolution2d.html","topicHref":"Hi.Geom.Resolution.IPolarResolution2d.html","topicUid":"Hi.Geom.Resolution.IPolarResolution2d","type":"Interface"},{"name":"IPolarResolution2dSourceProperty","href":"Hi.Geom.Resolution.IPolarResolution2dSourceProperty.html","topicHref":"Hi.Geom.Resolution.IPolarResolution2dSourceProperty.html","topicUid":"Hi.Geom.Resolution.IPolarResolution2dSourceProperty","type":"Interface"},{"name":"PolarResolution2d","href":"Hi.Geom.Resolution.PolarResolution2d.html","topicHref":"Hi.Geom.Resolution.PolarResolution2d.html","topicUid":"Hi.Geom.Resolution.PolarResolution2d","type":"Class"}]},{"name":"Hi.Geom.Solvers","href":"Hi.Geom.Solvers.html","topicHref":"Hi.Geom.Solvers.html","topicUid":"Hi.Geom.Solvers","type":"Namespace","items":[{"name":"BinarySolverUtil","href":"Hi.Geom.Solvers.BinarySolverUtil.html","topicHref":"Hi.Geom.Solvers.BinarySolverUtil.html","topicUid":"Hi.Geom.Solvers.BinarySolverUtil","type":"Class"},{"name":"BinarySolvingEntry","href":"Hi.Geom.Solvers.BinarySolvingEntry.html","topicHref":"Hi.Geom.Solvers.BinarySolvingEntry.html","topicUid":"Hi.Geom.Solvers.BinarySolvingEntry","type":"Class"},{"name":"DeepSolvingStatus","href":"Hi.Geom.Solvers.DeepSolvingStatus.html","topicHref":"Hi.Geom.Solvers.DeepSolvingStatus.html","topicUid":"Hi.Geom.Solvers.DeepSolvingStatus","type":"Class"},{"name":"NumericalSolver","href":"Hi.Geom.Solvers.NumericalSolver.html","topicHref":"Hi.Geom.Solvers.NumericalSolver.html","topicUid":"Hi.Geom.Solvers.NumericalSolver","type":"Class"},{"name":"NumericalSolver.GetRepondsDelegate","href":"Hi.Geom.Solvers.NumericalSolver.GetRepondsDelegate.html","topicHref":"Hi.Geom.Solvers.NumericalSolver.GetRepondsDelegate.html","topicUid":"Hi.Geom.Solvers.NumericalSolver.GetRepondsDelegate","type":"Delegate"},{"name":"NumericalSolver.SetParasDelegate","href":"Hi.Geom.Solvers.NumericalSolver.SetParasDelegate.html","topicHref":"Hi.Geom.Solvers.NumericalSolver.SetParasDelegate.html","topicUid":"Hi.Geom.Solvers.NumericalSolver.SetParasDelegate","type":"Delegate"},{"name":"SolverUtil","href":"Hi.Geom.Solvers.SolverUtil.html","topicHref":"Hi.Geom.Solvers.SolverUtil.html","topicUid":"Hi.Geom.Solvers.SolverUtil","type":"Class"},{"name":"SolvingResult","href":"Hi.Geom.Solvers.SolvingResult.html","topicHref":"Hi.Geom.Solvers.SolvingResult.html","topicUid":"Hi.Geom.Solvers.SolvingResult","type":"Class"},{"name":"SolvingStatus","href":"Hi.Geom.Solvers.SolvingStatus.html","topicHref":"Hi.Geom.Solvers.SolvingStatus.html","topicUid":"Hi.Geom.Solvers.SolvingStatus","type":"Enum"},{"name":"SolvingTerm","href":"Hi.Geom.Solvers.SolvingTerm.html","topicHref":"Hi.Geom.Solvers.SolvingTerm.html","topicUid":"Hi.Geom.Solvers.SolvingTerm","type":"Enum"}]},{"name":"Hi.Geom.Topo","href":"Hi.Geom.Topo.html","topicHref":"Hi.Geom.Topo.html","topicUid":"Hi.Geom.Topo","type":"Namespace","items":[{"name":"TopoLine3Hfr","href":"Hi.Geom.Topo.TopoLine3Hfr.html","topicHref":"Hi.Geom.Topo.TopoLine3Hfr.html","topicUid":"Hi.Geom.Topo.TopoLine3Hfr","type":"Class"},{"name":"TopoLine3StockHfr","href":"Hi.Geom.Topo.TopoLine3StockHfr.html","topicHref":"Hi.Geom.Topo.TopoLine3StockHfr.html","topicUid":"Hi.Geom.Topo.TopoLine3StockHfr","type":"Class"},{"name":"TopoPoint3Hfr","href":"Hi.Geom.Topo.TopoPoint3Hfr.html","topicHref":"Hi.Geom.Topo.TopoPoint3Hfr.html","topicUid":"Hi.Geom.Topo.TopoPoint3Hfr","type":"Class"},{"name":"TopoPoint3StockHfr","href":"Hi.Geom.Topo.TopoPoint3StockHfr.html","topicHref":"Hi.Geom.Topo.TopoPoint3StockHfr.html","topicUid":"Hi.Geom.Topo.TopoPoint3StockHfr","type":"Class"},{"name":"TopoStl3Hfr","href":"Hi.Geom.Topo.TopoStl3Hfr.html","topicHref":"Hi.Geom.Topo.TopoStl3Hfr.html","topicUid":"Hi.Geom.Topo.TopoStl3Hfr","type":"Class"},{"name":"TopoStl3HfrFlatDisplayee","href":"Hi.Geom.Topo.TopoStl3HfrFlatDisplayee.html","topicHref":"Hi.Geom.Topo.TopoStl3HfrFlatDisplayee.html","topicUid":"Hi.Geom.Topo.TopoStl3HfrFlatDisplayee","type":"Class"},{"name":"TopoStl3HfrSmoothDisplayee","href":"Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee.html","topicHref":"Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee.html","topicUid":"Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee","type":"Class"},{"name":"TopoTri3Hfr","href":"Hi.Geom.Topo.TopoTri3Hfr.html","topicHref":"Hi.Geom.Topo.TopoTri3Hfr.html","topicUid":"Hi.Geom.Topo.TopoTri3Hfr","type":"Class"},{"name":"TopoTri3StockHfr","href":"Hi.Geom.Topo.TopoTri3StockHfr.html","topicHref":"Hi.Geom.Topo.TopoTri3StockHfr.html","topicUid":"Hi.Geom.Topo.TopoTri3StockHfr","type":"Class"},{"name":"Vec3Hfr","href":"Hi.Geom.Topo.Vec3Hfr.html","topicHref":"Hi.Geom.Topo.Vec3Hfr.html","topicUid":"Hi.Geom.Topo.Vec3Hfr","type":"Struct"}]},{"name":"Hi.Geom.UnitUtils","href":"Hi.Geom.UnitUtils.html","topicHref":"Hi.Geom.UnitUtils.html","topicUid":"Hi.Geom.UnitUtils","type":"Namespace","items":[{"name":"PhysicsUnit","href":"Hi.Geom.UnitUtils.PhysicsUnit.html","topicHref":"Hi.Geom.UnitUtils.PhysicsUnit.html","topicUid":"Hi.Geom.UnitUtils.PhysicsUnit","type":"Enum"},{"name":"StringValueAttribute","href":"Hi.Geom.UnitUtils.StringValueAttribute.html","topicHref":"Hi.Geom.UnitUtils.StringValueAttribute.html","topicUid":"Hi.Geom.UnitUtils.StringValueAttribute","type":"Class"},{"name":"UnitConvertUtil","href":"Hi.Geom.UnitUtils.UnitConvertUtil.html","topicHref":"Hi.Geom.UnitUtils.UnitConvertUtil.html","topicUid":"Hi.Geom.UnitUtils.UnitConvertUtil","type":"Class"}]},{"name":"Hi.Grpcs","href":"Hi.Grpcs.html","topicHref":"Hi.Grpcs.html","topicUid":"Hi.Grpcs","type":"Namespace","items":[{"name":"ClStripService","href":"Hi.Grpcs.ClStripService.html","topicHref":"Hi.Grpcs.ClStripService.html","topicUid":"Hi.Grpcs.ClStripService","type":"Class"},{"name":"ClStripService.ClStripServiceBase","href":"Hi.Grpcs.ClStripService.ClStripServiceBase.html","topicHref":"Hi.Grpcs.ClStripService.ClStripServiceBase.html","topicUid":"Hi.Grpcs.ClStripService.ClStripServiceBase","type":"Class"},{"name":"ClStripService.ClStripServiceClient","href":"Hi.Grpcs.ClStripService.ClStripServiceClient.html","topicHref":"Hi.Grpcs.ClStripService.ClStripServiceClient.html","topicUid":"Hi.Grpcs.ClStripService.ClStripServiceClient","type":"Class"},{"name":"ClStripServiceReflection","href":"Hi.Grpcs.ClStripServiceReflection.html","topicHref":"Hi.Grpcs.ClStripServiceReflection.html","topicUid":"Hi.Grpcs.ClStripServiceReflection","type":"Class"},{"name":"ClStripServiceRunner","href":"Hi.Grpcs.ClStripServiceRunner.html","topicHref":"Hi.Grpcs.ClStripServiceRunner.html","topicUid":"Hi.Grpcs.ClStripServiceRunner","type":"Class"},{"name":"DictionaryStep","href":"Hi.Grpcs.DictionaryStep.html","topicHref":"Hi.Grpcs.DictionaryStep.html","topicUid":"Hi.Grpcs.DictionaryStep","type":"Class"},{"name":"PlayerService","href":"Hi.Grpcs.PlayerService.html","topicHref":"Hi.Grpcs.PlayerService.html","topicUid":"Hi.Grpcs.PlayerService","type":"Class"},{"name":"PlayerService.PlayerServiceBase","href":"Hi.Grpcs.PlayerService.PlayerServiceBase.html","topicHref":"Hi.Grpcs.PlayerService.PlayerServiceBase.html","topicUid":"Hi.Grpcs.PlayerService.PlayerServiceBase","type":"Class"},{"name":"PlayerService.PlayerServiceClient","href":"Hi.Grpcs.PlayerService.PlayerServiceClient.html","topicHref":"Hi.Grpcs.PlayerService.PlayerServiceClient.html","topicUid":"Hi.Grpcs.PlayerService.PlayerServiceClient","type":"Class"},{"name":"PlayerServiceReflection","href":"Hi.Grpcs.PlayerServiceReflection.html","topicHref":"Hi.Grpcs.PlayerServiceReflection.html","topicUid":"Hi.Grpcs.PlayerServiceReflection","type":"Class"},{"name":"PlayerServiceRunner","href":"Hi.Grpcs.PlayerServiceRunner.html","topicHref":"Hi.Grpcs.PlayerServiceRunner.html","topicUid":"Hi.Grpcs.PlayerServiceRunner","type":"Class"}]},{"name":"Hi.HiNcKits","href":"Hi.HiNcKits.html","topicHref":"Hi.HiNcKits.html","topicUid":"Hi.HiNcKits","type":"Namespace","items":[{"name":"BasePathEnum","href":"Hi.HiNcKits.BasePathEnum.html","topicHref":"Hi.HiNcKits.BasePathEnum.html","topicUid":"Hi.HiNcKits.BasePathEnum","type":"Enum"},{"name":"HiNcHost","href":"Hi.HiNcKits.HiNcHost.html","topicHref":"Hi.HiNcKits.HiNcHost.html","topicUid":"Hi.HiNcKits.HiNcHost","type":"Class"},{"name":"LocalApp","href":"Hi.HiNcKits.LocalApp.html","topicHref":"Hi.HiNcKits.LocalApp.html","topicUid":"Hi.HiNcKits.LocalApp","type":"Class"},{"name":"LocalAppConfig","href":"Hi.HiNcKits.LocalAppConfig.html","topicHref":"Hi.HiNcKits.LocalAppConfig.html","topicUid":"Hi.HiNcKits.LocalAppConfig","type":"Class"},{"name":"PlayerDivConfig","href":"Hi.HiNcKits.PlayerDivConfig.html","topicHref":"Hi.HiNcKits.PlayerDivConfig.html","topicUid":"Hi.HiNcKits.PlayerDivConfig","type":"Class"},{"name":"ProxyConfig","href":"Hi.HiNcKits.ProxyConfig.html","topicHref":"Hi.HiNcKits.ProxyConfig.html","topicUid":"Hi.HiNcKits.ProxyConfig","type":"Class"},{"name":"UserConfig","href":"Hi.HiNcKits.UserConfig.html","topicHref":"Hi.HiNcKits.UserConfig.html","topicUid":"Hi.HiNcKits.UserConfig","type":"Class"},{"name":"UserService","href":"Hi.HiNcKits.UserService.html","topicHref":"Hi.HiNcKits.UserService.html","topicUid":"Hi.HiNcKits.UserService","type":"Class"}]},{"name":"Hi.Licenses","href":"Hi.Licenses.html","topicHref":"Hi.Licenses.html","topicUid":"Hi.Licenses","type":"Namespace","items":[{"name":"AuthFeature","href":"Hi.Licenses.AuthFeature.html","topicHref":"Hi.Licenses.AuthFeature.html","topicUid":"Hi.Licenses.AuthFeature","type":"Enum"},{"name":"AuthorizationFailedEventArgs","href":"Hi.Licenses.AuthorizationFailedEventArgs.html","topicHref":"Hi.Licenses.AuthorizationFailedEventArgs.html","topicUid":"Hi.Licenses.AuthorizationFailedEventArgs","type":"Class"},{"name":"BlockType","href":"Hi.Licenses.BlockType.html","topicHref":"Hi.Licenses.BlockType.html","topicUid":"Hi.Licenses.BlockType","type":"Enum"},{"name":"License","href":"Hi.Licenses.License.html","topicHref":"Hi.Licenses.License.html","topicUid":"Hi.Licenses.License","type":"Class"},{"name":"LicenseType","href":"Hi.Licenses.LicenseType.html","topicHref":"Hi.Licenses.LicenseType.html","topicUid":"Hi.Licenses.LicenseType","type":"Enum"}]},{"name":"Hi.Machining","href":"Hi.Machining.html","topicHref":"Hi.Machining.html","topicUid":"Hi.Machining","type":"Namespace","items":[{"name":"FreeformRemover","href":"Hi.Machining.FreeformRemover.html","topicHref":"Hi.Machining.FreeformRemover.html","topicUid":"Hi.Machining.FreeformRemover","type":"Class"},{"name":"ICutter","href":"Hi.Machining.ICutter.html","topicHref":"Hi.Machining.ICutter.html","topicUid":"Hi.Machining.ICutter","type":"Interface"},{"name":"ICutterAnchorable","href":"Hi.Machining.ICutterAnchorable.html","topicHref":"Hi.Machining.ICutterAnchorable.html","topicUid":"Hi.Machining.ICutterAnchorable","type":"Interface"},{"name":"IGetSweptable","href":"Hi.Machining.IGetSweptable.html","topicHref":"Hi.Machining.IGetSweptable.html","topicUid":"Hi.Machining.IGetSweptable","type":"Interface"},{"name":"IMachiningTool","href":"Hi.Machining.IMachiningTool.html","topicHref":"Hi.Machining.IMachiningTool.html","topicUid":"Hi.Machining.IMachiningTool","type":"Interface"},{"name":"IVolumeRemover","href":"Hi.Machining.IVolumeRemover.html","topicHref":"Hi.Machining.IVolumeRemover.html","topicUid":"Hi.Machining.IVolumeRemover","type":"Interface"},{"name":"MachiningToolHouse","href":"Hi.Machining.MachiningToolHouse.html","topicHref":"Hi.Machining.MachiningToolHouse.html","topicUid":"Hi.Machining.MachiningToolHouse","type":"Class"},{"name":"MachiningVolumeRemovalProc","href":"Hi.Machining.MachiningVolumeRemovalProc.html","topicHref":"Hi.Machining.MachiningVolumeRemovalProc.html","topicUid":"Hi.Machining.MachiningVolumeRemovalProc","type":"Class"},{"name":"MachiningVolumeRemovalProc.StepMotionSnapshot","href":"Hi.Machining.MachiningVolumeRemovalProc.StepMotionSnapshot.html","topicHref":"Hi.Machining.MachiningVolumeRemovalProc.StepMotionSnapshot.html","topicUid":"Hi.Machining.MachiningVolumeRemovalProc.StepMotionSnapshot","type":"Class"},{"name":"MatInterpolationKit","href":"Hi.Machining.MatInterpolationKit.html","topicHref":"Hi.Machining.MatInterpolationKit.html","topicUid":"Hi.Machining.MatInterpolationKit","type":"Class"},{"name":"MatRelation","href":"Hi.Machining.MatRelation.html","topicHref":"Hi.Machining.MatRelation.html","topicUid":"Hi.Machining.MatRelation","type":"Enum"},{"name":"MatRelationUtil","href":"Hi.Machining.MatRelationUtil.html","topicHref":"Hi.Machining.MatRelationUtil.html","topicUid":"Hi.Machining.MatRelationUtil","type":"Class"},{"name":"Sweptable","href":"Hi.Machining.Sweptable.html","topicHref":"Hi.Machining.Sweptable.html","topicUid":"Hi.Machining.Sweptable","type":"Class"},{"name":"SweptableUtil","href":"Hi.Machining.SweptableUtil.html","topicHref":"Hi.Machining.SweptableUtil.html","topicUid":"Hi.Machining.SweptableUtil","type":"Class"},{"name":"ToolNotFoundException","href":"Hi.Machining.ToolNotFoundException.html","topicHref":"Hi.Machining.ToolNotFoundException.html","topicUid":"Hi.Machining.ToolNotFoundException","type":"Class"}]},{"name":"Hi.Machining.MachiningEquipmentUtils","href":"Hi.Machining.MachiningEquipmentUtils.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.html","topicUid":"Hi.Machining.MachiningEquipmentUtils","type":"Namespace","items":[{"name":"CollidableComponentEnum","href":"Hi.Machining.MachiningEquipmentUtils.CollidableComponentEnum.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.CollidableComponentEnum.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.CollidableComponentEnum","type":"Enum"},{"name":"IGetMachiningEquipment","href":"Hi.Machining.MachiningEquipmentUtils.IGetMachiningEquipment.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.IGetMachiningEquipment.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.IGetMachiningEquipment","type":"Interface"},{"name":"IMachiningEquipment","href":"Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment","type":"Interface"},{"name":"MachiningEquipment","href":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipment","type":"Class"},{"name":"MachiningEquipmentCollisionIndex","href":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndex.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndex.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndex","type":"Class"},{"name":"MachiningEquipmentCollisionIndexPairsSource","href":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndexPairsSource.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndexPairsSource.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndexPairsSource","type":"Class"},{"name":"MachiningEquipmentUtil","href":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil","type":"Class"}]},{"name":"Hi.MachiningProcs","href":"Hi.MachiningProcs.html","topicHref":"Hi.MachiningProcs.html","topicUid":"Hi.MachiningProcs","type":"Namespace","items":[{"name":"ConfigStepFunc","href":"Hi.MachiningProcs.ConfigStepFunc.html","topicHref":"Hi.MachiningProcs.ConfigStepFunc.html","topicUid":"Hi.MachiningProcs.ConfigStepFunc","type":"Delegate"},{"name":"IMachiningProjectGetter","href":"Hi.MachiningProcs.IMachiningProjectGetter.html","topicHref":"Hi.MachiningProcs.IMachiningProjectGetter.html","topicUid":"Hi.MachiningProcs.IMachiningProjectGetter","type":"Interface"},{"name":"IProjectService","href":"Hi.MachiningProcs.IProjectService.html","topicHref":"Hi.MachiningProcs.IProjectService.html","topicUid":"Hi.MachiningProcs.IProjectService","type":"Interface"},{"name":"LocalProjectService","href":"Hi.MachiningProcs.LocalProjectService.html","topicHref":"Hi.MachiningProcs.LocalProjectService.html","topicUid":"Hi.MachiningProcs.LocalProjectService","type":"Class"},{"name":"LocalProjectService.MachiningProjectChangedDelegate","href":"Hi.MachiningProcs.LocalProjectService.MachiningProjectChangedDelegate.html","topicHref":"Hi.MachiningProcs.LocalProjectService.MachiningProjectChangedDelegate.html","topicUid":"Hi.MachiningProcs.LocalProjectService.MachiningProjectChangedDelegate","type":"Delegate"},{"name":"MachiningActRunner","href":"Hi.MachiningProcs.MachiningActRunner.html","topicHref":"Hi.MachiningProcs.MachiningActRunner.html","topicUid":"Hi.MachiningProcs.MachiningActRunner","type":"Class"},{"name":"MachiningActRunner.MachiningStepBuiltDelegate","href":"Hi.MachiningProcs.MachiningActRunner.MachiningStepBuiltDelegate.html","topicHref":"Hi.MachiningProcs.MachiningActRunner.MachiningStepBuiltDelegate.html","topicUid":"Hi.MachiningProcs.MachiningActRunner.MachiningStepBuiltDelegate","type":"Delegate"},{"name":"MachiningActRunnerConfig","href":"Hi.MachiningProcs.MachiningActRunnerConfig.html","topicHref":"Hi.MachiningProcs.MachiningActRunnerConfig.html","topicUid":"Hi.MachiningProcs.MachiningActRunnerConfig","type":"Class"},{"name":"MachiningParallelProc","href":"Hi.MachiningProcs.MachiningParallelProc.html","topicHref":"Hi.MachiningProcs.MachiningParallelProc.html","topicUid":"Hi.MachiningProcs.MachiningParallelProc","type":"Class"},{"name":"MachiningParallelProc.StepTaskBundle","href":"Hi.MachiningProcs.MachiningParallelProc.StepTaskBundle.html","topicHref":"Hi.MachiningProcs.MachiningParallelProc.StepTaskBundle.html","topicUid":"Hi.MachiningProcs.MachiningParallelProc.StepTaskBundle","type":"Class"},{"name":"MachiningParallelProc.SubstractionResult","href":"Hi.MachiningProcs.MachiningParallelProc.SubstractionResult.html","topicHref":"Hi.MachiningProcs.MachiningParallelProc.SubstractionResult.html","topicUid":"Hi.MachiningProcs.MachiningParallelProc.SubstractionResult","type":"Class"},{"name":"MachiningProject","href":"Hi.MachiningProcs.MachiningProject.html","topicHref":"Hi.MachiningProcs.MachiningProject.html","topicUid":"Hi.MachiningProcs.MachiningProject","type":"Class"},{"name":"MachiningProjectDisplayee","href":"Hi.MachiningProcs.MachiningProjectDisplayee.html","topicHref":"Hi.MachiningProcs.MachiningProjectDisplayee.html","topicUid":"Hi.MachiningProcs.MachiningProjectDisplayee","type":"Class"},{"name":"MachiningSession","href":"Hi.MachiningProcs.MachiningSession.html","topicHref":"Hi.MachiningProcs.MachiningSession.html","topicUid":"Hi.MachiningProcs.MachiningSession","type":"Class"},{"name":"MillingUtil","href":"Hi.MachiningProcs.MillingUtil.html","topicHref":"Hi.MachiningProcs.MillingUtil.html","topicUid":"Hi.MachiningProcs.MillingUtil","type":"Class"},{"name":"NcRunnerSessionState","href":"Hi.MachiningProcs.NcRunnerSessionState.html","topicHref":"Hi.MachiningProcs.NcRunnerSessionState.html","topicUid":"Hi.MachiningProcs.NcRunnerSessionState","type":"Class"},{"name":"ProxyProjectService","href":"Hi.MachiningProcs.ProxyProjectService.html","topicHref":"Hi.MachiningProcs.ProxyProjectService.html","topicUid":"Hi.MachiningProcs.ProxyProjectService","type":"Class"},{"name":"RenderingFlag","href":"Hi.MachiningProcs.RenderingFlag.html","topicHref":"Hi.MachiningProcs.RenderingFlag.html","topicUid":"Hi.MachiningProcs.RenderingFlag","type":"Enum"},{"name":"SessionMessage","href":"Hi.MachiningProcs.SessionMessage.html","topicHref":"Hi.MachiningProcs.SessionMessage.html","topicUid":"Hi.MachiningProcs.SessionMessage","type":"Class"},{"name":"SessionMessagePack","href":"Hi.MachiningProcs.SessionMessagePack.html","topicHref":"Hi.MachiningProcs.SessionMessagePack.html","topicUid":"Hi.MachiningProcs.SessionMessagePack","type":"Class"},{"name":"SessionProgress","href":"Hi.MachiningProcs.SessionProgress.html","topicHref":"Hi.MachiningProcs.SessionProgress.html","topicUid":"Hi.MachiningProcs.SessionProgress","type":"Class"},{"name":"SessionProgress.FilterFlag","href":"Hi.MachiningProcs.SessionProgress.FilterFlag.html","topicHref":"Hi.MachiningProcs.SessionProgress.FilterFlag.html","topicUid":"Hi.MachiningProcs.SessionProgress.FilterFlag","type":"Enum"},{"name":"SessionShell","href":"Hi.MachiningProcs.SessionShell.html","topicHref":"Hi.MachiningProcs.SessionShell.html","topicUid":"Hi.MachiningProcs.SessionShell","type":"Class"},{"name":"SessionShellController","href":"Hi.MachiningProcs.SessionShellController.html","topicHref":"Hi.MachiningProcs.SessionShellController.html","topicUid":"Hi.MachiningProcs.SessionShellController","type":"Class"},{"name":"SetupController","href":"Hi.MachiningProcs.SetupController.html","topicHref":"Hi.MachiningProcs.SetupController.html","topicUid":"Hi.MachiningProcs.SetupController","type":"Class"},{"name":"SpindleSpeedCache","href":"Hi.MachiningProcs.SpindleSpeedCache.html","topicHref":"Hi.MachiningProcs.SpindleSpeedCache.html","topicUid":"Hi.MachiningProcs.SpindleSpeedCache","type":"Class"}]},{"name":"Hi.MachiningSteps","href":"Hi.MachiningSteps.html","topicHref":"Hi.MachiningSteps.html","topicUid":"Hi.MachiningSteps","type":"Namespace","items":[{"name":"IFlagText","href":"Hi.MachiningSteps.IFlagText.html","topicHref":"Hi.MachiningSteps.IFlagText.html","topicUid":"Hi.MachiningSteps.IFlagText","type":"Interface"},{"name":"IMachiningService","href":"Hi.MachiningSteps.IMachiningService.html","topicHref":"Hi.MachiningSteps.IMachiningService.html","topicUid":"Hi.MachiningSteps.IMachiningService","type":"Interface"},{"name":"MachineMotionStep","href":"Hi.MachiningSteps.MachineMotionStep.html","topicHref":"Hi.MachiningSteps.MachineMotionStep.html","topicUid":"Hi.MachiningSteps.MachineMotionStep","type":"Class"},{"name":"MachiningStep","href":"Hi.MachiningSteps.MachiningStep.html","topicHref":"Hi.MachiningSteps.MachiningStep.html","topicUid":"Hi.MachiningSteps.MachiningStep","type":"Class"},{"name":"MachiningStep.CollidedKeyPair","href":"Hi.MachiningSteps.MachiningStep.CollidedKeyPair.html","topicHref":"Hi.MachiningSteps.MachiningStep.CollidedKeyPair.html","topicUid":"Hi.MachiningSteps.MachiningStep.CollidedKeyPair","type":"Class"},{"name":"MachiningStepUtil","href":"Hi.MachiningSteps.MachiningStepUtil.html","topicHref":"Hi.MachiningSteps.MachiningStepUtil.html","topicUid":"Hi.MachiningSteps.MachiningStepUtil","type":"Class"},{"name":"PresentAccess","href":"Hi.MachiningSteps.PresentAccess.html","topicHref":"Hi.MachiningSteps.PresentAccess.html","topicUid":"Hi.MachiningSteps.PresentAccess","type":"Class"},{"name":"PresentAttribute","href":"Hi.MachiningSteps.PresentAttribute.html","topicHref":"Hi.MachiningSteps.PresentAttribute.html","topicUid":"Hi.MachiningSteps.PresentAttribute","type":"Class"},{"name":"PropertyAccess","href":"Hi.MachiningSteps.PropertyAccess-1.html","topicHref":"Hi.MachiningSteps.PropertyAccess-1.html","topicUid":"Hi.MachiningSteps.PropertyAccess`1","type":"Class"}]},{"name":"Hi.Mapping","href":"Hi.Mapping.html","topicHref":"Hi.Mapping.html","topicUid":"Hi.Mapping","type":"Namespace","items":[{"name":"CsvNcStep","href":"Hi.Mapping.CsvNcStep.html","topicHref":"Hi.Mapping.CsvNcStep.html","topicUid":"Hi.Mapping.CsvNcStep","type":"Class"},{"name":"FileToTimeShotMapping","href":"Hi.Mapping.FileToTimeShotMapping.html","topicHref":"Hi.Mapping.FileToTimeShotMapping.html","topicUid":"Hi.Mapping.FileToTimeShotMapping","type":"Class"},{"name":"IAccelerationShot","href":"Hi.Mapping.IAccelerationShot.html","topicHref":"Hi.Mapping.IAccelerationShot.html","topicUid":"Hi.Mapping.IAccelerationShot","type":"Interface"},{"name":"IForceShot","href":"Hi.Mapping.IForceShot.html","topicHref":"Hi.Mapping.IForceShot.html","topicUid":"Hi.Mapping.IForceShot","type":"Interface"},{"name":"IMomentShot","href":"Hi.Mapping.IMomentShot.html","topicHref":"Hi.Mapping.IMomentShot.html","topicUid":"Hi.Mapping.IMomentShot","type":"Interface"},{"name":"ITimeShot","href":"Hi.Mapping.ITimeShot.html","topicHref":"Hi.Mapping.ITimeShot.html","topicUid":"Hi.Mapping.ITimeShot","type":"Interface"},{"name":"MappingUtil","href":"Hi.Mapping.MappingUtil.html","topicHref":"Hi.Mapping.MappingUtil.html","topicUid":"Hi.Mapping.MappingUtil","type":"Class"},{"name":"StepTimeShotUtil","href":"Hi.Mapping.StepTimeShotUtil.html","topicHref":"Hi.Mapping.StepTimeShotUtil.html","topicUid":"Hi.Mapping.StepTimeShotUtil","type":"Class"},{"name":"StepTimeShotUtil.CycleSamplingMode","href":"Hi.Mapping.StepTimeShotUtil.CycleSamplingMode.html","topicHref":"Hi.Mapping.StepTimeShotUtil.CycleSamplingMode.html","topicUid":"Hi.Mapping.StepTimeShotUtil.CycleSamplingMode","type":"Enum"},{"name":"StepTimeShotUtil.GetTimeShotByFileDelegate","href":"Hi.Mapping.StepTimeShotUtil.GetTimeShotByFileDelegate.html","topicHref":"Hi.Mapping.StepTimeShotUtil.GetTimeShotByFileDelegate.html","topicUid":"Hi.Mapping.StepTimeShotUtil.GetTimeShotByFileDelegate","type":"Delegate"},{"name":"TimeMapping","href":"Hi.Mapping.TimeMapping.html","topicHref":"Hi.Mapping.TimeMapping.html","topicUid":"Hi.Mapping.TimeMapping","type":"Class"}]},{"name":"Hi.Mappings","href":"Hi.Mappings.html","topicHref":"Hi.Mappings.html","topicUid":"Hi.Mappings","type":"Namespace","items":[{"name":"FileTimeSection","href":"Hi.Mappings.FileTimeSection.html","topicHref":"Hi.Mappings.FileTimeSection.html","topicUid":"Hi.Mappings.FileTimeSection","type":"Class"},{"name":"FileTimeSection.TimeOption","href":"Hi.Mappings.FileTimeSection.TimeOption.html","topicHref":"Hi.Mappings.FileTimeSection.TimeOption.html","topicUid":"Hi.Mappings.FileTimeSection.TimeOption","type":"Enum"}]},{"name":"Hi.Mech","href":"Hi.Mech.html","topicHref":"Hi.Mech.html","topicUid":"Hi.Mech","type":"Namespace","items":[{"name":"GeneralMechanism","href":"Hi.Mech.GeneralMechanism.html","topicHref":"Hi.Mech.GeneralMechanism.html","topicUid":"Hi.Mech.GeneralMechanism","type":"Class"},{"name":"IGetAnchorToSolidDictionary","href":"Hi.Mech.IGetAnchorToSolidDictionary.html","topicHref":"Hi.Mech.IGetAnchorToSolidDictionary.html","topicUid":"Hi.Mech.IGetAnchorToSolidDictionary","type":"Interface"},{"name":"IGetMachiningChain","href":"Hi.Mech.IGetMachiningChain.html","topicHref":"Hi.Mech.IGetMachiningChain.html","topicUid":"Hi.Mech.IGetMachiningChain","type":"Interface"},{"name":"IMachiningChain","href":"Hi.Mech.IMachiningChain.html","topicHref":"Hi.Mech.IMachiningChain.html","topicUid":"Hi.Mech.IMachiningChain","type":"Interface"},{"name":"IMachiningChainSource","href":"Hi.Mech.IMachiningChainSource.html","topicHref":"Hi.Mech.IMachiningChainSource.html","topicUid":"Hi.Mech.IMachiningChainSource","type":"Interface"},{"name":"MachiningChainUtil","href":"Hi.Mech.MachiningChainUtil.html","topicHref":"Hi.Mech.MachiningChainUtil.html","topicUid":"Hi.Mech.MachiningChainUtil","type":"Class"}]},{"name":"Hi.Mech.Topo","href":"Hi.Mech.Topo.html","topicHref":"Hi.Mech.Topo.html","topicUid":"Hi.Mech.Topo","type":"Namespace","items":[{"name":"Anchor","href":"Hi.Mech.Topo.Anchor.html","topicHref":"Hi.Mech.Topo.Anchor.html","topicUid":"Hi.Mech.Topo.Anchor","type":"Class"},{"name":"AnchorFuncSource","href":"Hi.Mech.Topo.AnchorFuncSource.html","topicHref":"Hi.Mech.Topo.AnchorFuncSource.html","topicUid":"Hi.Mech.Topo.AnchorFuncSource","type":"Class"},{"name":"AnchoredBoxable","href":"Hi.Mech.Topo.AnchoredBoxable.html","topicHref":"Hi.Mech.Topo.AnchoredBoxable.html","topicUid":"Hi.Mech.Topo.AnchoredBoxable","type":"Class"},{"name":"AnchoredDisplayee","href":"Hi.Mech.Topo.AnchoredDisplayee.html","topicHref":"Hi.Mech.Topo.AnchoredDisplayee.html","topicUid":"Hi.Mech.Topo.AnchoredDisplayee","type":"Class"},{"name":"Asmb","href":"Hi.Mech.Topo.Asmb.html","topicHref":"Hi.Mech.Topo.Asmb.html","topicUid":"Hi.Mech.Topo.Asmb","type":"Class"},{"name":"AsmbDraw","href":"Hi.Mech.Topo.AsmbDraw.html","topicHref":"Hi.Mech.Topo.AsmbDraw.html","topicUid":"Hi.Mech.Topo.AsmbDraw","type":"Class"},{"name":"Branch","href":"Hi.Mech.Topo.Branch.html","topicHref":"Hi.Mech.Topo.Branch.html","topicUid":"Hi.Mech.Topo.Branch","type":"Class"},{"name":"DirectionBranchEntry","href":"Hi.Mech.Topo.DirectionBranchEntry.html","topicHref":"Hi.Mech.Topo.DirectionBranchEntry.html","topicUid":"Hi.Mech.Topo.DirectionBranchEntry","type":"Class"},{"name":"DirectionBranchPackUtil","href":"Hi.Mech.Topo.DirectionBranchPackUtil.html","topicHref":"Hi.Mech.Topo.DirectionBranchPackUtil.html","topicUid":"Hi.Mech.Topo.DirectionBranchPackUtil","type":"Class"},{"name":"DynamicFreeform","href":"Hi.Mech.Topo.DynamicFreeform.html","topicHref":"Hi.Mech.Topo.DynamicFreeform.html","topicUid":"Hi.Mech.Topo.DynamicFreeform","type":"Class"},{"name":"DynamicRotation","href":"Hi.Mech.Topo.DynamicRotation.html","topicHref":"Hi.Mech.Topo.DynamicRotation.html","topicUid":"Hi.Mech.Topo.DynamicRotation","type":"Class"},{"name":"DynamicTranslation","href":"Hi.Mech.Topo.DynamicTranslation.html","topicHref":"Hi.Mech.Topo.DynamicTranslation.html","topicUid":"Hi.Mech.Topo.DynamicTranslation","type":"Class"},{"name":"GeneralTransform","href":"Hi.Mech.Topo.GeneralTransform.html","topicHref":"Hi.Mech.Topo.GeneralTransform.html","topicUid":"Hi.Mech.Topo.GeneralTransform","type":"Class"},{"name":"IAnchoredDisplayee","href":"Hi.Mech.Topo.IAnchoredDisplayee.html","topicHref":"Hi.Mech.Topo.IAnchoredDisplayee.html","topicUid":"Hi.Mech.Topo.IAnchoredDisplayee","type":"Interface"},{"name":"IDynamicRegular","href":"Hi.Mech.Topo.IDynamicRegular.html","topicHref":"Hi.Mech.Topo.IDynamicRegular.html","topicUid":"Hi.Mech.Topo.IDynamicRegular","type":"Interface"},{"name":"IDynamicRotation","href":"Hi.Mech.Topo.IDynamicRotation.html","topicHref":"Hi.Mech.Topo.IDynamicRotation.html","topicUid":"Hi.Mech.Topo.IDynamicRotation","type":"Interface"},{"name":"IDynamicTransformer","href":"Hi.Mech.Topo.IDynamicTransformer.html","topicHref":"Hi.Mech.Topo.IDynamicTransformer.html","topicUid":"Hi.Mech.Topo.IDynamicTransformer","type":"Interface"},{"name":"IGetAnchor","href":"Hi.Mech.Topo.IGetAnchor.html","topicHref":"Hi.Mech.Topo.IGetAnchor.html","topicUid":"Hi.Mech.Topo.IGetAnchor","type":"Interface"},{"name":"IGetAnchoredDisplayeeList","href":"Hi.Mech.Topo.IGetAnchoredDisplayeeList.html","topicHref":"Hi.Mech.Topo.IGetAnchoredDisplayeeList.html","topicUid":"Hi.Mech.Topo.IGetAnchoredDisplayeeList","type":"Interface"},{"name":"IGetAsmb","href":"Hi.Mech.Topo.IGetAsmb.html","topicHref":"Hi.Mech.Topo.IGetAsmb.html","topicUid":"Hi.Mech.Topo.IGetAsmb","type":"Interface"},{"name":"IGetFletchBuckle","href":"Hi.Mech.Topo.IGetFletchBuckle.html","topicHref":"Hi.Mech.Topo.IGetFletchBuckle.html","topicUid":"Hi.Mech.Topo.IGetFletchBuckle","type":"Interface"},{"name":"IGetInverseTransformer","href":"Hi.Mech.Topo.IGetInverseTransformer.html","topicHref":"Hi.Mech.Topo.IGetInverseTransformer.html","topicUid":"Hi.Mech.Topo.IGetInverseTransformer","type":"Interface"},{"name":"IGetTopoIndex","href":"Hi.Mech.Topo.IGetTopoIndex.html","topicHref":"Hi.Mech.Topo.IGetTopoIndex.html","topicUid":"Hi.Mech.Topo.IGetTopoIndex","type":"Interface"},{"name":"IStaticTransformer","href":"Hi.Mech.Topo.IStaticTransformer.html","topicHref":"Hi.Mech.Topo.IStaticTransformer.html","topicUid":"Hi.Mech.Topo.IStaticTransformer","type":"Interface"},{"name":"ITopo","href":"Hi.Mech.Topo.ITopo.html","topicHref":"Hi.Mech.Topo.ITopo.html","topicUid":"Hi.Mech.Topo.ITopo","type":"Interface"},{"name":"ITopoDisplayee","href":"Hi.Mech.Topo.ITopoDisplayee.html","topicHref":"Hi.Mech.Topo.ITopoDisplayee.html","topicUid":"Hi.Mech.Topo.ITopoDisplayee","type":"Interface"},{"name":"ITransformer","href":"Hi.Mech.Topo.ITransformer.html","topicHref":"Hi.Mech.Topo.ITransformer.html","topicUid":"Hi.Mech.Topo.ITransformer","type":"Interface"},{"name":"ITransformerProperty","href":"Hi.Mech.Topo.ITransformerProperty.html","topicHref":"Hi.Mech.Topo.ITransformerProperty.html","topicUid":"Hi.Mech.Topo.ITransformerProperty","type":"Interface"},{"name":"NoTransform","href":"Hi.Mech.Topo.NoTransform.html","topicHref":"Hi.Mech.Topo.NoTransform.html","topicUid":"Hi.Mech.Topo.NoTransform","type":"Class"},{"name":"StackTransformer","href":"Hi.Mech.Topo.StackTransformer.html","topicHref":"Hi.Mech.Topo.StackTransformer.html","topicUid":"Hi.Mech.Topo.StackTransformer","type":"Class"},{"name":"StaticFreeform","href":"Hi.Mech.Topo.StaticFreeform.html","topicHref":"Hi.Mech.Topo.StaticFreeform.html","topicUid":"Hi.Mech.Topo.StaticFreeform","type":"Class"},{"name":"StaticRotation","href":"Hi.Mech.Topo.StaticRotation.html","topicHref":"Hi.Mech.Topo.StaticRotation.html","topicUid":"Hi.Mech.Topo.StaticRotation","type":"Class"},{"name":"StaticTranslation","href":"Hi.Mech.Topo.StaticTranslation.html","topicHref":"Hi.Mech.Topo.StaticTranslation.html","topicUid":"Hi.Mech.Topo.StaticTranslation","type":"Class"},{"name":"TopoDisplayee","href":"Hi.Mech.Topo.TopoDisplayee.html","topicHref":"Hi.Mech.Topo.TopoDisplayee.html","topicUid":"Hi.Mech.Topo.TopoDisplayee","type":"Class"},{"name":"TopoDisplayeeUtil","href":"Hi.Mech.Topo.TopoDisplayeeUtil.html","topicHref":"Hi.Mech.Topo.TopoDisplayeeUtil.html","topicUid":"Hi.Mech.Topo.TopoDisplayeeUtil","type":"Class"},{"name":"TopoReflection","href":"Hi.Mech.Topo.TopoReflection.html","topicHref":"Hi.Mech.Topo.TopoReflection.html","topicUid":"Hi.Mech.Topo.TopoReflection","type":"Class"},{"name":"TopoUtil","href":"Hi.Mech.Topo.TopoUtil.html","topicHref":"Hi.Mech.Topo.TopoUtil.html","topicUid":"Hi.Mech.Topo.TopoUtil","type":"Class"},{"name":"TransformerUtil","href":"Hi.Mech.Topo.TransformerUtil.html","topicHref":"Hi.Mech.Topo.TransformerUtil.html","topicUid":"Hi.Mech.Topo.TransformerUtil","type":"Class"}]},{"name":"Hi.Milling","href":"Hi.Milling.html","topicHref":"Hi.Milling.html","topicUid":"Hi.Milling","type":"Namespace","items":[{"name":"IGetDiameter","href":"Hi.Milling.IGetDiameter.html","topicHref":"Hi.Milling.IGetDiameter.html","topicUid":"Hi.Milling.IGetDiameter","type":"Interface"},{"name":"IGetFluteHeight","href":"Hi.Milling.IGetFluteHeight.html","topicHref":"Hi.Milling.IGetFluteHeight.html","topicUid":"Hi.Milling.IGetFluteHeight","type":"Interface"},{"name":"IGetMillingGeomBrief","href":"Hi.Milling.IGetMillingGeomBrief.html","topicHref":"Hi.Milling.IGetMillingGeomBrief.html","topicUid":"Hi.Milling.IGetMillingGeomBrief","type":"Interface"},{"name":"IGetRadialReliefAngle","href":"Hi.Milling.IGetRadialReliefAngle.html","topicHref":"Hi.Milling.IGetRadialReliefAngle.html","topicUid":"Hi.Milling.IGetRadialReliefAngle","type":"Interface"},{"name":"IMillingGeomBriefAccessor","href":"Hi.Milling.IMillingGeomBriefAccessor.html","topicHref":"Hi.Milling.IMillingGeomBriefAccessor.html","topicUid":"Hi.Milling.IMillingGeomBriefAccessor","type":"Interface"},{"name":"MillingGeomBrief","href":"Hi.Milling.MillingGeomBrief.html","topicHref":"Hi.Milling.MillingGeomBrief.html","topicUid":"Hi.Milling.MillingGeomBrief","type":"Class"},{"name":"MillingRemovalUtil","href":"Hi.Milling.MillingRemovalUtil.html","topicHref":"Hi.Milling.MillingRemovalUtil.html","topicUid":"Hi.Milling.MillingRemovalUtil","type":"Class"},{"name":"SpindleCapability","href":"Hi.Milling.SpindleCapability.html","topicHref":"Hi.Milling.SpindleCapability.html","topicUid":"Hi.Milling.SpindleCapability","type":"Class"}]},{"name":"Hi.Milling.Apts","href":"Hi.Milling.Apts.html","topicHref":"Hi.Milling.Apts.html","topicUid":"Hi.Milling.Apts","type":"Namespace","items":[{"name":"AptDerivative","href":"Hi.Milling.Apts.AptDerivative.html","topicHref":"Hi.Milling.Apts.AptDerivative.html","topicUid":"Hi.Milling.Apts.AptDerivative","type":"Class"},{"name":"BallApt","href":"Hi.Milling.Apts.BallApt.html","topicHref":"Hi.Milling.Apts.BallApt.html","topicUid":"Hi.Milling.Apts.BallApt","type":"Class"},{"name":"BullNoseApt","href":"Hi.Milling.Apts.BullNoseApt.html","topicHref":"Hi.Milling.Apts.BullNoseApt.html","topicUid":"Hi.Milling.Apts.BullNoseApt","type":"Class"},{"name":"ColumnApt","href":"Hi.Milling.Apts.ColumnApt.html","topicHref":"Hi.Milling.Apts.ColumnApt.html","topicUid":"Hi.Milling.Apts.ColumnApt","type":"Class"},{"name":"ConeApt","href":"Hi.Milling.Apts.ConeApt.html","topicHref":"Hi.Milling.Apts.ConeApt.html","topicUid":"Hi.Milling.Apts.ConeApt","type":"Class"},{"name":"ExactColumnApt","href":"Hi.Milling.Apts.ExactColumnApt.html","topicHref":"Hi.Milling.Apts.ExactColumnApt.html","topicUid":"Hi.Milling.Apts.ExactColumnApt","type":"Class"},{"name":"GeneralApt","href":"Hi.Milling.Apts.GeneralApt.html","topicHref":"Hi.Milling.Apts.GeneralApt.html","topicUid":"Hi.Milling.Apts.GeneralApt","type":"Class"},{"name":"IAptAlpha","href":"Hi.Milling.Apts.IAptAlpha.html","topicHref":"Hi.Milling.Apts.IAptAlpha.html","topicUid":"Hi.Milling.Apts.IAptAlpha","type":"Interface"},{"name":"IAptBased","href":"Hi.Milling.Apts.IAptBased.html","topicHref":"Hi.Milling.Apts.IAptBased.html","topicUid":"Hi.Milling.Apts.IAptBased","type":"Interface"},{"name":"IAptBeta","href":"Hi.Milling.Apts.IAptBeta.html","topicHref":"Hi.Milling.Apts.IAptBeta.html","topicUid":"Hi.Milling.Apts.IAptBeta","type":"Interface"},{"name":"IAptRc","href":"Hi.Milling.Apts.IAptRc.html","topicHref":"Hi.Milling.Apts.IAptRc.html","topicUid":"Hi.Milling.Apts.IAptRc","type":"Interface"},{"name":"IAptRr","href":"Hi.Milling.Apts.IAptRr.html","topicHref":"Hi.Milling.Apts.IAptRr.html","topicUid":"Hi.Milling.Apts.IAptRr","type":"Interface"},{"name":"IAptRz","href":"Hi.Milling.Apts.IAptRz.html","topicHref":"Hi.Milling.Apts.IAptRz.html","topicUid":"Hi.Milling.Apts.IAptRz","type":"Interface"},{"name":"IGetApt","href":"Hi.Milling.Apts.IGetApt.html","topicHref":"Hi.Milling.Apts.IGetApt.html","topicUid":"Hi.Milling.Apts.IGetApt","type":"Interface"},{"name":"IGetGeneralApt","href":"Hi.Milling.Apts.IGetGeneralApt.html","topicHref":"Hi.Milling.Apts.IGetGeneralApt.html","topicUid":"Hi.Milling.Apts.IGetGeneralApt","type":"Interface"},{"name":"TaperApt","href":"Hi.Milling.Apts.TaperApt.html","topicHref":"Hi.Milling.Apts.TaperApt.html","topicUid":"Hi.Milling.Apts.TaperApt","type":"Class"},{"name":"apt_t","href":"Hi.Milling.Apts.apt_t.html","topicHref":"Hi.Milling.Apts.apt_t.html","topicUid":"Hi.Milling.Apts.apt_t","type":"Struct"}]},{"name":"Hi.Milling.Cutters","href":"Hi.Milling.Cutters.html","topicHref":"Hi.Milling.Cutters.html","topicUid":"Hi.Milling.Cutters","type":"Namespace","items":[{"name":"AptProfile","href":"Hi.Milling.Cutters.AptProfile.html","topicHref":"Hi.Milling.Cutters.AptProfile.html","topicUid":"Hi.Milling.Cutters.AptProfile","type":"Class"},{"name":"ConstRatioProfile","href":"Hi.Milling.Cutters.ConstRatioProfile.html","topicHref":"Hi.Milling.Cutters.ConstRatioProfile.html","topicUid":"Hi.Milling.Cutters.ConstRatioProfile","type":"Class"},{"name":"CustomSpinningProfile","href":"Hi.Milling.Cutters.CustomSpinningProfile.html","topicHref":"Hi.Milling.Cutters.CustomSpinningProfile.html","topicUid":"Hi.Milling.Cutters.CustomSpinningProfile","type":"Class"},{"name":"CutterUtil","href":"Hi.Milling.Cutters.CutterUtil.html","topicHref":"Hi.Milling.Cutters.CutterUtil.html","topicUid":"Hi.Milling.Cutters.CutterUtil","type":"Class"},{"name":"FluteContourDisplayee","href":"Hi.Milling.Cutters.FluteContourDisplayee.html","topicHref":"Hi.Milling.Cutters.FluteContourDisplayee.html","topicUid":"Hi.Milling.Cutters.FluteContourDisplayee","type":"Class"},{"name":"FluteDependentRatioProfile","href":"Hi.Milling.Cutters.FluteDependentRatioProfile.html","topicHref":"Hi.Milling.Cutters.FluteDependentRatioProfile.html","topicUid":"Hi.Milling.Cutters.FluteDependentRatioProfile","type":"Class"},{"name":"IShaperProfile","href":"Hi.Milling.Cutters.IShaperProfile.html","topicHref":"Hi.Milling.Cutters.IShaperProfile.html","topicUid":"Hi.Milling.Cutters.IShaperProfile","type":"Interface"},{"name":"MillingCutter","href":"Hi.Milling.Cutters.MillingCutter.html","topicHref":"Hi.Milling.Cutters.MillingCutter.html","topicUid":"Hi.Milling.Cutters.MillingCutter","type":"Class"},{"name":"MillingCutter.IntegralModeEnum","href":"Hi.Milling.Cutters.MillingCutter.IntegralModeEnum.html","topicHref":"Hi.Milling.Cutters.MillingCutter.IntegralModeEnum.html","topicUid":"Hi.Milling.Cutters.MillingCutter.IntegralModeEnum","type":"Enum"},{"name":"MillingCutter.MassAssignmentMode","href":"Hi.Milling.Cutters.MillingCutter.MassAssignmentMode.html","topicHref":"Hi.Milling.Cutters.MillingCutter.MassAssignmentMode.html","topicUid":"Hi.Milling.Cutters.MillingCutter.MassAssignmentMode","type":"Enum"},{"name":"MillingCutterEditorDisplayee","href":"Hi.Milling.Cutters.MillingCutterEditorDisplayee.html","topicHref":"Hi.Milling.Cutters.MillingCutterEditorDisplayee.html","topicUid":"Hi.Milling.Cutters.MillingCutterEditorDisplayee","type":"Class"},{"name":"MillingCutterEditorDisplayee.ShapeModeEnum","href":"Hi.Milling.Cutters.MillingCutterEditorDisplayee.ShapeModeEnum.html","topicHref":"Hi.Milling.Cutters.MillingCutterEditorDisplayee.ShapeModeEnum.html","topicUid":"Hi.Milling.Cutters.MillingCutterEditorDisplayee.ShapeModeEnum","type":"Enum"}]},{"name":"Hi.Milling.Engagements","href":"Hi.Milling.Engagements.html","topicHref":"Hi.Milling.Engagements.html","topicUid":"Hi.Milling.Engagements","type":"Namespace","items":[{"name":"BitwiseMillingEngagement","href":"Hi.Milling.Engagements.BitwiseMillingEngagement.html","topicHref":"Hi.Milling.Engagements.BitwiseMillingEngagement.html","topicUid":"Hi.Milling.Engagements.BitwiseMillingEngagement","type":"Class"},{"name":"EngagementLayer","href":"Hi.Milling.Engagements.EngagementLayer.html","topicHref":"Hi.Milling.Engagements.EngagementLayer.html","topicUid":"Hi.Milling.Engagements.EngagementLayer","type":"Class"},{"name":"EngagementSlice","href":"Hi.Milling.Engagements.EngagementSlice.html","topicHref":"Hi.Milling.Engagements.EngagementSlice.html","topicUid":"Hi.Milling.Engagements.EngagementSlice","type":"Class"},{"name":"IBitwiseMillingEngagementSupport","href":"Hi.Milling.Engagements.IBitwiseMillingEngagementSupport.html","topicHref":"Hi.Milling.Engagements.IBitwiseMillingEngagementSupport.html","topicUid":"Hi.Milling.Engagements.IBitwiseMillingEngagementSupport","type":"Interface"},{"name":"IGetLayerMillingEngagement","href":"Hi.Milling.Engagements.IGetLayerMillingEngagement.html","topicHref":"Hi.Milling.Engagements.IGetLayerMillingEngagement.html","topicUid":"Hi.Milling.Engagements.IGetLayerMillingEngagement","type":"Interface"},{"name":"LayerMillingEngagement","href":"Hi.Milling.Engagements.LayerMillingEngagement.html","topicHref":"Hi.Milling.Engagements.LayerMillingEngagement.html","topicUid":"Hi.Milling.Engagements.LayerMillingEngagement","type":"Class"},{"name":"MillingEngagementUtil","href":"Hi.Milling.Engagements.MillingEngagementUtil.html","topicHref":"Hi.Milling.Engagements.MillingEngagementUtil.html","topicUid":"Hi.Milling.Engagements.MillingEngagementUtil","type":"Class"}]},{"name":"Hi.Milling.FluteContours","href":"Hi.Milling.FluteContours.html","topicHref":"Hi.Milling.FluteContours.html","topicUid":"Hi.Milling.FluteContours","type":"Namespace","items":[{"name":"ConstHelixSideContour","href":"Hi.Milling.FluteContours.ConstHelixSideContour.html","topicHref":"Hi.Milling.FluteContours.ConstHelixSideContour.html","topicUid":"Hi.Milling.FluteContours.ConstHelixSideContour","type":"Class"},{"name":"FluteContour","href":"Hi.Milling.FluteContours.FluteContour.html","topicHref":"Hi.Milling.FluteContours.FluteContour.html","topicUid":"Hi.Milling.FluteContours.FluteContour","type":"Class"},{"name":"FluteContourUtil","href":"Hi.Milling.FluteContours.FluteContourUtil.html","topicHref":"Hi.Milling.FluteContours.FluteContourUtil.html","topicUid":"Hi.Milling.FluteContours.FluteContourUtil","type":"Class"},{"name":"FreeContourTray","href":"Hi.Milling.FluteContours.FreeContourTray.html","topicHref":"Hi.Milling.FluteContours.FreeContourTray.html","topicUid":"Hi.Milling.FluteContours.FreeContourTray","type":"Class"},{"name":"FreeformSideContour","href":"Hi.Milling.FluteContours.FreeformSideContour.html","topicHref":"Hi.Milling.FluteContours.FreeformSideContour.html","topicUid":"Hi.Milling.FluteContours.FreeformSideContour","type":"Class"},{"name":"IBottomContour","href":"Hi.Milling.FluteContours.IBottomContour.html","topicHref":"Hi.Milling.FluteContours.IBottomContour.html","topicUid":"Hi.Milling.FluteContours.IBottomContour","type":"Interface"},{"name":"IContourTray","href":"Hi.Milling.FluteContours.IContourTray.html","topicHref":"Hi.Milling.FluteContours.IContourTray.html","topicUid":"Hi.Milling.FluteContours.IContourTray","type":"Interface"},{"name":"IFluteNumSourceProperty","href":"Hi.Milling.FluteContours.IFluteNumSourceProperty.html","topicHref":"Hi.Milling.FluteContours.IFluteNumSourceProperty.html","topicUid":"Hi.Milling.FluteContours.IFluteNumSourceProperty","type":"Interface"},{"name":"IGetFluteNum","href":"Hi.Milling.FluteContours.IGetFluteNum.html","topicHref":"Hi.Milling.FluteContours.IGetFluteNum.html","topicUid":"Hi.Milling.FluteContours.IGetFluteNum","type":"Interface"},{"name":"ISideContour","href":"Hi.Milling.FluteContours.ISideContour.html","topicHref":"Hi.Milling.FluteContours.ISideContour.html","topicUid":"Hi.Milling.FluteContours.ISideContour","type":"Interface"},{"name":"IWorkingContour","href":"Hi.Milling.FluteContours.IWorkingContour.html","topicHref":"Hi.Milling.FluteContours.IWorkingContour.html","topicUid":"Hi.Milling.FluteContours.IWorkingContour","type":"Interface"},{"name":"ShiftedWorkingContour","href":"Hi.Milling.FluteContours.ShiftedWorkingContour.html","topicHref":"Hi.Milling.FluteContours.ShiftedWorkingContour.html","topicUid":"Hi.Milling.FluteContours.ShiftedWorkingContour","type":"Class"},{"name":"SideContourDisplayee","href":"Hi.Milling.FluteContours.SideContourDisplayee.html","topicHref":"Hi.Milling.FluteContours.SideContourDisplayee.html","topicUid":"Hi.Milling.FluteContours.SideContourDisplayee","type":"Class"},{"name":"SlideBottomContour","href":"Hi.Milling.FluteContours.SlideBottomContour.html","topicHref":"Hi.Milling.FluteContours.SlideBottomContour.html","topicUid":"Hi.Milling.FluteContours.SlideBottomContour","type":"Class"},{"name":"SpanContourPos4d","href":"Hi.Milling.FluteContours.SpanContourPos4d.html","topicHref":"Hi.Milling.FluteContours.SpanContourPos4d.html","topicUid":"Hi.Milling.FluteContours.SpanContourPos4d","type":"Class"},{"name":"UniformContourTray","href":"Hi.Milling.FluteContours.UniformContourTray.html","topicHref":"Hi.Milling.FluteContours.UniformContourTray.html","topicUid":"Hi.Milling.FluteContours.UniformContourTray","type":"Class"}]},{"name":"Hi.Milling.MillingTools","href":"Hi.Milling.MillingTools.html","topicHref":"Hi.Milling.MillingTools.html","topicUid":"Hi.Milling.MillingTools","type":"Namespace","items":[{"name":"MillingTool","href":"Hi.Milling.MillingTools.MillingTool.html","topicHref":"Hi.Milling.MillingTools.MillingTool.html","topicUid":"Hi.Milling.MillingTools.MillingTool","type":"Class"},{"name":"MillingToolAnchorReference","href":"Hi.Milling.MillingTools.MillingToolAnchorReference.html","topicHref":"Hi.Milling.MillingTools.MillingToolAnchorReference.html","topicUid":"Hi.Milling.MillingTools.MillingToolAnchorReference","type":"Enum"},{"name":"MillingToolEditorDisplayee","href":"Hi.Milling.MillingTools.MillingToolEditorDisplayee.html","topicHref":"Hi.Milling.MillingTools.MillingToolEditorDisplayee.html","topicUid":"Hi.Milling.MillingTools.MillingToolEditorDisplayee","type":"Class"},{"name":"MillingToolUtil","href":"Hi.Milling.MillingTools.MillingToolUtil.html","topicHref":"Hi.Milling.MillingTools.MillingToolUtil.html","topicUid":"Hi.Milling.MillingTools.MillingToolUtil","type":"Class"}]},{"name":"Hi.MillingForces","href":"Hi.MillingForces.html","topicHref":"Hi.MillingForces.html","topicUid":"Hi.MillingForces","type":"Namespace","items":[{"name":"FluteZData","href":"Hi.MillingForces.FluteZData.html","topicHref":"Hi.MillingForces.FluteZData.html","topicUid":"Hi.MillingForces.FluteZData","type":"Class"},{"name":"IGetMillingForce","href":"Hi.MillingForces.IGetMillingForce.html","topicHref":"Hi.MillingForces.IGetMillingForce.html","topicUid":"Hi.MillingForces.IGetMillingForce","type":"Interface"},{"name":"IMillingForceAccessor","href":"Hi.MillingForces.IMillingForceAccessor.html","topicHref":"Hi.MillingForces.IMillingForceAccessor.html","topicUid":"Hi.MillingForces.IMillingForceAccessor","type":"Interface"},{"name":"MillingForce","href":"Hi.MillingForces.MillingForce.html","topicHref":"Hi.MillingForces.MillingForce.html","topicUid":"Hi.MillingForces.MillingForce","type":"Class"},{"name":"MillingForceLicense","href":"Hi.MillingForces.MillingForceLicense.html","topicHref":"Hi.MillingForces.MillingForceLicense.html","topicUid":"Hi.MillingForces.MillingForceLicense","type":"Class"},{"name":"MillingForceLuggage","href":"Hi.MillingForces.MillingForceLuggage.html","topicHref":"Hi.MillingForces.MillingForceLuggage.html","topicUid":"Hi.MillingForces.MillingForceLuggage","type":"Class"},{"name":"MillingForceUtil","href":"Hi.MillingForces.MillingForceUtil.html","topicHref":"Hi.MillingForces.MillingForceUtil.html","topicUid":"Hi.MillingForces.MillingForceUtil","type":"Class"},{"name":"MillingForceUtil.AnglePack","href":"Hi.MillingForces.MillingForceUtil.AnglePack.html","topicHref":"Hi.MillingForces.MillingForceUtil.AnglePack.html","topicUid":"Hi.MillingForces.MillingForceUtil.AnglePack","type":"Class"},{"name":"MillingPhysicsBrief","href":"Hi.MillingForces.MillingPhysicsBrief.html","topicHref":"Hi.MillingForces.MillingPhysicsBrief.html","topicUid":"Hi.MillingForces.MillingPhysicsBrief","type":"Class"},{"name":"PhysicsUtil","href":"Hi.MillingForces.PhysicsUtil.html","topicHref":"Hi.MillingForces.PhysicsUtil.html","topicUid":"Hi.MillingForces.PhysicsUtil","type":"Class"},{"name":"ToolObservationReference","href":"Hi.MillingForces.ToolObservationReference.html","topicHref":"Hi.MillingForces.ToolObservationReference.html","topicUid":"Hi.MillingForces.ToolObservationReference","type":"Enum"}]},{"name":"Hi.MillingForces.Fittings","href":"Hi.MillingForces.Fittings.html","topicHref":"Hi.MillingForces.Fittings.html","topicUid":"Hi.MillingForces.Fittings","type":"Namespace","items":[{"name":"CuttingParaUtil","href":"Hi.MillingForces.Fittings.CuttingParaUtil.html","topicHref":"Hi.MillingForces.Fittings.CuttingParaUtil.html","topicUid":"Hi.MillingForces.Fittings.CuttingParaUtil","type":"Class"},{"name":"ICuttingPara","href":"Hi.MillingForces.Fittings.ICuttingPara.html","topicHref":"Hi.MillingForces.Fittings.ICuttingPara.html","topicUid":"Hi.MillingForces.Fittings.ICuttingPara","type":"Interface"},{"name":"IGetCuttingPara","href":"Hi.MillingForces.Fittings.IGetCuttingPara.html","topicHref":"Hi.MillingForces.Fittings.IGetCuttingPara.html","topicUid":"Hi.MillingForces.Fittings.IGetCuttingPara","type":"Interface"},{"name":"SampleCategory","href":"Hi.MillingForces.Fittings.SampleCategory.html","topicHref":"Hi.MillingForces.Fittings.SampleCategory.html","topicUid":"Hi.MillingForces.Fittings.SampleCategory","type":"Class"},{"name":"SampleFlag","href":"Hi.MillingForces.Fittings.SampleFlag.html","topicHref":"Hi.MillingForces.Fittings.SampleFlag.html","topicUid":"Hi.MillingForces.Fittings.SampleFlag","type":"Enum"},{"name":"SampleFlagUtil","href":"Hi.MillingForces.Fittings.SampleFlagUtil.html","topicHref":"Hi.MillingForces.Fittings.SampleFlagUtil.html","topicUid":"Hi.MillingForces.Fittings.SampleFlagUtil","type":"Class"},{"name":"SampleInstance","href":"Hi.MillingForces.Fittings.SampleInstance.html","topicHref":"Hi.MillingForces.Fittings.SampleInstance.html","topicUid":"Hi.MillingForces.Fittings.SampleInstance","type":"Class"},{"name":"TimeForce","href":"Hi.MillingForces.Fittings.TimeForce.html","topicHref":"Hi.MillingForces.Fittings.TimeForce.html","topicUid":"Hi.MillingForces.Fittings.TimeForce","type":"Class"},{"name":"TimeForceFrequencyDomain","href":"Hi.MillingForces.Fittings.TimeForceFrequencyDomain.html","topicHref":"Hi.MillingForces.Fittings.TimeForceFrequencyDomain.html","topicUid":"Hi.MillingForces.Fittings.TimeForceFrequencyDomain","type":"Class"},{"name":"TimeForceSeries","href":"Hi.MillingForces.Fittings.TimeForceSeries.html","topicHref":"Hi.MillingForces.Fittings.TimeForceSeries.html","topicUid":"Hi.MillingForces.Fittings.TimeForceSeries","type":"Class"},{"name":"TimeForceUtil","href":"Hi.MillingForces.Fittings.TimeForceUtil.html","topicHref":"Hi.MillingForces.Fittings.TimeForceUtil.html","topicUid":"Hi.MillingForces.Fittings.TimeForceUtil","type":"Class"},{"name":"TimeVsForceSeries","href":"Hi.MillingForces.Fittings.TimeVsForceSeries.html","topicHref":"Hi.MillingForces.Fittings.TimeVsForceSeries.html","topicUid":"Hi.MillingForces.Fittings.TimeVsForceSeries","type":"Class"},{"name":"TimeVsTorqueSeries","href":"Hi.MillingForces.Fittings.TimeVsTorqueSeries.html","topicHref":"Hi.MillingForces.Fittings.TimeVsTorqueSeries.html","topicUid":"Hi.MillingForces.Fittings.TimeVsTorqueSeries","type":"Class"},{"name":"TrainingSample","href":"Hi.MillingForces.Fittings.TrainingSample.html","topicHref":"Hi.MillingForces.Fittings.TrainingSample.html","topicUid":"Hi.MillingForces.Fittings.TrainingSample","type":"Class"}]},{"name":"Hi.MillingForces.ProfileMillingParas","href":"Hi.MillingForces.ProfileMillingParas.html","topicHref":"Hi.MillingForces.ProfileMillingParas.html","topicUid":"Hi.MillingForces.ProfileMillingParas","type":"Namespace","items":[{"name":"IGetLocalProfileMillingPara","href":"Hi.MillingForces.ProfileMillingParas.IGetLocalProfileMillingPara.html","topicHref":"Hi.MillingForces.ProfileMillingParas.IGetLocalProfileMillingPara.html","topicUid":"Hi.MillingForces.ProfileMillingParas.IGetLocalProfileMillingPara","type":"Interface"},{"name":"LocalProfileMillingPara","href":"Hi.MillingForces.ProfileMillingParas.LocalProfileMillingPara.html","topicHref":"Hi.MillingForces.ProfileMillingParas.LocalProfileMillingPara.html","topicUid":"Hi.MillingForces.ProfileMillingParas.LocalProfileMillingPara","type":"Class"},{"name":"ProfileMillingParaMap","href":"Hi.MillingForces.ProfileMillingParas.ProfileMillingParaMap.html","topicHref":"Hi.MillingForces.ProfileMillingParas.ProfileMillingParaMap.html","topicUid":"Hi.MillingForces.ProfileMillingParas.ProfileMillingParaMap","type":"Class"},{"name":"RtaMillingParaKey","href":"Hi.MillingForces.ProfileMillingParas.RtaMillingParaKey.html","topicHref":"Hi.MillingForces.ProfileMillingParas.RtaMillingParaKey.html","topicUid":"Hi.MillingForces.ProfileMillingParas.RtaMillingParaKey","type":"Enum"}]},{"name":"Hi.MillingForces.RakeFaceCuttingParas","href":"Hi.MillingForces.RakeFaceCuttingParas.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas","type":"Namespace","items":[{"name":"IRakeFaceCuttingPara","href":"Hi.MillingForces.RakeFaceCuttingParas.IRakeFaceCuttingPara.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.IRakeFaceCuttingPara.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.IRakeFaceCuttingPara","type":"Interface"},{"name":"MillingPhysicsUtil","href":"Hi.MillingForces.RakeFaceCuttingParas.MillingPhysicsUtil.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.MillingPhysicsUtil.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.MillingPhysicsUtil","type":"Class"},{"name":"MultiFormRakeFaceCuttingPara","href":"Hi.MillingForces.RakeFaceCuttingParas.MultiFormRakeFaceCuttingPara.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.MultiFormRakeFaceCuttingPara.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.MultiFormRakeFaceCuttingPara","type":"Class"},{"name":"RakeFaceCuttingPara2d","href":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara2d.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara2d.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara2d","type":"Class"},{"name":"RakeFaceCuttingPara3d","href":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara3d.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara3d.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara3d","type":"Class"},{"name":"RakeFaceCuttingParaMap","href":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingParaMap.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingParaMap.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingParaMap","type":"Class"}]},{"name":"Hi.MillingForces.Training","href":"Hi.MillingForces.Training.html","topicHref":"Hi.MillingForces.Training.html","topicUid":"Hi.MillingForces.Training","type":"Namespace","items":[{"name":"MillingTraining","href":"Hi.MillingForces.Training.MillingTraining.html","topicHref":"Hi.MillingForces.Training.MillingTraining.html","topicUid":"Hi.MillingForces.Training.MillingTraining","type":"Class"}]},{"name":"Hi.MillingProcs","href":"Hi.MillingProcs.html","topicHref":"Hi.MillingProcs.html","topicUid":"Hi.MillingProcs","type":"Namespace","items":[{"name":"MillingGuide","href":"Hi.MillingProcs.MillingGuide.html","topicHref":"Hi.MillingProcs.MillingGuide.html","topicUid":"Hi.MillingProcs.MillingGuide","type":"Class"}]},{"name":"Hi.MillingStepUtils","href":"Hi.MillingStepUtils.html","topicHref":"Hi.MillingStepUtils.html","topicUid":"Hi.MillingStepUtils","type":"Namespace","items":[{"name":"ClStripChartConfig","href":"Hi.MillingStepUtils.ClStripChartConfig.html","topicHref":"Hi.MillingStepUtils.ClStripChartConfig.html","topicUid":"Hi.MillingStepUtils.ClStripChartConfig","type":"Class"},{"name":"ClStripChartItemConfig","href":"Hi.MillingStepUtils.ClStripChartItemConfig.html","topicHref":"Hi.MillingStepUtils.ClStripChartItemConfig.html","topicUid":"Hi.MillingStepUtils.ClStripChartItemConfig","type":"Class"},{"name":"ForceCycleFlag","href":"Hi.MillingStepUtils.ForceCycleFlag.html","topicHref":"Hi.MillingStepUtils.ForceCycleFlag.html","topicUid":"Hi.MillingStepUtils.ForceCycleFlag","type":"Enum"},{"name":"ForceCycleLineDivConfig","href":"Hi.MillingStepUtils.ForceCycleLineDivConfig.html","topicHref":"Hi.MillingStepUtils.ForceCycleLineDivConfig.html","topicUid":"Hi.MillingStepUtils.ForceCycleLineDivConfig","type":"Class"},{"name":"LineChartVRangeMode","href":"Hi.MillingStepUtils.LineChartVRangeMode.html","topicHref":"Hi.MillingStepUtils.LineChartVRangeMode.html","topicUid":"Hi.MillingStepUtils.LineChartVRangeMode","type":"Enum"},{"name":"SpindleMomentCycleLineDivConfig","href":"Hi.MillingStepUtils.SpindleMomentCycleLineDivConfig.html","topicHref":"Hi.MillingStepUtils.SpindleMomentCycleLineDivConfig.html","topicUid":"Hi.MillingStepUtils.SpindleMomentCycleLineDivConfig","type":"Class"},{"name":"TimeChartYConfig","href":"Hi.MillingStepUtils.TimeChartYConfig.html","topicHref":"Hi.MillingStepUtils.TimeChartYConfig.html","topicUid":"Hi.MillingStepUtils.TimeChartYConfig","type":"Class"}]},{"name":"Hi.MillingSteps","href":"Hi.MillingSteps.html","topicHref":"Hi.MillingSteps.html","topicUid":"Hi.MillingSteps","type":"Namespace","items":[{"name":"MillingInstance","href":"Hi.MillingSteps.MillingInstance.html","topicHref":"Hi.MillingSteps.MillingInstance.html","topicUid":"Hi.MillingSteps.MillingInstance","type":"Class"},{"name":"MillingStepLuggage","href":"Hi.MillingSteps.MillingStepLuggage.html","topicHref":"Hi.MillingSteps.MillingStepLuggage.html","topicUid":"Hi.MillingSteps.MillingStepLuggage","type":"Class"}]},{"name":"Hi.Motion","href":"Hi.Motion.html","topicHref":"Hi.Motion.html","topicUid":"Hi.Motion","type":"Namespace","items":[{"name":"MotionUtil","href":"Hi.Motion.MotionUtil.html","topicHref":"Hi.Motion.MotionUtil.html","topicUid":"Hi.Motion.MotionUtil","type":"Class"}]},{"name":"Hi.Motion.MatValves","href":"Hi.Motion.MatValves.html","topicHref":"Hi.Motion.MatValves.html","topicUid":"Hi.Motion.MatValves","type":"Namespace","items":[{"name":"ClMachiningValve","href":"Hi.Motion.MatValves.ClMachiningValve.html","topicHref":"Hi.Motion.MatValves.ClMachiningValve.html","topicUid":"Hi.Motion.MatValves.ClMachiningValve","type":"Class"},{"name":"IMotionValve","href":"Hi.Motion.MatValves.IMotionValve.html","topicHref":"Hi.Motion.MatValves.IMotionValve.html","topicUid":"Hi.Motion.MatValves.IMotionValve","type":"Interface"},{"name":"MacroMotionValve","href":"Hi.Motion.MatValves.MacroMotionValve.html","topicHref":"Hi.Motion.MatValves.MacroMotionValve.html","topicUid":"Hi.Motion.MatValves.MacroMotionValve","type":"Class"},{"name":"StepMotionValve","href":"Hi.Motion.MatValves.StepMotionValve.html","topicHref":"Hi.Motion.MatValves.StepMotionValve.html","topicUid":"Hi.Motion.MatValves.StepMotionValve","type":"Class"}]},{"name":"Hi.Native","href":"Hi.Native.html","topicHref":"Hi.Native.html","topicUid":"Hi.Native","type":"Namespace","items":[{"name":"StopSource","href":"Hi.Native.StopSource.html","topicHref":"Hi.Native.StopSource.html","topicUid":"Hi.Native.StopSource","type":"Class"},{"name":"StopToken","href":"Hi.Native.StopToken.html","topicHref":"Hi.Native.StopToken.html","topicUid":"Hi.Native.StopToken","type":"Class"},{"name":"StopTokenKit","href":"Hi.Native.StopTokenKit.html","topicHref":"Hi.Native.StopTokenKit.html","topicUid":"Hi.Native.StopTokenKit","type":"Class"},{"name":"StopTokenUtil","href":"Hi.Native.StopTokenUtil.html","topicHref":"Hi.Native.StopTokenUtil.html","topicUid":"Hi.Native.StopTokenUtil","type":"Class"},{"name":"bind_t","href":"Hi.Native.bind_t.html","topicHref":"Hi.Native.bind_t.html","topicUid":"Hi.Native.bind_t","type":"Struct"},{"name":"box2d","href":"Hi.Native.box2d.html","topicHref":"Hi.Native.box2d.html","topicUid":"Hi.Native.box2d","type":"Struct"},{"name":"box3d","href":"Hi.Native.box3d.html","topicHref":"Hi.Native.box3d.html","topicUid":"Hi.Native.box3d","type":"Struct"},{"name":"expand_to_box3d_func_t","href":"Hi.Native.expand_to_box3d_func_t.html","topicHref":"Hi.Native.expand_to_box3d_func_t.html","topicUid":"Hi.Native.expand_to_box3d_func_t","type":"Delegate"},{"name":"key_event_t","href":"Hi.Native.key_event_t.html","topicHref":"Hi.Native.key_event_t.html","topicUid":"Hi.Native.key_event_t","type":"Struct"},{"name":"key_table__transform_view_by_key_pressing_t","href":"Hi.Native.key_table__transform_view_by_key_pressing_t.html","topicHref":"Hi.Native.key_table__transform_view_by_key_pressing_t.html","topicUid":"Hi.Native.key_table__transform_view_by_key_pressing_t","type":"Struct"},{"name":"mat4d","href":"Hi.Native.mat4d.html","topicHref":"Hi.Native.mat4d.html","topicUid":"Hi.Native.mat4d","type":"Struct"},{"name":"mat_stack_t","href":"Hi.Native.mat_stack_t.html","topicHref":"Hi.Native.mat_stack_t.html","topicUid":"Hi.Native.mat_stack_t","type":"Struct"},{"name":"mouse_button_event_t","href":"Hi.Native.mouse_button_event_t.html","topicHref":"Hi.Native.mouse_button_event_t.html","topicUid":"Hi.Native.mouse_button_event_t","type":"Struct"},{"name":"mouse_button_table__transform_view_by_mouse_drag_t","href":"Hi.Native.mouse_button_table__transform_view_by_mouse_drag_t.html","topicHref":"Hi.Native.mouse_button_table__transform_view_by_mouse_drag_t.html","topicUid":"Hi.Native.mouse_button_table__transform_view_by_mouse_drag_t","type":"Struct"},{"name":"mouse_move_event_t","href":"Hi.Native.mouse_move_event_t.html","topicHref":"Hi.Native.mouse_move_event_t.html","topicUid":"Hi.Native.mouse_move_event_t","type":"Struct"},{"name":"mouse_wheel_event_t","href":"Hi.Native.mouse_wheel_event_t.html","topicHref":"Hi.Native.mouse_wheel_event_t.html","topicUid":"Hi.Native.mouse_wheel_event_t","type":"Struct"},{"name":"panel_state_t","href":"Hi.Native.panel_state_t.html","topicHref":"Hi.Native.panel_state_t.html","topicUid":"Hi.Native.panel_state_t","type":"Struct"},{"name":"picking_event_t","href":"Hi.Native.picking_event_t.html","topicHref":"Hi.Native.picking_event_t.html","topicUid":"Hi.Native.picking_event_t","type":"Struct"},{"name":"picking_mark_t","href":"Hi.Native.picking_mark_t.html","topicHref":"Hi.Native.picking_mark_t.html","topicUid":"Hi.Native.picking_mark_t","type":"Struct"},{"name":"tri3d","href":"Hi.Native.tri3d.html","topicHref":"Hi.Native.tri3d.html","topicUid":"Hi.Native.tri3d","type":"Struct"},{"name":"ui_event_type","href":"Hi.Native.ui_event_type.html","topicHref":"Hi.Native.ui_event_type.html","topicUid":"Hi.Native.ui_event_type","type":"Enum"},{"name":"vec2d","href":"Hi.Native.vec2d.html","topicHref":"Hi.Native.vec2d.html","topicUid":"Hi.Native.vec2d","type":"Struct"},{"name":"vec3d","href":"Hi.Native.vec3d.html","topicHref":"Hi.Native.vec3d.html","topicUid":"Hi.Native.vec3d","type":"Struct"},{"name":"vec3f","href":"Hi.Native.vec3f.html","topicHref":"Hi.Native.vec3f.html","topicUid":"Hi.Native.vec3f","type":"Struct"}]},{"name":"Hi.NcMech","href":"Hi.NcMech.html","topicHref":"Hi.NcMech.html","topicUid":"Hi.NcMech","type":"Namespace","items":[{"name":"ICollisionIndexPairsSource","href":"Hi.NcMech.ICollisionIndexPairsSource.html","topicHref":"Hi.NcMech.ICollisionIndexPairsSource.html","topicUid":"Hi.NcMech.ICollisionIndexPairsSource","type":"Interface"}]},{"name":"Hi.NcMech.Fixtures","href":"Hi.NcMech.Fixtures.html","topicHref":"Hi.NcMech.Fixtures.html","topicUid":"Hi.NcMech.Fixtures","type":"Namespace","items":[{"name":"Fixture","href":"Hi.NcMech.Fixtures.Fixture.html","topicHref":"Hi.NcMech.Fixtures.Fixture.html","topicUid":"Hi.NcMech.Fixtures.Fixture","type":"Class"},{"name":"FixtureEditorDisplayee","href":"Hi.NcMech.Fixtures.FixtureEditorDisplayee.html","topicHref":"Hi.NcMech.Fixtures.FixtureEditorDisplayee.html","topicUid":"Hi.NcMech.Fixtures.FixtureEditorDisplayee","type":"Class"},{"name":"FixtureEditorDisplayeeConfig","href":"Hi.NcMech.Fixtures.FixtureEditorDisplayeeConfig.html","topicHref":"Hi.NcMech.Fixtures.FixtureEditorDisplayeeConfig.html","topicUid":"Hi.NcMech.Fixtures.FixtureEditorDisplayeeConfig","type":"Class"}]},{"name":"Hi.NcMech.Holders","href":"Hi.NcMech.Holders.html","topicHref":"Hi.NcMech.Holders.html","topicUid":"Hi.NcMech.Holders","type":"Namespace","items":[{"name":"CylindroidHolder","href":"Hi.NcMech.Holders.CylindroidHolder.html","topicHref":"Hi.NcMech.Holders.CylindroidHolder.html","topicUid":"Hi.NcMech.Holders.CylindroidHolder","type":"Class"},{"name":"FreeformHolder","href":"Hi.NcMech.Holders.FreeformHolder.html","topicHref":"Hi.NcMech.Holders.FreeformHolder.html","topicUid":"Hi.NcMech.Holders.FreeformHolder","type":"Class"},{"name":"HolderEditorDisplayee","href":"Hi.NcMech.Holders.HolderEditorDisplayee.html","topicHref":"Hi.NcMech.Holders.HolderEditorDisplayee.html","topicUid":"Hi.NcMech.Holders.HolderEditorDisplayee","type":"Class"},{"name":"IHolder","href":"Hi.NcMech.Holders.IHolder.html","topicHref":"Hi.NcMech.Holders.IHolder.html","topicUid":"Hi.NcMech.Holders.IHolder","type":"Interface"}]},{"name":"Hi.NcMech.Solids","href":"Hi.NcMech.Solids.html","topicHref":"Hi.NcMech.Solids.html","topicUid":"Hi.NcMech.Solids","type":"Namespace","items":[{"name":"IGetSolid","href":"Hi.NcMech.Solids.IGetSolid.html","topicHref":"Hi.NcMech.Solids.IGetSolid.html","topicUid":"Hi.NcMech.Solids.IGetSolid","type":"Interface"},{"name":"Solid","href":"Hi.NcMech.Solids.Solid.html","topicHref":"Hi.NcMech.Solids.Solid.html","topicUid":"Hi.NcMech.Solids.Solid","type":"Class"},{"name":"Solid.RenderingModeEnum","href":"Hi.NcMech.Solids.Solid.RenderingModeEnum.html","topicHref":"Hi.NcMech.Solids.Solid.RenderingModeEnum.html","topicUid":"Hi.NcMech.Solids.Solid.RenderingModeEnum","type":"Enum"},{"name":"SolidFuncSource","href":"Hi.NcMech.Solids.SolidFuncSource.html","topicHref":"Hi.NcMech.Solids.SolidFuncSource.html","topicUid":"Hi.NcMech.Solids.SolidFuncSource","type":"Class"}]},{"name":"Hi.NcMech.Topo","href":"Hi.NcMech.Topo.html","topicHref":"Hi.NcMech.Topo.html","topicUid":"Hi.NcMech.Topo","type":"Namespace","items":[{"name":"INcStroke","href":"Hi.NcMech.Topo.INcStroke.html","topicHref":"Hi.NcMech.Topo.INcStroke.html","topicUid":"Hi.NcMech.Topo.INcStroke","type":"Interface"},{"name":"INcTransformer","href":"Hi.NcMech.Topo.INcTransformer.html","topicHref":"Hi.NcMech.Topo.INcTransformer.html","topicUid":"Hi.NcMech.Topo.INcTransformer","type":"Interface"},{"name":"ITopoBrick","href":"Hi.NcMech.Topo.ITopoBrick.html","topicHref":"Hi.NcMech.Topo.ITopoBrick.html","topicUid":"Hi.NcMech.Topo.ITopoBrick","type":"Interface"},{"name":"NcRotation","href":"Hi.NcMech.Topo.NcRotation.html","topicHref":"Hi.NcMech.Topo.NcRotation.html","topicUid":"Hi.NcMech.Topo.NcRotation","type":"Class"},{"name":"NcTranslation","href":"Hi.NcMech.Topo.NcTranslation.html","topicHref":"Hi.NcMech.Topo.NcTranslation.html","topicUid":"Hi.NcMech.Topo.NcTranslation","type":"Class"},{"name":"SolidSourceTopoBrick","href":"Hi.NcMech.Topo.SolidSourceTopoBrick.html","topicHref":"Hi.NcMech.Topo.SolidSourceTopoBrick.html","topicUid":"Hi.NcMech.Topo.SolidSourceTopoBrick","type":"Class"},{"name":"StlSourceTopoBrick","href":"Hi.NcMech.Topo.StlSourceTopoBrick.html","topicHref":"Hi.NcMech.Topo.StlSourceTopoBrick.html","topicUid":"Hi.NcMech.Topo.StlSourceTopoBrick","type":"Class"}]},{"name":"Hi.NcMech.Workpieces","href":"Hi.NcMech.Workpieces.html","topicHref":"Hi.NcMech.Workpieces.html","topicUid":"Hi.NcMech.Workpieces","type":"Namespace","items":[{"name":"Workpiece","href":"Hi.NcMech.Workpieces.Workpiece.html","topicHref":"Hi.NcMech.Workpieces.Workpiece.html","topicUid":"Hi.NcMech.Workpieces.Workpiece","type":"Class"},{"name":"WorkpieceEditorDisplayee","href":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayee.html","topicHref":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayee.html","topicUid":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayee","type":"Class"},{"name":"WorkpieceEditorDisplayeeConfig","href":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayeeConfig.html","topicHref":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayeeConfig.html","topicUid":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayeeConfig","type":"Class"},{"name":"WorkpieceService","href":"Hi.NcMech.Workpieces.WorkpieceService.html","topicHref":"Hi.NcMech.Workpieces.WorkpieceService.html","topicUid":"Hi.NcMech.Workpieces.WorkpieceService","type":"Class"}]},{"name":"Hi.NcMech.Xyzabc","href":"Hi.NcMech.Xyzabc.html","topicHref":"Hi.NcMech.Xyzabc.html","topicUid":"Hi.NcMech.Xyzabc","type":"Namespace","items":[{"name":"CodeXyzabcMachineTool","href":"Hi.NcMech.Xyzabc.CodeXyzabcMachineTool.html","topicHref":"Hi.NcMech.Xyzabc.CodeXyzabcMachineTool.html","topicUid":"Hi.NcMech.Xyzabc.CodeXyzabcMachineTool","type":"Class"},{"name":"CodeXyzabcMachineToolUri","href":"Hi.NcMech.Xyzabc.CodeXyzabcMachineToolUri.html","topicHref":"Hi.NcMech.Xyzabc.CodeXyzabcMachineToolUri.html","topicUid":"Hi.NcMech.Xyzabc.CodeXyzabcMachineToolUri","type":"Class"},{"name":"GeneralXyzabcMachineTool","href":"Hi.NcMech.Xyzabc.GeneralXyzabcMachineTool.html","topicHref":"Hi.NcMech.Xyzabc.GeneralXyzabcMachineTool.html","topicUid":"Hi.NcMech.Xyzabc.GeneralXyzabcMachineTool","type":"Class"},{"name":"IGetCodeXyzabcMachineTool","href":"Hi.NcMech.Xyzabc.IGetCodeXyzabcMachineTool.html","topicHref":"Hi.NcMech.Xyzabc.IGetCodeXyzabcMachineTool.html","topicUid":"Hi.NcMech.Xyzabc.IGetCodeXyzabcMachineTool","type":"Interface"},{"name":"IXyzabcMachineTool","href":"Hi.NcMech.Xyzabc.IXyzabcMachineTool.html","topicHref":"Hi.NcMech.Xyzabc.IXyzabcMachineTool.html","topicUid":"Hi.NcMech.Xyzabc.IXyzabcMachineTool","type":"Interface"}]},{"name":"Hi.NcOpt","href":"Hi.NcOpt.html","topicHref":"Hi.NcOpt.html","topicUid":"Hi.NcOpt","type":"Namespace","items":[{"name":"CuttingVelocityOptLimit","href":"Hi.NcOpt.CuttingVelocityOptLimit.html","topicHref":"Hi.NcOpt.CuttingVelocityOptLimit.html","topicUid":"Hi.NcOpt.CuttingVelocityOptLimit","type":"Class"},{"name":"FixedFeedPerCycleOptLimit","href":"Hi.NcOpt.FixedFeedPerCycleOptLimit.html","topicHref":"Hi.NcOpt.FixedFeedPerCycleOptLimit.html","topicUid":"Hi.NcOpt.FixedFeedPerCycleOptLimit","type":"Class"},{"name":"FixedFeedPerToothOptLimit","href":"Hi.NcOpt.FixedFeedPerToothOptLimit.html","topicHref":"Hi.NcOpt.FixedFeedPerToothOptLimit.html","topicUid":"Hi.NcOpt.FixedFeedPerToothOptLimit","type":"Class"},{"name":"ICutterOptLimitHost","href":"Hi.NcOpt.ICutterOptLimitHost.html","topicHref":"Hi.NcOpt.ICutterOptLimitHost.html","topicUid":"Hi.NcOpt.ICutterOptLimitHost","type":"Interface"},{"name":"ICutterOptOption","href":"Hi.NcOpt.ICutterOptOption.html","topicHref":"Hi.NcOpt.ICutterOptOption.html","topicUid":"Hi.NcOpt.ICutterOptOption","type":"Interface"},{"name":"ICuttingVelocityOptLimit","href":"Hi.NcOpt.ICuttingVelocityOptLimit.html","topicHref":"Hi.NcOpt.ICuttingVelocityOptLimit.html","topicUid":"Hi.NcOpt.ICuttingVelocityOptLimit","type":"Interface"},{"name":"IFeedPerToothOptLimit","href":"Hi.NcOpt.IFeedPerToothOptLimit.html","topicHref":"Hi.NcOpt.IFeedPerToothOptLimit.html","topicUid":"Hi.NcOpt.IFeedPerToothOptLimit","type":"Interface"},{"name":"MillingCutterOptOption","href":"Hi.NcOpt.MillingCutterOptOption.html","topicHref":"Hi.NcOpt.MillingCutterOptOption.html","topicUid":"Hi.NcOpt.MillingCutterOptOption","type":"Class"},{"name":"NcOptOption","href":"Hi.NcOpt.NcOptOption.html","topicHref":"Hi.NcOpt.NcOptOption.html","topicUid":"Hi.NcOpt.NcOptOption","type":"Class"},{"name":"NcOptProc","href":"Hi.NcOpt.NcOptProc.html","topicHref":"Hi.NcOpt.NcOptProc.html","topicUid":"Hi.NcOpt.NcOptProc","type":"Class"},{"name":"NcOptimizationEmbeddedLogMode","href":"Hi.NcOpt.NcOptimizationEmbeddedLogMode.html","topicHref":"Hi.NcOpt.NcOptimizationEmbeddedLogMode.html","topicUid":"Hi.NcOpt.NcOptimizationEmbeddedLogMode","type":"Enum"},{"name":"ShapeBasedCutterOptLimit","href":"Hi.NcOpt.ShapeBasedCutterOptLimit.html","topicHref":"Hi.NcOpt.ShapeBasedCutterOptLimit.html","topicUid":"Hi.NcOpt.ShapeBasedCutterOptLimit","type":"Class"}]},{"name":"Hi.NcParsers","href":"Hi.NcParsers.html","topicHref":"Hi.NcParsers.html","topicUid":"Hi.NcParsers","type":"Namespace","items":[{"name":"IGetSentence","href":"Hi.NcParsers.IGetSentence.html","topicHref":"Hi.NcParsers.IGetSentence.html","topicUid":"Hi.NcParsers.IGetSentence","type":"Interface"},{"name":"ISentenceCarrier","href":"Hi.NcParsers.ISentenceCarrier.html","topicHref":"Hi.NcParsers.ISentenceCarrier.html","topicUid":"Hi.NcParsers.ISentenceCarrier","type":"Interface"},{"name":"ISentenceIndexed","href":"Hi.NcParsers.ISentenceIndexed.html","topicHref":"Hi.NcParsers.ISentenceIndexed.html","topicUid":"Hi.NcParsers.ISentenceIndexed","type":"Interface"},{"name":"IndexedSentence","href":"Hi.NcParsers.IndexedSentence.html","topicHref":"Hi.NcParsers.IndexedSentence.html","topicUid":"Hi.NcParsers.IndexedSentence","type":"Class"},{"name":"NcDiagnostic","href":"Hi.NcParsers.NcDiagnostic.html","topicHref":"Hi.NcParsers.NcDiagnostic.html","topicUid":"Hi.NcParsers.NcDiagnostic","type":"Class"},{"name":"NcDiagnosticCategory","href":"Hi.NcParsers.NcDiagnosticCategory.html","topicHref":"Hi.NcParsers.NcDiagnosticCategory.html","topicUid":"Hi.NcParsers.NcDiagnosticCategory","type":"Enum"},{"name":"NcDiagnosticProgress","href":"Hi.NcParsers.NcDiagnosticProgress.html","topicHref":"Hi.NcParsers.NcDiagnosticProgress.html","topicUid":"Hi.NcParsers.NcDiagnosticProgress","type":"Class"},{"name":"NcDiagnosticSeverity","href":"Hi.NcParsers.NcDiagnosticSeverity.html","topicHref":"Hi.NcParsers.NcDiagnosticSeverity.html","topicUid":"Hi.NcParsers.NcDiagnosticSeverity","type":"Enum"},{"name":"Sentence","href":"Hi.NcParsers.Sentence.html","topicHref":"Hi.NcParsers.Sentence.html","topicUid":"Hi.NcParsers.Sentence","type":"Class"},{"name":"SoftNcRunner","href":"Hi.NcParsers.SoftNcRunner.html","topicHref":"Hi.NcParsers.SoftNcRunner.html","topicUid":"Hi.NcParsers.SoftNcRunner","type":"Class"},{"name":"SoftNcUtil","href":"Hi.NcParsers.SoftNcUtil.html","topicHref":"Hi.NcParsers.SoftNcUtil.html","topicUid":"Hi.NcParsers.SoftNcUtil","type":"Class"}]},{"name":"Hi.NcParsers.Dependencys","href":"Hi.NcParsers.Dependencys.html","topicHref":"Hi.NcParsers.Dependencys.html","topicUid":"Hi.NcParsers.Dependencys","type":"Namespace","items":[{"name":"AxisType","href":"Hi.NcParsers.Dependencys.AxisType.html","topicHref":"Hi.NcParsers.Dependencys.AxisType.html","topicUid":"Hi.NcParsers.Dependencys.AxisType","type":"Enum"},{"name":"CncBrandDependency","href":"Hi.NcParsers.Dependencys.CncBrandDependency.html","topicHref":"Hi.NcParsers.Dependencys.CncBrandDependency.html","topicUid":"Hi.NcParsers.Dependencys.CncBrandDependency","type":"Class"},{"name":"ControllerParameterTableBase","href":"Hi.NcParsers.Dependencys.ControllerParameterTableBase.html","topicHref":"Hi.NcParsers.Dependencys.ControllerParameterTableBase.html","topicUid":"Hi.NcParsers.Dependencys.ControllerParameterTableBase","type":"Class"},{"name":"HeidenhainDatumTable","href":"Hi.NcParsers.Dependencys.HeidenhainDatumTable.html","topicHref":"Hi.NcParsers.Dependencys.HeidenhainDatumTable.html","topicUid":"Hi.NcParsers.Dependencys.HeidenhainDatumTable","type":"Class"},{"name":"IBlockSkipConfig","href":"Hi.NcParsers.Dependencys.IBlockSkipConfig.html","topicHref":"Hi.NcParsers.Dependencys.IBlockSkipConfig.html","topicUid":"Hi.NcParsers.Dependencys.IBlockSkipConfig","type":"Interface"},{"name":"ICannedCycleConfig","href":"Hi.NcParsers.Dependencys.ICannedCycleConfig.html","topicHref":"Hi.NcParsers.Dependencys.ICannedCycleConfig.html","topicUid":"Hi.NcParsers.Dependencys.ICannedCycleConfig","type":"Interface"},{"name":"IHomeMcConfig","href":"Hi.NcParsers.Dependencys.IHomeMcConfig.html","topicHref":"Hi.NcParsers.Dependencys.IHomeMcConfig.html","topicUid":"Hi.NcParsers.Dependencys.IHomeMcConfig","type":"Interface"},{"name":"IIsoCoordinateConfig","href":"Hi.NcParsers.Dependencys.IIsoCoordinateConfig.html","topicHref":"Hi.NcParsers.Dependencys.IIsoCoordinateConfig.html","topicUid":"Hi.NcParsers.Dependencys.IIsoCoordinateConfig","type":"Interface"},{"name":"IMachineAxisConfig","href":"Hi.NcParsers.Dependencys.IMachineAxisConfig.html","topicHref":"Hi.NcParsers.Dependencys.IMachineAxisConfig.html","topicUid":"Hi.NcParsers.Dependencys.IMachineAxisConfig","type":"Interface"},{"name":"INcDependency","href":"Hi.NcParsers.Dependencys.INcDependency.html","topicHref":"Hi.NcParsers.Dependencys.INcDependency.html","topicUid":"Hi.NcParsers.Dependencys.INcDependency","type":"Interface"},{"name":"IPowerResettable","href":"Hi.NcParsers.Dependencys.IPowerResettable.html","topicHref":"Hi.NcParsers.Dependencys.IPowerResettable.html","topicUid":"Hi.NcParsers.Dependencys.IPowerResettable","type":"Interface"},{"name":"IRapidFeedrateConfig","href":"Hi.NcParsers.Dependencys.IRapidFeedrateConfig.html","topicHref":"Hi.NcParsers.Dependencys.IRapidFeedrateConfig.html","topicUid":"Hi.NcParsers.Dependencys.IRapidFeedrateConfig","type":"Interface"},{"name":"IStrokeLimitConfig","href":"Hi.NcParsers.Dependencys.IStrokeLimitConfig.html","topicHref":"Hi.NcParsers.Dependencys.IStrokeLimitConfig.html","topicUid":"Hi.NcParsers.Dependencys.IStrokeLimitConfig","type":"Interface"},{"name":"IToolOffsetConfig","href":"Hi.NcParsers.Dependencys.IToolOffsetConfig.html","topicHref":"Hi.NcParsers.Dependencys.IToolOffsetConfig.html","topicUid":"Hi.NcParsers.Dependencys.IToolOffsetConfig","type":"Interface"},{"name":"IToolingMcConfig","href":"Hi.NcParsers.Dependencys.IToolingMcConfig.html","topicHref":"Hi.NcParsers.Dependencys.IToolingMcConfig.html","topicUid":"Hi.NcParsers.Dependencys.IToolingMcConfig","type":"Interface"},{"name":"IsoCoordinateAddressMap","href":"Hi.NcParsers.Dependencys.IsoCoordinateAddressMap.html","topicHref":"Hi.NcParsers.Dependencys.IsoCoordinateAddressMap.html","topicUid":"Hi.NcParsers.Dependencys.IsoCoordinateAddressMap","type":"Class"}]},{"name":"Hi.NcParsers.Dependencys.Fanuc","href":"Hi.NcParsers.Dependencys.Fanuc.html","topicHref":"Hi.NcParsers.Dependencys.Fanuc.html","topicUid":"Hi.NcParsers.Dependencys.Fanuc","type":"Namespace","items":[{"name":"CutterCompensationType","href":"Hi.NcParsers.Dependencys.Fanuc.CutterCompensationType.html","topicHref":"Hi.NcParsers.Dependencys.Fanuc.CutterCompensationType.html","topicUid":"Hi.NcParsers.Dependencys.Fanuc.CutterCompensationType","type":"Enum"},{"name":"FanucGotoIterationDependency","href":"Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html","topicHref":"Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html","topicUid":"Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency","type":"Class"},{"name":"FanucParameterTable","href":"Hi.NcParsers.Dependencys.Fanuc.FanucParameterTable.html","topicHref":"Hi.NcParsers.Dependencys.Fanuc.FanucParameterTable.html","topicUid":"Hi.NcParsers.Dependencys.Fanuc.FanucParameterTable","type":"Class"},{"name":"FanucPositionVariableLookup","href":"Hi.NcParsers.Dependencys.Fanuc.FanucPositionVariableLookup.html","topicHref":"Hi.NcParsers.Dependencys.Fanuc.FanucPositionVariableLookup.html","topicUid":"Hi.NcParsers.Dependencys.Fanuc.FanucPositionVariableLookup","type":"Class"},{"name":"FanucToolOffsetVariableLookup","href":"Hi.NcParsers.Dependencys.Fanuc.FanucToolOffsetVariableLookup.html","topicHref":"Hi.NcParsers.Dependencys.Fanuc.FanucToolOffsetVariableLookup.html","topicUid":"Hi.NcParsers.Dependencys.Fanuc.FanucToolOffsetVariableLookup","type":"Class"},{"name":"RetainedCommonVariableTable","href":"Hi.NcParsers.Dependencys.Fanuc.RetainedCommonVariableTable.html","topicHref":"Hi.NcParsers.Dependencys.Fanuc.RetainedCommonVariableTable.html","topicUid":"Hi.NcParsers.Dependencys.Fanuc.RetainedCommonVariableTable","type":"Class"}]},{"name":"Hi.NcParsers.Dependencys.Generic","href":"Hi.NcParsers.Dependencys.Generic.html","topicHref":"Hi.NcParsers.Dependencys.Generic.html","topicUid":"Hi.NcParsers.Dependencys.Generic","type":"Namespace","items":[{"name":"FallbackConfig","href":"Hi.NcParsers.Dependencys.Generic.FallbackConfig.html","topicHref":"Hi.NcParsers.Dependencys.Generic.FallbackConfig.html","topicUid":"Hi.NcParsers.Dependencys.Generic.FallbackConfig","type":"Class"},{"name":"GenericBlockSkipConfig","href":"Hi.NcParsers.Dependencys.Generic.GenericBlockSkipConfig.html","topicHref":"Hi.NcParsers.Dependencys.Generic.GenericBlockSkipConfig.html","topicUid":"Hi.NcParsers.Dependencys.Generic.GenericBlockSkipConfig","type":"Class"},{"name":"IsoCoordinateTable","href":"Hi.NcParsers.Dependencys.Generic.IsoCoordinateTable.html","topicHref":"Hi.NcParsers.Dependencys.Generic.IsoCoordinateTable.html","topicUid":"Hi.NcParsers.Dependencys.Generic.IsoCoordinateTable","type":"Class"},{"name":"SubProgramFolderConfig","href":"Hi.NcParsers.Dependencys.Generic.SubProgramFolderConfig.html","topicHref":"Hi.NcParsers.Dependencys.Generic.SubProgramFolderConfig.html","topicUid":"Hi.NcParsers.Dependencys.Generic.SubProgramFolderConfig","type":"Class"},{"name":"ToolOffsetRow","href":"Hi.NcParsers.Dependencys.Generic.ToolOffsetRow.html","topicHref":"Hi.NcParsers.Dependencys.Generic.ToolOffsetRow.html","topicUid":"Hi.NcParsers.Dependencys.Generic.ToolOffsetRow","type":"Class"},{"name":"ToolOffsetTable","href":"Hi.NcParsers.Dependencys.Generic.ToolOffsetTable.html","topicHref":"Hi.NcParsers.Dependencys.Generic.ToolOffsetTable.html","topicUid":"Hi.NcParsers.Dependencys.Generic.ToolOffsetTable","type":"Class"},{"name":"ToolingMcConfig","href":"Hi.NcParsers.Dependencys.Generic.ToolingMcConfig.html","topicHref":"Hi.NcParsers.Dependencys.Generic.ToolingMcConfig.html","topicUid":"Hi.NcParsers.Dependencys.Generic.ToolingMcConfig","type":"Class"}]},{"name":"Hi.NcParsers.Dependencys.Heidenhain","href":"Hi.NcParsers.Dependencys.Heidenhain.html","topicHref":"Hi.NcParsers.Dependencys.Heidenhain.html","topicUid":"Hi.NcParsers.Dependencys.Heidenhain","type":"Namespace","items":[{"name":"HeidenhainParameterTable","href":"Hi.NcParsers.Dependencys.Heidenhain.HeidenhainParameterTable.html","topicHref":"Hi.NcParsers.Dependencys.Heidenhain.HeidenhainParameterTable.html","topicUid":"Hi.NcParsers.Dependencys.Heidenhain.HeidenhainParameterTable","type":"Class"}]},{"name":"Hi.NcParsers.Dependencys.Siemens","href":"Hi.NcParsers.Dependencys.Siemens.html","topicHref":"Hi.NcParsers.Dependencys.Siemens.html","topicUid":"Hi.NcParsers.Dependencys.Siemens","type":"Namespace","items":[{"name":"ISiemensToolOffsetConfig","href":"Hi.NcParsers.Dependencys.Siemens.ISiemensToolOffsetConfig.html","topicHref":"Hi.NcParsers.Dependencys.Siemens.ISiemensToolOffsetConfig.html","topicUid":"Hi.NcParsers.Dependencys.Siemens.ISiemensToolOffsetConfig","type":"Interface"},{"name":"SiemensFrameTable","href":"Hi.NcParsers.Dependencys.Siemens.SiemensFrameTable.html","topicHref":"Hi.NcParsers.Dependencys.Siemens.SiemensFrameTable.html","topicUid":"Hi.NcParsers.Dependencys.Siemens.SiemensFrameTable","type":"Class"},{"name":"SiemensMachineDataTable","href":"Hi.NcParsers.Dependencys.Siemens.SiemensMachineDataTable.html","topicHref":"Hi.NcParsers.Dependencys.Siemens.SiemensMachineDataTable.html","topicUid":"Hi.NcParsers.Dependencys.Siemens.SiemensMachineDataTable","type":"Class"}]},{"name":"Hi.NcParsers.Dependencys.Syntec","href":"Hi.NcParsers.Dependencys.Syntec.html","topicHref":"Hi.NcParsers.Dependencys.Syntec.html","topicUid":"Hi.NcParsers.Dependencys.Syntec","type":"Namespace","items":[{"name":"SyntecParameterTable","href":"Hi.NcParsers.Dependencys.Syntec.SyntecParameterTable.html","topicHref":"Hi.NcParsers.Dependencys.Syntec.SyntecParameterTable.html","topicUid":"Hi.NcParsers.Dependencys.Syntec.SyntecParameterTable","type":"Class"}]},{"name":"Hi.NcParsers.Dependencys.SystemWired","href":"Hi.NcParsers.Dependencys.SystemWired.html","topicHref":"Hi.NcParsers.Dependencys.SystemWired.html","topicUid":"Hi.NcParsers.Dependencys.SystemWired","type":"Namespace","items":[{"name":"FileIndexCounterDependency","href":"Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.html","topicHref":"Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.html","topicUid":"Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency","type":"Class"},{"name":"NcKinematicsDependency","href":"Hi.NcParsers.Dependencys.SystemWired.NcKinematicsDependency.html","topicHref":"Hi.NcParsers.Dependencys.SystemWired.NcKinematicsDependency.html","topicUid":"Hi.NcParsers.Dependencys.SystemWired.NcKinematicsDependency","type":"Class"},{"name":"ProjectFolderDependency","href":"Hi.NcParsers.Dependencys.SystemWired.ProjectFolderDependency.html","topicHref":"Hi.NcParsers.Dependencys.SystemWired.ProjectFolderDependency.html","topicUid":"Hi.NcParsers.Dependencys.SystemWired.ProjectFolderDependency","type":"Class"},{"name":"SegmenterDependency","href":"Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency.html","topicHref":"Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency.html","topicUid":"Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency","type":"Class"},{"name":"SyntaxPieceLayerDependency","href":"Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency.html","topicHref":"Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency.html","topicUid":"Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency","type":"Class"}]},{"name":"Hi.NcParsers.EvaluationSyntaxs","href":"Hi.NcParsers.EvaluationSyntaxs.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs","type":"Namespace","items":[{"name":"CallStackUtil","href":"Hi.NcParsers.EvaluationSyntaxs.CallStackUtil.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.CallStackUtil.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.CallStackUtil","type":"Class"},{"name":"LabelScanUtil","href":"Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil","type":"Class"},{"name":"MacroFileResolver","href":"Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver","type":"Class"},{"name":"MacroFileResolver.ResolvedFile","href":"Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile","type":"Struct"},{"name":"MacroInlineUtil","href":"Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil","type":"Class"},{"name":"RetainedCommonVariableReadingSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.RetainedCommonVariableReadingSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.RetainedCommonVariableReadingSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.RetainedCommonVariableReadingSyntax","type":"Class"},{"name":"SubProgramCallSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.SubProgramCallSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.SubProgramCallSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.SubProgramCallSyntax","type":"Class"},{"name":"SubProgramReturnSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.SubProgramReturnSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.SubProgramReturnSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.SubProgramReturnSyntax","type":"Class"},{"name":"VariableEvaluatorSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax","type":"Class"},{"name":"VolatileVariableReadingSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.VolatileVariableReadingSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.VolatileVariableReadingSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.VolatileVariableReadingSyntax","type":"Class"}]},{"name":"Hi.NcParsers.EvaluationSyntaxs.Evaluation","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation","type":"Namespace","items":[{"name":"EvalResult","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.EvalResult.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.EvalResult.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.EvalResult","type":"Struct"},{"name":"IRuntimeVariableLookup","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.IRuntimeVariableLookup.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.IRuntimeVariableLookup.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.IRuntimeVariableLookup","type":"Interface"},{"name":"IVariableLookup","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.IVariableLookup.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.IVariableLookup.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.IVariableLookup","type":"Interface"},{"name":"LocalVariableLookup","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.LocalVariableLookup.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.LocalVariableLookup.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.LocalVariableLookup","type":"Class"},{"name":"NcBinaryExpr","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcBinaryExpr.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcBinaryExpr.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcBinaryExpr","type":"Class"},{"name":"NcBinaryOp","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcBinaryOp.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcBinaryOp.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcBinaryOp","type":"Enum"},{"name":"NcExpr","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpr.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpr.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpr","type":"Class"},{"name":"NcExpressionEvaluator","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionEvaluator.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionEvaluator.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionEvaluator","type":"Class"},{"name":"NcExpressionParser","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionParser.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionParser.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionParser","type":"Class"},{"name":"NcFunctionExpr","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcFunctionExpr.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcFunctionExpr.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcFunctionExpr","type":"Class"},{"name":"NcIndirectVariableExpr","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcIndirectVariableExpr.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcIndirectVariableExpr.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcIndirectVariableExpr","type":"Class"},{"name":"NcLiteralExpr","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcLiteralExpr.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcLiteralExpr.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcLiteralExpr","type":"Class"},{"name":"NcUnaryExpr","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcUnaryExpr.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcUnaryExpr.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcUnaryExpr","type":"Class"},{"name":"NcUnaryOp","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcUnaryOp.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcUnaryOp.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcUnaryOp","type":"Enum"},{"name":"NcVariableExpr","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcVariableExpr.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcVariableExpr.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcVariableExpr","type":"Class"},{"name":"VolatileVariableLookup","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.VolatileVariableLookup.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.VolatileVariableLookup.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.VolatileVariableLookup","type":"Class"}]},{"name":"Hi.NcParsers.EvaluationSyntaxs.Fanuc","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc","type":"Namespace","items":[{"name":"FanucGotoSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax","type":"Class"},{"name":"FanucIfThenSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucIfThenSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucIfThenSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucIfThenSyntax","type":"Class"},{"name":"FanucLocalVariableReadingSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucLocalVariableReadingSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucLocalVariableReadingSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucLocalVariableReadingSyntax","type":"Class"},{"name":"FanucMacroArgumentMap","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroArgumentMap.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroArgumentMap.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroArgumentMap","type":"Class"},{"name":"FanucMacroCallSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroCallSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroCallSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroCallSyntax","type":"Class"},{"name":"FanucModalMacroSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucModalMacroSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucModalMacroSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucModalMacroSyntax","type":"Class"},{"name":"FanucModalMacroSyntax.SyntaxPhase","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucModalMacroSyntax.SyntaxPhase.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucModalMacroSyntax.SyntaxPhase.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucModalMacroSyntax.SyntaxPhase","type":"Enum"},{"name":"FanucSystemControlVariableSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucSystemControlVariableSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucSystemControlVariableSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucSystemControlVariableSyntax","type":"Class"}]},{"name":"Hi.NcParsers.Initializers","href":"Hi.NcParsers.Initializers.html","topicHref":"Hi.NcParsers.Initializers.html","topicUid":"Hi.NcParsers.Initializers","type":"Namespace","items":[{"name":"HomeMcInitializer","href":"Hi.NcParsers.Initializers.HomeMcInitializer.html","topicHref":"Hi.NcParsers.Initializers.HomeMcInitializer.html","topicUid":"Hi.NcParsers.Initializers.HomeMcInitializer","type":"Class"},{"name":"INcInitializer","href":"Hi.NcParsers.Initializers.INcInitializer.html","topicHref":"Hi.NcParsers.Initializers.INcInitializer.html","topicUid":"Hi.NcParsers.Initializers.INcInitializer","type":"Interface"},{"name":"StaticInitializer","href":"Hi.NcParsers.Initializers.StaticInitializer.html","topicHref":"Hi.NcParsers.Initializers.StaticInitializer.html","topicUid":"Hi.NcParsers.Initializers.StaticInitializer","type":"Class"}]},{"name":"Hi.NcParsers.InspectionSyntaxs","href":"Hi.NcParsers.InspectionSyntaxs.html","topicHref":"Hi.NcParsers.InspectionSyntaxs.html","topicUid":"Hi.NcParsers.InspectionSyntaxs","type":"Namespace","items":[{"name":"CleanupSyntax","href":"Hi.NcParsers.InspectionSyntaxs.CleanupSyntax.html","topicHref":"Hi.NcParsers.InspectionSyntaxs.CleanupSyntax.html","topicUid":"Hi.NcParsers.InspectionSyntaxs.CleanupSyntax","type":"Class"},{"name":"ProgramXyzBackfillSyntax","href":"Hi.NcParsers.InspectionSyntaxs.ProgramXyzBackfillSyntax.html","topicHref":"Hi.NcParsers.InspectionSyntaxs.ProgramXyzBackfillSyntax.html","topicUid":"Hi.NcParsers.InspectionSyntaxs.ProgramXyzBackfillSyntax","type":"Class"},{"name":"SnapshotSyntax","href":"Hi.NcParsers.InspectionSyntaxs.SnapshotSyntax.html","topicHref":"Hi.NcParsers.InspectionSyntaxs.SnapshotSyntax.html","topicUid":"Hi.NcParsers.InspectionSyntaxs.SnapshotSyntax","type":"Class"},{"name":"UnconsumedCheckSyntax","href":"Hi.NcParsers.InspectionSyntaxs.UnconsumedCheckSyntax.html","topicHref":"Hi.NcParsers.InspectionSyntaxs.UnconsumedCheckSyntax.html","topicUid":"Hi.NcParsers.InspectionSyntaxs.UnconsumedCheckSyntax","type":"Class"}]},{"name":"Hi.NcParsers.Keywords","href":"Hi.NcParsers.Keywords.html","topicHref":"Hi.NcParsers.Keywords.html","topicUid":"Hi.NcParsers.Keywords","type":"Namespace","items":[{"name":"BlockSkip","href":"Hi.NcParsers.Keywords.BlockSkip.html","topicHref":"Hi.NcParsers.Keywords.BlockSkip.html","topicUid":"Hi.NcParsers.Keywords.BlockSkip","type":"Class"},{"name":"CallFrame","href":"Hi.NcParsers.Keywords.CallFrame.html","topicHref":"Hi.NcParsers.Keywords.CallFrame.html","topicUid":"Hi.NcParsers.Keywords.CallFrame","type":"Class"},{"name":"CallStack","href":"Hi.NcParsers.Keywords.CallStack.html","topicHref":"Hi.NcParsers.Keywords.CallStack.html","topicUid":"Hi.NcParsers.Keywords.CallStack","type":"Class"},{"name":"CannedCycle","href":"Hi.NcParsers.Keywords.CannedCycle.html","topicHref":"Hi.NcParsers.Keywords.CannedCycle.html","topicUid":"Hi.NcParsers.Keywords.CannedCycle","type":"Class"},{"name":"Comment","href":"Hi.NcParsers.Keywords.Comment.html","topicHref":"Hi.NcParsers.Keywords.Comment.html","topicUid":"Hi.NcParsers.Keywords.Comment","type":"Class"},{"name":"CompoundMotion","href":"Hi.NcParsers.Keywords.CompoundMotion.html","topicHref":"Hi.NcParsers.Keywords.CompoundMotion.html","topicUid":"Hi.NcParsers.Keywords.CompoundMotion","type":"Class"},{"name":"Coolant","href":"Hi.NcParsers.Keywords.Coolant.html","topicHref":"Hi.NcParsers.Keywords.Coolant.html","topicUid":"Hi.NcParsers.Keywords.Coolant","type":"Class"},{"name":"CoordinateOffset","href":"Hi.NcParsers.Keywords.CoordinateOffset.html","topicHref":"Hi.NcParsers.Keywords.CoordinateOffset.html","topicUid":"Hi.NcParsers.Keywords.CoordinateOffset","type":"Class"},{"name":"CsScript","href":"Hi.NcParsers.Keywords.CsScript.html","topicHref":"Hi.NcParsers.Keywords.CsScript.html","topicUid":"Hi.NcParsers.Keywords.CsScript","type":"Class"},{"name":"Dwell","href":"Hi.NcParsers.Keywords.Dwell.html","topicHref":"Hi.NcParsers.Keywords.Dwell.html","topicUid":"Hi.NcParsers.Keywords.Dwell","type":"Class"},{"name":"FanucGoto","href":"Hi.NcParsers.Keywords.FanucGoto.html","topicHref":"Hi.NcParsers.Keywords.FanucGoto.html","topicUid":"Hi.NcParsers.Keywords.FanucGoto","type":"Class"},{"name":"FanucIfThen","href":"Hi.NcParsers.Keywords.FanucIfThen.html","topicHref":"Hi.NcParsers.Keywords.FanucIfThen.html","topicUid":"Hi.NcParsers.Keywords.FanucIfThen","type":"Class"},{"name":"FanucMacroCall","href":"Hi.NcParsers.Keywords.FanucMacroCall.html","topicHref":"Hi.NcParsers.Keywords.FanucMacroCall.html","topicUid":"Hi.NcParsers.Keywords.FanucMacroCall","type":"Class"},{"name":"FanucModalMacro","href":"Hi.NcParsers.Keywords.FanucModalMacro.html","topicHref":"Hi.NcParsers.Keywords.FanucModalMacro.html","topicUid":"Hi.NcParsers.Keywords.FanucModalMacro","type":"Class"},{"name":"FanucPathSmoothing","href":"Hi.NcParsers.Keywords.FanucPathSmoothing.html","topicHref":"Hi.NcParsers.Keywords.FanucPathSmoothing.html","topicUid":"Hi.NcParsers.Keywords.FanucPathSmoothing","type":"Class"},{"name":"FanucProgramNumber","href":"Hi.NcParsers.Keywords.FanucProgramNumber.html","topicHref":"Hi.NcParsers.Keywords.FanucProgramNumber.html","topicUid":"Hi.NcParsers.Keywords.FanucProgramNumber","type":"Class"},{"name":"Feedrate","href":"Hi.NcParsers.Keywords.Feedrate.html","topicHref":"Hi.NcParsers.Keywords.Feedrate.html","topicUid":"Hi.NcParsers.Keywords.Feedrate","type":"Class"},{"name":"IArcMotionDef","href":"Hi.NcParsers.Keywords.IArcMotionDef.html","topicHref":"Hi.NcParsers.Keywords.IArcMotionDef.html","topicUid":"Hi.NcParsers.Keywords.IArcMotionDef","type":"Interface"},{"name":"ICannedCycleDef","href":"Hi.NcParsers.Keywords.ICannedCycleDef.html","topicHref":"Hi.NcParsers.Keywords.ICannedCycleDef.html","topicUid":"Hi.NcParsers.Keywords.ICannedCycleDef","type":"Interface"},{"name":"ICompoundMotionDef","href":"Hi.NcParsers.Keywords.ICompoundMotionDef.html","topicHref":"Hi.NcParsers.Keywords.ICompoundMotionDef.html","topicUid":"Hi.NcParsers.Keywords.ICompoundMotionDef","type":"Interface"},{"name":"ICoolantDef","href":"Hi.NcParsers.Keywords.ICoolantDef.html","topicHref":"Hi.NcParsers.Keywords.ICoolantDef.html","topicUid":"Hi.NcParsers.Keywords.ICoolantDef","type":"Interface"},{"name":"IDwellDef","href":"Hi.NcParsers.Keywords.IDwellDef.html","topicHref":"Hi.NcParsers.Keywords.IDwellDef.html","topicUid":"Hi.NcParsers.Keywords.IDwellDef","type":"Interface"},{"name":"IFanucPathSmoothingDef","href":"Hi.NcParsers.Keywords.IFanucPathSmoothingDef.html","topicHref":"Hi.NcParsers.Keywords.IFanucPathSmoothingDef.html","topicUid":"Hi.NcParsers.Keywords.IFanucPathSmoothingDef","type":"Interface"},{"name":"IFeedrateDef","href":"Hi.NcParsers.Keywords.IFeedrateDef.html","topicHref":"Hi.NcParsers.Keywords.IFeedrateDef.html","topicUid":"Hi.NcParsers.Keywords.IFeedrateDef","type":"Interface"},{"name":"IFlagsDef","href":"Hi.NcParsers.Keywords.IFlagsDef.html","topicHref":"Hi.NcParsers.Keywords.IFlagsDef.html","topicUid":"Hi.NcParsers.Keywords.IFlagsDef","type":"Interface"},{"name":"IMachineCoordinateStateDef","href":"Hi.NcParsers.Keywords.IMachineCoordinateStateDef.html","topicHref":"Hi.NcParsers.Keywords.IMachineCoordinateStateDef.html","topicUid":"Hi.NcParsers.Keywords.IMachineCoordinateStateDef","type":"Interface"},{"name":"IMotionEventDef","href":"Hi.NcParsers.Keywords.IMotionEventDef.html","topicHref":"Hi.NcParsers.Keywords.IMotionEventDef.html","topicUid":"Hi.NcParsers.Keywords.IMotionEventDef","type":"Interface"},{"name":"IMotionStateDef","href":"Hi.NcParsers.Keywords.IMotionStateDef.html","topicHref":"Hi.NcParsers.Keywords.IMotionStateDef.html","topicUid":"Hi.NcParsers.Keywords.IMotionStateDef","type":"Interface"},{"name":"IParsingDef","href":"Hi.NcParsers.Keywords.IParsingDef.html","topicHref":"Hi.NcParsers.Keywords.IParsingDef.html","topicUid":"Hi.NcParsers.Keywords.IParsingDef","type":"Interface"},{"name":"IPathSmoothingDef","href":"Hi.NcParsers.Keywords.IPathSmoothingDef.html","topicHref":"Hi.NcParsers.Keywords.IPathSmoothingDef.html","topicUid":"Hi.NcParsers.Keywords.IPathSmoothingDef","type":"Interface"},{"name":"IPlaneSelectDef","href":"Hi.NcParsers.Keywords.IPlaneSelectDef.html","topicHref":"Hi.NcParsers.Keywords.IPlaneSelectDef.html","topicUid":"Hi.NcParsers.Keywords.IPlaneSelectDef","type":"Interface"},{"name":"IPositioningDef","href":"Hi.NcParsers.Keywords.IPositioningDef.html","topicHref":"Hi.NcParsers.Keywords.IPositioningDef.html","topicUid":"Hi.NcParsers.Keywords.IPositioningDef","type":"Interface"},{"name":"IProgramEndDef","href":"Hi.NcParsers.Keywords.IProgramEndDef.html","topicHref":"Hi.NcParsers.Keywords.IProgramEndDef.html","topicUid":"Hi.NcParsers.Keywords.IProgramEndDef","type":"Interface"},{"name":"IProgramStopDef","href":"Hi.NcParsers.Keywords.IProgramStopDef.html","topicHref":"Hi.NcParsers.Keywords.IProgramStopDef.html","topicUid":"Hi.NcParsers.Keywords.IProgramStopDef","type":"Interface"},{"name":"IProgramXyzDef","href":"Hi.NcParsers.Keywords.IProgramXyzDef.html","topicHref":"Hi.NcParsers.Keywords.IProgramXyzDef.html","topicUid":"Hi.NcParsers.Keywords.IProgramXyzDef","type":"Interface"},{"name":"IRadiusCompensationDef","href":"Hi.NcParsers.Keywords.IRadiusCompensationDef.html","topicHref":"Hi.NcParsers.Keywords.IRadiusCompensationDef.html","topicUid":"Hi.NcParsers.Keywords.IRadiusCompensationDef","type":"Interface"},{"name":"ISpindleControlDef","href":"Hi.NcParsers.Keywords.ISpindleControlDef.html","topicHref":"Hi.NcParsers.Keywords.ISpindleControlDef.html","topicUid":"Hi.NcParsers.Keywords.ISpindleControlDef","type":"Interface"},{"name":"ISpindleOrientationDef","href":"Hi.NcParsers.Keywords.ISpindleOrientationDef.html","topicHref":"Hi.NcParsers.Keywords.ISpindleOrientationDef.html","topicUid":"Hi.NcParsers.Keywords.ISpindleOrientationDef","type":"Interface"},{"name":"ISpindleSpeedDef","href":"Hi.NcParsers.Keywords.ISpindleSpeedDef.html","topicHref":"Hi.NcParsers.Keywords.ISpindleSpeedDef.html","topicUid":"Hi.NcParsers.Keywords.ISpindleSpeedDef","type":"Interface"},{"name":"ITiltTransformDef","href":"Hi.NcParsers.Keywords.ITiltTransformDef.html","topicHref":"Hi.NcParsers.Keywords.ITiltTransformDef.html","topicUid":"Hi.NcParsers.Keywords.ITiltTransformDef","type":"Interface"},{"name":"IToolHeightCompensationDef","href":"Hi.NcParsers.Keywords.IToolHeightCompensationDef.html","topicHref":"Hi.NcParsers.Keywords.IToolHeightCompensationDef.html","topicUid":"Hi.NcParsers.Keywords.IToolHeightCompensationDef","type":"Interface"},{"name":"ITransformationDef","href":"Hi.NcParsers.Keywords.ITransformationDef.html","topicHref":"Hi.NcParsers.Keywords.ITransformationDef.html","topicUid":"Hi.NcParsers.Keywords.ITransformationDef","type":"Interface"},{"name":"IUnitDef","href":"Hi.NcParsers.Keywords.IUnitDef.html","topicHref":"Hi.NcParsers.Keywords.IUnitDef.html","topicUid":"Hi.NcParsers.Keywords.IUnitDef","type":"Interface"},{"name":"IUnparsedTextDef","href":"Hi.NcParsers.Keywords.IUnparsedTextDef.html","topicHref":"Hi.NcParsers.Keywords.IUnparsedTextDef.html","topicUid":"Hi.NcParsers.Keywords.IUnparsedTextDef","type":"Interface"},{"name":"IndexNote","href":"Hi.NcParsers.Keywords.IndexNote.html","topicHref":"Hi.NcParsers.Keywords.IndexNote.html","topicUid":"Hi.NcParsers.Keywords.IndexNote","type":"Class"},{"name":"IsoLocalCoordinateOffset","href":"Hi.NcParsers.Keywords.IsoLocalCoordinateOffset.html","topicHref":"Hi.NcParsers.Keywords.IsoLocalCoordinateOffset.html","topicUid":"Hi.NcParsers.Keywords.IsoLocalCoordinateOffset","type":"Class"},{"name":"MachineCoordinateState","href":"Hi.NcParsers.Keywords.MachineCoordinateState.html","topicHref":"Hi.NcParsers.Keywords.MachineCoordinateState.html","topicUid":"Hi.NcParsers.Keywords.MachineCoordinateState","type":"Class"},{"name":"MacroFrame","href":"Hi.NcParsers.Keywords.MacroFrame.html","topicHref":"Hi.NcParsers.Keywords.MacroFrame.html","topicUid":"Hi.NcParsers.Keywords.MacroFrame","type":"Class"},{"name":"MotionEvent","href":"Hi.NcParsers.Keywords.MotionEvent.html","topicHref":"Hi.NcParsers.Keywords.MotionEvent.html","topicUid":"Hi.NcParsers.Keywords.MotionEvent","type":"Class"},{"name":"MotionState","href":"Hi.NcParsers.Keywords.MotionState.html","topicHref":"Hi.NcParsers.Keywords.MotionState.html","topicUid":"Hi.NcParsers.Keywords.MotionState","type":"Class"},{"name":"PathSmoothing","href":"Hi.NcParsers.Keywords.PathSmoothing.html","topicHref":"Hi.NcParsers.Keywords.PathSmoothing.html","topicUid":"Hi.NcParsers.Keywords.PathSmoothing","type":"Class"},{"name":"PlaneSelect","href":"Hi.NcParsers.Keywords.PlaneSelect.html","topicHref":"Hi.NcParsers.Keywords.PlaneSelect.html","topicUid":"Hi.NcParsers.Keywords.PlaneSelect","type":"Class"},{"name":"Positioning","href":"Hi.NcParsers.Keywords.Positioning.html","topicHref":"Hi.NcParsers.Keywords.Positioning.html","topicUid":"Hi.NcParsers.Keywords.Positioning","type":"Class"},{"name":"ProgramEnd","href":"Hi.NcParsers.Keywords.ProgramEnd.html","topicHref":"Hi.NcParsers.Keywords.ProgramEnd.html","topicUid":"Hi.NcParsers.Keywords.ProgramEnd","type":"Class"},{"name":"ProgramStop","href":"Hi.NcParsers.Keywords.ProgramStop.html","topicHref":"Hi.NcParsers.Keywords.ProgramStop.html","topicUid":"Hi.NcParsers.Keywords.ProgramStop","type":"Class"},{"name":"RadiusCompensation","href":"Hi.NcParsers.Keywords.RadiusCompensation.html","topicHref":"Hi.NcParsers.Keywords.RadiusCompensation.html","topicUid":"Hi.NcParsers.Keywords.RadiusCompensation","type":"Class"},{"name":"SpindleControl","href":"Hi.NcParsers.Keywords.SpindleControl.html","topicHref":"Hi.NcParsers.Keywords.SpindleControl.html","topicUid":"Hi.NcParsers.Keywords.SpindleControl","type":"Class"},{"name":"SpindleOrientation","href":"Hi.NcParsers.Keywords.SpindleOrientation.html","topicHref":"Hi.NcParsers.Keywords.SpindleOrientation.html","topicUid":"Hi.NcParsers.Keywords.SpindleOrientation","type":"Class"},{"name":"SpindleSpeed","href":"Hi.NcParsers.Keywords.SpindleSpeed.html","topicHref":"Hi.NcParsers.Keywords.SpindleSpeed.html","topicUid":"Hi.NcParsers.Keywords.SpindleSpeed","type":"Class"},{"name":"SubProgramCall","href":"Hi.NcParsers.Keywords.SubProgramCall.html","topicHref":"Hi.NcParsers.Keywords.SubProgramCall.html","topicUid":"Hi.NcParsers.Keywords.SubProgramCall","type":"Class"},{"name":"SubProgramReturn","href":"Hi.NcParsers.Keywords.SubProgramReturn.html","topicHref":"Hi.NcParsers.Keywords.SubProgramReturn.html","topicUid":"Hi.NcParsers.Keywords.SubProgramReturn","type":"Class"},{"name":"TapeBoundary","href":"Hi.NcParsers.Keywords.TapeBoundary.html","topicHref":"Hi.NcParsers.Keywords.TapeBoundary.html","topicUid":"Hi.NcParsers.Keywords.TapeBoundary","type":"Class"},{"name":"TiltTransform","href":"Hi.NcParsers.Keywords.TiltTransform.html","topicHref":"Hi.NcParsers.Keywords.TiltTransform.html","topicUid":"Hi.NcParsers.Keywords.TiltTransform","type":"Class"},{"name":"ToolHeightCompensation","href":"Hi.NcParsers.Keywords.ToolHeightCompensation.html","topicHref":"Hi.NcParsers.Keywords.ToolHeightCompensation.html","topicUid":"Hi.NcParsers.Keywords.ToolHeightCompensation","type":"Class"},{"name":"Unit","href":"Hi.NcParsers.Keywords.Unit.html","topicHref":"Hi.NcParsers.Keywords.Unit.html","topicUid":"Hi.NcParsers.Keywords.Unit","type":"Class"},{"name":"Vars","href":"Hi.NcParsers.Keywords.Vars.html","topicHref":"Hi.NcParsers.Keywords.Vars.html","topicUid":"Hi.NcParsers.Keywords.Vars","type":"Class"}]},{"name":"Hi.NcParsers.Keywords.Fanuc","href":"Hi.NcParsers.Keywords.Fanuc.html","topicHref":"Hi.NcParsers.Keywords.Fanuc.html","topicUid":"Hi.NcParsers.Keywords.Fanuc","type":"Namespace","items":[{"name":"FanucKeywords","href":"Hi.NcParsers.Keywords.Fanuc.FanucKeywords.html","topicHref":"Hi.NcParsers.Keywords.Fanuc.FanucKeywords.html","topicUid":"Hi.NcParsers.Keywords.Fanuc.FanucKeywords","type":"Class"}]},{"name":"Hi.NcParsers.Keywords.Generic","href":"Hi.NcParsers.Keywords.Generic.html","topicHref":"Hi.NcParsers.Keywords.Generic.html","topicUid":"Hi.NcParsers.Keywords.Generic","type":"Namespace","items":[{"name":"IsoKeywords","href":"Hi.NcParsers.Keywords.Generic.IsoKeywords.html","topicHref":"Hi.NcParsers.Keywords.Generic.IsoKeywords.html","topicUid":"Hi.NcParsers.Keywords.Generic.IsoKeywords","type":"Class"},{"name":"MotionForm","href":"Hi.NcParsers.Keywords.Generic.MotionForm.html","topicHref":"Hi.NcParsers.Keywords.Generic.MotionForm.html","topicUid":"Hi.NcParsers.Keywords.Generic.MotionForm","type":"Class"}]},{"name":"Hi.NcParsers.Keywords.Heidenhain","href":"Hi.NcParsers.Keywords.Heidenhain.html","topicHref":"Hi.NcParsers.Keywords.Heidenhain.html","topicUid":"Hi.NcParsers.Keywords.Heidenhain","type":"Namespace","items":[{"name":"ICyclDef","href":"Hi.NcParsers.Keywords.Heidenhain.ICyclDef.html","topicHref":"Hi.NcParsers.Keywords.Heidenhain.ICyclDef.html","topicUid":"Hi.NcParsers.Keywords.Heidenhain.ICyclDef","type":"Interface"}]},{"name":"Hi.NcParsers.Keywords.Siemens","href":"Hi.NcParsers.Keywords.Siemens.html","topicHref":"Hi.NcParsers.Keywords.Siemens.html","topicUid":"Hi.NcParsers.Keywords.Siemens","type":"Namespace","items":[{"name":"SiemensKeywords","href":"Hi.NcParsers.Keywords.Siemens.SiemensKeywords.html","topicHref":"Hi.NcParsers.Keywords.Siemens.SiemensKeywords.html","topicUid":"Hi.NcParsers.Keywords.Siemens.SiemensKeywords","type":"Class"}]},{"name":"Hi.NcParsers.LogicSyntaxs","href":"Hi.NcParsers.LogicSyntaxs.html","topicHref":"Hi.NcParsers.LogicSyntaxs.html","topicUid":"Hi.NcParsers.LogicSyntaxs","type":"Namespace","items":[{"name":"BackBoringSyntax","href":"Hi.NcParsers.LogicSyntaxs.BackBoringSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.BackBoringSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.BackBoringSyntax","type":"Class"},{"name":"BareG28Behavior","href":"Hi.NcParsers.LogicSyntaxs.BareG28Behavior.html","topicHref":"Hi.NcParsers.LogicSyntaxs.BareG28Behavior.html","topicUid":"Hi.NcParsers.LogicSyntaxs.BareG28Behavior","type":"Enum"},{"name":"BoringCycleSyntax","href":"Hi.NcParsers.LogicSyntaxs.BoringCycleSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.BoringCycleSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.BoringCycleSyntax","type":"Class"},{"name":"CannedCycleResolveSyntax","href":"Hi.NcParsers.LogicSyntaxs.CannedCycleResolveSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.CannedCycleResolveSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.CannedCycleResolveSyntax","type":"Class"},{"name":"CircularMotionSyntax","href":"Hi.NcParsers.LogicSyntaxs.CircularMotionSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.CircularMotionSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.CircularMotionSyntax","type":"Class"},{"name":"CoolantSyntax","href":"Hi.NcParsers.LogicSyntaxs.CoolantSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.CoolantSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.CoolantSyntax","type":"Class"},{"name":"CoordinateOffsetUtil","href":"Hi.NcParsers.LogicSyntaxs.CoordinateOffsetUtil.html","topicHref":"Hi.NcParsers.LogicSyntaxs.CoordinateOffsetUtil.html","topicUid":"Hi.NcParsers.LogicSyntaxs.CoordinateOffsetUtil","type":"Class"},{"name":"DrillingCycleSyntax","href":"Hi.NcParsers.LogicSyntaxs.DrillingCycleSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.DrillingCycleSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.DrillingCycleSyntax","type":"Class"},{"name":"FanucPathSmoothingSyntax","href":"Hi.NcParsers.LogicSyntaxs.FanucPathSmoothingSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.FanucPathSmoothingSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.FanucPathSmoothingSyntax","type":"Class"},{"name":"FeedrateSyntax","href":"Hi.NcParsers.LogicSyntaxs.FeedrateSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.FeedrateSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.FeedrateSyntax","type":"Class"},{"name":"FineBoringSyntax","href":"Hi.NcParsers.LogicSyntaxs.FineBoringSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.FineBoringSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.FineBoringSyntax","type":"Class"},{"name":"G43p4RtcpSyntax","href":"Hi.NcParsers.LogicSyntaxs.G43p4RtcpSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.G43p4RtcpSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.G43p4RtcpSyntax","type":"Class"},{"name":"G53p1RotaryPositionSyntax","href":"Hi.NcParsers.LogicSyntaxs.G53p1RotaryPositionSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.G53p1RotaryPositionSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.G53p1RotaryPositionSyntax","type":"Class"},{"name":"HighSpeedPeckCycleSyntax","href":"Hi.NcParsers.LogicSyntaxs.HighSpeedPeckCycleSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.HighSpeedPeckCycleSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.HighSpeedPeckCycleSyntax","type":"Class"},{"name":"IncrementalResolveSyntax","href":"Hi.NcParsers.LogicSyntaxs.IncrementalResolveSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.IncrementalResolveSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.IncrementalResolveSyntax","type":"Class"},{"name":"IsoCoordinateOffsetSyntax","href":"Hi.NcParsers.LogicSyntaxs.IsoCoordinateOffsetSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.IsoCoordinateOffsetSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.IsoCoordinateOffsetSyntax","type":"Class"},{"name":"IsoG68RotationSyntax","href":"Hi.NcParsers.LogicSyntaxs.IsoG68RotationSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.IsoG68RotationSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.IsoG68RotationSyntax","type":"Class"},{"name":"IsoG68p2TiltSyntax","href":"Hi.NcParsers.LogicSyntaxs.IsoG68p2TiltSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.IsoG68p2TiltSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.IsoG68p2TiltSyntax","type":"Class"},{"name":"IsoLocalCoordinateOffsetSyntax","href":"Hi.NcParsers.LogicSyntaxs.IsoLocalCoordinateOffsetSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.IsoLocalCoordinateOffsetSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.IsoLocalCoordinateOffsetSyntax","type":"Class"},{"name":"LinearMotionSyntax","href":"Hi.NcParsers.LogicSyntaxs.LinearMotionSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.LinearMotionSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.LinearMotionSyntax","type":"Class"},{"name":"MachineCoordSelectSyntax","href":"Hi.NcParsers.LogicSyntaxs.MachineCoordSelectSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.MachineCoordSelectSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.MachineCoordSelectSyntax","type":"Class"},{"name":"McAbcCyclicPathSyntax","href":"Hi.NcParsers.LogicSyntaxs.McAbcCyclicPathSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.McAbcCyclicPathSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.McAbcCyclicPathSyntax","type":"Class"},{"name":"McAbcSyntax","href":"Hi.NcParsers.LogicSyntaxs.McAbcSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.McAbcSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.McAbcSyntax","type":"Class"},{"name":"McAbcXyzFallbackSyntax","href":"Hi.NcParsers.LogicSyntaxs.McAbcXyzFallbackSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.McAbcXyzFallbackSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.McAbcXyzFallbackSyntax","type":"Class"},{"name":"McXyzSyntax","href":"Hi.NcParsers.LogicSyntaxs.McXyzSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.McXyzSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.McXyzSyntax","type":"Class"},{"name":"PeckDrillingCycleSyntax","href":"Hi.NcParsers.LogicSyntaxs.PeckDrillingCycleSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.PeckDrillingCycleSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.PeckDrillingCycleSyntax","type":"Class"},{"name":"PivotTransformationSyntax","href":"Hi.NcParsers.LogicSyntaxs.PivotTransformationSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.PivotTransformationSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.PivotTransformationSyntax","type":"Class"},{"name":"PlaneSelectSyntax","href":"Hi.NcParsers.LogicSyntaxs.PlaneSelectSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.PlaneSelectSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.PlaneSelectSyntax","type":"Class"},{"name":"PositioningSyntax","href":"Hi.NcParsers.LogicSyntaxs.PositioningSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.PositioningSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.PositioningSyntax","type":"Class"},{"name":"ProgramEndCleanSyntax","href":"Hi.NcParsers.LogicSyntaxs.ProgramEndCleanSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.ProgramEndCleanSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.ProgramEndCleanSyntax","type":"Class"},{"name":"ProgramEndSyntax","href":"Hi.NcParsers.LogicSyntaxs.ProgramEndSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.ProgramEndSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.ProgramEndSyntax","type":"Class"},{"name":"ProgramStopSyntax","href":"Hi.NcParsers.LogicSyntaxs.ProgramStopSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.ProgramStopSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.ProgramStopSyntax","type":"Class"},{"name":"ProgramXyzSyntax","href":"Hi.NcParsers.LogicSyntaxs.ProgramXyzSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.ProgramXyzSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.ProgramXyzSyntax","type":"Class"},{"name":"ProgramXyzUtil","href":"Hi.NcParsers.LogicSyntaxs.ProgramXyzUtil.html","topicHref":"Hi.NcParsers.LogicSyntaxs.ProgramXyzUtil.html","topicUid":"Hi.NcParsers.LogicSyntaxs.ProgramXyzUtil","type":"Class"},{"name":"ReferenceReturnSyntax","href":"Hi.NcParsers.LogicSyntaxs.ReferenceReturnSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.ReferenceReturnSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.ReferenceReturnSyntax","type":"Class"},{"name":"RotaryAxisUtil","href":"Hi.NcParsers.LogicSyntaxs.RotaryAxisUtil.html","topicHref":"Hi.NcParsers.LogicSyntaxs.RotaryAxisUtil.html","topicUid":"Hi.NcParsers.LogicSyntaxs.RotaryAxisUtil","type":"Class"},{"name":"SpindleSpeedSyntax","href":"Hi.NcParsers.LogicSyntaxs.SpindleSpeedSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.SpindleSpeedSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.SpindleSpeedSyntax","type":"Class"},{"name":"TappingCycleSyntax","href":"Hi.NcParsers.LogicSyntaxs.TappingCycleSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.TappingCycleSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.TappingCycleSyntax","type":"Class"},{"name":"TiltTransformUtil","href":"Hi.NcParsers.LogicSyntaxs.TiltTransformUtil.html","topicHref":"Hi.NcParsers.LogicSyntaxs.TiltTransformUtil.html","topicUid":"Hi.NcParsers.LogicSyntaxs.TiltTransformUtil","type":"Class"},{"name":"ToolChangeSyntax","href":"Hi.NcParsers.LogicSyntaxs.ToolChangeSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.ToolChangeSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.ToolChangeSyntax","type":"Class"},{"name":"ToolHeightOffsetSyntax","href":"Hi.NcParsers.LogicSyntaxs.ToolHeightOffsetSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.ToolHeightOffsetSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.ToolHeightOffsetSyntax","type":"Class"},{"name":"UnitModeSyntax","href":"Hi.NcParsers.LogicSyntaxs.UnitModeSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.UnitModeSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.UnitModeSyntax","type":"Class"}]},{"name":"Hi.NcParsers.LogicSyntaxs.Heidenhain","href":"Hi.NcParsers.LogicSyntaxs.Heidenhain.html","topicHref":"Hi.NcParsers.LogicSyntaxs.Heidenhain.html","topicUid":"Hi.NcParsers.LogicSyntaxs.Heidenhain","type":"Namespace","items":[{"name":"HeidenhainCoordinateOffsetSyntax","href":"Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCoordinateOffsetSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCoordinateOffsetSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCoordinateOffsetSyntax","type":"Class"}]},{"name":"Hi.NcParsers.LogicSyntaxs.Siemens","href":"Hi.NcParsers.LogicSyntaxs.Siemens.html","topicHref":"Hi.NcParsers.LogicSyntaxs.Siemens.html","topicUid":"Hi.NcParsers.LogicSyntaxs.Siemens","type":"Namespace","items":[{"name":"SiemensCoordinateOffsetSyntax","href":"Hi.NcParsers.LogicSyntaxs.Siemens.SiemensCoordinateOffsetSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.Siemens.SiemensCoordinateOffsetSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.Siemens.SiemensCoordinateOffsetSyntax","type":"Class"}]},{"name":"Hi.NcParsers.ParsingSyntaxs","href":"Hi.NcParsers.ParsingSyntaxs.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.html","topicUid":"Hi.NcParsers.ParsingSyntaxs","type":"Namespace","items":[{"name":"BlockSkipSyntax","href":"Hi.NcParsers.ParsingSyntaxs.BlockSkipSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.BlockSkipSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.BlockSkipSyntax","type":"Class"},{"name":"CsScriptSyntax","href":"Hi.NcParsers.ParsingSyntaxs.CsScriptSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.CsScriptSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.CsScriptSyntax","type":"Class"},{"name":"FlagSyntax","href":"Hi.NcParsers.ParsingSyntaxs.FlagSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.FlagSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.FlagSyntax","type":"Class"},{"name":"FloatTagValueSyntax","href":"Hi.NcParsers.ParsingSyntaxs.FloatTagValueSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.FloatTagValueSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.FloatTagValueSyntax","type":"Class"},{"name":"HeadIndexSyntax","href":"Hi.NcParsers.ParsingSyntaxs.HeadIndexSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.HeadIndexSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.HeadIndexSyntax","type":"Class"},{"name":"IntegerTagValueSyntax","href":"Hi.NcParsers.ParsingSyntaxs.IntegerTagValueSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.IntegerTagValueSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.IntegerTagValueSyntax","type":"Class"},{"name":"NamedVarAssignmentSyntax","href":"Hi.NcParsers.ParsingSyntaxs.NamedVarAssignmentSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.NamedVarAssignmentSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.NamedVarAssignmentSyntax","type":"Class"},{"name":"NumberedFlagSyntax","href":"Hi.NcParsers.ParsingSyntaxs.NumberedFlagSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.NumberedFlagSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.NumberedFlagSyntax","type":"Class"},{"name":"ParameterizedFlagSyntax","href":"Hi.NcParsers.ParsingSyntaxs.ParameterizedFlagSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.ParameterizedFlagSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.ParameterizedFlagSyntax","type":"Class"},{"name":"ShrinkIfNoDecimalPointSyntax","href":"Hi.NcParsers.ParsingSyntaxs.ShrinkIfNoDecimalPointSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.ShrinkIfNoDecimalPointSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.ShrinkIfNoDecimalPointSyntax","type":"Class"},{"name":"TagAssignmentSyntax","href":"Hi.NcParsers.ParsingSyntaxs.TagAssignmentSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.TagAssignmentSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.TagAssignmentSyntax","type":"Class"},{"name":"TagValueSyntax","href":"Hi.NcParsers.ParsingSyntaxs.TagValueSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.TagValueSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.TagValueSyntax","type":"Class"},{"name":"TapeBoundarySyntax","href":"Hi.NcParsers.ParsingSyntaxs.TapeBoundarySyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.TapeBoundarySyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.TapeBoundarySyntax","type":"Class"}]},{"name":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs","href":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs","type":"Namespace","items":[{"name":"QuoteCommentSyntax","href":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.QuoteCommentSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.QuoteCommentSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.QuoteCommentSyntax","type":"Class"},{"name":"TailCommentSyntax","href":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.TailCommentSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.TailCommentSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.TailCommentSyntax","type":"Class"}]},{"name":"Hi.NcParsers.ParsingSyntaxs.Fanuc","href":"Hi.NcParsers.ParsingSyntaxs.Fanuc.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Fanuc.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Fanuc","type":"Namespace","items":[{"name":"FanucGotoParsingSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucGotoParsingSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucGotoParsingSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucGotoParsingSyntax","type":"Class"},{"name":"FanucIfThenParsingSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucIfThenParsingSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucIfThenParsingSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucIfThenParsingSyntax","type":"Class"},{"name":"FanucProgramNumberSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucProgramNumberSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucProgramNumberSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucProgramNumberSyntax","type":"Class"}]},{"name":"Hi.NcParsers.ParsingSyntaxs.Heidenhain","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain","type":"Namespace","items":[{"name":"HeidenhainBlkFormSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainBlkFormSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainBlkFormSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainBlkFormSyntax","type":"Class"},{"name":"HeidenhainCallSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCallSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCallSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCallSyntax","type":"Class"},{"name":"HeidenhainCyclDefSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCyclDefSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCyclDefSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCyclDefSyntax","type":"Class"},{"name":"HeidenhainFnAssignmentSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainFnAssignmentSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainFnAssignmentSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainFnAssignmentSyntax","type":"Class"},{"name":"HeidenhainLSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainLSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainLSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainLSyntax","type":"Class"},{"name":"HeidenhainLblSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainLblSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainLblSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainLblSyntax","type":"Class"},{"name":"HeidenhainPlaneSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainPlaneSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainPlaneSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainPlaneSyntax","type":"Class"},{"name":"HeidenhainProgramSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainProgramSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainProgramSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainProgramSyntax","type":"Class"},{"name":"HeidenhainToolCallSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainToolCallSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainToolCallSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainToolCallSyntax","type":"Class"}]},{"name":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs","type":"Namespace","items":[{"name":"HeidenhainDatumSettingSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainDatumSettingSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainDatumSettingSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainDatumSettingSyntax","type":"Class"},{"name":"HeidenhainDatumShiftSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainDatumShiftSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainDatumShiftSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainDatumShiftSyntax","type":"Class"}]},{"name":"Hi.NcParsers.PostLogicSyntaxs","href":"Hi.NcParsers.PostLogicSyntaxs.html","topicHref":"Hi.NcParsers.PostLogicSyntaxs.html","topicUid":"Hi.NcParsers.PostLogicSyntaxs","type":"Namespace","items":[{"name":"ModalCarrySyntax","href":"Hi.NcParsers.PostLogicSyntaxs.ModalCarrySyntax.html","topicHref":"Hi.NcParsers.PostLogicSyntaxs.ModalCarrySyntax.html","topicUid":"Hi.NcParsers.PostLogicSyntaxs.ModalCarrySyntax","type":"Class"},{"name":"RadiusCompensationSyntax","href":"Hi.NcParsers.PostLogicSyntaxs.RadiusCompensationSyntax.html","topicHref":"Hi.NcParsers.PostLogicSyntaxs.RadiusCompensationSyntax.html","topicUid":"Hi.NcParsers.PostLogicSyntaxs.RadiusCompensationSyntax","type":"Class"}]},{"name":"Hi.NcParsers.Segmenters","href":"Hi.NcParsers.Segmenters.html","topicHref":"Hi.NcParsers.Segmenters.html","topicUid":"Hi.NcParsers.Segmenters","type":"Namespace","items":[{"name":"HeidenhainSegmenter","href":"Hi.NcParsers.Segmenters.HeidenhainSegmenter.html","topicHref":"Hi.NcParsers.Segmenters.HeidenhainSegmenter.html","topicUid":"Hi.NcParsers.Segmenters.HeidenhainSegmenter","type":"Class"},{"name":"ISegmenter","href":"Hi.NcParsers.Segmenters.ISegmenter.html","topicHref":"Hi.NcParsers.Segmenters.ISegmenter.html","topicUid":"Hi.NcParsers.Segmenters.ISegmenter","type":"Interface"},{"name":"InlineDelimiterSegmenter","href":"Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.html","topicHref":"Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.html","topicUid":"Hi.NcParsers.Segmenters.InlineDelimiterSegmenter","type":"Class"},{"name":"SingleLineSegmenter","href":"Hi.NcParsers.Segmenters.SingleLineSegmenter.html","topicHref":"Hi.NcParsers.Segmenters.SingleLineSegmenter.html","topicUid":"Hi.NcParsers.Segmenters.SingleLineSegmenter","type":"Class"}]},{"name":"Hi.NcParsers.Semantics","href":"Hi.NcParsers.Semantics.html","topicHref":"Hi.NcParsers.Semantics.html","topicUid":"Hi.NcParsers.Semantics","type":"Namespace","items":[{"name":"ClLinearMotionSemantic","href":"Hi.NcParsers.Semantics.ClLinearMotionSemantic.html","topicHref":"Hi.NcParsers.Semantics.ClLinearMotionSemantic.html","topicUid":"Hi.NcParsers.Semantics.ClLinearMotionSemantic","type":"Class"},{"name":"CompoundMotionSemantic","href":"Hi.NcParsers.Semantics.CompoundMotionSemantic.html","topicHref":"Hi.NcParsers.Semantics.CompoundMotionSemantic.html","topicUid":"Hi.NcParsers.Semantics.CompoundMotionSemantic","type":"Class"},{"name":"CoolantSemantic","href":"Hi.NcParsers.Semantics.CoolantSemantic.html","topicHref":"Hi.NcParsers.Semantics.CoolantSemantic.html","topicUid":"Hi.NcParsers.Semantics.CoolantSemantic","type":"Class"},{"name":"CsScriptBeginSemantic","href":"Hi.NcParsers.Semantics.CsScriptBeginSemantic.html","topicHref":"Hi.NcParsers.Semantics.CsScriptBeginSemantic.html","topicUid":"Hi.NcParsers.Semantics.CsScriptBeginSemantic","type":"Class"},{"name":"CsScriptEndSemantic","href":"Hi.NcParsers.Semantics.CsScriptEndSemantic.html","topicHref":"Hi.NcParsers.Semantics.CsScriptEndSemantic.html","topicUid":"Hi.NcParsers.Semantics.CsScriptEndSemantic","type":"Class"},{"name":"CsScriptSemantic","href":"Hi.NcParsers.Semantics.CsScriptSemantic.html","topicHref":"Hi.NcParsers.Semantics.CsScriptSemantic.html","topicUid":"Hi.NcParsers.Semantics.CsScriptSemantic","type":"Class"},{"name":"INcSemantic","href":"Hi.NcParsers.Semantics.INcSemantic.html","topicHref":"Hi.NcParsers.Semantics.INcSemantic.html","topicUid":"Hi.NcParsers.Semantics.INcSemantic","type":"Interface"},{"name":"MachineCoordinateStepSemantic","href":"Hi.NcParsers.Semantics.MachineCoordinateStepSemantic.html","topicHref":"Hi.NcParsers.Semantics.MachineCoordinateStepSemantic.html","topicUid":"Hi.NcParsers.Semantics.MachineCoordinateStepSemantic","type":"Class"},{"name":"McArcMotionSemantic","href":"Hi.NcParsers.Semantics.McArcMotionSemantic.html","topicHref":"Hi.NcParsers.Semantics.McArcMotionSemantic.html","topicUid":"Hi.NcParsers.Semantics.McArcMotionSemantic","type":"Class"},{"name":"McLinearMotionSemantic","href":"Hi.NcParsers.Semantics.McLinearMotionSemantic.html","topicHref":"Hi.NcParsers.Semantics.McLinearMotionSemantic.html","topicUid":"Hi.NcParsers.Semantics.McLinearMotionSemantic","type":"Class"},{"name":"SpindleSpeedSemantic","href":"Hi.NcParsers.Semantics.SpindleSpeedSemantic.html","topicHref":"Hi.NcParsers.Semantics.SpindleSpeedSemantic.html","topicUid":"Hi.NcParsers.Semantics.SpindleSpeedSemantic","type":"Class"},{"name":"StrokeLimitCheckSemantic","href":"Hi.NcParsers.Semantics.StrokeLimitCheckSemantic.html","topicHref":"Hi.NcParsers.Semantics.StrokeLimitCheckSemantic.html","topicUid":"Hi.NcParsers.Semantics.StrokeLimitCheckSemantic","type":"Class"},{"name":"ToolChangeSemantic","href":"Hi.NcParsers.Semantics.ToolChangeSemantic.html","topicHref":"Hi.NcParsers.Semantics.ToolChangeSemantic.html","topicUid":"Hi.NcParsers.Semantics.ToolChangeSemantic","type":"Class"}]},{"name":"Hi.NcParsers.Syntaxs","href":"Hi.NcParsers.Syntaxs.html","topicHref":"Hi.NcParsers.Syntaxs.html","topicUid":"Hi.NcParsers.Syntaxs","type":"Namespace","items":[{"name":"BundleSyntax","href":"Hi.NcParsers.Syntaxs.BundleSyntax.html","topicHref":"Hi.NcParsers.Syntaxs.BundleSyntax.html","topicUid":"Hi.NcParsers.Syntaxs.BundleSyntax","type":"Class"},{"name":"FanucSyntaxUtil","href":"Hi.NcParsers.Syntaxs.FanucSyntaxUtil.html","topicHref":"Hi.NcParsers.Syntaxs.FanucSyntaxUtil.html","topicUid":"Hi.NcParsers.Syntaxs.FanucSyntaxUtil","type":"Class"},{"name":"GenericSyntaxKit","href":"Hi.NcParsers.Syntaxs.GenericSyntaxKit.html","topicHref":"Hi.NcParsers.Syntaxs.GenericSyntaxKit.html","topicUid":"Hi.NcParsers.Syntaxs.GenericSyntaxKit","type":"Class"},{"name":"HeidenhainSyntaxUtil","href":"Hi.NcParsers.Syntaxs.HeidenhainSyntaxUtil.html","topicHref":"Hi.NcParsers.Syntaxs.HeidenhainSyntaxUtil.html","topicUid":"Hi.NcParsers.Syntaxs.HeidenhainSyntaxUtil","type":"Class"},{"name":"IExpandingNcSyntax","href":"Hi.NcParsers.Syntaxs.IExpandingNcSyntax.html","topicHref":"Hi.NcParsers.Syntaxs.IExpandingNcSyntax.html","topicUid":"Hi.NcParsers.Syntaxs.IExpandingNcSyntax","type":"Interface"},{"name":"INcSyntax","href":"Hi.NcParsers.Syntaxs.INcSyntax.html","topicHref":"Hi.NcParsers.Syntaxs.INcSyntax.html","topicUid":"Hi.NcParsers.Syntaxs.INcSyntax","type":"Interface"},{"name":"ISituNcSyntax","href":"Hi.NcParsers.Syntaxs.ISituNcSyntax.html","topicHref":"Hi.NcParsers.Syntaxs.ISituNcSyntax.html","topicUid":"Hi.NcParsers.Syntaxs.ISituNcSyntax","type":"Interface"},{"name":"MazakSyntaxUtil","href":"Hi.NcParsers.Syntaxs.MazakSyntaxUtil.html","topicHref":"Hi.NcParsers.Syntaxs.MazakSyntaxUtil.html","topicUid":"Hi.NcParsers.Syntaxs.MazakSyntaxUtil","type":"Class"},{"name":"NcSyntaxUtil","href":"Hi.NcParsers.Syntaxs.NcSyntaxUtil.html","topicHref":"Hi.NcParsers.Syntaxs.NcSyntaxUtil.html","topicUid":"Hi.NcParsers.Syntaxs.NcSyntaxUtil","type":"Class"},{"name":"SiemensSyntaxUtil","href":"Hi.NcParsers.Syntaxs.SiemensSyntaxUtil.html","topicHref":"Hi.NcParsers.Syntaxs.SiemensSyntaxUtil.html","topicUid":"Hi.NcParsers.Syntaxs.SiemensSyntaxUtil","type":"Class"},{"name":"SyntaxPiece","href":"Hi.NcParsers.Syntaxs.SyntaxPiece.html","topicHref":"Hi.NcParsers.Syntaxs.SyntaxPiece.html","topicUid":"Hi.NcParsers.Syntaxs.SyntaxPiece","type":"Class"},{"name":"SyntaxStageKeys","href":"Hi.NcParsers.Syntaxs.SyntaxStageKeys.html","topicHref":"Hi.NcParsers.Syntaxs.SyntaxStageKeys.html","topicUid":"Hi.NcParsers.Syntaxs.SyntaxStageKeys","type":"Class"},{"name":"SyntecSyntaxUtil","href":"Hi.NcParsers.Syntaxs.SyntecSyntaxUtil.html","topicHref":"Hi.NcParsers.Syntaxs.SyntecSyntaxUtil.html","topicUid":"Hi.NcParsers.Syntaxs.SyntecSyntaxUtil","type":"Class"},{"name":"TagValue","href":"Hi.NcParsers.Syntaxs.TagValue.html","topicHref":"Hi.NcParsers.Syntaxs.TagValue.html","topicUid":"Hi.NcParsers.Syntaxs.TagValue","type":"Class"},{"name":"TransformationUtil","href":"Hi.NcParsers.Syntaxs.TransformationUtil.html","topicHref":"Hi.NcParsers.Syntaxs.TransformationUtil.html","topicUid":"Hi.NcParsers.Syntaxs.TransformationUtil","type":"Class"}]},{"name":"Hi.Numerical","href":"Hi.Numerical.html","topicHref":"Hi.Numerical.html","topicUid":"Hi.Numerical","type":"Namespace","items":[{"name":"CncBrand","href":"Hi.Numerical.CncBrand.html","topicHref":"Hi.Numerical.CncBrand.html","topicUid":"Hi.Numerical.CncBrand","type":"Enum"},{"name":"CommentMark","href":"Hi.Numerical.CommentMark.html","topicHref":"Hi.Numerical.CommentMark.html","topicUid":"Hi.Numerical.CommentMark","type":"Enum"},{"name":"CoolantMode","href":"Hi.Numerical.CoolantMode.html","topicHref":"Hi.Numerical.CoolantMode.html","topicUid":"Hi.Numerical.CoolantMode","type":"Enum"},{"name":"CoordinateInterpolationMode","href":"Hi.Numerical.CoordinateInterpolationMode.html","topicHref":"Hi.Numerical.CoordinateInterpolationMode.html","topicUid":"Hi.Numerical.CoordinateInterpolationMode","type":"Enum"},{"name":"FlexDictionaryUtil","href":"Hi.Numerical.FlexDictionaryUtil.html","topicHref":"Hi.Numerical.FlexDictionaryUtil.html","topicUid":"Hi.Numerical.FlexDictionaryUtil","type":"Class"},{"name":"HardNcComment","href":"Hi.Numerical.HardNcComment.html","topicHref":"Hi.Numerical.HardNcComment.html","topicUid":"Hi.Numerical.HardNcComment","type":"Class"},{"name":"HardNcEnv","href":"Hi.Numerical.HardNcEnv.html","topicHref":"Hi.Numerical.HardNcEnv.html","topicUid":"Hi.Numerical.HardNcEnv","type":"Class"},{"name":"HardNcLine","href":"Hi.Numerical.HardNcLine.html","topicHref":"Hi.Numerical.HardNcLine.html","topicUid":"Hi.Numerical.HardNcLine","type":"Class"},{"name":"HardNcUtil","href":"Hi.Numerical.HardNcUtil.html","topicHref":"Hi.Numerical.HardNcUtil.html","topicUid":"Hi.Numerical.HardNcUtil","type":"Class"},{"name":"HeidenhainCoordinateEntryDisplayee","href":"Hi.Numerical.HeidenhainCoordinateEntryDisplayee.html","topicHref":"Hi.Numerical.HeidenhainCoordinateEntryDisplayee.html","topicUid":"Hi.Numerical.HeidenhainCoordinateEntryDisplayee","type":"Class"},{"name":"IControlRunner","href":"Hi.Numerical.IControlRunner.html","topicHref":"Hi.Numerical.IControlRunner.html","topicUid":"Hi.Numerical.IControlRunner","type":"Interface"},{"name":"IFlexDictionaryHost","href":"Hi.Numerical.IFlexDictionaryHost-1.html","topicHref":"Hi.Numerical.IFlexDictionaryHost-1.html","topicUid":"Hi.Numerical.IFlexDictionaryHost`1","type":"Interface"},{"name":"IGetFeedrate","href":"Hi.Numerical.IGetFeedrate.html","topicHref":"Hi.Numerical.IGetFeedrate.html","topicUid":"Hi.Numerical.IGetFeedrate","type":"Interface"},{"name":"IGetSpindleSpeed","href":"Hi.Numerical.IGetSpindleSpeed.html","topicHref":"Hi.Numerical.IGetSpindleSpeed.html","topicUid":"Hi.Numerical.IGetSpindleSpeed","type":"Interface"},{"name":"ISetFeedrate","href":"Hi.Numerical.ISetFeedrate.html","topicHref":"Hi.Numerical.ISetFeedrate.html","topicUid":"Hi.Numerical.ISetFeedrate","type":"Interface"},{"name":"ISetSpindleSpeed","href":"Hi.Numerical.ISetSpindleSpeed.html","topicHref":"Hi.Numerical.ISetSpindleSpeed.html","topicUid":"Hi.Numerical.ISetSpindleSpeed","type":"Interface"},{"name":"IsoCoordinateEntryDisplayee","href":"Hi.Numerical.IsoCoordinateEntryDisplayee.html","topicHref":"Hi.Numerical.IsoCoordinateEntryDisplayee.html","topicUid":"Hi.Numerical.IsoCoordinateEntryDisplayee","type":"Class"},{"name":"MechNcUtil","href":"Hi.Numerical.MechNcUtil.html","topicHref":"Hi.Numerical.MechNcUtil.html","topicUid":"Hi.Numerical.MechNcUtil","type":"Class"},{"name":"MillingToolOffsetTable","href":"Hi.Numerical.MillingToolOffsetTable.html","topicHref":"Hi.Numerical.MillingToolOffsetTable.html","topicUid":"Hi.Numerical.MillingToolOffsetTable","type":"Class"},{"name":"MillingToolOffsetTableRow","href":"Hi.Numerical.MillingToolOffsetTableRow.html","topicHref":"Hi.Numerical.MillingToolOffsetTableRow.html","topicUid":"Hi.Numerical.MillingToolOffsetTableRow","type":"Class"},{"name":"NcFlag","href":"Hi.Numerical.NcFlag.html","topicHref":"Hi.Numerical.NcFlag.html","topicUid":"Hi.Numerical.NcFlag","type":"Enum"},{"name":"NcFlagUtil","href":"Hi.Numerical.NcFlagUtil.html","topicHref":"Hi.Numerical.NcFlagUtil.html","topicUid":"Hi.Numerical.NcFlagUtil","type":"Class"},{"name":"NcGroup00","href":"Hi.Numerical.NcGroup00.html","topicHref":"Hi.Numerical.NcGroup00.html","topicUid":"Hi.Numerical.NcGroup00","type":"Enum"},{"name":"NcGroup01","href":"Hi.Numerical.NcGroup01.html","topicHref":"Hi.Numerical.NcGroup01.html","topicUid":"Hi.Numerical.NcGroup01","type":"Enum"},{"name":"NcGroup02","href":"Hi.Numerical.NcGroup02.html","topicHref":"Hi.Numerical.NcGroup02.html","topicUid":"Hi.Numerical.NcGroup02","type":"Enum"},{"name":"NcGroup03","href":"Hi.Numerical.NcGroup03.html","topicHref":"Hi.Numerical.NcGroup03.html","topicUid":"Hi.Numerical.NcGroup03","type":"Enum"},{"name":"NcGroup05","href":"Hi.Numerical.NcGroup05.html","topicHref":"Hi.Numerical.NcGroup05.html","topicUid":"Hi.Numerical.NcGroup05","type":"Enum"},{"name":"NcGroup06","href":"Hi.Numerical.NcGroup06.html","topicHref":"Hi.Numerical.NcGroup06.html","topicUid":"Hi.Numerical.NcGroup06","type":"Enum"},{"name":"NcGroup07","href":"Hi.Numerical.NcGroup07.html","topicHref":"Hi.Numerical.NcGroup07.html","topicUid":"Hi.Numerical.NcGroup07","type":"Enum"},{"name":"NcGroup08","href":"Hi.Numerical.NcGroup08.html","topicHref":"Hi.Numerical.NcGroup08.html","topicUid":"Hi.Numerical.NcGroup08","type":"Enum"},{"name":"NcGroup09","href":"Hi.Numerical.NcGroup09.html","topicHref":"Hi.Numerical.NcGroup09.html","topicUid":"Hi.Numerical.NcGroup09","type":"Enum"},{"name":"NcGroup10","href":"Hi.Numerical.NcGroup10.html","topicHref":"Hi.Numerical.NcGroup10.html","topicUid":"Hi.Numerical.NcGroup10","type":"Enum"},{"name":"NcGroup13","href":"Hi.Numerical.NcGroup13.html","topicHref":"Hi.Numerical.NcGroup13.html","topicUid":"Hi.Numerical.NcGroup13","type":"Enum"},{"name":"NcGroup14","href":"Hi.Numerical.NcGroup14.html","topicHref":"Hi.Numerical.NcGroup14.html","topicUid":"Hi.Numerical.NcGroup14","type":"Enum"},{"name":"NcGroup15","href":"Hi.Numerical.NcGroup15.html","topicHref":"Hi.Numerical.NcGroup15.html","topicUid":"Hi.Numerical.NcGroup15","type":"Enum"},{"name":"NcGroup16","href":"Hi.Numerical.NcGroup16.html","topicHref":"Hi.Numerical.NcGroup16.html","topicUid":"Hi.Numerical.NcGroup16","type":"Enum"},{"name":"NcGroup21","href":"Hi.Numerical.NcGroup21.html","topicHref":"Hi.Numerical.NcGroup21.html","topicUid":"Hi.Numerical.NcGroup21","type":"Enum"},{"name":"NcGroupAttribute","href":"Hi.Numerical.NcGroupAttribute.html","topicHref":"Hi.Numerical.NcGroupAttribute.html","topicUid":"Hi.Numerical.NcGroupAttribute","type":"Class"},{"name":"NcGroupHeidenhainM107M108","href":"Hi.Numerical.NcGroupHeidenhainM107M108.html","topicHref":"Hi.Numerical.NcGroupHeidenhainM107M108.html","topicUid":"Hi.Numerical.NcGroupHeidenhainM107M108","type":"Enum"},{"name":"NcGroupHeidenhainPlane","href":"Hi.Numerical.NcGroupHeidenhainPlane.html","topicHref":"Hi.Numerical.NcGroupHeidenhainPlane.html","topicUid":"Hi.Numerical.NcGroupHeidenhainPlane","type":"Enum"},{"name":"NcGroupHeidenhainShortestRotaryPath","href":"Hi.Numerical.NcGroupHeidenhainShortestRotaryPath.html","topicHref":"Hi.Numerical.NcGroupHeidenhainShortestRotaryPath.html","topicUid":"Hi.Numerical.NcGroupHeidenhainShortestRotaryPath","type":"Enum"},{"name":"NcGroupSpindleRotation","href":"Hi.Numerical.NcGroupSpindleRotation.html","topicHref":"Hi.Numerical.NcGroupSpindleRotation.html","topicUid":"Hi.Numerical.NcGroupSpindleRotation","type":"Enum"},{"name":"NcLifeCycleAttribute","href":"Hi.Numerical.NcLifeCycleAttribute.html","topicHref":"Hi.Numerical.NcLifeCycleAttribute.html","topicUid":"Hi.Numerical.NcLifeCycleAttribute","type":"Class"},{"name":"NcLifeCycleMode","href":"Hi.Numerical.NcLifeCycleMode.html","topicHref":"Hi.Numerical.NcLifeCycleMode.html","topicUid":"Hi.Numerical.NcLifeCycleMode","type":"Enum"},{"name":"NcNameAttribute","href":"Hi.Numerical.NcNameAttribute.html","topicHref":"Hi.Numerical.NcNameAttribute.html","topicUid":"Hi.Numerical.NcNameAttribute","type":"Class"},{"name":"NcNoteCache","href":"Hi.Numerical.NcNoteCache.html","topicHref":"Hi.Numerical.NcNoteCache.html","topicUid":"Hi.Numerical.NcNoteCache","type":"Class"},{"name":"NcProc","href":"Hi.Numerical.NcProc.html","topicHref":"Hi.Numerical.NcProc.html","topicUid":"Hi.Numerical.NcProc","type":"Class"},{"name":"NcWarningSceneEnum","href":"Hi.Numerical.NcWarningSceneEnum.html","topicHref":"Hi.Numerical.NcWarningSceneEnum.html","topicUid":"Hi.Numerical.NcWarningSceneEnum","type":"Enum"},{"name":"NumericUtil","href":"Hi.Numerical.NumericUtil.html","topicHref":"Hi.Numerical.NumericUtil.html","topicUid":"Hi.Numerical.NumericUtil","type":"Class"},{"name":"PolarEntry","href":"Hi.Numerical.PolarEntry.html","topicHref":"Hi.Numerical.PolarEntry.html","topicUid":"Hi.Numerical.PolarEntry","type":"Class"},{"name":"RadiusCompensationBuf","href":"Hi.Numerical.RadiusCompensationBuf.html","topicHref":"Hi.Numerical.RadiusCompensationBuf.html","topicUid":"Hi.Numerical.RadiusCompensationBuf","type":"Class"},{"name":"SourcedActEntry","href":"Hi.Numerical.SourcedActEntry.html","topicHref":"Hi.Numerical.SourcedActEntry.html","topicUid":"Hi.Numerical.SourcedActEntry","type":"Class"},{"name":"SpindleDirection","href":"Hi.Numerical.SpindleDirection.html","topicHref":"Hi.Numerical.SpindleDirection.html","topicUid":"Hi.Numerical.SpindleDirection","type":"Enum"},{"name":"SubStringKit","href":"Hi.Numerical.SubStringKit.html","topicHref":"Hi.Numerical.SubStringKit.html","topicUid":"Hi.Numerical.SubStringKit","type":"Class"},{"name":"SubStringKit.ActivationMode","href":"Hi.Numerical.SubStringKit.ActivationMode.html","topicHref":"Hi.Numerical.SubStringKit.ActivationMode.html","topicUid":"Hi.Numerical.SubStringKit.ActivationMode","type":"Enum"},{"name":"ToolConfigNotFoundException","href":"Hi.Numerical.ToolConfigNotFoundException.html","topicHref":"Hi.Numerical.ToolConfigNotFoundException.html","topicUid":"Hi.Numerical.ToolConfigNotFoundException","type":"Class"}]},{"name":"Hi.Numerical.Acts","href":"Hi.Numerical.Acts.html","topicHref":"Hi.Numerical.Acts.html","topicUid":"Hi.Numerical.Acts","type":"Namespace","items":[{"name":"ActActualTime","href":"Hi.Numerical.Acts.ActActualTime.html","topicHref":"Hi.Numerical.Acts.ActActualTime.html","topicUid":"Hi.Numerical.Acts.ActActualTime","type":"Class"},{"name":"ActClArc","href":"Hi.Numerical.Acts.ActClArc.html","topicHref":"Hi.Numerical.Acts.ActClArc.html","topicUid":"Hi.Numerical.Acts.ActClArc","type":"Class"},{"name":"ActClDerivedMcXyzabcContour","href":"Hi.Numerical.Acts.ActClDerivedMcXyzabcContour.html","topicHref":"Hi.Numerical.Acts.ActClDerivedMcXyzabcContour.html","topicUid":"Hi.Numerical.Acts.ActClDerivedMcXyzabcContour","type":"Class"},{"name":"ActClLinear","href":"Hi.Numerical.Acts.ActClLinear.html","topicHref":"Hi.Numerical.Acts.ActClLinear.html","topicUid":"Hi.Numerical.Acts.ActClLinear","type":"Class"},{"name":"ActClStep","href":"Hi.Numerical.Acts.ActClStep.html","topicHref":"Hi.Numerical.Acts.ActClStep.html","topicUid":"Hi.Numerical.Acts.ActClStep","type":"Class"},{"name":"ActClTeleport","href":"Hi.Numerical.Acts.ActClTeleport.html","topicHref":"Hi.Numerical.Acts.ActClTeleport.html","topicUid":"Hi.Numerical.Acts.ActClTeleport","type":"Class"},{"name":"ActCooling","href":"Hi.Numerical.Acts.ActCooling.html","topicHref":"Hi.Numerical.Acts.ActCooling.html","topicUid":"Hi.Numerical.Acts.ActCooling","type":"Class"},{"name":"ActData","href":"Hi.Numerical.Acts.ActData.html","topicHref":"Hi.Numerical.Acts.ActData.html","topicUid":"Hi.Numerical.Acts.ActData","type":"Class"},{"name":"ActDelay","href":"Hi.Numerical.Acts.ActDelay.html","topicHref":"Hi.Numerical.Acts.ActDelay.html","topicUid":"Hi.Numerical.Acts.ActDelay","type":"Class"},{"name":"ActFeedrate","href":"Hi.Numerical.Acts.ActFeedrate.html","topicHref":"Hi.Numerical.Acts.ActFeedrate.html","topicUid":"Hi.Numerical.Acts.ActFeedrate","type":"Class"},{"name":"ActHiddenStateChanged","href":"Hi.Numerical.Acts.ActHiddenStateChanged.html","topicHref":"Hi.Numerical.Acts.ActHiddenStateChanged.html","topicUid":"Hi.Numerical.Acts.ActHiddenStateChanged","type":"Class"},{"name":"ActIntentionalSkip","href":"Hi.Numerical.Acts.ActIntentionalSkip.html","topicHref":"Hi.Numerical.Acts.ActIntentionalSkip.html","topicUid":"Hi.Numerical.Acts.ActIntentionalSkip","type":"Class"},{"name":"ActLineBegin","href":"Hi.Numerical.Acts.ActLineBegin.html","topicHref":"Hi.Numerical.Acts.ActLineBegin.html","topicUid":"Hi.Numerical.Acts.ActLineBegin","type":"Class"},{"name":"ActLineCsScript","href":"Hi.Numerical.Acts.ActLineCsScript.html","topicHref":"Hi.Numerical.Acts.ActLineCsScript.html","topicUid":"Hi.Numerical.Acts.ActLineCsScript","type":"Class"},{"name":"ActLineEnd","href":"Hi.Numerical.Acts.ActLineEnd.html","topicHref":"Hi.Numerical.Acts.ActLineEnd.html","topicUid":"Hi.Numerical.Acts.ActLineEnd","type":"Class"},{"name":"ActMcPolarLinearContour","href":"Hi.Numerical.Acts.ActMcPolarLinearContour.html","topicHref":"Hi.Numerical.Acts.ActMcPolarLinearContour.html","topicUid":"Hi.Numerical.Acts.ActMcPolarLinearContour","type":"Class"},{"name":"ActMcXyzLinearContour","href":"Hi.Numerical.Acts.ActMcXyzLinearContour.html","topicHref":"Hi.Numerical.Acts.ActMcXyzLinearContour.html","topicUid":"Hi.Numerical.Acts.ActMcXyzLinearContour","type":"Class"},{"name":"ActMcXyzSpiralContour","href":"Hi.Numerical.Acts.ActMcXyzSpiralContour.html","topicHref":"Hi.Numerical.Acts.ActMcXyzSpiralContour.html","topicUid":"Hi.Numerical.Acts.ActMcXyzSpiralContour","type":"Class"},{"name":"ActMcXyzStep","href":"Hi.Numerical.Acts.ActMcXyzStep.html","topicHref":"Hi.Numerical.Acts.ActMcXyzStep.html","topicUid":"Hi.Numerical.Acts.ActMcXyzStep","type":"Class"},{"name":"ActMcXyzabcLinearContour","href":"Hi.Numerical.Acts.ActMcXyzabcLinearContour.html","topicHref":"Hi.Numerical.Acts.ActMcXyzabcLinearContour.html","topicUid":"Hi.Numerical.Acts.ActMcXyzabcLinearContour","type":"Class"},{"name":"ActMcXyzabcStep","href":"Hi.Numerical.Acts.ActMcXyzabcStep.html","topicHref":"Hi.Numerical.Acts.ActMcXyzabcStep.html","topicUid":"Hi.Numerical.Acts.ActMcXyzabcStep","type":"Class"},{"name":"ActRapid","href":"Hi.Numerical.Acts.ActRapid.html","topicHref":"Hi.Numerical.Acts.ActRapid.html","topicUid":"Hi.Numerical.Acts.ActRapid","type":"Class"},{"name":"ActSpindleDirection","href":"Hi.Numerical.Acts.ActSpindleDirection.html","topicHref":"Hi.Numerical.Acts.ActSpindleDirection.html","topicUid":"Hi.Numerical.Acts.ActSpindleDirection","type":"Class"},{"name":"ActSpindleOrientation","href":"Hi.Numerical.Acts.ActSpindleOrientation.html","topicHref":"Hi.Numerical.Acts.ActSpindleOrientation.html","topicUid":"Hi.Numerical.Acts.ActSpindleOrientation","type":"Class"},{"name":"ActSpindleSpeed","href":"Hi.Numerical.Acts.ActSpindleSpeed.html","topicHref":"Hi.Numerical.Acts.ActSpindleSpeed.html","topicUid":"Hi.Numerical.Acts.ActSpindleSpeed","type":"Class"},{"name":"ActToolingStep","href":"Hi.Numerical.Acts.ActToolingStep.html","topicHref":"Hi.Numerical.Acts.ActToolingStep.html","topicUid":"Hi.Numerical.Acts.ActToolingStep","type":"Class"},{"name":"ActToolingTeleport","href":"Hi.Numerical.Acts.ActToolingTeleport.html","topicHref":"Hi.Numerical.Acts.ActToolingTeleport.html","topicUid":"Hi.Numerical.Acts.ActToolingTeleport","type":"Class"},{"name":"ActUnknownSkip","href":"Hi.Numerical.Acts.ActUnknownSkip.html","topicHref":"Hi.Numerical.Acts.ActUnknownSkip.html","topicUid":"Hi.Numerical.Acts.ActUnknownSkip","type":"Class"},{"name":"ActUtil","href":"Hi.Numerical.Acts.ActUtil.html","topicHref":"Hi.Numerical.Acts.ActUtil.html","topicUid":"Hi.Numerical.Acts.ActUtil","type":"Class"},{"name":"IAct","href":"Hi.Numerical.Acts.IAct.html","topicHref":"Hi.Numerical.Acts.IAct.html","topicUid":"Hi.Numerical.Acts.IAct","type":"Interface"},{"name":"IActClMove","href":"Hi.Numerical.Acts.IActClMove.html","topicHref":"Hi.Numerical.Acts.IActClMove.html","topicUid":"Hi.Numerical.Acts.IActClMove","type":"Interface"},{"name":"IActDuration","href":"Hi.Numerical.Acts.IActDuration.html","topicHref":"Hi.Numerical.Acts.IActDuration.html","topicUid":"Hi.Numerical.Acts.IActDuration","type":"Interface"},{"name":"IActMachineStep","href":"Hi.Numerical.Acts.IActMachineStep.html","topicHref":"Hi.Numerical.Acts.IActMachineStep.html","topicUid":"Hi.Numerical.Acts.IActMachineStep","type":"Interface"},{"name":"IActMcXyzContour","href":"Hi.Numerical.Acts.IActMcXyzContour.html","topicHref":"Hi.Numerical.Acts.IActMcXyzContour.html","topicUid":"Hi.Numerical.Acts.IActMcXyzContour","type":"Interface"},{"name":"IActMcXyzabcContour","href":"Hi.Numerical.Acts.IActMcXyzabcContour.html","topicHref":"Hi.Numerical.Acts.IActMcXyzabcContour.html","topicUid":"Hi.Numerical.Acts.IActMcXyzabcContour","type":"Interface"},{"name":"IActSkip","href":"Hi.Numerical.Acts.IActSkip.html","topicHref":"Hi.Numerical.Acts.IActSkip.html","topicUid":"Hi.Numerical.Acts.IActSkip","type":"Interface"},{"name":"IActTooling","href":"Hi.Numerical.Acts.IActTooling.html","topicHref":"Hi.Numerical.Acts.IActTooling.html","topicUid":"Hi.Numerical.Acts.IActTooling","type":"Interface"},{"name":"IWorkTimeAttrib","href":"Hi.Numerical.Acts.IWorkTimeAttrib.html","topicHref":"Hi.Numerical.Acts.IWorkTimeAttrib.html","topicUid":"Hi.Numerical.Acts.IWorkTimeAttrib","type":"Interface"},{"name":"IWorkTimeGetter","href":"Hi.Numerical.Acts.IWorkTimeGetter.html","topicHref":"Hi.Numerical.Acts.IWorkTimeGetter.html","topicUid":"Hi.Numerical.Acts.IWorkTimeGetter","type":"Interface"},{"name":"IWorkTimeSetter","href":"Hi.Numerical.Acts.IWorkTimeSetter.html","topicHref":"Hi.Numerical.Acts.IWorkTimeSetter.html","topicUid":"Hi.Numerical.Acts.IWorkTimeSetter","type":"Interface"},{"name":"StateActRunner","href":"Hi.Numerical.Acts.StateActRunner.html","topicHref":"Hi.Numerical.Acts.StateActRunner.html","topicUid":"Hi.Numerical.Acts.StateActRunner","type":"Class"}]},{"name":"Hi.Numerical.Args","href":"Hi.Numerical.Args.html","topicHref":"Hi.Numerical.Args.html","topicUid":"Hi.Numerical.Args","type":"Namespace","items":[{"name":"OrthogonalPlaneFlag","href":"Hi.Numerical.Args.OrthogonalPlaneFlag.html","topicHref":"Hi.Numerical.Args.OrthogonalPlaneFlag.html","topicUid":"Hi.Numerical.Args.OrthogonalPlaneFlag","type":"Enum"},{"name":"PolarModeDirEnum","href":"Hi.Numerical.Args.PolarModeDirEnum.html","topicHref":"Hi.Numerical.Args.PolarModeDirEnum.html","topicUid":"Hi.Numerical.Args.PolarModeDirEnum","type":"Enum"}]},{"name":"Hi.Numerical.FilePlayers","href":"Hi.Numerical.FilePlayers.html","topicHref":"Hi.Numerical.FilePlayers.html","topicUid":"Hi.Numerical.FilePlayers","type":"Namespace","items":[{"name":"CsvRunner","href":"Hi.Numerical.FilePlayers.CsvRunner.html","topicHref":"Hi.Numerical.FilePlayers.CsvRunner.html","topicUid":"Hi.Numerical.FilePlayers.CsvRunner","type":"Class"},{"name":"CsvRunnerConfig","href":"Hi.Numerical.FilePlayers.CsvRunnerConfig.html","topicHref":"Hi.Numerical.FilePlayers.CsvRunnerConfig.html","topicUid":"Hi.Numerical.FilePlayers.CsvRunnerConfig","type":"Class"},{"name":"HardNcRunner","href":"Hi.Numerical.FilePlayers.HardNcRunner.html","topicHref":"Hi.Numerical.FilePlayers.HardNcRunner.html","topicUid":"Hi.Numerical.FilePlayers.HardNcRunner","type":"Class"}]},{"name":"Hi.Numerical.MachiningMotionResolutionUtils","href":"Hi.Numerical.MachiningMotionResolutionUtils.html","topicHref":"Hi.Numerical.MachiningMotionResolutionUtils.html","topicUid":"Hi.Numerical.MachiningMotionResolutionUtils","type":"Namespace","items":[{"name":"FeedPerCycleMachiningMotionResolution","href":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerCycleMachiningMotionResolution.html","topicHref":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerCycleMachiningMotionResolution.html","topicUid":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerCycleMachiningMotionResolution","type":"Class"},{"name":"FeedPerToothMachiningMotionResolution","href":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerToothMachiningMotionResolution.html","topicHref":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerToothMachiningMotionResolution.html","topicUid":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerToothMachiningMotionResolution","type":"Class"},{"name":"FixedMachiningMotionResolution","href":"Hi.Numerical.MachiningMotionResolutionUtils.FixedMachiningMotionResolution.html","topicHref":"Hi.Numerical.MachiningMotionResolutionUtils.FixedMachiningMotionResolution.html","topicUid":"Hi.Numerical.MachiningMotionResolutionUtils.FixedMachiningMotionResolution","type":"Class"},{"name":"IMachiningMotionResolution","href":"Hi.Numerical.MachiningMotionResolutionUtils.IMachiningMotionResolution.html","topicHref":"Hi.Numerical.MachiningMotionResolutionUtils.IMachiningMotionResolution.html","topicUid":"Hi.Numerical.MachiningMotionResolutionUtils.IMachiningMotionResolution","type":"Interface"}]},{"name":"Hi.Numerical.NcArgs","href":"Hi.Numerical.NcArgs.html","topicHref":"Hi.Numerical.NcArgs.html","topicUid":"Hi.Numerical.NcArgs","type":"Namespace","items":[{"name":"ArcNcArg","href":"Hi.Numerical.NcArgs.ArcNcArg.html","topicHref":"Hi.Numerical.NcArgs.ArcNcArg.html","topicUid":"Hi.Numerical.NcArgs.ArcNcArg","type":"Class"},{"name":"G28Arg","href":"Hi.Numerical.NcArgs.G28Arg.html","topicHref":"Hi.Numerical.NcArgs.G28Arg.html","topicUid":"Hi.Numerical.NcArgs.G28Arg","type":"Class"},{"name":"Group07NcArg","href":"Hi.Numerical.NcArgs.Group07NcArg.html","topicHref":"Hi.Numerical.NcArgs.Group07NcArg.html","topicUid":"Hi.Numerical.NcArgs.Group07NcArg","type":"Class"},{"name":"Group09NcArg","href":"Hi.Numerical.NcArgs.Group09NcArg.html","topicHref":"Hi.Numerical.NcArgs.Group09NcArg.html","topicUid":"Hi.Numerical.NcArgs.Group09NcArg","type":"Class"},{"name":"HeidenhainCycleDef7Arg","href":"Hi.Numerical.NcArgs.HeidenhainCycleDef7Arg.html","topicHref":"Hi.Numerical.NcArgs.HeidenhainCycleDef7Arg.html","topicUid":"Hi.Numerical.NcArgs.HeidenhainCycleDef7Arg","type":"Class"},{"name":"HeidenhainPlaneSpatialArg","href":"Hi.Numerical.NcArgs.HeidenhainPlaneSpatialArg.html","topicHref":"Hi.Numerical.NcArgs.HeidenhainPlaneSpatialArg.html","topicUid":"Hi.Numerical.NcArgs.HeidenhainPlaneSpatialArg","type":"Class"},{"name":"IHeidenhainBlockCacheArg","href":"Hi.Numerical.NcArgs.IHeidenhainBlockCacheArg.html","topicHref":"Hi.Numerical.NcArgs.IHeidenhainBlockCacheArg.html","topicUid":"Hi.Numerical.NcArgs.IHeidenhainBlockCacheArg","type":"Interface"},{"name":"IHeidenhainPlaneArg","href":"Hi.Numerical.NcArgs.IHeidenhainPlaneArg.html","topicHref":"Hi.Numerical.NcArgs.IHeidenhainPlaneArg.html","topicUid":"Hi.Numerical.NcArgs.IHeidenhainPlaneArg","type":"Interface"},{"name":"ITiltPlaneNcArg","href":"Hi.Numerical.NcArgs.ITiltPlaneNcArg.html","topicHref":"Hi.Numerical.NcArgs.ITiltPlaneNcArg.html","topicUid":"Hi.Numerical.NcArgs.ITiltPlaneNcArg","type":"Interface"},{"name":"NcArgCycle800","href":"Hi.Numerical.NcArgs.NcArgCycle800.html","topicHref":"Hi.Numerical.NcArgs.NcArgCycle800.html","topicUid":"Hi.Numerical.NcArgs.NcArgCycle800","type":"Class"},{"name":"NcArgG68","href":"Hi.Numerical.NcArgs.NcArgG68.html","topicHref":"Hi.Numerical.NcArgs.NcArgG68.html","topicUid":"Hi.Numerical.NcArgs.NcArgG68","type":"Class"},{"name":"NcArgG68p2","href":"Hi.Numerical.NcArgs.NcArgG68p2.html","topicHref":"Hi.Numerical.NcArgs.NcArgG68p2.html","topicUid":"Hi.Numerical.NcArgs.NcArgG68p2","type":"Class"},{"name":"NcArgSiemensFrame","href":"Hi.Numerical.NcArgs.NcArgSiemensFrame.html","topicHref":"Hi.Numerical.NcArgs.NcArgSiemensFrame.html","topicUid":"Hi.Numerical.NcArgs.NcArgSiemensFrame","type":"Class"},{"name":"PausingNcArg","href":"Hi.Numerical.NcArgs.PausingNcArg.html","topicHref":"Hi.Numerical.NcArgs.PausingNcArg.html","topicUid":"Hi.Numerical.NcArgs.PausingNcArg","type":"Class"}]},{"name":"Hi.Numerical.StepSelectionUtils","href":"Hi.Numerical.StepSelectionUtils.html","topicHref":"Hi.Numerical.StepSelectionUtils.html","topicUid":"Hi.Numerical.StepSelectionUtils","type":"Namespace","items":[{"name":"AnchorMode","href":"Hi.Numerical.StepSelectionUtils.AnchorMode.html","topicHref":"Hi.Numerical.StepSelectionUtils.AnchorMode.html","topicUid":"Hi.Numerical.StepSelectionUtils.AnchorMode","type":"Enum"},{"name":"BoundSelector","href":"Hi.Numerical.StepSelectionUtils.BoundSelector.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelector.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelector","type":"Class"},{"name":"BoundSelectorHost","href":"Hi.Numerical.StepSelectionUtils.BoundSelectorHost.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelectorHost.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelectorHost","type":"Class"},{"name":"BoundSelectorPair","href":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair","type":"Class"},{"name":"BoundSelectorPair.BoundLocale","href":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair.BoundLocale.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair.BoundLocale.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair.BoundLocale","type":"Enum"},{"name":"BoundSelectorStepSectionBundle","href":"Hi.Numerical.StepSelectionUtils.BoundSelectorStepSectionBundle.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelectorStepSectionBundle.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelectorStepSectionBundle","type":"Class"},{"name":"BoundSelectorUtil","href":"Hi.Numerical.StepSelectionUtils.BoundSelectorUtil.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelectorUtil.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelectorUtil","type":"Class"},{"name":"DistanceShift","href":"Hi.Numerical.StepSelectionUtils.DistanceShift.html","topicHref":"Hi.Numerical.StepSelectionUtils.DistanceShift.html","topicUid":"Hi.Numerical.StepSelectionUtils.DistanceShift","type":"Class"},{"name":"IStepShift","href":"Hi.Numerical.StepSelectionUtils.IStepShift.html","topicHref":"Hi.Numerical.StepSelectionUtils.IStepShift.html","topicUid":"Hi.Numerical.StepSelectionUtils.IStepShift","type":"Interface"},{"name":"TimeShift","href":"Hi.Numerical.StepSelectionUtils.TimeShift.html","topicHref":"Hi.Numerical.StepSelectionUtils.TimeShift.html","topicUid":"Hi.Numerical.StepSelectionUtils.TimeShift","type":"Class"}]},{"name":"Hi.Numerical.Xyzabc","href":"Hi.Numerical.Xyzabc.html","topicHref":"Hi.Numerical.Xyzabc.html","topicUid":"Hi.Numerical.Xyzabc","type":"Namespace","items":[{"name":"Abc","href":"Hi.Numerical.Xyzabc.Abc.html","topicHref":"Hi.Numerical.Xyzabc.Abc.html","topicUid":"Hi.Numerical.Xyzabc.Abc","type":"Struct"},{"name":"CodeXyzabcChain","href":"Hi.Numerical.Xyzabc.CodeXyzabcChain.html","topicHref":"Hi.Numerical.Xyzabc.CodeXyzabcChain.html","topicUid":"Hi.Numerical.Xyzabc.CodeXyzabcChain","type":"Class"},{"name":"GeneralXyzabcChain","href":"Hi.Numerical.Xyzabc.GeneralXyzabcChain.html","topicHref":"Hi.Numerical.Xyzabc.GeneralXyzabcChain.html","topicUid":"Hi.Numerical.Xyzabc.GeneralXyzabcChain","type":"Class"},{"name":"IGetMcXyzabc","href":"Hi.Numerical.Xyzabc.IGetMcXyzabc.html","topicHref":"Hi.Numerical.Xyzabc.IGetMcXyzabc.html","topicUid":"Hi.Numerical.Xyzabc.IGetMcXyzabc","type":"Interface"},{"name":"IGetXyzabcChain","href":"Hi.Numerical.Xyzabc.IGetXyzabcChain.html","topicHref":"Hi.Numerical.Xyzabc.IGetXyzabcChain.html","topicUid":"Hi.Numerical.Xyzabc.IGetXyzabcChain","type":"Interface"},{"name":"IMachineKinematics","href":"Hi.Numerical.Xyzabc.IMachineKinematics.html","topicHref":"Hi.Numerical.Xyzabc.IMachineKinematics.html","topicUid":"Hi.Numerical.Xyzabc.IMachineKinematics","type":"Interface"},{"name":"ISetMcXyzabc","href":"Hi.Numerical.Xyzabc.ISetMcXyzabc.html","topicHref":"Hi.Numerical.Xyzabc.ISetMcXyzabc.html","topicUid":"Hi.Numerical.Xyzabc.ISetMcXyzabc","type":"Interface"},{"name":"IXyzabcChain","href":"Hi.Numerical.Xyzabc.IXyzabcChain.html","topicHref":"Hi.Numerical.Xyzabc.IXyzabcChain.html","topicUid":"Hi.Numerical.Xyzabc.IXyzabcChain","type":"Interface"},{"name":"ReflectedXyzabcChain","href":"Hi.Numerical.Xyzabc.ReflectedXyzabcChain.html","topicHref":"Hi.Numerical.Xyzabc.ReflectedXyzabcChain.html","topicUid":"Hi.Numerical.Xyzabc.ReflectedXyzabcChain","type":"Class"},{"name":"XyzabcSolver","href":"Hi.Numerical.Xyzabc.XyzabcSolver.html","topicHref":"Hi.Numerical.Xyzabc.XyzabcSolver.html","topicUid":"Hi.Numerical.Xyzabc.XyzabcSolver","type":"Class"},{"name":"XyzabcUtil","href":"Hi.Numerical.Xyzabc.XyzabcUtil.html","topicHref":"Hi.Numerical.Xyzabc.XyzabcUtil.html","topicUid":"Hi.Numerical.Xyzabc.XyzabcUtil","type":"Class"}]},{"name":"Hi.PanelModels","href":"Hi.PanelModels.html","topicHref":"Hi.PanelModels.html","topicUid":"Hi.PanelModels","type":"Namespace","items":[{"name":"HiKey","href":"Hi.PanelModels.HiKey.html","topicHref":"Hi.PanelModels.HiKey.html","topicUid":"Hi.PanelModels.HiKey","type":"Enum"},{"name":"HiKeyEvent","href":"Hi.PanelModels.HiKeyEvent.html","topicHref":"Hi.PanelModels.HiKeyEvent.html","topicUid":"Hi.PanelModels.HiKeyEvent","type":"Class"},{"name":"HiModifierKeys","href":"Hi.PanelModels.HiModifierKeys.html","topicHref":"Hi.PanelModels.HiModifierKeys.html","topicUid":"Hi.PanelModels.HiModifierKeys","type":"Enum"},{"name":"HiMouseButton","href":"Hi.PanelModels.HiMouseButton.html","topicHref":"Hi.PanelModels.HiMouseButton.html","topicUid":"Hi.PanelModels.HiMouseButton","type":"Enum"},{"name":"HiMouseButtonEvent","href":"Hi.PanelModels.HiMouseButtonEvent.html","topicHref":"Hi.PanelModels.HiMouseButtonEvent.html","topicUid":"Hi.PanelModels.HiMouseButtonEvent","type":"Class"},{"name":"HiMouseButtonMask","href":"Hi.PanelModels.HiMouseButtonMask.html","topicHref":"Hi.PanelModels.HiMouseButtonMask.html","topicUid":"Hi.PanelModels.HiMouseButtonMask","type":"Enum"},{"name":"HiMouseButtonMaskUtil","href":"Hi.PanelModels.HiMouseButtonMaskUtil.html","topicHref":"Hi.PanelModels.HiMouseButtonMaskUtil.html","topicUid":"Hi.PanelModels.HiMouseButtonMaskUtil","type":"Class"},{"name":"HiMouseMoveEvent","href":"Hi.PanelModels.HiMouseMoveEvent.html","topicHref":"Hi.PanelModels.HiMouseMoveEvent.html","topicUid":"Hi.PanelModels.HiMouseMoveEvent","type":"Class"},{"name":"HiMouseWheelEvent","href":"Hi.PanelModels.HiMouseWheelEvent.html","topicHref":"Hi.PanelModels.HiMouseWheelEvent.html","topicUid":"Hi.PanelModels.HiMouseWheelEvent","type":"Class"},{"name":"PanelModel","href":"Hi.PanelModels.PanelModel.html","topicHref":"Hi.PanelModels.PanelModel.html","topicUid":"Hi.PanelModels.PanelModel","type":"Class"}]},{"name":"Hi.Parallels","href":"Hi.Parallels.html","topicHref":"Hi.Parallels.html","topicUid":"Hi.Parallels","type":"Namespace","items":[{"name":"CurrentThreadTaskScheduler","href":"Hi.Parallels.CurrentThreadTaskScheduler.html","topicHref":"Hi.Parallels.CurrentThreadTaskScheduler.html","topicUid":"Hi.Parallels.CurrentThreadTaskScheduler","type":"Class"},{"name":"DistributedQueueTaskScheduler","href":"Hi.Parallels.DistributedQueueTaskScheduler.html","topicHref":"Hi.Parallels.DistributedQueueTaskScheduler.html","topicUid":"Hi.Parallels.DistributedQueueTaskScheduler","type":"Class"},{"name":"DistributedQueueTaskStarter","href":"Hi.Parallels.DistributedQueueTaskStarter.html","topicHref":"Hi.Parallels.DistributedQueueTaskStarter.html","topicUid":"Hi.Parallels.DistributedQueueTaskStarter","type":"Class"},{"name":"LockUtil","href":"Hi.Parallels.LockUtil.html","topicHref":"Hi.Parallels.LockUtil.html","topicUid":"Hi.Parallels.LockUtil","type":"Class"},{"name":"PriorityTaskScheduler","href":"Hi.Parallels.PriorityTaskScheduler.html","topicHref":"Hi.Parallels.PriorityTaskScheduler.html","topicUid":"Hi.Parallels.PriorityTaskScheduler","type":"Class"},{"name":"QueueTaskScheduler","href":"Hi.Parallels.QueueTaskScheduler.html","topicHref":"Hi.Parallels.QueueTaskScheduler.html","topicUid":"Hi.Parallels.QueueTaskScheduler","type":"Class"},{"name":"ReaderWriterLockUtil","href":"Hi.Parallels.ReaderWriterLockUtil.html","topicHref":"Hi.Parallels.ReaderWriterLockUtil.html","topicUid":"Hi.Parallels.ReaderWriterLockUtil","type":"Class"},{"name":"SemaphoreUtil","href":"Hi.Parallels.SemaphoreUtil.html","topicHref":"Hi.Parallels.SemaphoreUtil.html","topicUid":"Hi.Parallels.SemaphoreUtil","type":"Class"},{"name":"ThreadSafeSet","href":"Hi.Parallels.ThreadSafeSet-1.html","topicHref":"Hi.Parallels.ThreadSafeSet-1.html","topicUid":"Hi.Parallels.ThreadSafeSet`1","type":"Class"}]},{"name":"Hi.Physics","href":"Hi.Physics.html","topicHref":"Hi.Physics.html","topicUid":"Hi.Physics","type":"Namespace","items":[{"name":"AmpPhase","href":"Hi.Physics.AmpPhase.html","topicHref":"Hi.Physics.AmpPhase.html","topicUid":"Hi.Physics.AmpPhase","type":"Class"},{"name":"CoatingMaterial","href":"Hi.Physics.CoatingMaterial.html","topicHref":"Hi.Physics.CoatingMaterial.html","topicUid":"Hi.Physics.CoatingMaterial","type":"Class"},{"name":"CoolantHeatCondition","href":"Hi.Physics.CoolantHeatCondition.html","topicHref":"Hi.Physics.CoolantHeatCondition.html","topicUid":"Hi.Physics.CoolantHeatCondition","type":"Class"},{"name":"CutterMaterial","href":"Hi.Physics.CutterMaterial.html","topicHref":"Hi.Physics.CutterMaterial.html","topicUid":"Hi.Physics.CutterMaterial","type":"Class"},{"name":"IGetThermalLayerList","href":"Hi.Physics.IGetThermalLayerList.html","topicHref":"Hi.Physics.IGetThermalLayerList.html","topicUid":"Hi.Physics.IGetThermalLayerList","type":"Interface"},{"name":"IStructureMaterial","href":"Hi.Physics.IStructureMaterial.html","topicHref":"Hi.Physics.IStructureMaterial.html","topicUid":"Hi.Physics.IStructureMaterial","type":"Interface"},{"name":"ISuccessivePhysicsBriefAccessor","href":"Hi.Physics.ISuccessivePhysicsBriefAccessor.html","topicHref":"Hi.Physics.ISuccessivePhysicsBriefAccessor.html","topicUid":"Hi.Physics.ISuccessivePhysicsBriefAccessor","type":"Interface"},{"name":"ISurfaceMaterial","href":"Hi.Physics.ISurfaceMaterial.html","topicHref":"Hi.Physics.ISurfaceMaterial.html","topicUid":"Hi.Physics.ISurfaceMaterial","type":"Interface"},{"name":"ITimeGetter","href":"Hi.Physics.ITimeGetter.html","topicHref":"Hi.Physics.ITimeGetter.html","topicUid":"Hi.Physics.ITimeGetter","type":"Interface"},{"name":"MillingTemperatureUtil","href":"Hi.Physics.MillingTemperatureUtil.html","topicHref":"Hi.Physics.MillingTemperatureUtil.html","topicUid":"Hi.Physics.MillingTemperatureUtil","type":"Class"},{"name":"SeqPhysicsBrief","href":"Hi.Physics.SeqPhysicsBrief.html","topicHref":"Hi.Physics.SeqPhysicsBrief.html","topicUid":"Hi.Physics.SeqPhysicsBrief","type":"Class"},{"name":"StructureMaterial","href":"Hi.Physics.StructureMaterial.html","topicHref":"Hi.Physics.StructureMaterial.html","topicUid":"Hi.Physics.StructureMaterial","type":"Class"},{"name":"TemperatureUtil","href":"Hi.Physics.TemperatureUtil.html","topicHref":"Hi.Physics.TemperatureUtil.html","topicUid":"Hi.Physics.TemperatureUtil","type":"Class"},{"name":"TemperatureVsHardness","href":"Hi.Physics.TemperatureVsHardness.html","topicHref":"Hi.Physics.TemperatureVsHardness.html","topicUid":"Hi.Physics.TemperatureVsHardness","type":"Class"},{"name":"ThermalLayer1D","href":"Hi.Physics.ThermalLayer1D.html","topicHref":"Hi.Physics.ThermalLayer1D.html","topicUid":"Hi.Physics.ThermalLayer1D","type":"Class"},{"name":"TimeSeriesUtil","href":"Hi.Physics.TimeSeriesUtil.html","topicHref":"Hi.Physics.TimeSeriesUtil.html","topicUid":"Hi.Physics.TimeSeriesUtil","type":"Class"},{"name":"TimeValue","href":"Hi.Physics.TimeValue.html","topicHref":"Hi.Physics.TimeValue.html","topicUid":"Hi.Physics.TimeValue","type":"Class"},{"name":"WorkpieceMaterial","href":"Hi.Physics.WorkpieceMaterial.html","topicHref":"Hi.Physics.WorkpieceMaterial.html","topicUid":"Hi.Physics.WorkpieceMaterial","type":"Class"}]},{"name":"Hi.SessionCommands","href":"Hi.SessionCommands.html","topicHref":"Hi.SessionCommands.html","topicUid":"Hi.SessionCommands","type":"Namespace","items":[{"name":"EnablingWrapper","href":"Hi.SessionCommands.EnablingWrapper.html","topicHref":"Hi.SessionCommands.EnablingWrapper.html","topicUid":"Hi.SessionCommands.EnablingWrapper","type":"Class"},{"name":"GeomDiffCommand","href":"Hi.SessionCommands.GeomDiffCommand.html","topicHref":"Hi.SessionCommands.GeomDiffCommand.html","topicUid":"Hi.SessionCommands.GeomDiffCommand","type":"Class"},{"name":"ISessionCommand","href":"Hi.SessionCommands.ISessionCommand.html","topicHref":"Hi.SessionCommands.ISessionCommand.html","topicUid":"Hi.SessionCommands.ISessionCommand","type":"Interface"},{"name":"ITitleCommand","href":"Hi.SessionCommands.ITitleCommand.html","topicHref":"Hi.SessionCommands.ITitleCommand.html","topicUid":"Hi.SessionCommands.ITitleCommand","type":"Interface"},{"name":"Lang","href":"Hi.SessionCommands.Lang.html","topicHref":"Hi.SessionCommands.Lang.html","topicUid":"Hi.SessionCommands.Lang","type":"Class"},{"name":"ListCommand","href":"Hi.SessionCommands.ListCommand.html","topicHref":"Hi.SessionCommands.ListCommand.html","topicUid":"Hi.SessionCommands.ListCommand","type":"Class"},{"name":"MachiningMotionResolutionCommand","href":"Hi.SessionCommands.MachiningMotionResolutionCommand.html","topicHref":"Hi.SessionCommands.MachiningMotionResolutionCommand.html","topicUid":"Hi.SessionCommands.MachiningMotionResolutionCommand","type":"Class"},{"name":"NcCodeCommand","href":"Hi.SessionCommands.NcCodeCommand.html","topicHref":"Hi.SessionCommands.NcCodeCommand.html","topicUid":"Hi.SessionCommands.NcCodeCommand","type":"Class"},{"name":"NcFileCommand","href":"Hi.SessionCommands.NcFileCommand.html","topicHref":"Hi.SessionCommands.NcFileCommand.html","topicUid":"Hi.SessionCommands.NcFileCommand","type":"Class"},{"name":"NcFileListCommand","href":"Hi.SessionCommands.NcFileListCommand.html","topicHref":"Hi.SessionCommands.NcFileListCommand.html","topicUid":"Hi.SessionCommands.NcFileListCommand","type":"Class"},{"name":"NcOptOptionCommand","href":"Hi.SessionCommands.NcOptOptionCommand.html","topicHref":"Hi.SessionCommands.NcOptOptionCommand.html","topicUid":"Hi.SessionCommands.NcOptOptionCommand","type":"Class"},{"name":"OptimizeToFilesCommand","href":"Hi.SessionCommands.OptimizeToFilesCommand.html","topicHref":"Hi.SessionCommands.OptimizeToFilesCommand.html","topicUid":"Hi.SessionCommands.OptimizeToFilesCommand","type":"Class"},{"name":"PostExecutionCommand","href":"Hi.SessionCommands.PostExecutionCommand.html","topicHref":"Hi.SessionCommands.PostExecutionCommand.html","topicUid":"Hi.SessionCommands.PostExecutionCommand","type":"Class"},{"name":"PreSettingCommand","href":"Hi.SessionCommands.PreSettingCommand.html","topicHref":"Hi.SessionCommands.PreSettingCommand.html","topicUid":"Hi.SessionCommands.PreSettingCommand","type":"Class"},{"name":"RecordRuntimeGeomActionEnum","href":"Hi.SessionCommands.RecordRuntimeGeomActionEnum.html","topicHref":"Hi.SessionCommands.RecordRuntimeGeomActionEnum.html","topicUid":"Hi.SessionCommands.RecordRuntimeGeomActionEnum","type":"Enum"},{"name":"RecordRuntimeGeomCommand","href":"Hi.SessionCommands.RecordRuntimeGeomCommand.html","topicHref":"Hi.SessionCommands.RecordRuntimeGeomCommand.html","topicUid":"Hi.SessionCommands.RecordRuntimeGeomCommand","type":"Class"},{"name":"ScriptCommand","href":"Hi.SessionCommands.ScriptCommand.html","topicHref":"Hi.SessionCommands.ScriptCommand.html","topicUid":"Hi.SessionCommands.ScriptCommand","type":"Class"},{"name":"SimpleSessionCommand","href":"Hi.SessionCommands.SimpleSessionCommand.html","topicHref":"Hi.SessionCommands.SimpleSessionCommand.html","topicUid":"Hi.SessionCommands.SimpleSessionCommand","type":"Class"},{"name":"WriteRuntimeGeomToStlCommand","href":"Hi.SessionCommands.WriteRuntimeGeomToStlCommand.html","topicHref":"Hi.SessionCommands.WriteRuntimeGeomToStlCommand.html","topicUid":"Hi.SessionCommands.WriteRuntimeGeomToStlCommand","type":"Class"},{"name":"WriteShotFilesCommand","href":"Hi.SessionCommands.WriteShotFilesCommand.html","topicHref":"Hi.SessionCommands.WriteShotFilesCommand.html","topicUid":"Hi.SessionCommands.WriteShotFilesCommand","type":"Class"},{"name":"WriteStepFilesCommand","href":"Hi.SessionCommands.WriteStepFilesCommand.html","topicHref":"Hi.SessionCommands.WriteStepFilesCommand.html","topicUid":"Hi.SessionCommands.WriteStepFilesCommand","type":"Class"}]},{"name":"Hi.SessionShellUtils","href":"Hi.SessionShellUtils.html","topicHref":"Hi.SessionShellUtils.html","topicUid":"Hi.SessionShellUtils","type":"Namespace","items":[{"name":"ISessionShell","href":"Hi.SessionShellUtils.ISessionShell.html","topicHref":"Hi.SessionShellUtils.ISessionShell.html","topicUid":"Hi.SessionShellUtils.ISessionShell","type":"Interface"},{"name":"JsAceAttribute","href":"Hi.SessionShellUtils.JsAceAttribute.html","topicHref":"Hi.SessionShellUtils.JsAceAttribute.html","topicUid":"Hi.SessionShellUtils.JsAceAttribute","type":"Class"}]},{"name":"Hi.SqliteUtils","href":"Hi.SqliteUtils.html","topicHref":"Hi.SqliteUtils.html","topicUid":"Hi.SqliteUtils","type":"Namespace","items":[{"name":"SqliteIdentityRole","href":"Hi.SqliteUtils.SqliteIdentityRole.html","topicHref":"Hi.SqliteUtils.SqliteIdentityRole.html","topicUid":"Hi.SqliteUtils.SqliteIdentityRole","type":"Class"},{"name":"SqliteIdentityStorage","href":"Hi.SqliteUtils.SqliteIdentityStorage.html","topicHref":"Hi.SqliteUtils.SqliteIdentityStorage.html","topicUid":"Hi.SqliteUtils.SqliteIdentityStorage","type":"Class"},{"name":"SqliteIdentityStorage.RoleRow","href":"Hi.SqliteUtils.SqliteIdentityStorage.RoleRow.html","topicHref":"Hi.SqliteUtils.SqliteIdentityStorage.RoleRow.html","topicUid":"Hi.SqliteUtils.SqliteIdentityStorage.RoleRow","type":"Class"},{"name":"SqliteIdentityStorage.UserRow","href":"Hi.SqliteUtils.SqliteIdentityStorage.UserRow.html","topicHref":"Hi.SqliteUtils.SqliteIdentityStorage.UserRow.html","topicUid":"Hi.SqliteUtils.SqliteIdentityStorage.UserRow","type":"Class"},{"name":"SqliteIdentityUser","href":"Hi.SqliteUtils.SqliteIdentityUser.html","topicHref":"Hi.SqliteUtils.SqliteIdentityUser.html","topicUid":"Hi.SqliteUtils.SqliteIdentityUser","type":"Class"},{"name":"SqliteRoleStore","href":"Hi.SqliteUtils.SqliteRoleStore-1.html","topicHref":"Hi.SqliteUtils.SqliteRoleStore-1.html","topicUid":"Hi.SqliteUtils.SqliteRoleStore`1","type":"Class"},{"name":"SqliteStepStorage","href":"Hi.SqliteUtils.SqliteStepStorage.html","topicHref":"Hi.SqliteUtils.SqliteStepStorage.html","topicUid":"Hi.SqliteUtils.SqliteStepStorage","type":"Class"},{"name":"SqliteStepStorage.MillingStepLuggageRow","href":"Hi.SqliteUtils.SqliteStepStorage.MillingStepLuggageRow.html","topicHref":"Hi.SqliteUtils.SqliteStepStorage.MillingStepLuggageRow.html","topicUid":"Hi.SqliteUtils.SqliteStepStorage.MillingStepLuggageRow","type":"Class"},{"name":"SqliteUserStore","href":"Hi.SqliteUtils.SqliteUserStore-1.html","topicHref":"Hi.SqliteUtils.SqliteUserStore-1.html","topicUid":"Hi.SqliteUtils.SqliteUserStore`1","type":"Class"}]},{"name":"Hi.Test","href":"Hi.Test.html","topicHref":"Hi.Test.html","topicUid":"Hi.Test","type":"Namespace","items":[{"name":"TestCollision","href":"Hi.Test.TestCollision.html","topicHref":"Hi.Test.TestCollision.html","topicUid":"Hi.Test.TestCollision","type":"Class"}]},{"name":"Hi.UiExtensions","href":"Hi.UiExtensions.html","topicHref":"Hi.UiExtensions.html","topicUid":"Hi.UiExtensions","type":"Namespace","items":[{"name":"ChartBoundary","href":"Hi.UiExtensions.ChartBoundary.html","topicHref":"Hi.UiExtensions.ChartBoundary.html","topicUid":"Hi.UiExtensions.ChartBoundary","type":"Class"},{"name":"ChartBoundaryEnum","href":"Hi.UiExtensions.ChartBoundaryEnum.html","topicHref":"Hi.UiExtensions.ChartBoundaryEnum.html","topicUid":"Hi.UiExtensions.ChartBoundaryEnum","type":"Enum"},{"name":"NativeVisibility","href":"Hi.UiExtensions.NativeVisibility.html","topicHref":"Hi.UiExtensions.NativeVisibility.html","topicUid":"Hi.UiExtensions.NativeVisibility","type":"Enum"},{"name":"UiUtil","href":"Hi.UiExtensions.UiUtil.html","topicHref":"Hi.UiExtensions.UiUtil.html","topicUid":"Hi.UiExtensions.UiUtil","type":"Class"},{"name":"UiUtil.InvokeFunc","href":"Hi.UiExtensions.UiUtil.InvokeFunc.html","topicHref":"Hi.UiExtensions.UiUtil.InvokeFunc.html","topicUid":"Hi.UiExtensions.UiUtil.InvokeFunc","type":"Delegate"}]},{"name":"Hi.UniversalNc","href":"Hi.UniversalNc.html","topicHref":"Hi.UniversalNc.html","topicUid":"Hi.UniversalNc","type":"Namespace","items":[{"name":"Lang","href":"Hi.UniversalNc.Lang.html","topicHref":"Hi.UniversalNc.Lang.html","topicUid":"Hi.UniversalNc.Lang","type":"Class"}]},{"name":"Hi.Vibrations","href":"Hi.Vibrations.html","topicHref":"Hi.Vibrations.html","topicUid":"Hi.Vibrations","type":"Namespace","items":[{"name":"AngularVelocityUtil","href":"Hi.Vibrations.AngularVelocityUtil.html","topicHref":"Hi.Vibrations.AngularVelocityUtil.html","topicUid":"Hi.Vibrations.AngularVelocityUtil","type":"Class"},{"name":"ForceAccelAmpPhase","href":"Hi.Vibrations.ForceAccelAmpPhase.html","topicHref":"Hi.Vibrations.ForceAccelAmpPhase.html","topicUid":"Hi.Vibrations.ForceAccelAmpPhase","type":"Class"},{"name":"ForceAccelFourierSeries","href":"Hi.Vibrations.ForceAccelFourierSeries.html","topicHref":"Hi.Vibrations.ForceAccelFourierSeries.html","topicUid":"Hi.Vibrations.ForceAccelFourierSeries","type":"Class"},{"name":"ForceAccelShot","href":"Hi.Vibrations.ForceAccelShot.html","topicHref":"Hi.Vibrations.ForceAccelShot.html","topicUid":"Hi.Vibrations.ForceAccelShot","type":"Class"},{"name":"ForceAccelUtil","href":"Hi.Vibrations.ForceAccelUtil.html","topicHref":"Hi.Vibrations.ForceAccelUtil.html","topicUid":"Hi.Vibrations.ForceAccelUtil","type":"Class"},{"name":"IAngularVelocityOwner","href":"Hi.Vibrations.IAngularVelocityOwner.html","topicHref":"Hi.Vibrations.IAngularVelocityOwner.html","topicUid":"Hi.Vibrations.IAngularVelocityOwner","type":"Interface"},{"name":"VibrationUtil","href":"Hi.Vibrations.VibrationUtil.html","topicHref":"Hi.Vibrations.VibrationUtil.html","topicUid":"Hi.Vibrations.VibrationUtil","type":"Class"},{"name":"WAmpPhase","href":"Hi.Vibrations.WAmpPhase.html","topicHref":"Hi.Vibrations.WAmpPhase.html","topicUid":"Hi.Vibrations.WAmpPhase","type":"Class"},{"name":"WAmpPhaseXyzTransformation","href":"Hi.Vibrations.WAmpPhaseXyzTransformation.html","topicHref":"Hi.Vibrations.WAmpPhaseXyzTransformation.html","topicUid":"Hi.Vibrations.WAmpPhaseXyzTransformation","type":"Class"}]},{"name":"Hi.WinForm.Disp","href":"Hi.WinForm.Disp.html","topicHref":"Hi.WinForm.Disp.html","topicUid":"Hi.WinForm.Disp","type":"Namespace","items":[{"name":"RenderingCanvas","href":"Hi.WinForm.Disp.RenderingCanvas.html","topicHref":"Hi.WinForm.Disp.RenderingCanvas.html","topicUid":"Hi.WinForm.Disp.RenderingCanvas","type":"Class"},{"name":"RenderingForm","href":"Hi.WinForm.Disp.RenderingForm.html","topicHref":"Hi.WinForm.Disp.RenderingForm.html","topicUid":"Hi.WinForm.Disp.RenderingForm","type":"Class"}]},{"name":"Hi.WpfPlus.Disp","href":"Hi.WpfPlus.Disp.html","topicHref":"Hi.WpfPlus.Disp.html","topicUid":"Hi.WpfPlus.Disp","type":"Namespace","items":[{"name":"RenderingCanvas","href":"Hi.WpfPlus.Disp.RenderingCanvas.html","topicHref":"Hi.WpfPlus.Disp.RenderingCanvas.html","topicUid":"Hi.WpfPlus.Disp.RenderingCanvas","type":"Class"},{"name":"RenderingWindow","href":"Hi.WpfPlus.Disp.RenderingWindow.html","topicHref":"Hi.WpfPlus.Disp.RenderingWindow.html","topicUid":"Hi.WpfPlus.Disp.RenderingWindow","type":"Class"},{"name":"WpfDispUtil","href":"Hi.WpfPlus.Disp.WpfDispUtil.html","topicHref":"Hi.WpfPlus.Disp.WpfDispUtil.html","topicUid":"Hi.WpfPlus.Disp.WpfDispUtil","type":"Class"}]},{"name":"HiMachining.Milling","href":"HiMachining.Milling.html","topicHref":"HiMachining.Milling.html","topicUid":"HiMachining.Milling","type":"Namespace","items":[{"name":"ClMillingDevice","href":"HiMachining.Milling.ClMillingDevice.html","topicHref":"HiMachining.Milling.ClMillingDevice.html","topicUid":"HiMachining.Milling.ClMillingDevice","type":"Class"}]},{"name":"HiNc.Grpcs","href":"HiNc.Grpcs.html","topicHref":"HiNc.Grpcs.html","topicUid":"HiNc.Grpcs","type":"Namespace","items":[{"name":"MachiningProjectGrpcServer","href":"HiNc.Grpcs.MachiningProjectGrpcServer.html","topicHref":"HiNc.Grpcs.MachiningProjectGrpcServer.html","topicUid":"HiNc.Grpcs.MachiningProjectGrpcServer","type":"Class"}]},{"name":"numerical","href":"numerical.html","topicHref":"numerical.html","topicUid":"numerical","type":"Namespace","items":[{"name":"Empty","href":"numerical.Empty.html","topicHref":"numerical.Empty.html","topicUid":"numerical.Empty","type":"Class"},{"name":"GrpcCsvRowDictionary","href":"numerical.GrpcCsvRowDictionary.html","topicHref":"numerical.GrpcCsvRowDictionary.html","topicUid":"numerical.GrpcCsvRowDictionary","type":"Class"},{"name":"GrpcNcStep","href":"numerical.GrpcNcStep.html","topicHref":"numerical.GrpcNcStep.html","topicUid":"numerical.GrpcNcStep","type":"Class"},{"name":"NumericalReflection","href":"numerical.NumericalReflection.html","topicHref":"numerical.NumericalReflection.html","topicUid":"numerical.NumericalReflection","type":"Class"},{"name":"NumericalService","href":"numerical.NumericalService.html","topicHref":"numerical.NumericalService.html","topicUid":"numerical.NumericalService","type":"Class"},{"name":"NumericalService.NumericalServiceBase","href":"numerical.NumericalService.NumericalServiceBase.html","topicHref":"numerical.NumericalService.NumericalServiceBase.html","topicUid":"numerical.NumericalService.NumericalServiceBase","type":"Class"},{"name":"NumericalService.NumericalServiceClient","href":"numerical.NumericalService.NumericalServiceClient.html","topicHref":"numerical.NumericalService.NumericalServiceClient.html","topicUid":"numerical.NumericalService.NumericalServiceClient","type":"Class"},{"name":"UniversalNcReflection","href":"numerical.UniversalNcReflection.html","topicHref":"numerical.UniversalNcReflection.html","topicUid":"numerical.UniversalNcReflection","type":"Class"},{"name":"UniversalNcService","href":"numerical.UniversalNcService.html","topicHref":"numerical.UniversalNcService.html","topicUid":"numerical.UniversalNcService","type":"Class"},{"name":"UniversalNcService.UniversalNcServiceBase","href":"numerical.UniversalNcService.UniversalNcServiceBase.html","topicHref":"numerical.UniversalNcService.UniversalNcServiceBase.html","topicUid":"numerical.UniversalNcService.UniversalNcServiceBase","type":"Class"},{"name":"UniversalNcService.UniversalNcServiceClient","href":"numerical.UniversalNcService.UniversalNcServiceClient.html","topicHref":"numerical.UniversalNcService.UniversalNcServiceClient.html","topicUid":"numerical.UniversalNcService.UniversalNcServiceClient","type":"Class"}]}],"memberLayout":"SamePage"} +{"items":[{"name":"Hi.Cbtr","href":"Hi.Cbtr.html","topicHref":"Hi.Cbtr.html","topicUid":"Hi.Cbtr","type":"Namespace","items":[{"name":"CachedTris","href":"Hi.Cbtr.CachedTris.html","topicHref":"Hi.Cbtr.CachedTris.html","topicUid":"Hi.Cbtr.CachedTris","type":"Class"},{"name":"CachedTris.SweepingMode","href":"Hi.Cbtr.CachedTris.SweepingMode.html","topicHref":"Hi.Cbtr.CachedTris.SweepingMode.html","topicUid":"Hi.Cbtr.CachedTris.SweepingMode","type":"Enum"},{"name":"CbtrPickable","href":"Hi.Cbtr.CbtrPickable.html","topicHref":"Hi.Cbtr.CbtrPickable.html","topicUid":"Hi.Cbtr.CbtrPickable","type":"Class"},{"name":"ConstructionDefectDisplayee","href":"Hi.Cbtr.ConstructionDefectDisplayee.html","topicHref":"Hi.Cbtr.ConstructionDefectDisplayee.html","topicUid":"Hi.Cbtr.ConstructionDefectDisplayee","type":"Class"},{"name":"CubeTree","href":"Hi.Cbtr.CubeTree.html","topicHref":"Hi.Cbtr.CubeTree.html","topicUid":"Hi.Cbtr.CubeTree","type":"Class"},{"name":"CubeTree.DefectNodeInfo","href":"Hi.Cbtr.CubeTree.DefectNodeInfo.html","topicHref":"Hi.Cbtr.CubeTree.DefectNodeInfo.html","topicUid":"Hi.Cbtr.CubeTree.DefectNodeInfo","type":"Class"},{"name":"CubeTree.DefectNodeInfo.TriWireInfo","href":"Hi.Cbtr.CubeTree.DefectNodeInfo.TriWireInfo.html","topicHref":"Hi.Cbtr.CubeTree.DefectNodeInfo.TriWireInfo.html","topicUid":"Hi.Cbtr.CubeTree.DefectNodeInfo.TriWireInfo","type":"Class"},{"name":"CubeTree.DefectTriWireInfoInterop","href":"Hi.Cbtr.CubeTree.DefectTriWireInfoInterop.html","topicHref":"Hi.Cbtr.CubeTree.DefectTriWireInfoInterop.html","topicUid":"Hi.Cbtr.CubeTree.DefectTriWireInfoInterop","type":"Struct"},{"name":"CubeTree.InfNodeInfo","href":"Hi.Cbtr.CubeTree.InfNodeInfo.html","topicHref":"Hi.Cbtr.CubeTree.InfNodeInfo.html","topicUid":"Hi.Cbtr.CubeTree.InfNodeInfo","type":"Class"},{"name":"CubeTree.TriWireRelationInterop","href":"Hi.Cbtr.CubeTree.TriWireRelationInterop.html","topicHref":"Hi.Cbtr.CubeTree.TriWireRelationInterop.html","topicUid":"Hi.Cbtr.CubeTree.TriWireRelationInterop","type":"Struct"},{"name":"CubeTree.diff_response_func_t","href":"Hi.Cbtr.CubeTree.diff_response_func_t.html","topicHref":"Hi.Cbtr.CubeTree.diff_response_func_t.html","topicUid":"Hi.Cbtr.CubeTree.diff_response_func_t","type":"Delegate"},{"name":"CubeTreeExportExtensions","href":"Hi.Cbtr.CubeTreeExportExtensions.html","topicHref":"Hi.Cbtr.CubeTreeExportExtensions.html","topicUid":"Hi.Cbtr.CubeTreeExportExtensions","type":"Class"},{"name":"CubeTreeFile","href":"Hi.Cbtr.CubeTreeFile.html","topicHref":"Hi.Cbtr.CubeTreeFile.html","topicUid":"Hi.Cbtr.CubeTreeFile","type":"Class"},{"name":"DiffAttachment","href":"Hi.Cbtr.DiffAttachment.html","topicHref":"Hi.Cbtr.DiffAttachment.html","topicUid":"Hi.Cbtr.DiffAttachment","type":"Class"},{"name":"GeomBoolCache","href":"Hi.Cbtr.GeomBoolCache.html","topicHref":"Hi.Cbtr.GeomBoolCache.html","topicUid":"Hi.Cbtr.GeomBoolCache","type":"Class"},{"name":"GeomBoolCacheEnum","href":"Hi.Cbtr.GeomBoolCacheEnum.html","topicHref":"Hi.Cbtr.GeomBoolCacheEnum.html","topicUid":"Hi.Cbtr.GeomBoolCacheEnum","type":"Enum"},{"name":"IGetInitStickConvex","href":"Hi.Cbtr.IGetInitStickConvex.html","topicHref":"Hi.Cbtr.IGetInitStickConvex.html","topicUid":"Hi.Cbtr.IGetInitStickConvex","type":"Interface"},{"name":"InfDefectDisplayee","href":"Hi.Cbtr.InfDefectDisplayee.html","topicHref":"Hi.Cbtr.InfDefectDisplayee.html","topicUid":"Hi.Cbtr.InfDefectDisplayee","type":"Class"},{"name":"InitStickConvex","href":"Hi.Cbtr.InitStickConvex.html","topicHref":"Hi.Cbtr.InitStickConvex.html","topicUid":"Hi.Cbtr.InitStickConvex","type":"Class"},{"name":"LsStl","href":"Hi.Cbtr.LsStl.html","topicHref":"Hi.Cbtr.LsStl.html","topicUid":"Hi.Cbtr.LsStl","type":"Class"},{"name":"Substraction","href":"Hi.Cbtr.Substraction.html","topicHref":"Hi.Cbtr.Substraction.html","topicUid":"Hi.Cbtr.Substraction","type":"Class"},{"name":"UnhighlightablePickable","href":"Hi.Cbtr.UnhighlightablePickable.html","topicHref":"Hi.Cbtr.UnhighlightablePickable.html","topicUid":"Hi.Cbtr.UnhighlightablePickable","type":"Class"},{"name":"UnmanagedSubstraction","href":"Hi.Cbtr.UnmanagedSubstraction.html","topicHref":"Hi.Cbtr.UnmanagedSubstraction.html","topicUid":"Hi.Cbtr.UnmanagedSubstraction","type":"Class"},{"name":"WireCube","href":"Hi.Cbtr.WireCube.html","topicHref":"Hi.Cbtr.WireCube.html","topicUid":"Hi.Cbtr.WireCube","type":"Class"},{"name":"node_diff_t","href":"Hi.Cbtr.node_diff_t.html","topicHref":"Hi.Cbtr.node_diff_t.html","topicUid":"Hi.Cbtr.node_diff_t","type":"Struct"}]},{"name":"Hi.Collision","href":"Hi.Collision.html","topicHref":"Hi.Collision.html","topicUid":"Hi.Collision","type":"Namespace","items":[{"name":"AnchoredCollidableLeaf","href":"Hi.Collision.AnchoredCollidableLeaf.html","topicHref":"Hi.Collision.AnchoredCollidableLeaf.html","topicUid":"Hi.Collision.AnchoredCollidableLeaf","type":"Class"},{"name":"AnchoredCollidablePair","href":"Hi.Collision.AnchoredCollidablePair.html","topicHref":"Hi.Collision.AnchoredCollidablePair.html","topicUid":"Hi.Collision.AnchoredCollidablePair","type":"Class"},{"name":"CollidableStl","href":"Hi.Collision.CollidableStl.html","topicHref":"Hi.Collision.CollidableStl.html","topicUid":"Hi.Collision.CollidableStl","type":"Class"},{"name":"CollisionFlag","href":"Hi.Collision.CollisionFlag.html","topicHref":"Hi.Collision.CollisionFlag.html","topicUid":"Hi.Collision.CollisionFlag","type":"Enum"},{"name":"CollisionIndexPair","href":"Hi.Collision.CollisionIndexPair.html","topicHref":"Hi.Collision.CollisionIndexPair.html","topicUid":"Hi.Collision.CollisionIndexPair","type":"Class"},{"name":"CollisionUtil","href":"Hi.Collision.CollisionUtil.html","topicHref":"Hi.Collision.CollisionUtil.html","topicUid":"Hi.Collision.CollisionUtil","type":"Class"},{"name":"FuncAnchoredCollidable","href":"Hi.Collision.FuncAnchoredCollidable.html","topicHref":"Hi.Collision.FuncAnchoredCollidable.html","topicUid":"Hi.Collision.FuncAnchoredCollidable","type":"Class"},{"name":"IAnchoredCollidableBased","href":"Hi.Collision.IAnchoredCollidableBased.html","topicHref":"Hi.Collision.IAnchoredCollidableBased.html","topicUid":"Hi.Collision.IAnchoredCollidableBased","type":"Interface"},{"name":"IAnchoredCollidableLeaf","href":"Hi.Collision.IAnchoredCollidableLeaf.html","topicHref":"Hi.Collision.IAnchoredCollidableLeaf.html","topicUid":"Hi.Collision.IAnchoredCollidableLeaf","type":"Interface"},{"name":"IAnchoredCollidableNode","href":"Hi.Collision.IAnchoredCollidableNode.html","topicHref":"Hi.Collision.IAnchoredCollidableNode.html","topicUid":"Hi.Collision.IAnchoredCollidableNode","type":"Interface"},{"name":"IAnchoredCollidableStem","href":"Hi.Collision.IAnchoredCollidableStem.html","topicHref":"Hi.Collision.IAnchoredCollidableStem.html","topicUid":"Hi.Collision.IAnchoredCollidableStem","type":"Interface"},{"name":"ICollidable","href":"Hi.Collision.ICollidable.html","topicHref":"Hi.Collision.ICollidable.html","topicUid":"Hi.Collision.ICollidable","type":"Interface"},{"name":"ICollidee","href":"Hi.Collision.ICollidee.html","topicHref":"Hi.Collision.ICollidee.html","topicUid":"Hi.Collision.ICollidee","type":"Interface"},{"name":"ICollisionArena","href":"Hi.Collision.ICollisionArena.html","topicHref":"Hi.Collision.ICollisionArena.html","topicUid":"Hi.Collision.ICollisionArena","type":"Interface"},{"name":"ICollisionIndex","href":"Hi.Collision.ICollisionIndex.html","topicHref":"Hi.Collision.ICollisionIndex.html","topicUid":"Hi.Collision.ICollisionIndex","type":"Interface"},{"name":"IGetAnchoredCollidablePairs","href":"Hi.Collision.IGetAnchoredCollidablePairs.html","topicHref":"Hi.Collision.IGetAnchoredCollidablePairs.html","topicUid":"Hi.Collision.IGetAnchoredCollidablePairs","type":"Interface"},{"name":"IGetCollidable","href":"Hi.Collision.IGetCollidable.html","topicHref":"Hi.Collision.IGetCollidable.html","topicUid":"Hi.Collision.IGetCollidable","type":"Interface"},{"name":"IGetCollisionIndexPairs","href":"Hi.Collision.IGetCollisionIndexPairs.html","topicHref":"Hi.Collision.IGetCollisionIndexPairs.html","topicUid":"Hi.Collision.IGetCollisionIndexPairs","type":"Interface"},{"name":"IGetDefaultCollidablePairs","href":"Hi.Collision.IGetDefaultCollidablePairs.html","topicHref":"Hi.Collision.IGetDefaultCollidablePairs.html","topicUid":"Hi.Collision.IGetDefaultCollidablePairs","type":"Interface"},{"name":"IGetTriTree","href":"Hi.Collision.IGetTriTree.html","topicHref":"Hi.Collision.IGetTriTree.html","topicUid":"Hi.Collision.IGetTriTree","type":"Interface"},{"name":"MechCollisionResult","href":"Hi.Collision.MechCollisionResult.html","topicHref":"Hi.Collision.MechCollisionResult.html","topicUid":"Hi.Collision.MechCollisionResult","type":"Class"},{"name":"MechCollisionUtil","href":"Hi.Collision.MechCollisionUtil.html","topicHref":"Hi.Collision.MechCollisionUtil.html","topicUid":"Hi.Collision.MechCollisionUtil","type":"Class"},{"name":"TriTree","href":"Hi.Collision.TriTree.html","topicHref":"Hi.Collision.TriTree.html","topicUid":"Hi.Collision.TriTree","type":"Class"}]},{"name":"Hi.Collisions","href":"Hi.Collisions.html","topicHref":"Hi.Collisions.html","topicUid":"Hi.Collisions","type":"Namespace","items":[{"name":"AnchoredCollidabled","href":"Hi.Collisions.AnchoredCollidabled.html","topicHref":"Hi.Collisions.AnchoredCollidabled.html","topicUid":"Hi.Collisions.AnchoredCollidabled","type":"Class"},{"name":"IAnchoredCollidabled","href":"Hi.Collisions.IAnchoredCollidabled.html","topicHref":"Hi.Collisions.IAnchoredCollidabled.html","topicUid":"Hi.Collisions.IAnchoredCollidabled","type":"Interface"}]},{"name":"Hi.Coloring","href":"Hi.Coloring.html","topicHref":"Hi.Coloring.html","topicUid":"Hi.Coloring","type":"Namespace","items":[{"name":"ColorUtil","href":"Hi.Coloring.ColorUtil.html","topicHref":"Hi.Coloring.ColorUtil.html","topicUid":"Hi.Coloring.ColorUtil","type":"Class"},{"name":"DictionaryColorGuide","href":"Hi.Coloring.DictionaryColorGuide.html","topicHref":"Hi.Coloring.DictionaryColorGuide.html","topicUid":"Hi.Coloring.DictionaryColorGuide","type":"Class"},{"name":"DiscreteQuantityColorGuide","href":"Hi.Coloring.DiscreteQuantityColorGuide.html","topicHref":"Hi.Coloring.DiscreteQuantityColorGuide.html","topicUid":"Hi.Coloring.DiscreteQuantityColorGuide","type":"Class"},{"name":"FilteredColorGuide","href":"Hi.Coloring.FilteredColorGuide.html","topicHref":"Hi.Coloring.FilteredColorGuide.html","topicUid":"Hi.Coloring.FilteredColorGuide","type":"Class"},{"name":"FuncRangeColorGuide","href":"Hi.Coloring.FuncRangeColorGuide.html","topicHref":"Hi.Coloring.FuncRangeColorGuide.html","topicUid":"Hi.Coloring.FuncRangeColorGuide","type":"Class"},{"name":"IColorGuide","href":"Hi.Coloring.IColorGuide.html","topicHref":"Hi.Coloring.IColorGuide.html","topicUid":"Hi.Coloring.IColorGuide","type":"Interface"},{"name":"IColorGuideProperty","href":"Hi.Coloring.IColorGuideProperty.html","topicHref":"Hi.Coloring.IColorGuideProperty.html","topicUid":"Hi.Coloring.IColorGuideProperty","type":"Interface"},{"name":"IGetColorGuide","href":"Hi.Coloring.IGetColorGuide.html","topicHref":"Hi.Coloring.IGetColorGuide.html","topicUid":"Hi.Coloring.IGetColorGuide","type":"Interface"},{"name":"IGetRangeColorRule","href":"Hi.Coloring.IGetRangeColorRule.html","topicHref":"Hi.Coloring.IGetRangeColorRule.html","topicUid":"Hi.Coloring.IGetRangeColorRule","type":"Interface"},{"name":"IGetRgb","href":"Hi.Coloring.IGetRgb.html","topicHref":"Hi.Coloring.IGetRgb.html","topicUid":"Hi.Coloring.IGetRgb","type":"Interface"},{"name":"IGetRgbWithPriority","href":"Hi.Coloring.IGetRgbWithPriority.html","topicHref":"Hi.Coloring.IGetRgbWithPriority.html","topicUid":"Hi.Coloring.IGetRgbWithPriority","type":"Interface"},{"name":"PlainColorGuide","href":"Hi.Coloring.PlainColorGuide.html","topicHref":"Hi.Coloring.PlainColorGuide.html","topicUid":"Hi.Coloring.PlainColorGuide","type":"Class"},{"name":"QuantityColorGuide","href":"Hi.Coloring.QuantityColorGuide.html","topicHref":"Hi.Coloring.QuantityColorGuide.html","topicUid":"Hi.Coloring.QuantityColorGuide","type":"Class"},{"name":"RangeColorRule","href":"Hi.Coloring.RangeColorRule.html","topicHref":"Hi.Coloring.RangeColorRule.html","topicUid":"Hi.Coloring.RangeColorRule","type":"Class"},{"name":"RatioRgbFuncEnum","href":"Hi.Coloring.RatioRgbFuncEnum.html","topicHref":"Hi.Coloring.RatioRgbFuncEnum.html","topicUid":"Hi.Coloring.RatioRgbFuncEnum","type":"Enum"},{"name":"RgbSeed","href":"Hi.Coloring.RgbSeed.html","topicHref":"Hi.Coloring.RgbSeed.html","topicUid":"Hi.Coloring.RgbSeed","type":"Class"}]},{"name":"Hi.Common","href":"Hi.Common.html","topicHref":"Hi.Common.html","topicUid":"Hi.Common","type":"Namespace","items":[{"name":"BinIoUtil","href":"Hi.Common.BinIoUtil.html","topicHref":"Hi.Common.BinIoUtil.html","topicUid":"Hi.Common.BinIoUtil","type":"Class"},{"name":"BitUtil","href":"Hi.Common.BitUtil.html","topicHref":"Hi.Common.BitUtil.html","topicUid":"Hi.Common.BitUtil","type":"Class"},{"name":"BlockingTimer","href":"Hi.Common.BlockingTimer.html","topicHref":"Hi.Common.BlockingTimer.html","topicUid":"Hi.Common.BlockingTimer","type":"Class"},{"name":"BytesUtil","href":"Hi.Common.BytesUtil.html","topicHref":"Hi.Common.BytesUtil.html","topicUid":"Hi.Common.BytesUtil","type":"Class"},{"name":"ConcurrentTimeCounter","href":"Hi.Common.ConcurrentTimeCounter.html","topicHref":"Hi.Common.ConcurrentTimeCounter.html","topicUid":"Hi.Common.ConcurrentTimeCounter","type":"Class"},{"name":"ConsoleUtil","href":"Hi.Common.ConsoleUtil.html","topicHref":"Hi.Common.ConsoleUtil.html","topicUid":"Hi.Common.ConsoleUtil","type":"Class"},{"name":"CppLogUtil","href":"Hi.Common.CppLogUtil.html","topicHref":"Hi.Common.CppLogUtil.html","topicUid":"Hi.Common.CppLogUtil","type":"Class"},{"name":"CppLogUtil.LogDelegate","href":"Hi.Common.CppLogUtil.LogDelegate.html","topicHref":"Hi.Common.CppLogUtil.LogDelegate.html","topicUid":"Hi.Common.CppLogUtil.LogDelegate","type":"Delegate"},{"name":"CultureUtil","href":"Hi.Common.CultureUtil.html","topicHref":"Hi.Common.CultureUtil.html","topicUid":"Hi.Common.CultureUtil","type":"Class"},{"name":"DuplicateUtil","href":"Hi.Common.DuplicateUtil.html","topicHref":"Hi.Common.DuplicateUtil.html","topicUid":"Hi.Common.DuplicateUtil","type":"Class"},{"name":"EnumUtil","href":"Hi.Common.EnumUtil.html","topicHref":"Hi.Common.EnumUtil.html","topicUid":"Hi.Common.EnumUtil","type":"Class"},{"name":"EnumerablePlayer","href":"Hi.Common.EnumerablePlayer.html","topicHref":"Hi.Common.EnumerablePlayer.html","topicUid":"Hi.Common.EnumerablePlayer","type":"Class"},{"name":"IAbstractNote","href":"Hi.Common.IAbstractNote.html","topicHref":"Hi.Common.IAbstractNote.html","topicUid":"Hi.Common.IAbstractNote","type":"Interface"},{"name":"IBinaryIo","href":"Hi.Common.IBinaryIo.html","topicHref":"Hi.Common.IBinaryIo.html","topicUid":"Hi.Common.IBinaryIo","type":"Interface"},{"name":"IClearCache","href":"Hi.Common.IClearCache.html","topicHref":"Hi.Common.IClearCache.html","topicUid":"Hi.Common.IClearCache","type":"Interface"},{"name":"IDuplicate","href":"Hi.Common.IDuplicate.html","topicHref":"Hi.Common.IDuplicate.html","topicUid":"Hi.Common.IDuplicate","type":"Interface"},{"name":"IGetQuantityByKey","href":"Hi.Common.IGetQuantityByKey.html","topicHref":"Hi.Common.IGetQuantityByKey.html","topicUid":"Hi.Common.IGetQuantityByKey","type":"Interface"},{"name":"IGetSelectionName","href":"Hi.Common.IGetSelectionName.html","topicHref":"Hi.Common.IGetSelectionName.html","topicUid":"Hi.Common.IGetSelectionName","type":"Interface"},{"name":"INameNote","href":"Hi.Common.INameNote.html","topicHref":"Hi.Common.INameNote.html","topicUid":"Hi.Common.INameNote","type":"Interface"},{"name":"IPreferredFileName","href":"Hi.Common.IPreferredFileName.html","topicHref":"Hi.Common.IPreferredFileName.html","topicUid":"Hi.Common.IPreferredFileName","type":"Interface"},{"name":"IProgressFraction","href":"Hi.Common.IProgressFraction.html","topicHref":"Hi.Common.IProgressFraction.html","topicUid":"Hi.Common.IProgressFraction","type":"Interface"},{"name":"ISourceFile","href":"Hi.Common.ISourceFile.html","topicHref":"Hi.Common.ISourceFile.html","topicUid":"Hi.Common.ISourceFile","type":"Interface"},{"name":"IToPresentDto","href":"Hi.Common.IToPresentDto.html","topicHref":"Hi.Common.IToPresentDto.html","topicUid":"Hi.Common.IToPresentDto","type":"Interface"},{"name":"IUpdateByContent","href":"Hi.Common.IUpdateByContent.html","topicHref":"Hi.Common.IUpdateByContent.html","topicUid":"Hi.Common.IUpdateByContent","type":"Interface"},{"name":"IUriGetter","href":"Hi.Common.IUriGetter.html","topicHref":"Hi.Common.IUriGetter.html","topicUid":"Hi.Common.IUriGetter","type":"Interface"},{"name":"IWriteBin","href":"Hi.Common.IWriteBin.html","topicHref":"Hi.Common.IWriteBin.html","topicUid":"Hi.Common.IWriteBin","type":"Interface"},{"name":"IndexSegment","href":"Hi.Common.IndexSegment.html","topicHref":"Hi.Common.IndexSegment.html","topicUid":"Hi.Common.IndexSegment","type":"Class"},{"name":"IntegerKeyDictionaryConverter","href":"Hi.Common.IntegerKeyDictionaryConverter.html","topicHref":"Hi.Common.IntegerKeyDictionaryConverter.html","topicUid":"Hi.Common.IntegerKeyDictionaryConverter","type":"Class"},{"name":"IntegerKeyDictionaryConverter","href":"Hi.Common.IntegerKeyDictionaryConverter-1.html","topicHref":"Hi.Common.IntegerKeyDictionaryConverter-1.html","topicUid":"Hi.Common.IntegerKeyDictionaryConverter`1","type":"Class"},{"name":"InternalException","href":"Hi.Common.InternalException.html","topicHref":"Hi.Common.InternalException.html","topicUid":"Hi.Common.InternalException","type":"Class"},{"name":"InvokeUtil","href":"Hi.Common.InvokeUtil.html","topicHref":"Hi.Common.InvokeUtil.html","topicUid":"Hi.Common.InvokeUtil","type":"Class"},{"name":"JsonUtil","href":"Hi.Common.JsonUtil.html","topicHref":"Hi.Common.JsonUtil.html","topicUid":"Hi.Common.JsonUtil","type":"Class"},{"name":"LooseRunner","href":"Hi.Common.LooseRunner.html","topicHref":"Hi.Common.LooseRunner.html","topicUid":"Hi.Common.LooseRunner","type":"Class"},{"name":"LooseRunner.MergedCancellationTokenRun","href":"Hi.Common.LooseRunner.MergedCancellationTokenRun.html","topicHref":"Hi.Common.LooseRunner.MergedCancellationTokenRun.html","topicUid":"Hi.Common.LooseRunner.MergedCancellationTokenRun","type":"Delegate"},{"name":"ManualUtil","href":"Hi.Common.ManualUtil.html","topicHref":"Hi.Common.ManualUtil.html","topicUid":"Hi.Common.ManualUtil","type":"Class"},{"name":"MaskUtil","href":"Hi.Common.MaskUtil.html","topicHref":"Hi.Common.MaskUtil.html","topicUid":"Hi.Common.MaskUtil","type":"Class"},{"name":"NameUtil","href":"Hi.Common.NameUtil.html","topicHref":"Hi.Common.NameUtil.html","topicUid":"Hi.Common.NameUtil","type":"Class"},{"name":"PacePlayee","href":"Hi.Common.PacePlayee.html","topicHref":"Hi.Common.PacePlayee.html","topicUid":"Hi.Common.PacePlayee","type":"Class"},{"name":"PacePlayer","href":"Hi.Common.PacePlayer.html","topicHref":"Hi.Common.PacePlayer.html","topicUid":"Hi.Common.PacePlayer","type":"Class"},{"name":"Pair","href":"Hi.Common.Pair-2.html","topicHref":"Hi.Common.Pair-2.html","topicUid":"Hi.Common.Pair`2","type":"Class"},{"name":"ProgressFraction","href":"Hi.Common.ProgressFraction.html","topicHref":"Hi.Common.ProgressFraction.html","topicUid":"Hi.Common.ProgressFraction","type":"Class"},{"name":"Range","href":"Hi.Common.Range-1.html","topicHref":"Hi.Common.Range-1.html","topicUid":"Hi.Common.Range`1","type":"Class"},{"name":"ResourceUtil","href":"Hi.Common.ResourceUtil.html","topicHref":"Hi.Common.ResourceUtil.html","topicUid":"Hi.Common.ResourceUtil","type":"Class"},{"name":"RoutineBlocker","href":"Hi.Common.RoutineBlocker.html","topicHref":"Hi.Common.RoutineBlocker.html","topicUid":"Hi.Common.RoutineBlocker","type":"Class"},{"name":"SearchResult","href":"Hi.Common.SearchResult.html","topicHref":"Hi.Common.SearchResult.html","topicUid":"Hi.Common.SearchResult","type":"Enum"},{"name":"SeqPairUtil","href":"Hi.Common.SeqPairUtil.html","topicHref":"Hi.Common.SeqPairUtil.html","topicUid":"Hi.Common.SeqPairUtil","type":"Class"},{"name":"SeqPair","href":"Hi.Common.SeqPair-1.html","topicHref":"Hi.Common.SeqPair-1.html","topicUid":"Hi.Common.SeqPair`1","type":"Class"},{"name":"ServerFileExplorerConfig","href":"Hi.Common.ServerFileExplorerConfig.html","topicHref":"Hi.Common.ServerFileExplorerConfig.html","topicUid":"Hi.Common.ServerFileExplorerConfig","type":"Class"},{"name":"StringLocalizer","href":"Hi.Common.StringLocalizer.html","topicHref":"Hi.Common.StringLocalizer.html","topicUid":"Hi.Common.StringLocalizer","type":"Class"},{"name":"StringUtil","href":"Hi.Common.StringUtil.html","topicHref":"Hi.Common.StringUtil.html","topicUid":"Hi.Common.StringUtil","type":"Class"},{"name":"TaskUtil","href":"Hi.Common.TaskUtil.html","topicHref":"Hi.Common.TaskUtil.html","topicUid":"Hi.Common.TaskUtil","type":"Class"},{"name":"TimeCounter","href":"Hi.Common.TimeCounter.html","topicHref":"Hi.Common.TimeCounter.html","topicUid":"Hi.Common.TimeCounter","type":"Class"}]},{"name":"Hi.Common.Collections","href":"Hi.Common.Collections.html","topicHref":"Hi.Common.Collections.html","topicUid":"Hi.Common.Collections","type":"Namespace","items":[{"name":"DictionaryUtil","href":"Hi.Common.Collections.DictionaryUtil.html","topicHref":"Hi.Common.Collections.DictionaryUtil.html","topicUid":"Hi.Common.Collections.DictionaryUtil","type":"Class"},{"name":"EnumerableUtil","href":"Hi.Common.Collections.EnumerableUtil.html","topicHref":"Hi.Common.Collections.EnumerableUtil.html","topicUid":"Hi.Common.Collections.EnumerableUtil","type":"Class"},{"name":"FixedSizeConcurrentLinkedListUtil","href":"Hi.Common.Collections.FixedSizeConcurrentLinkedListUtil.html","topicHref":"Hi.Common.Collections.FixedSizeConcurrentLinkedListUtil.html","topicUid":"Hi.Common.Collections.FixedSizeConcurrentLinkedListUtil","type":"Class"},{"name":"LazyLinkedListNode","href":"Hi.Common.Collections.LazyLinkedListNode-1.html","topicHref":"Hi.Common.Collections.LazyLinkedListNode-1.html","topicUid":"Hi.Common.Collections.LazyLinkedListNode`1","type":"Class"},{"name":"LazyLinkedList","href":"Hi.Common.Collections.LazyLinkedList-1.html","topicHref":"Hi.Common.Collections.LazyLinkedList-1.html","topicUid":"Hi.Common.Collections.LazyLinkedList`1","type":"Class"},{"name":"LinkedListUtil","href":"Hi.Common.Collections.LinkedListUtil.html","topicHref":"Hi.Common.Collections.LinkedListUtil.html","topicUid":"Hi.Common.Collections.LinkedListUtil","type":"Class"},{"name":"ListIndexBasedEnumerable","href":"Hi.Common.Collections.ListIndexBasedEnumerable-1.html","topicHref":"Hi.Common.Collections.ListIndexBasedEnumerable-1.html","topicUid":"Hi.Common.Collections.ListIndexBasedEnumerable`1","type":"Class"},{"name":"ListIndexBasedIEnumerator","href":"Hi.Common.Collections.ListIndexBasedIEnumerator-1.html","topicHref":"Hi.Common.Collections.ListIndexBasedIEnumerator-1.html","topicUid":"Hi.Common.Collections.ListIndexBasedIEnumerator`1","type":"Class"},{"name":"ListUtil","href":"Hi.Common.Collections.ListUtil.html","topicHref":"Hi.Common.Collections.ListUtil.html","topicUid":"Hi.Common.Collections.ListUtil","type":"Class"},{"name":"ListUtil.OuterPolationMode","href":"Hi.Common.Collections.ListUtil.OuterPolationMode.html","topicHref":"Hi.Common.Collections.ListUtil.OuterPolationMode.html","topicUid":"Hi.Common.Collections.ListUtil.OuterPolationMode","type":"Enum"},{"name":"SearchTargetMode","href":"Hi.Common.Collections.SearchTargetMode.html","topicHref":"Hi.Common.Collections.SearchTargetMode.html","topicUid":"Hi.Common.Collections.SearchTargetMode","type":"Enum"},{"name":"SeekDirection","href":"Hi.Common.Collections.SeekDirection.html","topicHref":"Hi.Common.Collections.SeekDirection.html","topicUid":"Hi.Common.Collections.SeekDirection","type":"Enum"},{"name":"SortedListUtil","href":"Hi.Common.Collections.SortedListUtil.html","topicHref":"Hi.Common.Collections.SortedListUtil.html","topicUid":"Hi.Common.Collections.SortedListUtil","type":"Class"},{"name":"SubList","href":"Hi.Common.Collections.SubList-1.html","topicHref":"Hi.Common.Collections.SubList-1.html","topicUid":"Hi.Common.Collections.SubList`1","type":"Class"},{"name":"SynList","href":"Hi.Common.Collections.SynList-1.html","topicHref":"Hi.Common.Collections.SynList-1.html","topicUid":"Hi.Common.Collections.SynList`1","type":"Class"}]},{"name":"Hi.Common.CsvUtils","href":"Hi.Common.CsvUtils.html","topicHref":"Hi.Common.CsvUtils.html","topicUid":"Hi.Common.CsvUtils","type":"Namespace","items":[{"name":"CsvInputKit","href":"Hi.Common.CsvUtils.CsvInputKit.html","topicHref":"Hi.Common.CsvUtils.CsvInputKit.html","topicUid":"Hi.Common.CsvUtils.CsvInputKit","type":"Class"},{"name":"CsvOutputKit","href":"Hi.Common.CsvUtils.CsvOutputKit.html","topicHref":"Hi.Common.CsvUtils.CsvOutputKit.html","topicUid":"Hi.Common.CsvUtils.CsvOutputKit","type":"Class"},{"name":"CsvUtil","href":"Hi.Common.CsvUtils.CsvUtil.html","topicHref":"Hi.Common.CsvUtils.CsvUtil.html","topicUid":"Hi.Common.CsvUtils.CsvUtil","type":"Class"},{"name":"ICsvRowIo","href":"Hi.Common.CsvUtils.ICsvRowIo.html","topicHref":"Hi.Common.CsvUtils.ICsvRowIo.html","topicUid":"Hi.Common.CsvUtils.ICsvRowIo","type":"Interface"},{"name":"IGetCsvDictionary","href":"Hi.Common.CsvUtils.IGetCsvDictionary.html","topicHref":"Hi.Common.CsvUtils.IGetCsvDictionary.html","topicUid":"Hi.Common.CsvUtils.IGetCsvDictionary","type":"Interface"}]},{"name":"Hi.Common.FileLines","href":"Hi.Common.FileLines.html","topicHref":"Hi.Common.FileLines.html","topicUid":"Hi.Common.FileLines","type":"Namespace","items":[{"name":"FileBeginEventArgs","href":"Hi.Common.FileLines.FileBeginEventArgs.html","topicHref":"Hi.Common.FileLines.FileBeginEventArgs.html","topicUid":"Hi.Common.FileLines.FileBeginEventArgs","type":"Class"},{"name":"FileEndEventArgs","href":"Hi.Common.FileLines.FileEndEventArgs.html","topicHref":"Hi.Common.FileLines.FileEndEventArgs.html","topicUid":"Hi.Common.FileLines.FileEndEventArgs","type":"Class"},{"name":"FileLineCharIndex","href":"Hi.Common.FileLines.FileLineCharIndex.html","topicHref":"Hi.Common.FileLines.FileLineCharIndex.html","topicUid":"Hi.Common.FileLines.FileLineCharIndex","type":"Class"},{"name":"FileLineCharIndexSegment","href":"Hi.Common.FileLines.FileLineCharIndexSegment.html","topicHref":"Hi.Common.FileLines.FileLineCharIndexSegment.html","topicUid":"Hi.Common.FileLines.FileLineCharIndexSegment","type":"Class"},{"name":"FileLineIndex","href":"Hi.Common.FileLines.FileLineIndex.html","topicHref":"Hi.Common.FileLines.FileLineIndex.html","topicUid":"Hi.Common.FileLines.FileLineIndex","type":"Class"},{"name":"FileLineUtil","href":"Hi.Common.FileLines.FileLineUtil.html","topicHref":"Hi.Common.FileLines.FileLineUtil.html","topicUid":"Hi.Common.FileLines.FileLineUtil","type":"Class"},{"name":"FileUtil","href":"Hi.Common.FileLines.FileUtil.html","topicHref":"Hi.Common.FileLines.FileUtil.html","topicUid":"Hi.Common.FileLines.FileUtil","type":"Class"},{"name":"IFileChangedEventSupport","href":"Hi.Common.FileLines.IFileChangedEventSupport.html","topicHref":"Hi.Common.FileLines.IFileChangedEventSupport.html","topicUid":"Hi.Common.FileLines.IFileChangedEventSupport","type":"Interface"},{"name":"IFileLine","href":"Hi.Common.FileLines.IFileLine.html","topicHref":"Hi.Common.FileLines.IFileLine.html","topicUid":"Hi.Common.FileLines.IFileLine","type":"Interface"},{"name":"IFileLineCharIndex","href":"Hi.Common.FileLines.IFileLineCharIndex.html","topicHref":"Hi.Common.FileLines.IFileLineCharIndex.html","topicUid":"Hi.Common.FileLines.IFileLineCharIndex","type":"Interface"},{"name":"IFileLineIndex","href":"Hi.Common.FileLines.IFileLineIndex.html","topicHref":"Hi.Common.FileLines.IFileLineIndex.html","topicUid":"Hi.Common.FileLines.IFileLineIndex","type":"Interface"},{"name":"IGetFileLineIndex","href":"Hi.Common.FileLines.IGetFileLineIndex.html","topicHref":"Hi.Common.FileLines.IGetFileLineIndex.html","topicUid":"Hi.Common.FileLines.IGetFileLineIndex","type":"Interface"},{"name":"IGetIndexedFileLine","href":"Hi.Common.FileLines.IGetIndexedFileLine.html","topicHref":"Hi.Common.FileLines.IGetIndexedFileLine.html","topicUid":"Hi.Common.FileLines.IGetIndexedFileLine","type":"Interface"},{"name":"IIndexedFileLine","href":"Hi.Common.FileLines.IIndexedFileLine.html","topicHref":"Hi.Common.FileLines.IIndexedFileLine.html","topicUid":"Hi.Common.FileLines.IIndexedFileLine","type":"Interface"},{"name":"ILineChangedEventSupport","href":"Hi.Common.FileLines.ILineChangedEventSupport.html","topicHref":"Hi.Common.FileLines.ILineChangedEventSupport.html","topicUid":"Hi.Common.FileLines.ILineChangedEventSupport","type":"Interface"},{"name":"IndexedFile","href":"Hi.Common.FileLines.IndexedFile.html","topicHref":"Hi.Common.FileLines.IndexedFile.html","topicUid":"Hi.Common.FileLines.IndexedFile","type":"Class"},{"name":"IndexedFileLine","href":"Hi.Common.FileLines.IndexedFileLine.html","topicHref":"Hi.Common.FileLines.IndexedFileLine.html","topicUid":"Hi.Common.FileLines.IndexedFileLine","type":"Class"},{"name":"IndexedFileLineChar","href":"Hi.Common.FileLines.IndexedFileLineChar.html","topicHref":"Hi.Common.FileLines.IndexedFileLineChar.html","topicUid":"Hi.Common.FileLines.IndexedFileLineChar","type":"Class"},{"name":"LineBeginEventArgs","href":"Hi.Common.FileLines.LineBeginEventArgs.html","topicHref":"Hi.Common.FileLines.LineBeginEventArgs.html","topicUid":"Hi.Common.FileLines.LineBeginEventArgs","type":"Class"},{"name":"LineEndEventArgs","href":"Hi.Common.FileLines.LineEndEventArgs.html","topicHref":"Hi.Common.FileLines.LineEndEventArgs.html","topicUid":"Hi.Common.FileLines.LineEndEventArgs","type":"Class"}]},{"name":"Hi.Common.Messages","href":"Hi.Common.Messages.html","topicHref":"Hi.Common.Messages.html","topicUid":"Hi.Common.Messages","type":"Namespace","items":[{"name":"ActionProgress","href":"Hi.Common.Messages.ActionProgress-1.html","topicHref":"Hi.Common.Messages.ActionProgress-1.html","topicUid":"Hi.Common.Messages.ActionProgress`1","type":"Class"},{"name":"BootstrapTheme","href":"Hi.Common.Messages.BootstrapTheme.html","topicHref":"Hi.Common.Messages.BootstrapTheme.html","topicUid":"Hi.Common.Messages.BootstrapTheme","type":"Enum"},{"name":"DebugUtil","href":"Hi.Common.Messages.DebugUtil.html","topicHref":"Hi.Common.Messages.DebugUtil.html","topicUid":"Hi.Common.Messages.DebugUtil","type":"Class"},{"name":"ExceptionUtil","href":"Hi.Common.Messages.ExceptionUtil.html","topicHref":"Hi.Common.Messages.ExceptionUtil.html","topicUid":"Hi.Common.Messages.ExceptionUtil","type":"Class"},{"name":"MessageBoardUtil","href":"Hi.Common.Messages.MessageBoardUtil.html","topicHref":"Hi.Common.Messages.MessageBoardUtil.html","topicUid":"Hi.Common.Messages.MessageBoardUtil","type":"Class"},{"name":"MessageFlag","href":"Hi.Common.Messages.MessageFlag.html","topicHref":"Hi.Common.Messages.MessageFlag.html","topicUid":"Hi.Common.Messages.MessageFlag","type":"Enum"},{"name":"MultiTagMessage","href":"Hi.Common.Messages.MultiTagMessage.html","topicHref":"Hi.Common.Messages.MultiTagMessage.html","topicUid":"Hi.Common.Messages.MultiTagMessage","type":"Class"},{"name":"MultiTagMessageUtil","href":"Hi.Common.Messages.MultiTagMessageUtil.html","topicHref":"Hi.Common.Messages.MultiTagMessageUtil.html","topicUid":"Hi.Common.Messages.MultiTagMessageUtil","type":"Class"},{"name":"ShowMessageBoardDelegate","href":"Hi.Common.Messages.ShowMessageBoardDelegate.html","topicHref":"Hi.Common.Messages.ShowMessageBoardDelegate.html","topicUid":"Hi.Common.Messages.ShowMessageBoardDelegate","type":"Delegate"}]},{"name":"Hi.Common.MinMaxUtils","href":"Hi.Common.MinMaxUtils.html","topicHref":"Hi.Common.MinMaxUtils.html","topicUid":"Hi.Common.MinMaxUtils","type":"Namespace","items":[{"name":"IndexedMinMaxPos","href":"Hi.Common.MinMaxUtils.IndexedMinMaxPos-2.html","topicHref":"Hi.Common.MinMaxUtils.IndexedMinMaxPos-2.html","topicUid":"Hi.Common.MinMaxUtils.IndexedMinMaxPos`2","type":"Class"},{"name":"MinMaxUtil","href":"Hi.Common.MinMaxUtils.MinMaxUtil.html","topicHref":"Hi.Common.MinMaxUtils.MinMaxUtil.html","topicUid":"Hi.Common.MinMaxUtils.MinMaxUtil","type":"Class"}]},{"name":"Hi.Common.NativeProgresses","href":"Hi.Common.NativeProgresses.html","topicHref":"Hi.Common.NativeProgresses.html","topicUid":"Hi.Common.NativeProgresses","type":"Namespace","items":[{"name":"NativeProgressFraction","href":"Hi.Common.NativeProgresses.NativeProgressFraction.html","topicHref":"Hi.Common.NativeProgresses.NativeProgressFraction.html","topicUid":"Hi.Common.NativeProgresses.NativeProgressFraction","type":"Class"},{"name":"progress_monitor_t","href":"Hi.Common.NativeProgresses.progress_monitor_t.html","topicHref":"Hi.Common.NativeProgresses.progress_monitor_t.html","topicUid":"Hi.Common.NativeProgresses.progress_monitor_t","type":"Struct"},{"name":"report_progress_func_t","href":"Hi.Common.NativeProgresses.report_progress_func_t.html","topicHref":"Hi.Common.NativeProgresses.report_progress_func_t.html","topicUid":"Hi.Common.NativeProgresses.report_progress_func_t","type":"Delegate"}]},{"name":"Hi.Common.ParallelBulkUtils","href":"Hi.Common.ParallelBulkUtils.html","topicHref":"Hi.Common.ParallelBulkUtils.html","topicUid":"Hi.Common.ParallelBulkUtils","type":"Namespace","items":[{"name":"ParallelBulkReader","href":"Hi.Common.ParallelBulkUtils.ParallelBulkReader-1.html","topicHref":"Hi.Common.ParallelBulkUtils.ParallelBulkReader-1.html","topicUid":"Hi.Common.ParallelBulkUtils.ParallelBulkReader`1","type":"Class"},{"name":"ParallelBulkWriter","href":"Hi.Common.ParallelBulkUtils.ParallelBulkWriter-1.html","topicHref":"Hi.Common.ParallelBulkUtils.ParallelBulkWriter-1.html","topicUid":"Hi.Common.ParallelBulkUtils.ParallelBulkWriter`1","type":"Class"},{"name":"ReadBulkDelegate","href":"Hi.Common.ParallelBulkUtils.ReadBulkDelegate-1.html","topicHref":"Hi.Common.ParallelBulkUtils.ReadBulkDelegate-1.html","topicUid":"Hi.Common.ParallelBulkUtils.ReadBulkDelegate`1","type":"Delegate"},{"name":"SequentialBulkReader","href":"Hi.Common.ParallelBulkUtils.SequentialBulkReader-1.html","topicHref":"Hi.Common.ParallelBulkUtils.SequentialBulkReader-1.html","topicUid":"Hi.Common.ParallelBulkUtils.SequentialBulkReader`1","type":"Class"}]},{"name":"Hi.Common.PathUtils","href":"Hi.Common.PathUtils.html","topicHref":"Hi.Common.PathUtils.html","topicUid":"Hi.Common.PathUtils","type":"Namespace","items":[{"name":"ExtendedNamedPath","href":"Hi.Common.PathUtils.ExtendedNamedPath.html","topicHref":"Hi.Common.PathUtils.ExtendedNamedPath.html","topicUid":"Hi.Common.PathUtils.ExtendedNamedPath","type":"Class"},{"name":"HttpUtil","href":"Hi.Common.PathUtils.HttpUtil.html","topicHref":"Hi.Common.PathUtils.HttpUtil.html","topicUid":"Hi.Common.PathUtils.HttpUtil","type":"Class"},{"name":"Lang","href":"Hi.Common.PathUtils.Lang.html","topicHref":"Hi.Common.PathUtils.Lang.html","topicUid":"Hi.Common.PathUtils.Lang","type":"Class"},{"name":"NamedPath","href":"Hi.Common.PathUtils.NamedPath.html","topicHref":"Hi.Common.PathUtils.NamedPath.html","topicUid":"Hi.Common.PathUtils.NamedPath","type":"Class"},{"name":"PathUtil","href":"Hi.Common.PathUtils.PathUtil.html","topicHref":"Hi.Common.PathUtils.PathUtil.html","topicUid":"Hi.Common.PathUtils.PathUtil","type":"Class"}]},{"name":"Hi.Common.QueueCacheUtils","href":"Hi.Common.QueueCacheUtils.html","topicHref":"Hi.Common.QueueCacheUtils.html","topicUid":"Hi.Common.QueueCacheUtils","type":"Namespace","items":[{"name":"QueueCacherHost","href":"Hi.Common.QueueCacheUtils.QueueCacherHost-1.html","topicHref":"Hi.Common.QueueCacheUtils.QueueCacherHost-1.html","topicUid":"Hi.Common.QueueCacheUtils.QueueCacherHost`1","type":"Class"},{"name":"QueueCacher","href":"Hi.Common.QueueCacheUtils.QueueCacher-1.html","topicHref":"Hi.Common.QueueCacheUtils.QueueCacher-1.html","topicUid":"Hi.Common.QueueCacheUtils.QueueCacher`1","type":"Class"}]},{"name":"Hi.Common.XmlUtils","href":"Hi.Common.XmlUtils.html","topicHref":"Hi.Common.XmlUtils.html","topicUid":"Hi.Common.XmlUtils","type":"Namespace","items":[{"name":"FileRefSource","href":"Hi.Common.XmlUtils.FileRefSource-1.html","topicHref":"Hi.Common.XmlUtils.FileRefSource-1.html","topicUid":"Hi.Common.XmlUtils.FileRefSource`1","type":"Class"},{"name":"IMakeXmlSource","href":"Hi.Common.XmlUtils.IMakeXmlSource.html","topicHref":"Hi.Common.XmlUtils.IMakeXmlSource.html","topicUid":"Hi.Common.XmlUtils.IMakeXmlSource","type":"Interface"},{"name":"IToXElement","href":"Hi.Common.XmlUtils.IToXElement.html","topicHref":"Hi.Common.XmlUtils.IToXElement.html","topicUid":"Hi.Common.XmlUtils.IToXElement","type":"Interface"},{"name":"ProjectApiVersion","href":"Hi.Common.XmlUtils.ProjectApiVersion.html","topicHref":"Hi.Common.XmlUtils.ProjectApiVersion.html","topicUid":"Hi.Common.XmlUtils.ProjectApiVersion","type":"Class"},{"name":"SetFileDelegate","href":"Hi.Common.XmlUtils.SetFileDelegate.html","topicHref":"Hi.Common.XmlUtils.SetFileDelegate.html","topicUid":"Hi.Common.XmlUtils.SetFileDelegate","type":"Delegate"},{"name":"XFactory","href":"Hi.Common.XmlUtils.XFactory.html","topicHref":"Hi.Common.XmlUtils.XFactory.html","topicUid":"Hi.Common.XmlUtils.XFactory","type":"Class"},{"name":"XFactory.XGeneratorDelegate","href":"Hi.Common.XmlUtils.XFactory.XGeneratorDelegate.html","topicHref":"Hi.Common.XmlUtils.XFactory.XGeneratorDelegate.html","topicUid":"Hi.Common.XmlUtils.XFactory.XGeneratorDelegate","type":"Delegate"},{"name":"XFactory.XmlExceptionDelegate","href":"Hi.Common.XmlUtils.XFactory.XmlExceptionDelegate.html","topicHref":"Hi.Common.XmlUtils.XFactory.XmlExceptionDelegate.html","topicUid":"Hi.Common.XmlUtils.XFactory.XmlExceptionDelegate","type":"Delegate"},{"name":"XmlUtil","href":"Hi.Common.XmlUtils.XmlUtil.html","topicHref":"Hi.Common.XmlUtils.XmlUtil.html","topicUid":"Hi.Common.XmlUtils.XmlUtil","type":"Class"}]},{"name":"Hi.CutterLocations","href":"Hi.CutterLocations.html","topicHref":"Hi.CutterLocations.html","topicUid":"Hi.CutterLocations","type":"Namespace","items":[{"name":"IGetProgramCl","href":"Hi.CutterLocations.IGetProgramCl.html","topicHref":"Hi.CutterLocations.IGetProgramCl.html","topicUid":"Hi.CutterLocations.IGetProgramCl","type":"Interface"},{"name":"SimpleCl","href":"Hi.CutterLocations.SimpleCl.html","topicHref":"Hi.CutterLocations.SimpleCl.html","topicUid":"Hi.CutterLocations.SimpleCl","type":"Class"}]},{"name":"Hi.CutterLocations.ClPath","href":"Hi.CutterLocations.ClPath.html","topicHref":"Hi.CutterLocations.ClPath.html","topicUid":"Hi.CutterLocations.ClPath","type":"Namespace","items":[{"name":"ClCircleArc","href":"Hi.CutterLocations.ClPath.ClCircleArc.html","topicHref":"Hi.CutterLocations.ClPath.ClCircleArc.html","topicUid":"Hi.CutterLocations.ClPath.ClCircleArc","type":"Class"},{"name":"ClLinear","href":"Hi.CutterLocations.ClPath.ClLinear.html","topicHref":"Hi.CutterLocations.ClPath.ClLinear.html","topicUid":"Hi.CutterLocations.ClPath.ClLinear","type":"Class"},{"name":"IClPath","href":"Hi.CutterLocations.ClPath.IClPath.html","topicHref":"Hi.CutterLocations.ClPath.IClPath.html","topicUid":"Hi.CutterLocations.ClPath.IClPath","type":"Interface"}]},{"name":"Hi.CutterLocations.ClStrips","href":"Hi.CutterLocations.ClStrips.html","topicHref":"Hi.CutterLocations.ClStrips.html","topicUid":"Hi.CutterLocations.ClStrips","type":"Namespace","items":[{"name":"ClStrip","href":"Hi.CutterLocations.ClStrips.ClStrip.html","topicHref":"Hi.CutterLocations.ClStrips.ClStrip.html","topicUid":"Hi.CutterLocations.ClStrips.ClStrip","type":"Class"},{"name":"ClStripPos","href":"Hi.CutterLocations.ClStrips.ClStripPos.html","topicHref":"Hi.CutterLocations.ClStrips.ClStripPos.html","topicUid":"Hi.CutterLocations.ClStrips.ClStripPos","type":"Class"},{"name":"RgbFunc","href":"Hi.CutterLocations.ClStrips.RgbFunc.html","topicHref":"Hi.CutterLocations.ClStrips.RgbFunc.html","topicUid":"Hi.CutterLocations.ClStrips.RgbFunc","type":"Delegate"}]},{"name":"Hi.Disp","href":"Hi.Disp.html","topicHref":"Hi.Disp.html","topicUid":"Hi.Disp","type":"Namespace","items":[{"name":"Bind","href":"Hi.Disp.Bind.html","topicHref":"Hi.Disp.Bind.html","topicUid":"Hi.Disp.Bind","type":"Class"},{"name":"Box3dDispUtil","href":"Hi.Disp.Box3dDispUtil.html","topicHref":"Hi.Disp.Box3dDispUtil.html","topicUid":"Hi.Disp.Box3dDispUtil","type":"Class"},{"name":"Box3dDispUtil.BoxableExpandToBox3dDel","href":"Hi.Disp.Box3dDispUtil.BoxableExpandToBox3dDel.html","topicHref":"Hi.Disp.Box3dDispUtil.BoxableExpandToBox3dDel.html","topicUid":"Hi.Disp.Box3dDispUtil.BoxableExpandToBox3dDel","type":"Delegate"},{"name":"DelegateFuncDisplayee","href":"Hi.Disp.DelegateFuncDisplayee.html","topicHref":"Hi.Disp.DelegateFuncDisplayee.html","topicUid":"Hi.Disp.DelegateFuncDisplayee","type":"Class"},{"name":"DispEngine","href":"Hi.Disp.DispEngine.html","topicHref":"Hi.Disp.DispEngine.html","topicUid":"Hi.Disp.DispEngine","type":"Class"},{"name":"DispEngine.ImageRequestedDelegate","href":"Hi.Disp.DispEngine.ImageRequestedDelegate.html","topicHref":"Hi.Disp.DispEngine.ImageRequestedDelegate.html","topicUid":"Hi.Disp.DispEngine.ImageRequestedDelegate","type":"Delegate"},{"name":"DispEngineConfig","href":"Hi.Disp.DispEngineConfig.html","topicHref":"Hi.Disp.DispEngineConfig.html","topicUid":"Hi.Disp.DispEngineConfig","type":"Class"},{"name":"DispFrameUtil","href":"Hi.Disp.DispFrameUtil.html","topicHref":"Hi.Disp.DispFrameUtil.html","topicUid":"Hi.Disp.DispFrameUtil","type":"Class"},{"name":"DispList","href":"Hi.Disp.DispList.html","topicHref":"Hi.Disp.DispList.html","topicUid":"Hi.Disp.DispList","type":"Class"},{"name":"DispUtil","href":"Hi.Disp.DispUtil.html","topicHref":"Hi.Disp.DispUtil.html","topicUid":"Hi.Disp.DispUtil","type":"Class"},{"name":"Drawing","href":"Hi.Disp.Drawing.html","topicHref":"Hi.Disp.Drawing.html","topicUid":"Hi.Disp.Drawing","type":"Class"},{"name":"FuncDisplayee","href":"Hi.Disp.FuncDisplayee.html","topicHref":"Hi.Disp.FuncDisplayee.html","topicUid":"Hi.Disp.FuncDisplayee","type":"Class"},{"name":"GL","href":"Hi.Disp.GL.html","topicHref":"Hi.Disp.GL.html","topicUid":"Hi.Disp.GL","type":"Class"},{"name":"IDisplayee","href":"Hi.Disp.IDisplayee.html","topicHref":"Hi.Disp.IDisplayee.html","topicUid":"Hi.Disp.IDisplayee","type":"Interface"},{"name":"IGetDispEngine","href":"Hi.Disp.IGetDispEngine.html","topicHref":"Hi.Disp.IGetDispEngine.html","topicUid":"Hi.Disp.IGetDispEngine","type":"Interface"},{"name":"IGetPickable","href":"Hi.Disp.IGetPickable.html","topicHref":"Hi.Disp.IGetPickable.html","topicUid":"Hi.Disp.IGetPickable","type":"Interface"},{"name":"IGlContextDirver","href":"Hi.Disp.IGlContextDirver.html","topicHref":"Hi.Disp.IGlContextDirver.html","topicUid":"Hi.Disp.IGlContextDirver","type":"Interface"},{"name":"MatStack","href":"Hi.Disp.MatStack.html","topicHref":"Hi.Disp.MatStack.html","topicUid":"Hi.Disp.MatStack","type":"Class"},{"name":"MatStack.ItemDisposable","href":"Hi.Disp.MatStack.ItemDisposable.html","topicHref":"Hi.Disp.MatStack.ItemDisposable.html","topicUid":"Hi.Disp.MatStack.ItemDisposable","type":"Class"},{"name":"MvpBoxRelation","href":"Hi.Disp.MvpBoxRelation.html","topicHref":"Hi.Disp.MvpBoxRelation.html","topicUid":"Hi.Disp.MvpBoxRelation","type":"Enum"},{"name":"Pickable","href":"Hi.Disp.Pickable.html","topicHref":"Hi.Disp.Pickable.html","topicUid":"Hi.Disp.Pickable","type":"Class"},{"name":"PopModelMat","href":"Hi.Disp.PopModelMat.html","topicHref":"Hi.Disp.PopModelMat.html","topicUid":"Hi.Disp.PopModelMat","type":"Class"},{"name":"PushModelMat","href":"Hi.Disp.PushModelMat.html","topicHref":"Hi.Disp.PushModelMat.html","topicUid":"Hi.Disp.PushModelMat","type":"Class"},{"name":"Segment3dDispUtil","href":"Hi.Disp.Segment3dDispUtil.html","topicHref":"Hi.Disp.Segment3dDispUtil.html","topicUid":"Hi.Disp.Segment3dDispUtil","type":"Class"},{"name":"ShowEventPickable","href":"Hi.Disp.ShowEventPickable.html","topicHref":"Hi.Disp.ShowEventPickable.html","topicUid":"Hi.Disp.ShowEventPickable","type":"Class"},{"name":"Stamp","href":"Hi.Disp.Stamp.html","topicHref":"Hi.Disp.Stamp.html","topicUid":"Hi.Disp.Stamp","type":"Enum"},{"name":"StringDrawing","href":"Hi.Disp.StringDrawing.html","topicHref":"Hi.Disp.StringDrawing.html","topicUid":"Hi.Disp.StringDrawing","type":"Class"},{"name":"Tri3dDispUtil","href":"Hi.Disp.Tri3dDispUtil.html","topicHref":"Hi.Disp.Tri3dDispUtil.html","topicUid":"Hi.Disp.Tri3dDispUtil","type":"Class"},{"name":"Vec3dDispUtil","href":"Hi.Disp.Vec3dDispUtil.html","topicHref":"Hi.Disp.Vec3dDispUtil.html","topicUid":"Hi.Disp.Vec3dDispUtil","type":"Class"},{"name":"WrappedDisplayee","href":"Hi.Disp.WrappedDisplayee.html","topicHref":"Hi.Disp.WrappedDisplayee.html","topicUid":"Hi.Disp.WrappedDisplayee","type":"Class"}]},{"name":"Hi.Disp.Flag","href":"Hi.Disp.Flag.html","topicHref":"Hi.Disp.Flag.html","topicUid":"Hi.Disp.Flag","type":"Namespace","items":[{"name":"ColorScaleBar","href":"Hi.Disp.Flag.ColorScaleBar.html","topicHref":"Hi.Disp.Flag.ColorScaleBar.html","topicUid":"Hi.Disp.Flag.ColorScaleBar","type":"Class"},{"name":"CoordinateDrawing","href":"Hi.Disp.Flag.CoordinateDrawing.html","topicHref":"Hi.Disp.Flag.CoordinateDrawing.html","topicUid":"Hi.Disp.Flag.CoordinateDrawing","type":"Class"},{"name":"CubicalFlagDrawing","href":"Hi.Disp.Flag.CubicalFlagDrawing.html","topicHref":"Hi.Disp.Flag.CubicalFlagDrawing.html","topicUid":"Hi.Disp.Flag.CubicalFlagDrawing","type":"Class"},{"name":"DimensionBar","href":"Hi.Disp.Flag.DimensionBar.html","topicHref":"Hi.Disp.Flag.DimensionBar.html","topicUid":"Hi.Disp.Flag.DimensionBar","type":"Class"},{"name":"DispCoverUtil","href":"Hi.Disp.Flag.DispCoverUtil.html","topicHref":"Hi.Disp.Flag.DispCoverUtil.html","topicUid":"Hi.Disp.Flag.DispCoverUtil","type":"Class"}]},{"name":"Hi.Disp.Treat","href":"Hi.Disp.Treat.html","topicHref":"Hi.Disp.Treat.html","topicUid":"Hi.Disp.Treat","type":"Namespace","items":[{"name":"LineWidthSwap","href":"Hi.Disp.Treat.LineWidthSwap.html","topicHref":"Hi.Disp.Treat.LineWidthSwap.html","topicUid":"Hi.Disp.Treat.LineWidthSwap","type":"Class"},{"name":"LineWidthTreat","href":"Hi.Disp.Treat.LineWidthTreat.html","topicHref":"Hi.Disp.Treat.LineWidthTreat.html","topicUid":"Hi.Disp.Treat.LineWidthTreat","type":"Class"},{"name":"PointSizeSwap","href":"Hi.Disp.Treat.PointSizeSwap.html","topicHref":"Hi.Disp.Treat.PointSizeSwap.html","topicUid":"Hi.Disp.Treat.PointSizeSwap","type":"Class"},{"name":"PointSizeTreat","href":"Hi.Disp.Treat.PointSizeTreat.html","topicHref":"Hi.Disp.Treat.PointSizeTreat.html","topicUid":"Hi.Disp.Treat.PointSizeTreat","type":"Class"},{"name":"RgbSwap","href":"Hi.Disp.Treat.RgbSwap.html","topicHref":"Hi.Disp.Treat.RgbSwap.html","topicUid":"Hi.Disp.Treat.RgbSwap","type":"Class"},{"name":"RgbTreat","href":"Hi.Disp.Treat.RgbTreat.html","topicHref":"Hi.Disp.Treat.RgbTreat.html","topicUid":"Hi.Disp.Treat.RgbTreat","type":"Class"},{"name":"RgbWrapper","href":"Hi.Disp.Treat.RgbWrapper.html","topicHref":"Hi.Disp.Treat.RgbWrapper.html","topicUid":"Hi.Disp.Treat.RgbWrapper","type":"Class"},{"name":"TransformationWrapper","href":"Hi.Disp.Treat.TransformationWrapper.html","topicHref":"Hi.Disp.Treat.TransformationWrapper.html","topicUid":"Hi.Disp.Treat.TransformationWrapper","type":"Class"}]},{"name":"Hi.Fanuc","href":"Hi.Fanuc.html","topicHref":"Hi.Fanuc.html","topicUid":"Hi.Fanuc","type":"Namespace","items":[{"name":"FanucVarTable","href":"Hi.Fanuc.FanucVarTable.html","topicHref":"Hi.Fanuc.FanucVarTable.html","topicUid":"Hi.Fanuc.FanucVarTable","type":"Class"},{"name":"FanucVarValue","href":"Hi.Fanuc.FanucVarValue.html","topicHref":"Hi.Fanuc.FanucVarValue.html","topicUid":"Hi.Fanuc.FanucVarValue","type":"Struct"}]},{"name":"Hi.Geom","href":"Hi.Geom.html","topicHref":"Hi.Geom.html","topicUid":"Hi.Geom","type":"Namespace","items":[{"name":"ArrayUtil","href":"Hi.Geom.ArrayUtil.html","topicHref":"Hi.Geom.ArrayUtil.html","topicUid":"Hi.Geom.ArrayUtil","type":"Class"},{"name":"AxisAngle4d","href":"Hi.Geom.AxisAngle4d.html","topicHref":"Hi.Geom.AxisAngle4d.html","topicUid":"Hi.Geom.AxisAngle4d","type":"Class"},{"name":"Box2d","href":"Hi.Geom.Box2d.html","topicHref":"Hi.Geom.Box2d.html","topicUid":"Hi.Geom.Box2d","type":"Class"},{"name":"Box2d.NoInit","href":"Hi.Geom.Box2d.NoInit.html","topicHref":"Hi.Geom.Box2d.NoInit.html","topicUid":"Hi.Geom.Box2d.NoInit","type":"Class"},{"name":"Box3d","href":"Hi.Geom.Box3d.html","topicHref":"Hi.Geom.Box3d.html","topicUid":"Hi.Geom.Box3d","type":"Class"},{"name":"Box3d.NoInit","href":"Hi.Geom.Box3d.NoInit.html","topicHref":"Hi.Geom.Box3d.NoInit.html","topicUid":"Hi.Geom.Box3d.NoInit","type":"Class"},{"name":"Cylindroid","href":"Hi.Geom.Cylindroid.html","topicHref":"Hi.Geom.Cylindroid.html","topicUid":"Hi.Geom.Cylindroid","type":"Class"},{"name":"DVec3d","href":"Hi.Geom.DVec3d.html","topicHref":"Hi.Geom.DVec3d.html","topicUid":"Hi.Geom.DVec3d","type":"Class"},{"name":"Dir","href":"Hi.Geom.Dir.html","topicHref":"Hi.Geom.Dir.html","topicUid":"Hi.Geom.Dir","type":"Enum"},{"name":"ExtendedCylinder","href":"Hi.Geom.ExtendedCylinder.html","topicHref":"Hi.Geom.ExtendedCylinder.html","topicUid":"Hi.Geom.ExtendedCylinder","type":"Class"},{"name":"Flat3d","href":"Hi.Geom.Flat3d.html","topicHref":"Hi.Geom.Flat3d.html","topicUid":"Hi.Geom.Flat3d","type":"Class"},{"name":"FractionStatus","href":"Hi.Geom.FractionStatus.html","topicHref":"Hi.Geom.FractionStatus.html","topicUid":"Hi.Geom.FractionStatus","type":"Enum"},{"name":"Fraction","href":"Hi.Geom.Fraction-1.html","topicHref":"Hi.Geom.Fraction-1.html","topicUid":"Hi.Geom.Fraction`1","type":"Struct"},{"name":"GeomCombination","href":"Hi.Geom.GeomCombination.html","topicHref":"Hi.Geom.GeomCombination.html","topicUid":"Hi.Geom.GeomCombination","type":"Class"},{"name":"GeomUtil","href":"Hi.Geom.GeomUtil.html","topicHref":"Hi.Geom.GeomUtil.html","topicUid":"Hi.Geom.GeomUtil","type":"Class"},{"name":"IExpandToBox2d","href":"Hi.Geom.IExpandToBox2d.html","topicHref":"Hi.Geom.IExpandToBox2d.html","topicUid":"Hi.Geom.IExpandToBox2d","type":"Interface"},{"name":"IExpandToBox3d","href":"Hi.Geom.IExpandToBox3d.html","topicHref":"Hi.Geom.IExpandToBox3d.html","topicUid":"Hi.Geom.IExpandToBox3d","type":"Interface"},{"name":"IFlat3d","href":"Hi.Geom.IFlat3d.html","topicHref":"Hi.Geom.IFlat3d.html","topicUid":"Hi.Geom.IFlat3d","type":"Interface"},{"name":"IGenStl","href":"Hi.Geom.IGenStl.html","topicHref":"Hi.Geom.IGenStl.html","topicUid":"Hi.Geom.IGenStl","type":"Interface"},{"name":"IGeomProperty","href":"Hi.Geom.IGeomProperty.html","topicHref":"Hi.Geom.IGeomProperty.html","topicUid":"Hi.Geom.IGeomProperty","type":"Interface"},{"name":"IGetStl","href":"Hi.Geom.IGetStl.html","topicHref":"Hi.Geom.IGetStl.html","topicUid":"Hi.Geom.IGetStl","type":"Interface"},{"name":"IGetZrContour","href":"Hi.Geom.IGetZrContour.html","topicHref":"Hi.Geom.IGetZrContour.html","topicUid":"Hi.Geom.IGetZrContour","type":"Interface"},{"name":"IGetZrList","href":"Hi.Geom.IGetZrList.html","topicHref":"Hi.Geom.IGetZrList.html","topicUid":"Hi.Geom.IGetZrList","type":"Interface"},{"name":"IStlSource","href":"Hi.Geom.IStlSource.html","topicHref":"Hi.Geom.IStlSource.html","topicUid":"Hi.Geom.IStlSource","type":"Interface"},{"name":"ITri3d","href":"Hi.Geom.ITri3d.html","topicHref":"Hi.Geom.ITri3d.html","topicUid":"Hi.Geom.ITri3d","type":"Interface"},{"name":"IVec","href":"Hi.Geom.IVec-1.html","topicHref":"Hi.Geom.IVec-1.html","topicUid":"Hi.Geom.IVec`1","type":"Interface"},{"name":"IZrListSourceProperty","href":"Hi.Geom.IZrListSourceProperty.html","topicHref":"Hi.Geom.IZrListSourceProperty.html","topicUid":"Hi.Geom.IZrListSourceProperty","type":"Interface"},{"name":"Mat4d","href":"Hi.Geom.Mat4d.html","topicHref":"Hi.Geom.Mat4d.html","topicUid":"Hi.Geom.Mat4d","type":"Class"},{"name":"Mat4d.IndexFlag","href":"Hi.Geom.Mat4d.IndexFlag.html","topicHref":"Hi.Geom.Mat4d.IndexFlag.html","topicUid":"Hi.Geom.Mat4d.IndexFlag","type":"Enum"},{"name":"MathNetUtil","href":"Hi.Geom.MathNetUtil.html","topicHref":"Hi.Geom.MathNetUtil.html","topicUid":"Hi.Geom.MathNetUtil","type":"Class"},{"name":"MathUtil","href":"Hi.Geom.MathUtil.html","topicHref":"Hi.Geom.MathUtil.html","topicUid":"Hi.Geom.MathUtil","type":"Class"},{"name":"NativeFraction","href":"Hi.Geom.NativeFraction.html","topicHref":"Hi.Geom.NativeFraction.html","topicUid":"Hi.Geom.NativeFraction","type":"Class"},{"name":"NativeStl","href":"Hi.Geom.NativeStl.html","topicHref":"Hi.Geom.NativeStl.html","topicUid":"Hi.Geom.NativeStl","type":"Class"},{"name":"NativeTopoStld","href":"Hi.Geom.NativeTopoStld.html","topicHref":"Hi.Geom.NativeTopoStld.html","topicUid":"Hi.Geom.NativeTopoStld","type":"Class"},{"name":"NativeTopoStlfr","href":"Hi.Geom.NativeTopoStlfr.html","topicHref":"Hi.Geom.NativeTopoStlfr.html","topicUid":"Hi.Geom.NativeTopoStlfr","type":"Class"},{"name":"ObjUtil","href":"Hi.Geom.ObjUtil.html","topicHref":"Hi.Geom.ObjUtil.html","topicUid":"Hi.Geom.ObjUtil","type":"Class"},{"name":"PairZr","href":"Hi.Geom.PairZr.html","topicHref":"Hi.Geom.PairZr.html","topicUid":"Hi.Geom.PairZr","type":"Class"},{"name":"PairZrUtil","href":"Hi.Geom.PairZrUtil.html","topicHref":"Hi.Geom.PairZrUtil.html","topicUid":"Hi.Geom.PairZrUtil","type":"Class"},{"name":"PlyUtil","href":"Hi.Geom.PlyUtil.html","topicHref":"Hi.Geom.PlyUtil.html","topicUid":"Hi.Geom.PlyUtil","type":"Class"},{"name":"Polar3d","href":"Hi.Geom.Polar3d.html","topicHref":"Hi.Geom.Polar3d.html","topicUid":"Hi.Geom.Polar3d","type":"Class"},{"name":"Segment3d","href":"Hi.Geom.Segment3d.html","topicHref":"Hi.Geom.Segment3d.html","topicUid":"Hi.Geom.Segment3d","type":"Class"},{"name":"Stl","href":"Hi.Geom.Stl.html","topicHref":"Hi.Geom.Stl.html","topicUid":"Hi.Geom.Stl","type":"Class"},{"name":"Stl.StlType","href":"Hi.Geom.Stl.StlType.html","topicHref":"Hi.Geom.Stl.StlType.html","topicUid":"Hi.Geom.Stl.StlType","type":"Enum"},{"name":"StlFile","href":"Hi.Geom.StlFile.html","topicHref":"Hi.Geom.StlFile.html","topicUid":"Hi.Geom.StlFile","type":"Class"},{"name":"StlFuncHost","href":"Hi.Geom.StlFuncHost.html","topicHref":"Hi.Geom.StlFuncHost.html","topicUid":"Hi.Geom.StlFuncHost","type":"Class"},{"name":"StlUtil","href":"Hi.Geom.StlUtil.html","topicHref":"Hi.Geom.StlUtil.html","topicUid":"Hi.Geom.StlUtil","type":"Class"},{"name":"TransformationGeom","href":"Hi.Geom.TransformationGeom.html","topicHref":"Hi.Geom.TransformationGeom.html","topicUid":"Hi.Geom.TransformationGeom","type":"Class"},{"name":"Tri3d","href":"Hi.Geom.Tri3d.html","topicHref":"Hi.Geom.Tri3d.html","topicUid":"Hi.Geom.Tri3d","type":"Class"},{"name":"Tri3dUtil","href":"Hi.Geom.Tri3dUtil.html","topicHref":"Hi.Geom.Tri3dUtil.html","topicUid":"Hi.Geom.Tri3dUtil","type":"Class"},{"name":"Vec2d","href":"Hi.Geom.Vec2d.html","topicHref":"Hi.Geom.Vec2d.html","topicUid":"Hi.Geom.Vec2d","type":"Class"},{"name":"Vec2i","href":"Hi.Geom.Vec2i.html","topicHref":"Hi.Geom.Vec2i.html","topicUid":"Hi.Geom.Vec2i","type":"Class"},{"name":"Vec3d","href":"Hi.Geom.Vec3d.html","topicHref":"Hi.Geom.Vec3d.html","topicUid":"Hi.Geom.Vec3d","type":"Class"}]},{"name":"Hi.Geom.Resolution","href":"Hi.Geom.Resolution.html","topicHref":"Hi.Geom.Resolution.html","topicUid":"Hi.Geom.Resolution","type":"Namespace","items":[{"name":"IPolarResolution2d","href":"Hi.Geom.Resolution.IPolarResolution2d.html","topicHref":"Hi.Geom.Resolution.IPolarResolution2d.html","topicUid":"Hi.Geom.Resolution.IPolarResolution2d","type":"Interface"},{"name":"IPolarResolution2dSourceProperty","href":"Hi.Geom.Resolution.IPolarResolution2dSourceProperty.html","topicHref":"Hi.Geom.Resolution.IPolarResolution2dSourceProperty.html","topicUid":"Hi.Geom.Resolution.IPolarResolution2dSourceProperty","type":"Interface"},{"name":"PolarResolution2d","href":"Hi.Geom.Resolution.PolarResolution2d.html","topicHref":"Hi.Geom.Resolution.PolarResolution2d.html","topicUid":"Hi.Geom.Resolution.PolarResolution2d","type":"Class"}]},{"name":"Hi.Geom.Solvers","href":"Hi.Geom.Solvers.html","topicHref":"Hi.Geom.Solvers.html","topicUid":"Hi.Geom.Solvers","type":"Namespace","items":[{"name":"BinarySolverUtil","href":"Hi.Geom.Solvers.BinarySolverUtil.html","topicHref":"Hi.Geom.Solvers.BinarySolverUtil.html","topicUid":"Hi.Geom.Solvers.BinarySolverUtil","type":"Class"},{"name":"BinarySolvingEntry","href":"Hi.Geom.Solvers.BinarySolvingEntry.html","topicHref":"Hi.Geom.Solvers.BinarySolvingEntry.html","topicUid":"Hi.Geom.Solvers.BinarySolvingEntry","type":"Class"},{"name":"DeepSolvingStatus","href":"Hi.Geom.Solvers.DeepSolvingStatus.html","topicHref":"Hi.Geom.Solvers.DeepSolvingStatus.html","topicUid":"Hi.Geom.Solvers.DeepSolvingStatus","type":"Class"},{"name":"NumericalSolver","href":"Hi.Geom.Solvers.NumericalSolver.html","topicHref":"Hi.Geom.Solvers.NumericalSolver.html","topicUid":"Hi.Geom.Solvers.NumericalSolver","type":"Class"},{"name":"NumericalSolver.GetRepondsDelegate","href":"Hi.Geom.Solvers.NumericalSolver.GetRepondsDelegate.html","topicHref":"Hi.Geom.Solvers.NumericalSolver.GetRepondsDelegate.html","topicUid":"Hi.Geom.Solvers.NumericalSolver.GetRepondsDelegate","type":"Delegate"},{"name":"NumericalSolver.SetParasDelegate","href":"Hi.Geom.Solvers.NumericalSolver.SetParasDelegate.html","topicHref":"Hi.Geom.Solvers.NumericalSolver.SetParasDelegate.html","topicUid":"Hi.Geom.Solvers.NumericalSolver.SetParasDelegate","type":"Delegate"},{"name":"SolverUtil","href":"Hi.Geom.Solvers.SolverUtil.html","topicHref":"Hi.Geom.Solvers.SolverUtil.html","topicUid":"Hi.Geom.Solvers.SolverUtil","type":"Class"},{"name":"SolvingResult","href":"Hi.Geom.Solvers.SolvingResult.html","topicHref":"Hi.Geom.Solvers.SolvingResult.html","topicUid":"Hi.Geom.Solvers.SolvingResult","type":"Class"},{"name":"SolvingStatus","href":"Hi.Geom.Solvers.SolvingStatus.html","topicHref":"Hi.Geom.Solvers.SolvingStatus.html","topicUid":"Hi.Geom.Solvers.SolvingStatus","type":"Enum"},{"name":"SolvingTerm","href":"Hi.Geom.Solvers.SolvingTerm.html","topicHref":"Hi.Geom.Solvers.SolvingTerm.html","topicUid":"Hi.Geom.Solvers.SolvingTerm","type":"Enum"}]},{"name":"Hi.Geom.Topo","href":"Hi.Geom.Topo.html","topicHref":"Hi.Geom.Topo.html","topicUid":"Hi.Geom.Topo","type":"Namespace","items":[{"name":"TopoLine3Hfr","href":"Hi.Geom.Topo.TopoLine3Hfr.html","topicHref":"Hi.Geom.Topo.TopoLine3Hfr.html","topicUid":"Hi.Geom.Topo.TopoLine3Hfr","type":"Class"},{"name":"TopoLine3StockHfr","href":"Hi.Geom.Topo.TopoLine3StockHfr.html","topicHref":"Hi.Geom.Topo.TopoLine3StockHfr.html","topicUid":"Hi.Geom.Topo.TopoLine3StockHfr","type":"Class"},{"name":"TopoPoint3Hfr","href":"Hi.Geom.Topo.TopoPoint3Hfr.html","topicHref":"Hi.Geom.Topo.TopoPoint3Hfr.html","topicUid":"Hi.Geom.Topo.TopoPoint3Hfr","type":"Class"},{"name":"TopoPoint3StockHfr","href":"Hi.Geom.Topo.TopoPoint3StockHfr.html","topicHref":"Hi.Geom.Topo.TopoPoint3StockHfr.html","topicUid":"Hi.Geom.Topo.TopoPoint3StockHfr","type":"Class"},{"name":"TopoStl3Hfr","href":"Hi.Geom.Topo.TopoStl3Hfr.html","topicHref":"Hi.Geom.Topo.TopoStl3Hfr.html","topicUid":"Hi.Geom.Topo.TopoStl3Hfr","type":"Class"},{"name":"TopoStl3HfrFlatDisplayee","href":"Hi.Geom.Topo.TopoStl3HfrFlatDisplayee.html","topicHref":"Hi.Geom.Topo.TopoStl3HfrFlatDisplayee.html","topicUid":"Hi.Geom.Topo.TopoStl3HfrFlatDisplayee","type":"Class"},{"name":"TopoStl3HfrSmoothDisplayee","href":"Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee.html","topicHref":"Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee.html","topicUid":"Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee","type":"Class"},{"name":"TopoTri3Hfr","href":"Hi.Geom.Topo.TopoTri3Hfr.html","topicHref":"Hi.Geom.Topo.TopoTri3Hfr.html","topicUid":"Hi.Geom.Topo.TopoTri3Hfr","type":"Class"},{"name":"TopoTri3StockHfr","href":"Hi.Geom.Topo.TopoTri3StockHfr.html","topicHref":"Hi.Geom.Topo.TopoTri3StockHfr.html","topicUid":"Hi.Geom.Topo.TopoTri3StockHfr","type":"Class"},{"name":"Vec3Hfr","href":"Hi.Geom.Topo.Vec3Hfr.html","topicHref":"Hi.Geom.Topo.Vec3Hfr.html","topicUid":"Hi.Geom.Topo.Vec3Hfr","type":"Struct"}]},{"name":"Hi.Geom.UnitUtils","href":"Hi.Geom.UnitUtils.html","topicHref":"Hi.Geom.UnitUtils.html","topicUid":"Hi.Geom.UnitUtils","type":"Namespace","items":[{"name":"PhysicsUnit","href":"Hi.Geom.UnitUtils.PhysicsUnit.html","topicHref":"Hi.Geom.UnitUtils.PhysicsUnit.html","topicUid":"Hi.Geom.UnitUtils.PhysicsUnit","type":"Enum"},{"name":"StringValueAttribute","href":"Hi.Geom.UnitUtils.StringValueAttribute.html","topicHref":"Hi.Geom.UnitUtils.StringValueAttribute.html","topicUid":"Hi.Geom.UnitUtils.StringValueAttribute","type":"Class"},{"name":"UnitConvertUtil","href":"Hi.Geom.UnitUtils.UnitConvertUtil.html","topicHref":"Hi.Geom.UnitUtils.UnitConvertUtil.html","topicUid":"Hi.Geom.UnitUtils.UnitConvertUtil","type":"Class"}]},{"name":"Hi.HiNcKits","href":"Hi.HiNcKits.html","topicHref":"Hi.HiNcKits.html","topicUid":"Hi.HiNcKits","type":"Namespace","items":[{"name":"BasePathEnum","href":"Hi.HiNcKits.BasePathEnum.html","topicHref":"Hi.HiNcKits.BasePathEnum.html","topicUid":"Hi.HiNcKits.BasePathEnum","type":"Enum"},{"name":"HiNcHost","href":"Hi.HiNcKits.HiNcHost.html","topicHref":"Hi.HiNcKits.HiNcHost.html","topicUid":"Hi.HiNcKits.HiNcHost","type":"Class"},{"name":"LocalApp","href":"Hi.HiNcKits.LocalApp.html","topicHref":"Hi.HiNcKits.LocalApp.html","topicUid":"Hi.HiNcKits.LocalApp","type":"Class"},{"name":"LocalAppConfig","href":"Hi.HiNcKits.LocalAppConfig.html","topicHref":"Hi.HiNcKits.LocalAppConfig.html","topicUid":"Hi.HiNcKits.LocalAppConfig","type":"Class"},{"name":"PlayerDivConfig","href":"Hi.HiNcKits.PlayerDivConfig.html","topicHref":"Hi.HiNcKits.PlayerDivConfig.html","topicUid":"Hi.HiNcKits.PlayerDivConfig","type":"Class"},{"name":"ProxyConfig","href":"Hi.HiNcKits.ProxyConfig.html","topicHref":"Hi.HiNcKits.ProxyConfig.html","topicUid":"Hi.HiNcKits.ProxyConfig","type":"Class"},{"name":"UserConfig","href":"Hi.HiNcKits.UserConfig.html","topicHref":"Hi.HiNcKits.UserConfig.html","topicUid":"Hi.HiNcKits.UserConfig","type":"Class"},{"name":"UserService","href":"Hi.HiNcKits.UserService.html","topicHref":"Hi.HiNcKits.UserService.html","topicUid":"Hi.HiNcKits.UserService","type":"Class"}]},{"name":"Hi.Licenses","href":"Hi.Licenses.html","topicHref":"Hi.Licenses.html","topicUid":"Hi.Licenses","type":"Namespace","items":[{"name":"AuthFeature","href":"Hi.Licenses.AuthFeature.html","topicHref":"Hi.Licenses.AuthFeature.html","topicUid":"Hi.Licenses.AuthFeature","type":"Enum"},{"name":"AuthorizationFailedEventArgs","href":"Hi.Licenses.AuthorizationFailedEventArgs.html","topicHref":"Hi.Licenses.AuthorizationFailedEventArgs.html","topicUid":"Hi.Licenses.AuthorizationFailedEventArgs","type":"Class"},{"name":"BlockType","href":"Hi.Licenses.BlockType.html","topicHref":"Hi.Licenses.BlockType.html","topicUid":"Hi.Licenses.BlockType","type":"Enum"},{"name":"License","href":"Hi.Licenses.License.html","topicHref":"Hi.Licenses.License.html","topicUid":"Hi.Licenses.License","type":"Class"},{"name":"LicenseType","href":"Hi.Licenses.LicenseType.html","topicHref":"Hi.Licenses.LicenseType.html","topicUid":"Hi.Licenses.LicenseType","type":"Enum"}]},{"name":"Hi.Machining","href":"Hi.Machining.html","topicHref":"Hi.Machining.html","topicUid":"Hi.Machining","type":"Namespace","items":[{"name":"FreeformRemover","href":"Hi.Machining.FreeformRemover.html","topicHref":"Hi.Machining.FreeformRemover.html","topicUid":"Hi.Machining.FreeformRemover","type":"Class"},{"name":"ICutter","href":"Hi.Machining.ICutter.html","topicHref":"Hi.Machining.ICutter.html","topicUid":"Hi.Machining.ICutter","type":"Interface"},{"name":"ICutterAnchorable","href":"Hi.Machining.ICutterAnchorable.html","topicHref":"Hi.Machining.ICutterAnchorable.html","topicUid":"Hi.Machining.ICutterAnchorable","type":"Interface"},{"name":"IGetSweptable","href":"Hi.Machining.IGetSweptable.html","topicHref":"Hi.Machining.IGetSweptable.html","topicUid":"Hi.Machining.IGetSweptable","type":"Interface"},{"name":"IMachiningTool","href":"Hi.Machining.IMachiningTool.html","topicHref":"Hi.Machining.IMachiningTool.html","topicUid":"Hi.Machining.IMachiningTool","type":"Interface"},{"name":"IVolumeRemover","href":"Hi.Machining.IVolumeRemover.html","topicHref":"Hi.Machining.IVolumeRemover.html","topicUid":"Hi.Machining.IVolumeRemover","type":"Interface"},{"name":"MachiningToolHouse","href":"Hi.Machining.MachiningToolHouse.html","topicHref":"Hi.Machining.MachiningToolHouse.html","topicUid":"Hi.Machining.MachiningToolHouse","type":"Class"},{"name":"MachiningVolumeRemovalProc","href":"Hi.Machining.MachiningVolumeRemovalProc.html","topicHref":"Hi.Machining.MachiningVolumeRemovalProc.html","topicUid":"Hi.Machining.MachiningVolumeRemovalProc","type":"Class"},{"name":"MachiningVolumeRemovalProc.StepMotionSnapshot","href":"Hi.Machining.MachiningVolumeRemovalProc.StepMotionSnapshot.html","topicHref":"Hi.Machining.MachiningVolumeRemovalProc.StepMotionSnapshot.html","topicUid":"Hi.Machining.MachiningVolumeRemovalProc.StepMotionSnapshot","type":"Class"},{"name":"MatInterpolationKit","href":"Hi.Machining.MatInterpolationKit.html","topicHref":"Hi.Machining.MatInterpolationKit.html","topicUid":"Hi.Machining.MatInterpolationKit","type":"Class"},{"name":"MatRelation","href":"Hi.Machining.MatRelation.html","topicHref":"Hi.Machining.MatRelation.html","topicUid":"Hi.Machining.MatRelation","type":"Enum"},{"name":"MatRelationUtil","href":"Hi.Machining.MatRelationUtil.html","topicHref":"Hi.Machining.MatRelationUtil.html","topicUid":"Hi.Machining.MatRelationUtil","type":"Class"},{"name":"Sweptable","href":"Hi.Machining.Sweptable.html","topicHref":"Hi.Machining.Sweptable.html","topicUid":"Hi.Machining.Sweptable","type":"Class"},{"name":"SweptableUtil","href":"Hi.Machining.SweptableUtil.html","topicHref":"Hi.Machining.SweptableUtil.html","topicUid":"Hi.Machining.SweptableUtil","type":"Class"},{"name":"ToolNotFoundException","href":"Hi.Machining.ToolNotFoundException.html","topicHref":"Hi.Machining.ToolNotFoundException.html","topicUid":"Hi.Machining.ToolNotFoundException","type":"Class"}]},{"name":"Hi.Machining.MachiningEquipmentUtils","href":"Hi.Machining.MachiningEquipmentUtils.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.html","topicUid":"Hi.Machining.MachiningEquipmentUtils","type":"Namespace","items":[{"name":"CollidableComponentEnum","href":"Hi.Machining.MachiningEquipmentUtils.CollidableComponentEnum.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.CollidableComponentEnum.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.CollidableComponentEnum","type":"Enum"},{"name":"IGetMachiningEquipment","href":"Hi.Machining.MachiningEquipmentUtils.IGetMachiningEquipment.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.IGetMachiningEquipment.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.IGetMachiningEquipment","type":"Interface"},{"name":"IMachiningEquipment","href":"Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment","type":"Interface"},{"name":"MachiningEquipment","href":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipment","type":"Class"},{"name":"MachiningEquipmentCollisionIndex","href":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndex.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndex.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndex","type":"Class"},{"name":"MachiningEquipmentCollisionIndexPairsSource","href":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndexPairsSource.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndexPairsSource.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndexPairsSource","type":"Class"},{"name":"MachiningEquipmentUtil","href":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.html","topicHref":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.html","topicUid":"Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil","type":"Class"}]},{"name":"Hi.MachiningProcs","href":"Hi.MachiningProcs.html","topicHref":"Hi.MachiningProcs.html","topicUid":"Hi.MachiningProcs","type":"Namespace","items":[{"name":"ConfigStepFunc","href":"Hi.MachiningProcs.ConfigStepFunc.html","topicHref":"Hi.MachiningProcs.ConfigStepFunc.html","topicUid":"Hi.MachiningProcs.ConfigStepFunc","type":"Delegate"},{"name":"IMachiningProjectGetter","href":"Hi.MachiningProcs.IMachiningProjectGetter.html","topicHref":"Hi.MachiningProcs.IMachiningProjectGetter.html","topicUid":"Hi.MachiningProcs.IMachiningProjectGetter","type":"Interface"},{"name":"IProjectService","href":"Hi.MachiningProcs.IProjectService.html","topicHref":"Hi.MachiningProcs.IProjectService.html","topicUid":"Hi.MachiningProcs.IProjectService","type":"Interface"},{"name":"LocalProjectService","href":"Hi.MachiningProcs.LocalProjectService.html","topicHref":"Hi.MachiningProcs.LocalProjectService.html","topicUid":"Hi.MachiningProcs.LocalProjectService","type":"Class"},{"name":"LocalProjectService.MachiningProjectChangedDelegate","href":"Hi.MachiningProcs.LocalProjectService.MachiningProjectChangedDelegate.html","topicHref":"Hi.MachiningProcs.LocalProjectService.MachiningProjectChangedDelegate.html","topicUid":"Hi.MachiningProcs.LocalProjectService.MachiningProjectChangedDelegate","type":"Delegate"},{"name":"MachiningActRunner","href":"Hi.MachiningProcs.MachiningActRunner.html","topicHref":"Hi.MachiningProcs.MachiningActRunner.html","topicUid":"Hi.MachiningProcs.MachiningActRunner","type":"Class"},{"name":"MachiningActRunner.MachiningStepBuiltDelegate","href":"Hi.MachiningProcs.MachiningActRunner.MachiningStepBuiltDelegate.html","topicHref":"Hi.MachiningProcs.MachiningActRunner.MachiningStepBuiltDelegate.html","topicUid":"Hi.MachiningProcs.MachiningActRunner.MachiningStepBuiltDelegate","type":"Delegate"},{"name":"MachiningActRunnerConfig","href":"Hi.MachiningProcs.MachiningActRunnerConfig.html","topicHref":"Hi.MachiningProcs.MachiningActRunnerConfig.html","topicUid":"Hi.MachiningProcs.MachiningActRunnerConfig","type":"Class"},{"name":"MachiningParallelProc","href":"Hi.MachiningProcs.MachiningParallelProc.html","topicHref":"Hi.MachiningProcs.MachiningParallelProc.html","topicUid":"Hi.MachiningProcs.MachiningParallelProc","type":"Class"},{"name":"MachiningParallelProc.StepTaskBundle","href":"Hi.MachiningProcs.MachiningParallelProc.StepTaskBundle.html","topicHref":"Hi.MachiningProcs.MachiningParallelProc.StepTaskBundle.html","topicUid":"Hi.MachiningProcs.MachiningParallelProc.StepTaskBundle","type":"Class"},{"name":"MachiningParallelProc.SubstractionResult","href":"Hi.MachiningProcs.MachiningParallelProc.SubstractionResult.html","topicHref":"Hi.MachiningProcs.MachiningParallelProc.SubstractionResult.html","topicUid":"Hi.MachiningProcs.MachiningParallelProc.SubstractionResult","type":"Class"},{"name":"MachiningProject","href":"Hi.MachiningProcs.MachiningProject.html","topicHref":"Hi.MachiningProcs.MachiningProject.html","topicUid":"Hi.MachiningProcs.MachiningProject","type":"Class"},{"name":"MachiningProjectDisplayee","href":"Hi.MachiningProcs.MachiningProjectDisplayee.html","topicHref":"Hi.MachiningProcs.MachiningProjectDisplayee.html","topicUid":"Hi.MachiningProcs.MachiningProjectDisplayee","type":"Class"},{"name":"MachiningSession","href":"Hi.MachiningProcs.MachiningSession.html","topicHref":"Hi.MachiningProcs.MachiningSession.html","topicUid":"Hi.MachiningProcs.MachiningSession","type":"Class"},{"name":"MillingUtil","href":"Hi.MachiningProcs.MillingUtil.html","topicHref":"Hi.MachiningProcs.MillingUtil.html","topicUid":"Hi.MachiningProcs.MillingUtil","type":"Class"},{"name":"NcRunnerSessionState","href":"Hi.MachiningProcs.NcRunnerSessionState.html","topicHref":"Hi.MachiningProcs.NcRunnerSessionState.html","topicUid":"Hi.MachiningProcs.NcRunnerSessionState","type":"Class"},{"name":"ProxyProjectService","href":"Hi.MachiningProcs.ProxyProjectService.html","topicHref":"Hi.MachiningProcs.ProxyProjectService.html","topicUid":"Hi.MachiningProcs.ProxyProjectService","type":"Class"},{"name":"RenderingFlag","href":"Hi.MachiningProcs.RenderingFlag.html","topicHref":"Hi.MachiningProcs.RenderingFlag.html","topicUid":"Hi.MachiningProcs.RenderingFlag","type":"Enum"},{"name":"SessionMessage","href":"Hi.MachiningProcs.SessionMessage.html","topicHref":"Hi.MachiningProcs.SessionMessage.html","topicUid":"Hi.MachiningProcs.SessionMessage","type":"Class"},{"name":"SessionMessagePack","href":"Hi.MachiningProcs.SessionMessagePack.html","topicHref":"Hi.MachiningProcs.SessionMessagePack.html","topicUid":"Hi.MachiningProcs.SessionMessagePack","type":"Class"},{"name":"SessionProgress","href":"Hi.MachiningProcs.SessionProgress.html","topicHref":"Hi.MachiningProcs.SessionProgress.html","topicUid":"Hi.MachiningProcs.SessionProgress","type":"Class"},{"name":"SessionProgress.FilterFlag","href":"Hi.MachiningProcs.SessionProgress.FilterFlag.html","topicHref":"Hi.MachiningProcs.SessionProgress.FilterFlag.html","topicUid":"Hi.MachiningProcs.SessionProgress.FilterFlag","type":"Enum"},{"name":"SessionShell","href":"Hi.MachiningProcs.SessionShell.html","topicHref":"Hi.MachiningProcs.SessionShell.html","topicUid":"Hi.MachiningProcs.SessionShell","type":"Class"},{"name":"SessionShellController","href":"Hi.MachiningProcs.SessionShellController.html","topicHref":"Hi.MachiningProcs.SessionShellController.html","topicUid":"Hi.MachiningProcs.SessionShellController","type":"Class"},{"name":"SetupController","href":"Hi.MachiningProcs.SetupController.html","topicHref":"Hi.MachiningProcs.SetupController.html","topicUid":"Hi.MachiningProcs.SetupController","type":"Class"},{"name":"SpindleSpeedCache","href":"Hi.MachiningProcs.SpindleSpeedCache.html","topicHref":"Hi.MachiningProcs.SpindleSpeedCache.html","topicUid":"Hi.MachiningProcs.SpindleSpeedCache","type":"Class"}]},{"name":"Hi.MachiningSteps","href":"Hi.MachiningSteps.html","topicHref":"Hi.MachiningSteps.html","topicUid":"Hi.MachiningSteps","type":"Namespace","items":[{"name":"IFlagText","href":"Hi.MachiningSteps.IFlagText.html","topicHref":"Hi.MachiningSteps.IFlagText.html","topicUid":"Hi.MachiningSteps.IFlagText","type":"Interface"},{"name":"IMachiningService","href":"Hi.MachiningSteps.IMachiningService.html","topicHref":"Hi.MachiningSteps.IMachiningService.html","topicUid":"Hi.MachiningSteps.IMachiningService","type":"Interface"},{"name":"IStepPropertyAccessHost","href":"Hi.MachiningSteps.IStepPropertyAccessHost.html","topicHref":"Hi.MachiningSteps.IStepPropertyAccessHost.html","topicUid":"Hi.MachiningSteps.IStepPropertyAccessHost","type":"Interface"},{"name":"MachineMotionStep","href":"Hi.MachiningSteps.MachineMotionStep.html","topicHref":"Hi.MachiningSteps.MachineMotionStep.html","topicUid":"Hi.MachiningSteps.MachineMotionStep","type":"Class"},{"name":"MachiningStep","href":"Hi.MachiningSteps.MachiningStep.html","topicHref":"Hi.MachiningSteps.MachiningStep.html","topicUid":"Hi.MachiningSteps.MachiningStep","type":"Class"},{"name":"MachiningStep.CollidedKeyPair","href":"Hi.MachiningSteps.MachiningStep.CollidedKeyPair.html","topicHref":"Hi.MachiningSteps.MachiningStep.CollidedKeyPair.html","topicUid":"Hi.MachiningSteps.MachiningStep.CollidedKeyPair","type":"Class"},{"name":"MachiningStepUtil","href":"Hi.MachiningSteps.MachiningStepUtil.html","topicHref":"Hi.MachiningSteps.MachiningStepUtil.html","topicUid":"Hi.MachiningSteps.MachiningStepUtil","type":"Class"},{"name":"PresentAccess","href":"Hi.MachiningSteps.PresentAccess.html","topicHref":"Hi.MachiningSteps.PresentAccess.html","topicUid":"Hi.MachiningSteps.PresentAccess","type":"Class"},{"name":"PresentAttribute","href":"Hi.MachiningSteps.PresentAttribute.html","topicHref":"Hi.MachiningSteps.PresentAttribute.html","topicUid":"Hi.MachiningSteps.PresentAttribute","type":"Class"},{"name":"PropertyAccess","href":"Hi.MachiningSteps.PropertyAccess-1.html","topicHref":"Hi.MachiningSteps.PropertyAccess-1.html","topicUid":"Hi.MachiningSteps.PropertyAccess`1","type":"Class"}]},{"name":"Hi.Mapping","href":"Hi.Mapping.html","topicHref":"Hi.Mapping.html","topicUid":"Hi.Mapping","type":"Namespace","items":[{"name":"CsvNcStep","href":"Hi.Mapping.CsvNcStep.html","topicHref":"Hi.Mapping.CsvNcStep.html","topicUid":"Hi.Mapping.CsvNcStep","type":"Class"},{"name":"FileToTimeShotMapping","href":"Hi.Mapping.FileToTimeShotMapping.html","topicHref":"Hi.Mapping.FileToTimeShotMapping.html","topicUid":"Hi.Mapping.FileToTimeShotMapping","type":"Class"},{"name":"IAccelerationShot","href":"Hi.Mapping.IAccelerationShot.html","topicHref":"Hi.Mapping.IAccelerationShot.html","topicUid":"Hi.Mapping.IAccelerationShot","type":"Interface"},{"name":"IForceShot","href":"Hi.Mapping.IForceShot.html","topicHref":"Hi.Mapping.IForceShot.html","topicUid":"Hi.Mapping.IForceShot","type":"Interface"},{"name":"IMomentShot","href":"Hi.Mapping.IMomentShot.html","topicHref":"Hi.Mapping.IMomentShot.html","topicUid":"Hi.Mapping.IMomentShot","type":"Interface"},{"name":"ITimeShot","href":"Hi.Mapping.ITimeShot.html","topicHref":"Hi.Mapping.ITimeShot.html","topicUid":"Hi.Mapping.ITimeShot","type":"Interface"},{"name":"MappingUtil","href":"Hi.Mapping.MappingUtil.html","topicHref":"Hi.Mapping.MappingUtil.html","topicUid":"Hi.Mapping.MappingUtil","type":"Class"},{"name":"StepTimeShotUtil","href":"Hi.Mapping.StepTimeShotUtil.html","topicHref":"Hi.Mapping.StepTimeShotUtil.html","topicUid":"Hi.Mapping.StepTimeShotUtil","type":"Class"},{"name":"StepTimeShotUtil.CycleSamplingMode","href":"Hi.Mapping.StepTimeShotUtil.CycleSamplingMode.html","topicHref":"Hi.Mapping.StepTimeShotUtil.CycleSamplingMode.html","topicUid":"Hi.Mapping.StepTimeShotUtil.CycleSamplingMode","type":"Enum"},{"name":"StepTimeShotUtil.GetTimeShotByFileDelegate","href":"Hi.Mapping.StepTimeShotUtil.GetTimeShotByFileDelegate.html","topicHref":"Hi.Mapping.StepTimeShotUtil.GetTimeShotByFileDelegate.html","topicUid":"Hi.Mapping.StepTimeShotUtil.GetTimeShotByFileDelegate","type":"Delegate"},{"name":"TimeMapping","href":"Hi.Mapping.TimeMapping.html","topicHref":"Hi.Mapping.TimeMapping.html","topicUid":"Hi.Mapping.TimeMapping","type":"Class"}]},{"name":"Hi.Mappings","href":"Hi.Mappings.html","topicHref":"Hi.Mappings.html","topicUid":"Hi.Mappings","type":"Namespace","items":[{"name":"FileTimeSection","href":"Hi.Mappings.FileTimeSection.html","topicHref":"Hi.Mappings.FileTimeSection.html","topicUid":"Hi.Mappings.FileTimeSection","type":"Class"},{"name":"FileTimeSection.TimeOption","href":"Hi.Mappings.FileTimeSection.TimeOption.html","topicHref":"Hi.Mappings.FileTimeSection.TimeOption.html","topicUid":"Hi.Mappings.FileTimeSection.TimeOption","type":"Enum"}]},{"name":"Hi.Mech","href":"Hi.Mech.html","topicHref":"Hi.Mech.html","topicUid":"Hi.Mech","type":"Namespace","items":[{"name":"GeneralMechanism","href":"Hi.Mech.GeneralMechanism.html","topicHref":"Hi.Mech.GeneralMechanism.html","topicUid":"Hi.Mech.GeneralMechanism","type":"Class"},{"name":"IGetAnchorToSolidDictionary","href":"Hi.Mech.IGetAnchorToSolidDictionary.html","topicHref":"Hi.Mech.IGetAnchorToSolidDictionary.html","topicUid":"Hi.Mech.IGetAnchorToSolidDictionary","type":"Interface"},{"name":"IGetMachiningChain","href":"Hi.Mech.IGetMachiningChain.html","topicHref":"Hi.Mech.IGetMachiningChain.html","topicUid":"Hi.Mech.IGetMachiningChain","type":"Interface"},{"name":"IMachiningChain","href":"Hi.Mech.IMachiningChain.html","topicHref":"Hi.Mech.IMachiningChain.html","topicUid":"Hi.Mech.IMachiningChain","type":"Interface"},{"name":"IMachiningChainSource","href":"Hi.Mech.IMachiningChainSource.html","topicHref":"Hi.Mech.IMachiningChainSource.html","topicUid":"Hi.Mech.IMachiningChainSource","type":"Interface"},{"name":"MachiningChainUtil","href":"Hi.Mech.MachiningChainUtil.html","topicHref":"Hi.Mech.MachiningChainUtil.html","topicUid":"Hi.Mech.MachiningChainUtil","type":"Class"}]},{"name":"Hi.Mech.Topo","href":"Hi.Mech.Topo.html","topicHref":"Hi.Mech.Topo.html","topicUid":"Hi.Mech.Topo","type":"Namespace","items":[{"name":"Anchor","href":"Hi.Mech.Topo.Anchor.html","topicHref":"Hi.Mech.Topo.Anchor.html","topicUid":"Hi.Mech.Topo.Anchor","type":"Class"},{"name":"AnchorFuncSource","href":"Hi.Mech.Topo.AnchorFuncSource.html","topicHref":"Hi.Mech.Topo.AnchorFuncSource.html","topicUid":"Hi.Mech.Topo.AnchorFuncSource","type":"Class"},{"name":"AnchoredBoxable","href":"Hi.Mech.Topo.AnchoredBoxable.html","topicHref":"Hi.Mech.Topo.AnchoredBoxable.html","topicUid":"Hi.Mech.Topo.AnchoredBoxable","type":"Class"},{"name":"AnchoredDisplayee","href":"Hi.Mech.Topo.AnchoredDisplayee.html","topicHref":"Hi.Mech.Topo.AnchoredDisplayee.html","topicUid":"Hi.Mech.Topo.AnchoredDisplayee","type":"Class"},{"name":"Asmb","href":"Hi.Mech.Topo.Asmb.html","topicHref":"Hi.Mech.Topo.Asmb.html","topicUid":"Hi.Mech.Topo.Asmb","type":"Class"},{"name":"AsmbDraw","href":"Hi.Mech.Topo.AsmbDraw.html","topicHref":"Hi.Mech.Topo.AsmbDraw.html","topicUid":"Hi.Mech.Topo.AsmbDraw","type":"Class"},{"name":"Branch","href":"Hi.Mech.Topo.Branch.html","topicHref":"Hi.Mech.Topo.Branch.html","topicUid":"Hi.Mech.Topo.Branch","type":"Class"},{"name":"DirectionBranchEntry","href":"Hi.Mech.Topo.DirectionBranchEntry.html","topicHref":"Hi.Mech.Topo.DirectionBranchEntry.html","topicUid":"Hi.Mech.Topo.DirectionBranchEntry","type":"Class"},{"name":"DirectionBranchPackUtil","href":"Hi.Mech.Topo.DirectionBranchPackUtil.html","topicHref":"Hi.Mech.Topo.DirectionBranchPackUtil.html","topicUid":"Hi.Mech.Topo.DirectionBranchPackUtil","type":"Class"},{"name":"DynamicFreeform","href":"Hi.Mech.Topo.DynamicFreeform.html","topicHref":"Hi.Mech.Topo.DynamicFreeform.html","topicUid":"Hi.Mech.Topo.DynamicFreeform","type":"Class"},{"name":"DynamicRotation","href":"Hi.Mech.Topo.DynamicRotation.html","topicHref":"Hi.Mech.Topo.DynamicRotation.html","topicUid":"Hi.Mech.Topo.DynamicRotation","type":"Class"},{"name":"DynamicTranslation","href":"Hi.Mech.Topo.DynamicTranslation.html","topicHref":"Hi.Mech.Topo.DynamicTranslation.html","topicUid":"Hi.Mech.Topo.DynamicTranslation","type":"Class"},{"name":"GeneralTransform","href":"Hi.Mech.Topo.GeneralTransform.html","topicHref":"Hi.Mech.Topo.GeneralTransform.html","topicUid":"Hi.Mech.Topo.GeneralTransform","type":"Class"},{"name":"IAnchoredDisplayee","href":"Hi.Mech.Topo.IAnchoredDisplayee.html","topicHref":"Hi.Mech.Topo.IAnchoredDisplayee.html","topicUid":"Hi.Mech.Topo.IAnchoredDisplayee","type":"Interface"},{"name":"IDynamicRegular","href":"Hi.Mech.Topo.IDynamicRegular.html","topicHref":"Hi.Mech.Topo.IDynamicRegular.html","topicUid":"Hi.Mech.Topo.IDynamicRegular","type":"Interface"},{"name":"IDynamicRotation","href":"Hi.Mech.Topo.IDynamicRotation.html","topicHref":"Hi.Mech.Topo.IDynamicRotation.html","topicUid":"Hi.Mech.Topo.IDynamicRotation","type":"Interface"},{"name":"IDynamicTransformer","href":"Hi.Mech.Topo.IDynamicTransformer.html","topicHref":"Hi.Mech.Topo.IDynamicTransformer.html","topicUid":"Hi.Mech.Topo.IDynamicTransformer","type":"Interface"},{"name":"IGetAnchor","href":"Hi.Mech.Topo.IGetAnchor.html","topicHref":"Hi.Mech.Topo.IGetAnchor.html","topicUid":"Hi.Mech.Topo.IGetAnchor","type":"Interface"},{"name":"IGetAnchoredDisplayeeList","href":"Hi.Mech.Topo.IGetAnchoredDisplayeeList.html","topicHref":"Hi.Mech.Topo.IGetAnchoredDisplayeeList.html","topicUid":"Hi.Mech.Topo.IGetAnchoredDisplayeeList","type":"Interface"},{"name":"IGetAsmb","href":"Hi.Mech.Topo.IGetAsmb.html","topicHref":"Hi.Mech.Topo.IGetAsmb.html","topicUid":"Hi.Mech.Topo.IGetAsmb","type":"Interface"},{"name":"IGetFletchBuckle","href":"Hi.Mech.Topo.IGetFletchBuckle.html","topicHref":"Hi.Mech.Topo.IGetFletchBuckle.html","topicUid":"Hi.Mech.Topo.IGetFletchBuckle","type":"Interface"},{"name":"IGetInverseTransformer","href":"Hi.Mech.Topo.IGetInverseTransformer.html","topicHref":"Hi.Mech.Topo.IGetInverseTransformer.html","topicUid":"Hi.Mech.Topo.IGetInverseTransformer","type":"Interface"},{"name":"IGetTopoIndex","href":"Hi.Mech.Topo.IGetTopoIndex.html","topicHref":"Hi.Mech.Topo.IGetTopoIndex.html","topicUid":"Hi.Mech.Topo.IGetTopoIndex","type":"Interface"},{"name":"IStaticTransformer","href":"Hi.Mech.Topo.IStaticTransformer.html","topicHref":"Hi.Mech.Topo.IStaticTransformer.html","topicUid":"Hi.Mech.Topo.IStaticTransformer","type":"Interface"},{"name":"ITopo","href":"Hi.Mech.Topo.ITopo.html","topicHref":"Hi.Mech.Topo.ITopo.html","topicUid":"Hi.Mech.Topo.ITopo","type":"Interface"},{"name":"ITopoDisplayee","href":"Hi.Mech.Topo.ITopoDisplayee.html","topicHref":"Hi.Mech.Topo.ITopoDisplayee.html","topicUid":"Hi.Mech.Topo.ITopoDisplayee","type":"Interface"},{"name":"ITransformer","href":"Hi.Mech.Topo.ITransformer.html","topicHref":"Hi.Mech.Topo.ITransformer.html","topicUid":"Hi.Mech.Topo.ITransformer","type":"Interface"},{"name":"ITransformerProperty","href":"Hi.Mech.Topo.ITransformerProperty.html","topicHref":"Hi.Mech.Topo.ITransformerProperty.html","topicUid":"Hi.Mech.Topo.ITransformerProperty","type":"Interface"},{"name":"NoTransform","href":"Hi.Mech.Topo.NoTransform.html","topicHref":"Hi.Mech.Topo.NoTransform.html","topicUid":"Hi.Mech.Topo.NoTransform","type":"Class"},{"name":"StackTransformer","href":"Hi.Mech.Topo.StackTransformer.html","topicHref":"Hi.Mech.Topo.StackTransformer.html","topicUid":"Hi.Mech.Topo.StackTransformer","type":"Class"},{"name":"StaticFreeform","href":"Hi.Mech.Topo.StaticFreeform.html","topicHref":"Hi.Mech.Topo.StaticFreeform.html","topicUid":"Hi.Mech.Topo.StaticFreeform","type":"Class"},{"name":"StaticRotation","href":"Hi.Mech.Topo.StaticRotation.html","topicHref":"Hi.Mech.Topo.StaticRotation.html","topicUid":"Hi.Mech.Topo.StaticRotation","type":"Class"},{"name":"StaticTranslation","href":"Hi.Mech.Topo.StaticTranslation.html","topicHref":"Hi.Mech.Topo.StaticTranslation.html","topicUid":"Hi.Mech.Topo.StaticTranslation","type":"Class"},{"name":"TopoDisplayee","href":"Hi.Mech.Topo.TopoDisplayee.html","topicHref":"Hi.Mech.Topo.TopoDisplayee.html","topicUid":"Hi.Mech.Topo.TopoDisplayee","type":"Class"},{"name":"TopoDisplayeeUtil","href":"Hi.Mech.Topo.TopoDisplayeeUtil.html","topicHref":"Hi.Mech.Topo.TopoDisplayeeUtil.html","topicUid":"Hi.Mech.Topo.TopoDisplayeeUtil","type":"Class"},{"name":"TopoReflection","href":"Hi.Mech.Topo.TopoReflection.html","topicHref":"Hi.Mech.Topo.TopoReflection.html","topicUid":"Hi.Mech.Topo.TopoReflection","type":"Class"},{"name":"TopoUtil","href":"Hi.Mech.Topo.TopoUtil.html","topicHref":"Hi.Mech.Topo.TopoUtil.html","topicUid":"Hi.Mech.Topo.TopoUtil","type":"Class"},{"name":"TransformerUtil","href":"Hi.Mech.Topo.TransformerUtil.html","topicHref":"Hi.Mech.Topo.TransformerUtil.html","topicUid":"Hi.Mech.Topo.TransformerUtil","type":"Class"}]},{"name":"Hi.Milling","href":"Hi.Milling.html","topicHref":"Hi.Milling.html","topicUid":"Hi.Milling","type":"Namespace","items":[{"name":"IGetDiameter","href":"Hi.Milling.IGetDiameter.html","topicHref":"Hi.Milling.IGetDiameter.html","topicUid":"Hi.Milling.IGetDiameter","type":"Interface"},{"name":"IGetFluteHeight","href":"Hi.Milling.IGetFluteHeight.html","topicHref":"Hi.Milling.IGetFluteHeight.html","topicUid":"Hi.Milling.IGetFluteHeight","type":"Interface"},{"name":"IGetMillingGeomBrief","href":"Hi.Milling.IGetMillingGeomBrief.html","topicHref":"Hi.Milling.IGetMillingGeomBrief.html","topicUid":"Hi.Milling.IGetMillingGeomBrief","type":"Interface"},{"name":"IGetRadialReliefAngle","href":"Hi.Milling.IGetRadialReliefAngle.html","topicHref":"Hi.Milling.IGetRadialReliefAngle.html","topicUid":"Hi.Milling.IGetRadialReliefAngle","type":"Interface"},{"name":"IMillingGeomBriefAccessor","href":"Hi.Milling.IMillingGeomBriefAccessor.html","topicHref":"Hi.Milling.IMillingGeomBriefAccessor.html","topicUid":"Hi.Milling.IMillingGeomBriefAccessor","type":"Interface"},{"name":"MillingGeomBrief","href":"Hi.Milling.MillingGeomBrief.html","topicHref":"Hi.Milling.MillingGeomBrief.html","topicUid":"Hi.Milling.MillingGeomBrief","type":"Class"},{"name":"MillingRemovalUtil","href":"Hi.Milling.MillingRemovalUtil.html","topicHref":"Hi.Milling.MillingRemovalUtil.html","topicUid":"Hi.Milling.MillingRemovalUtil","type":"Class"},{"name":"SpindleCapability","href":"Hi.Milling.SpindleCapability.html","topicHref":"Hi.Milling.SpindleCapability.html","topicUid":"Hi.Milling.SpindleCapability","type":"Class"}]},{"name":"Hi.Milling.Apts","href":"Hi.Milling.Apts.html","topicHref":"Hi.Milling.Apts.html","topicUid":"Hi.Milling.Apts","type":"Namespace","items":[{"name":"AptDerivative","href":"Hi.Milling.Apts.AptDerivative.html","topicHref":"Hi.Milling.Apts.AptDerivative.html","topicUid":"Hi.Milling.Apts.AptDerivative","type":"Class"},{"name":"BallApt","href":"Hi.Milling.Apts.BallApt.html","topicHref":"Hi.Milling.Apts.BallApt.html","topicUid":"Hi.Milling.Apts.BallApt","type":"Class"},{"name":"BullNoseApt","href":"Hi.Milling.Apts.BullNoseApt.html","topicHref":"Hi.Milling.Apts.BullNoseApt.html","topicUid":"Hi.Milling.Apts.BullNoseApt","type":"Class"},{"name":"ColumnApt","href":"Hi.Milling.Apts.ColumnApt.html","topicHref":"Hi.Milling.Apts.ColumnApt.html","topicUid":"Hi.Milling.Apts.ColumnApt","type":"Class"},{"name":"ConeApt","href":"Hi.Milling.Apts.ConeApt.html","topicHref":"Hi.Milling.Apts.ConeApt.html","topicUid":"Hi.Milling.Apts.ConeApt","type":"Class"},{"name":"ExactColumnApt","href":"Hi.Milling.Apts.ExactColumnApt.html","topicHref":"Hi.Milling.Apts.ExactColumnApt.html","topicUid":"Hi.Milling.Apts.ExactColumnApt","type":"Class"},{"name":"GeneralApt","href":"Hi.Milling.Apts.GeneralApt.html","topicHref":"Hi.Milling.Apts.GeneralApt.html","topicUid":"Hi.Milling.Apts.GeneralApt","type":"Class"},{"name":"IAptAlpha","href":"Hi.Milling.Apts.IAptAlpha.html","topicHref":"Hi.Milling.Apts.IAptAlpha.html","topicUid":"Hi.Milling.Apts.IAptAlpha","type":"Interface"},{"name":"IAptBased","href":"Hi.Milling.Apts.IAptBased.html","topicHref":"Hi.Milling.Apts.IAptBased.html","topicUid":"Hi.Milling.Apts.IAptBased","type":"Interface"},{"name":"IAptBeta","href":"Hi.Milling.Apts.IAptBeta.html","topicHref":"Hi.Milling.Apts.IAptBeta.html","topicUid":"Hi.Milling.Apts.IAptBeta","type":"Interface"},{"name":"IAptRc","href":"Hi.Milling.Apts.IAptRc.html","topicHref":"Hi.Milling.Apts.IAptRc.html","topicUid":"Hi.Milling.Apts.IAptRc","type":"Interface"},{"name":"IAptRr","href":"Hi.Milling.Apts.IAptRr.html","topicHref":"Hi.Milling.Apts.IAptRr.html","topicUid":"Hi.Milling.Apts.IAptRr","type":"Interface"},{"name":"IAptRz","href":"Hi.Milling.Apts.IAptRz.html","topicHref":"Hi.Milling.Apts.IAptRz.html","topicUid":"Hi.Milling.Apts.IAptRz","type":"Interface"},{"name":"IGetApt","href":"Hi.Milling.Apts.IGetApt.html","topicHref":"Hi.Milling.Apts.IGetApt.html","topicUid":"Hi.Milling.Apts.IGetApt","type":"Interface"},{"name":"IGetGeneralApt","href":"Hi.Milling.Apts.IGetGeneralApt.html","topicHref":"Hi.Milling.Apts.IGetGeneralApt.html","topicUid":"Hi.Milling.Apts.IGetGeneralApt","type":"Interface"},{"name":"TaperApt","href":"Hi.Milling.Apts.TaperApt.html","topicHref":"Hi.Milling.Apts.TaperApt.html","topicUid":"Hi.Milling.Apts.TaperApt","type":"Class"},{"name":"apt_t","href":"Hi.Milling.Apts.apt_t.html","topicHref":"Hi.Milling.Apts.apt_t.html","topicUid":"Hi.Milling.Apts.apt_t","type":"Struct"}]},{"name":"Hi.Milling.Cutters","href":"Hi.Milling.Cutters.html","topicHref":"Hi.Milling.Cutters.html","topicUid":"Hi.Milling.Cutters","type":"Namespace","items":[{"name":"AptProfile","href":"Hi.Milling.Cutters.AptProfile.html","topicHref":"Hi.Milling.Cutters.AptProfile.html","topicUid":"Hi.Milling.Cutters.AptProfile","type":"Class"},{"name":"ConstRatioProfile","href":"Hi.Milling.Cutters.ConstRatioProfile.html","topicHref":"Hi.Milling.Cutters.ConstRatioProfile.html","topicUid":"Hi.Milling.Cutters.ConstRatioProfile","type":"Class"},{"name":"CustomSpinningProfile","href":"Hi.Milling.Cutters.CustomSpinningProfile.html","topicHref":"Hi.Milling.Cutters.CustomSpinningProfile.html","topicUid":"Hi.Milling.Cutters.CustomSpinningProfile","type":"Class"},{"name":"CutterUtil","href":"Hi.Milling.Cutters.CutterUtil.html","topicHref":"Hi.Milling.Cutters.CutterUtil.html","topicUid":"Hi.Milling.Cutters.CutterUtil","type":"Class"},{"name":"FluteContourDisplayee","href":"Hi.Milling.Cutters.FluteContourDisplayee.html","topicHref":"Hi.Milling.Cutters.FluteContourDisplayee.html","topicUid":"Hi.Milling.Cutters.FluteContourDisplayee","type":"Class"},{"name":"FluteDependentRatioProfile","href":"Hi.Milling.Cutters.FluteDependentRatioProfile.html","topicHref":"Hi.Milling.Cutters.FluteDependentRatioProfile.html","topicUid":"Hi.Milling.Cutters.FluteDependentRatioProfile","type":"Class"},{"name":"IShaperProfile","href":"Hi.Milling.Cutters.IShaperProfile.html","topicHref":"Hi.Milling.Cutters.IShaperProfile.html","topicUid":"Hi.Milling.Cutters.IShaperProfile","type":"Interface"},{"name":"MillingCutter","href":"Hi.Milling.Cutters.MillingCutter.html","topicHref":"Hi.Milling.Cutters.MillingCutter.html","topicUid":"Hi.Milling.Cutters.MillingCutter","type":"Class"},{"name":"MillingCutter.IntegralModeEnum","href":"Hi.Milling.Cutters.MillingCutter.IntegralModeEnum.html","topicHref":"Hi.Milling.Cutters.MillingCutter.IntegralModeEnum.html","topicUid":"Hi.Milling.Cutters.MillingCutter.IntegralModeEnum","type":"Enum"},{"name":"MillingCutter.MassAssignmentMode","href":"Hi.Milling.Cutters.MillingCutter.MassAssignmentMode.html","topicHref":"Hi.Milling.Cutters.MillingCutter.MassAssignmentMode.html","topicUid":"Hi.Milling.Cutters.MillingCutter.MassAssignmentMode","type":"Enum"},{"name":"MillingCutterEditorDisplayee","href":"Hi.Milling.Cutters.MillingCutterEditorDisplayee.html","topicHref":"Hi.Milling.Cutters.MillingCutterEditorDisplayee.html","topicUid":"Hi.Milling.Cutters.MillingCutterEditorDisplayee","type":"Class"},{"name":"MillingCutterEditorDisplayee.ShapeModeEnum","href":"Hi.Milling.Cutters.MillingCutterEditorDisplayee.ShapeModeEnum.html","topicHref":"Hi.Milling.Cutters.MillingCutterEditorDisplayee.ShapeModeEnum.html","topicUid":"Hi.Milling.Cutters.MillingCutterEditorDisplayee.ShapeModeEnum","type":"Enum"}]},{"name":"Hi.Milling.Engagements","href":"Hi.Milling.Engagements.html","topicHref":"Hi.Milling.Engagements.html","topicUid":"Hi.Milling.Engagements","type":"Namespace","items":[{"name":"BitwiseMillingEngagement","href":"Hi.Milling.Engagements.BitwiseMillingEngagement.html","topicHref":"Hi.Milling.Engagements.BitwiseMillingEngagement.html","topicUid":"Hi.Milling.Engagements.BitwiseMillingEngagement","type":"Class"},{"name":"EngagementLayer","href":"Hi.Milling.Engagements.EngagementLayer.html","topicHref":"Hi.Milling.Engagements.EngagementLayer.html","topicUid":"Hi.Milling.Engagements.EngagementLayer","type":"Class"},{"name":"EngagementSlice","href":"Hi.Milling.Engagements.EngagementSlice.html","topicHref":"Hi.Milling.Engagements.EngagementSlice.html","topicUid":"Hi.Milling.Engagements.EngagementSlice","type":"Class"},{"name":"IBitwiseMillingEngagementSupport","href":"Hi.Milling.Engagements.IBitwiseMillingEngagementSupport.html","topicHref":"Hi.Milling.Engagements.IBitwiseMillingEngagementSupport.html","topicUid":"Hi.Milling.Engagements.IBitwiseMillingEngagementSupport","type":"Interface"},{"name":"IGetLayerMillingEngagement","href":"Hi.Milling.Engagements.IGetLayerMillingEngagement.html","topicHref":"Hi.Milling.Engagements.IGetLayerMillingEngagement.html","topicUid":"Hi.Milling.Engagements.IGetLayerMillingEngagement","type":"Interface"},{"name":"LayerMillingEngagement","href":"Hi.Milling.Engagements.LayerMillingEngagement.html","topicHref":"Hi.Milling.Engagements.LayerMillingEngagement.html","topicUid":"Hi.Milling.Engagements.LayerMillingEngagement","type":"Class"},{"name":"MillingEngagementUtil","href":"Hi.Milling.Engagements.MillingEngagementUtil.html","topicHref":"Hi.Milling.Engagements.MillingEngagementUtil.html","topicUid":"Hi.Milling.Engagements.MillingEngagementUtil","type":"Class"}]},{"name":"Hi.Milling.FluteContours","href":"Hi.Milling.FluteContours.html","topicHref":"Hi.Milling.FluteContours.html","topicUid":"Hi.Milling.FluteContours","type":"Namespace","items":[{"name":"ConstHelixSideContour","href":"Hi.Milling.FluteContours.ConstHelixSideContour.html","topicHref":"Hi.Milling.FluteContours.ConstHelixSideContour.html","topicUid":"Hi.Milling.FluteContours.ConstHelixSideContour","type":"Class"},{"name":"FluteContour","href":"Hi.Milling.FluteContours.FluteContour.html","topicHref":"Hi.Milling.FluteContours.FluteContour.html","topicUid":"Hi.Milling.FluteContours.FluteContour","type":"Class"},{"name":"FluteContourUtil","href":"Hi.Milling.FluteContours.FluteContourUtil.html","topicHref":"Hi.Milling.FluteContours.FluteContourUtil.html","topicUid":"Hi.Milling.FluteContours.FluteContourUtil","type":"Class"},{"name":"FreeContourTray","href":"Hi.Milling.FluteContours.FreeContourTray.html","topicHref":"Hi.Milling.FluteContours.FreeContourTray.html","topicUid":"Hi.Milling.FluteContours.FreeContourTray","type":"Class"},{"name":"FreeformSideContour","href":"Hi.Milling.FluteContours.FreeformSideContour.html","topicHref":"Hi.Milling.FluteContours.FreeformSideContour.html","topicUid":"Hi.Milling.FluteContours.FreeformSideContour","type":"Class"},{"name":"IBottomContour","href":"Hi.Milling.FluteContours.IBottomContour.html","topicHref":"Hi.Milling.FluteContours.IBottomContour.html","topicUid":"Hi.Milling.FluteContours.IBottomContour","type":"Interface"},{"name":"IContourTray","href":"Hi.Milling.FluteContours.IContourTray.html","topicHref":"Hi.Milling.FluteContours.IContourTray.html","topicUid":"Hi.Milling.FluteContours.IContourTray","type":"Interface"},{"name":"IFluteNumSourceProperty","href":"Hi.Milling.FluteContours.IFluteNumSourceProperty.html","topicHref":"Hi.Milling.FluteContours.IFluteNumSourceProperty.html","topicUid":"Hi.Milling.FluteContours.IFluteNumSourceProperty","type":"Interface"},{"name":"IGetFluteNum","href":"Hi.Milling.FluteContours.IGetFluteNum.html","topicHref":"Hi.Milling.FluteContours.IGetFluteNum.html","topicUid":"Hi.Milling.FluteContours.IGetFluteNum","type":"Interface"},{"name":"ISideContour","href":"Hi.Milling.FluteContours.ISideContour.html","topicHref":"Hi.Milling.FluteContours.ISideContour.html","topicUid":"Hi.Milling.FluteContours.ISideContour","type":"Interface"},{"name":"IWorkingContour","href":"Hi.Milling.FluteContours.IWorkingContour.html","topicHref":"Hi.Milling.FluteContours.IWorkingContour.html","topicUid":"Hi.Milling.FluteContours.IWorkingContour","type":"Interface"},{"name":"ShiftedWorkingContour","href":"Hi.Milling.FluteContours.ShiftedWorkingContour.html","topicHref":"Hi.Milling.FluteContours.ShiftedWorkingContour.html","topicUid":"Hi.Milling.FluteContours.ShiftedWorkingContour","type":"Class"},{"name":"SideContourDisplayee","href":"Hi.Milling.FluteContours.SideContourDisplayee.html","topicHref":"Hi.Milling.FluteContours.SideContourDisplayee.html","topicUid":"Hi.Milling.FluteContours.SideContourDisplayee","type":"Class"},{"name":"SlideBottomContour","href":"Hi.Milling.FluteContours.SlideBottomContour.html","topicHref":"Hi.Milling.FluteContours.SlideBottomContour.html","topicUid":"Hi.Milling.FluteContours.SlideBottomContour","type":"Class"},{"name":"SpanContourPos4d","href":"Hi.Milling.FluteContours.SpanContourPos4d.html","topicHref":"Hi.Milling.FluteContours.SpanContourPos4d.html","topicUid":"Hi.Milling.FluteContours.SpanContourPos4d","type":"Class"},{"name":"UniformContourTray","href":"Hi.Milling.FluteContours.UniformContourTray.html","topicHref":"Hi.Milling.FluteContours.UniformContourTray.html","topicUid":"Hi.Milling.FluteContours.UniformContourTray","type":"Class"}]},{"name":"Hi.Milling.MillingTools","href":"Hi.Milling.MillingTools.html","topicHref":"Hi.Milling.MillingTools.html","topicUid":"Hi.Milling.MillingTools","type":"Namespace","items":[{"name":"MillingTool","href":"Hi.Milling.MillingTools.MillingTool.html","topicHref":"Hi.Milling.MillingTools.MillingTool.html","topicUid":"Hi.Milling.MillingTools.MillingTool","type":"Class"},{"name":"MillingToolAnchorReference","href":"Hi.Milling.MillingTools.MillingToolAnchorReference.html","topicHref":"Hi.Milling.MillingTools.MillingToolAnchorReference.html","topicUid":"Hi.Milling.MillingTools.MillingToolAnchorReference","type":"Enum"},{"name":"MillingToolEditorDisplayee","href":"Hi.Milling.MillingTools.MillingToolEditorDisplayee.html","topicHref":"Hi.Milling.MillingTools.MillingToolEditorDisplayee.html","topicUid":"Hi.Milling.MillingTools.MillingToolEditorDisplayee","type":"Class"},{"name":"MillingToolUtil","href":"Hi.Milling.MillingTools.MillingToolUtil.html","topicHref":"Hi.Milling.MillingTools.MillingToolUtil.html","topicUid":"Hi.Milling.MillingTools.MillingToolUtil","type":"Class"}]},{"name":"Hi.MillingForces","href":"Hi.MillingForces.html","topicHref":"Hi.MillingForces.html","topicUid":"Hi.MillingForces","type":"Namespace","items":[{"name":"FluteZData","href":"Hi.MillingForces.FluteZData.html","topicHref":"Hi.MillingForces.FluteZData.html","topicUid":"Hi.MillingForces.FluteZData","type":"Class"},{"name":"IGetMillingForce","href":"Hi.MillingForces.IGetMillingForce.html","topicHref":"Hi.MillingForces.IGetMillingForce.html","topicUid":"Hi.MillingForces.IGetMillingForce","type":"Interface"},{"name":"IMillingForceAccessor","href":"Hi.MillingForces.IMillingForceAccessor.html","topicHref":"Hi.MillingForces.IMillingForceAccessor.html","topicUid":"Hi.MillingForces.IMillingForceAccessor","type":"Interface"},{"name":"MillingForce","href":"Hi.MillingForces.MillingForce.html","topicHref":"Hi.MillingForces.MillingForce.html","topicUid":"Hi.MillingForces.MillingForce","type":"Class"},{"name":"MillingForceLicense","href":"Hi.MillingForces.MillingForceLicense.html","topicHref":"Hi.MillingForces.MillingForceLicense.html","topicUid":"Hi.MillingForces.MillingForceLicense","type":"Class"},{"name":"MillingForceLuggage","href":"Hi.MillingForces.MillingForceLuggage.html","topicHref":"Hi.MillingForces.MillingForceLuggage.html","topicUid":"Hi.MillingForces.MillingForceLuggage","type":"Class"},{"name":"MillingForceUtil","href":"Hi.MillingForces.MillingForceUtil.html","topicHref":"Hi.MillingForces.MillingForceUtil.html","topicUid":"Hi.MillingForces.MillingForceUtil","type":"Class"},{"name":"MillingForceUtil.AnglePack","href":"Hi.MillingForces.MillingForceUtil.AnglePack.html","topicHref":"Hi.MillingForces.MillingForceUtil.AnglePack.html","topicUid":"Hi.MillingForces.MillingForceUtil.AnglePack","type":"Class"},{"name":"MillingPhysicsBrief","href":"Hi.MillingForces.MillingPhysicsBrief.html","topicHref":"Hi.MillingForces.MillingPhysicsBrief.html","topicUid":"Hi.MillingForces.MillingPhysicsBrief","type":"Class"},{"name":"PhysicsUtil","href":"Hi.MillingForces.PhysicsUtil.html","topicHref":"Hi.MillingForces.PhysicsUtil.html","topicUid":"Hi.MillingForces.PhysicsUtil","type":"Class"},{"name":"ToolObservationReference","href":"Hi.MillingForces.ToolObservationReference.html","topicHref":"Hi.MillingForces.ToolObservationReference.html","topicUid":"Hi.MillingForces.ToolObservationReference","type":"Enum"}]},{"name":"Hi.MillingForces.Fittings","href":"Hi.MillingForces.Fittings.html","topicHref":"Hi.MillingForces.Fittings.html","topicUid":"Hi.MillingForces.Fittings","type":"Namespace","items":[{"name":"CuttingParaUtil","href":"Hi.MillingForces.Fittings.CuttingParaUtil.html","topicHref":"Hi.MillingForces.Fittings.CuttingParaUtil.html","topicUid":"Hi.MillingForces.Fittings.CuttingParaUtil","type":"Class"},{"name":"ICuttingPara","href":"Hi.MillingForces.Fittings.ICuttingPara.html","topicHref":"Hi.MillingForces.Fittings.ICuttingPara.html","topicUid":"Hi.MillingForces.Fittings.ICuttingPara","type":"Interface"},{"name":"IGetCuttingPara","href":"Hi.MillingForces.Fittings.IGetCuttingPara.html","topicHref":"Hi.MillingForces.Fittings.IGetCuttingPara.html","topicUid":"Hi.MillingForces.Fittings.IGetCuttingPara","type":"Interface"},{"name":"SampleCategory","href":"Hi.MillingForces.Fittings.SampleCategory.html","topicHref":"Hi.MillingForces.Fittings.SampleCategory.html","topicUid":"Hi.MillingForces.Fittings.SampleCategory","type":"Class"},{"name":"SampleFlag","href":"Hi.MillingForces.Fittings.SampleFlag.html","topicHref":"Hi.MillingForces.Fittings.SampleFlag.html","topicUid":"Hi.MillingForces.Fittings.SampleFlag","type":"Enum"},{"name":"SampleFlagUtil","href":"Hi.MillingForces.Fittings.SampleFlagUtil.html","topicHref":"Hi.MillingForces.Fittings.SampleFlagUtil.html","topicUid":"Hi.MillingForces.Fittings.SampleFlagUtil","type":"Class"},{"name":"SampleInstance","href":"Hi.MillingForces.Fittings.SampleInstance.html","topicHref":"Hi.MillingForces.Fittings.SampleInstance.html","topicUid":"Hi.MillingForces.Fittings.SampleInstance","type":"Class"},{"name":"TimeForce","href":"Hi.MillingForces.Fittings.TimeForce.html","topicHref":"Hi.MillingForces.Fittings.TimeForce.html","topicUid":"Hi.MillingForces.Fittings.TimeForce","type":"Class"},{"name":"TimeForceFrequencyDomain","href":"Hi.MillingForces.Fittings.TimeForceFrequencyDomain.html","topicHref":"Hi.MillingForces.Fittings.TimeForceFrequencyDomain.html","topicUid":"Hi.MillingForces.Fittings.TimeForceFrequencyDomain","type":"Class"},{"name":"TimeForceSeries","href":"Hi.MillingForces.Fittings.TimeForceSeries.html","topicHref":"Hi.MillingForces.Fittings.TimeForceSeries.html","topicUid":"Hi.MillingForces.Fittings.TimeForceSeries","type":"Class"},{"name":"TimeForceUtil","href":"Hi.MillingForces.Fittings.TimeForceUtil.html","topicHref":"Hi.MillingForces.Fittings.TimeForceUtil.html","topicUid":"Hi.MillingForces.Fittings.TimeForceUtil","type":"Class"},{"name":"TimeVsForceSeries","href":"Hi.MillingForces.Fittings.TimeVsForceSeries.html","topicHref":"Hi.MillingForces.Fittings.TimeVsForceSeries.html","topicUid":"Hi.MillingForces.Fittings.TimeVsForceSeries","type":"Class"},{"name":"TimeVsTorqueSeries","href":"Hi.MillingForces.Fittings.TimeVsTorqueSeries.html","topicHref":"Hi.MillingForces.Fittings.TimeVsTorqueSeries.html","topicUid":"Hi.MillingForces.Fittings.TimeVsTorqueSeries","type":"Class"},{"name":"TrainingSample","href":"Hi.MillingForces.Fittings.TrainingSample.html","topicHref":"Hi.MillingForces.Fittings.TrainingSample.html","topicUid":"Hi.MillingForces.Fittings.TrainingSample","type":"Class"}]},{"name":"Hi.MillingForces.ProfileMillingParas","href":"Hi.MillingForces.ProfileMillingParas.html","topicHref":"Hi.MillingForces.ProfileMillingParas.html","topicUid":"Hi.MillingForces.ProfileMillingParas","type":"Namespace","items":[{"name":"IGetLocalProfileMillingPara","href":"Hi.MillingForces.ProfileMillingParas.IGetLocalProfileMillingPara.html","topicHref":"Hi.MillingForces.ProfileMillingParas.IGetLocalProfileMillingPara.html","topicUid":"Hi.MillingForces.ProfileMillingParas.IGetLocalProfileMillingPara","type":"Interface"},{"name":"LocalProfileMillingPara","href":"Hi.MillingForces.ProfileMillingParas.LocalProfileMillingPara.html","topicHref":"Hi.MillingForces.ProfileMillingParas.LocalProfileMillingPara.html","topicUid":"Hi.MillingForces.ProfileMillingParas.LocalProfileMillingPara","type":"Class"},{"name":"ProfileMillingParaMap","href":"Hi.MillingForces.ProfileMillingParas.ProfileMillingParaMap.html","topicHref":"Hi.MillingForces.ProfileMillingParas.ProfileMillingParaMap.html","topicUid":"Hi.MillingForces.ProfileMillingParas.ProfileMillingParaMap","type":"Class"},{"name":"RtaMillingParaKey","href":"Hi.MillingForces.ProfileMillingParas.RtaMillingParaKey.html","topicHref":"Hi.MillingForces.ProfileMillingParas.RtaMillingParaKey.html","topicUid":"Hi.MillingForces.ProfileMillingParas.RtaMillingParaKey","type":"Enum"}]},{"name":"Hi.MillingForces.RakeFaceCuttingParas","href":"Hi.MillingForces.RakeFaceCuttingParas.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas","type":"Namespace","items":[{"name":"IRakeFaceCuttingPara","href":"Hi.MillingForces.RakeFaceCuttingParas.IRakeFaceCuttingPara.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.IRakeFaceCuttingPara.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.IRakeFaceCuttingPara","type":"Interface"},{"name":"MillingPhysicsUtil","href":"Hi.MillingForces.RakeFaceCuttingParas.MillingPhysicsUtil.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.MillingPhysicsUtil.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.MillingPhysicsUtil","type":"Class"},{"name":"MultiFormRakeFaceCuttingPara","href":"Hi.MillingForces.RakeFaceCuttingParas.MultiFormRakeFaceCuttingPara.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.MultiFormRakeFaceCuttingPara.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.MultiFormRakeFaceCuttingPara","type":"Class"},{"name":"RakeFaceCuttingPara2d","href":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara2d.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara2d.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara2d","type":"Class"},{"name":"RakeFaceCuttingPara3d","href":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara3d.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara3d.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara3d","type":"Class"},{"name":"RakeFaceCuttingParaMap","href":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingParaMap.html","topicHref":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingParaMap.html","topicUid":"Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingParaMap","type":"Class"}]},{"name":"Hi.MillingForces.Training","href":"Hi.MillingForces.Training.html","topicHref":"Hi.MillingForces.Training.html","topicUid":"Hi.MillingForces.Training","type":"Namespace","items":[{"name":"MillingTraining","href":"Hi.MillingForces.Training.MillingTraining.html","topicHref":"Hi.MillingForces.Training.MillingTraining.html","topicUid":"Hi.MillingForces.Training.MillingTraining","type":"Class"}]},{"name":"Hi.MillingProcs","href":"Hi.MillingProcs.html","topicHref":"Hi.MillingProcs.html","topicUid":"Hi.MillingProcs","type":"Namespace","items":[{"name":"MillingGuide","href":"Hi.MillingProcs.MillingGuide.html","topicHref":"Hi.MillingProcs.MillingGuide.html","topicUid":"Hi.MillingProcs.MillingGuide","type":"Class"}]},{"name":"Hi.MillingStepUtils","href":"Hi.MillingStepUtils.html","topicHref":"Hi.MillingStepUtils.html","topicUid":"Hi.MillingStepUtils","type":"Namespace","items":[{"name":"ClStripChartConfig","href":"Hi.MillingStepUtils.ClStripChartConfig.html","topicHref":"Hi.MillingStepUtils.ClStripChartConfig.html","topicUid":"Hi.MillingStepUtils.ClStripChartConfig","type":"Class"},{"name":"ClStripChartItemConfig","href":"Hi.MillingStepUtils.ClStripChartItemConfig.html","topicHref":"Hi.MillingStepUtils.ClStripChartItemConfig.html","topicUid":"Hi.MillingStepUtils.ClStripChartItemConfig","type":"Class"},{"name":"ForceCycleFlag","href":"Hi.MillingStepUtils.ForceCycleFlag.html","topicHref":"Hi.MillingStepUtils.ForceCycleFlag.html","topicUid":"Hi.MillingStepUtils.ForceCycleFlag","type":"Enum"},{"name":"ForceCycleLineDivConfig","href":"Hi.MillingStepUtils.ForceCycleLineDivConfig.html","topicHref":"Hi.MillingStepUtils.ForceCycleLineDivConfig.html","topicUid":"Hi.MillingStepUtils.ForceCycleLineDivConfig","type":"Class"},{"name":"LineChartVRangeMode","href":"Hi.MillingStepUtils.LineChartVRangeMode.html","topicHref":"Hi.MillingStepUtils.LineChartVRangeMode.html","topicUid":"Hi.MillingStepUtils.LineChartVRangeMode","type":"Enum"},{"name":"SpindleMomentCycleLineDivConfig","href":"Hi.MillingStepUtils.SpindleMomentCycleLineDivConfig.html","topicHref":"Hi.MillingStepUtils.SpindleMomentCycleLineDivConfig.html","topicUid":"Hi.MillingStepUtils.SpindleMomentCycleLineDivConfig","type":"Class"},{"name":"TimeChartYConfig","href":"Hi.MillingStepUtils.TimeChartYConfig.html","topicHref":"Hi.MillingStepUtils.TimeChartYConfig.html","topicUid":"Hi.MillingStepUtils.TimeChartYConfig","type":"Class"}]},{"name":"Hi.MillingSteps","href":"Hi.MillingSteps.html","topicHref":"Hi.MillingSteps.html","topicUid":"Hi.MillingSteps","type":"Namespace","items":[{"name":"MillingInstance","href":"Hi.MillingSteps.MillingInstance.html","topicHref":"Hi.MillingSteps.MillingInstance.html","topicUid":"Hi.MillingSteps.MillingInstance","type":"Class"},{"name":"MillingStepLuggage","href":"Hi.MillingSteps.MillingStepLuggage.html","topicHref":"Hi.MillingSteps.MillingStepLuggage.html","topicUid":"Hi.MillingSteps.MillingStepLuggage","type":"Class"}]},{"name":"Hi.Motion","href":"Hi.Motion.html","topicHref":"Hi.Motion.html","topicUid":"Hi.Motion","type":"Namespace","items":[{"name":"MotionUtil","href":"Hi.Motion.MotionUtil.html","topicHref":"Hi.Motion.MotionUtil.html","topicUid":"Hi.Motion.MotionUtil","type":"Class"}]},{"name":"Hi.Motion.MatValves","href":"Hi.Motion.MatValves.html","topicHref":"Hi.Motion.MatValves.html","topicUid":"Hi.Motion.MatValves","type":"Namespace","items":[{"name":"ClMachiningValve","href":"Hi.Motion.MatValves.ClMachiningValve.html","topicHref":"Hi.Motion.MatValves.ClMachiningValve.html","topicUid":"Hi.Motion.MatValves.ClMachiningValve","type":"Class"},{"name":"IMotionValve","href":"Hi.Motion.MatValves.IMotionValve.html","topicHref":"Hi.Motion.MatValves.IMotionValve.html","topicUid":"Hi.Motion.MatValves.IMotionValve","type":"Interface"},{"name":"MacroMotionValve","href":"Hi.Motion.MatValves.MacroMotionValve.html","topicHref":"Hi.Motion.MatValves.MacroMotionValve.html","topicUid":"Hi.Motion.MatValves.MacroMotionValve","type":"Class"},{"name":"StepMotionValve","href":"Hi.Motion.MatValves.StepMotionValve.html","topicHref":"Hi.Motion.MatValves.StepMotionValve.html","topicUid":"Hi.Motion.MatValves.StepMotionValve","type":"Class"}]},{"name":"Hi.Native","href":"Hi.Native.html","topicHref":"Hi.Native.html","topicUid":"Hi.Native","type":"Namespace","items":[{"name":"StopSource","href":"Hi.Native.StopSource.html","topicHref":"Hi.Native.StopSource.html","topicUid":"Hi.Native.StopSource","type":"Class"},{"name":"StopToken","href":"Hi.Native.StopToken.html","topicHref":"Hi.Native.StopToken.html","topicUid":"Hi.Native.StopToken","type":"Class"},{"name":"StopTokenKit","href":"Hi.Native.StopTokenKit.html","topicHref":"Hi.Native.StopTokenKit.html","topicUid":"Hi.Native.StopTokenKit","type":"Class"},{"name":"StopTokenUtil","href":"Hi.Native.StopTokenUtil.html","topicHref":"Hi.Native.StopTokenUtil.html","topicUid":"Hi.Native.StopTokenUtil","type":"Class"},{"name":"bind_t","href":"Hi.Native.bind_t.html","topicHref":"Hi.Native.bind_t.html","topicUid":"Hi.Native.bind_t","type":"Struct"},{"name":"box2d","href":"Hi.Native.box2d.html","topicHref":"Hi.Native.box2d.html","topicUid":"Hi.Native.box2d","type":"Struct"},{"name":"box3d","href":"Hi.Native.box3d.html","topicHref":"Hi.Native.box3d.html","topicUid":"Hi.Native.box3d","type":"Struct"},{"name":"expand_to_box3d_func_t","href":"Hi.Native.expand_to_box3d_func_t.html","topicHref":"Hi.Native.expand_to_box3d_func_t.html","topicUid":"Hi.Native.expand_to_box3d_func_t","type":"Delegate"},{"name":"key_event_t","href":"Hi.Native.key_event_t.html","topicHref":"Hi.Native.key_event_t.html","topicUid":"Hi.Native.key_event_t","type":"Struct"},{"name":"key_table__transform_view_by_key_pressing_t","href":"Hi.Native.key_table__transform_view_by_key_pressing_t.html","topicHref":"Hi.Native.key_table__transform_view_by_key_pressing_t.html","topicUid":"Hi.Native.key_table__transform_view_by_key_pressing_t","type":"Struct"},{"name":"mat4d","href":"Hi.Native.mat4d.html","topicHref":"Hi.Native.mat4d.html","topicUid":"Hi.Native.mat4d","type":"Struct"},{"name":"mat_stack_t","href":"Hi.Native.mat_stack_t.html","topicHref":"Hi.Native.mat_stack_t.html","topicUid":"Hi.Native.mat_stack_t","type":"Struct"},{"name":"mouse_button_event_t","href":"Hi.Native.mouse_button_event_t.html","topicHref":"Hi.Native.mouse_button_event_t.html","topicUid":"Hi.Native.mouse_button_event_t","type":"Struct"},{"name":"mouse_button_table__transform_view_by_mouse_drag_t","href":"Hi.Native.mouse_button_table__transform_view_by_mouse_drag_t.html","topicHref":"Hi.Native.mouse_button_table__transform_view_by_mouse_drag_t.html","topicUid":"Hi.Native.mouse_button_table__transform_view_by_mouse_drag_t","type":"Struct"},{"name":"mouse_move_event_t","href":"Hi.Native.mouse_move_event_t.html","topicHref":"Hi.Native.mouse_move_event_t.html","topicUid":"Hi.Native.mouse_move_event_t","type":"Struct"},{"name":"mouse_wheel_event_t","href":"Hi.Native.mouse_wheel_event_t.html","topicHref":"Hi.Native.mouse_wheel_event_t.html","topicUid":"Hi.Native.mouse_wheel_event_t","type":"Struct"},{"name":"panel_state_t","href":"Hi.Native.panel_state_t.html","topicHref":"Hi.Native.panel_state_t.html","topicUid":"Hi.Native.panel_state_t","type":"Struct"},{"name":"picking_event_t","href":"Hi.Native.picking_event_t.html","topicHref":"Hi.Native.picking_event_t.html","topicUid":"Hi.Native.picking_event_t","type":"Struct"},{"name":"picking_mark_t","href":"Hi.Native.picking_mark_t.html","topicHref":"Hi.Native.picking_mark_t.html","topicUid":"Hi.Native.picking_mark_t","type":"Struct"},{"name":"tri3d","href":"Hi.Native.tri3d.html","topicHref":"Hi.Native.tri3d.html","topicUid":"Hi.Native.tri3d","type":"Struct"},{"name":"ui_event_type","href":"Hi.Native.ui_event_type.html","topicHref":"Hi.Native.ui_event_type.html","topicUid":"Hi.Native.ui_event_type","type":"Enum"},{"name":"vec2d","href":"Hi.Native.vec2d.html","topicHref":"Hi.Native.vec2d.html","topicUid":"Hi.Native.vec2d","type":"Struct"},{"name":"vec3d","href":"Hi.Native.vec3d.html","topicHref":"Hi.Native.vec3d.html","topicUid":"Hi.Native.vec3d","type":"Struct"},{"name":"vec3f","href":"Hi.Native.vec3f.html","topicHref":"Hi.Native.vec3f.html","topicUid":"Hi.Native.vec3f","type":"Struct"}]},{"name":"Hi.NcMech","href":"Hi.NcMech.html","topicHref":"Hi.NcMech.html","topicUid":"Hi.NcMech","type":"Namespace","items":[{"name":"ICollisionIndexPairsSource","href":"Hi.NcMech.ICollisionIndexPairsSource.html","topicHref":"Hi.NcMech.ICollisionIndexPairsSource.html","topicUid":"Hi.NcMech.ICollisionIndexPairsSource","type":"Interface"}]},{"name":"Hi.NcMech.Fixtures","href":"Hi.NcMech.Fixtures.html","topicHref":"Hi.NcMech.Fixtures.html","topicUid":"Hi.NcMech.Fixtures","type":"Namespace","items":[{"name":"Fixture","href":"Hi.NcMech.Fixtures.Fixture.html","topicHref":"Hi.NcMech.Fixtures.Fixture.html","topicUid":"Hi.NcMech.Fixtures.Fixture","type":"Class"},{"name":"FixtureEditorDisplayee","href":"Hi.NcMech.Fixtures.FixtureEditorDisplayee.html","topicHref":"Hi.NcMech.Fixtures.FixtureEditorDisplayee.html","topicUid":"Hi.NcMech.Fixtures.FixtureEditorDisplayee","type":"Class"},{"name":"FixtureEditorDisplayeeConfig","href":"Hi.NcMech.Fixtures.FixtureEditorDisplayeeConfig.html","topicHref":"Hi.NcMech.Fixtures.FixtureEditorDisplayeeConfig.html","topicUid":"Hi.NcMech.Fixtures.FixtureEditorDisplayeeConfig","type":"Class"}]},{"name":"Hi.NcMech.Holders","href":"Hi.NcMech.Holders.html","topicHref":"Hi.NcMech.Holders.html","topicUid":"Hi.NcMech.Holders","type":"Namespace","items":[{"name":"CylindroidHolder","href":"Hi.NcMech.Holders.CylindroidHolder.html","topicHref":"Hi.NcMech.Holders.CylindroidHolder.html","topicUid":"Hi.NcMech.Holders.CylindroidHolder","type":"Class"},{"name":"FreeformHolder","href":"Hi.NcMech.Holders.FreeformHolder.html","topicHref":"Hi.NcMech.Holders.FreeformHolder.html","topicUid":"Hi.NcMech.Holders.FreeformHolder","type":"Class"},{"name":"HolderEditorDisplayee","href":"Hi.NcMech.Holders.HolderEditorDisplayee.html","topicHref":"Hi.NcMech.Holders.HolderEditorDisplayee.html","topicUid":"Hi.NcMech.Holders.HolderEditorDisplayee","type":"Class"},{"name":"IHolder","href":"Hi.NcMech.Holders.IHolder.html","topicHref":"Hi.NcMech.Holders.IHolder.html","topicUid":"Hi.NcMech.Holders.IHolder","type":"Interface"}]},{"name":"Hi.NcMech.Solids","href":"Hi.NcMech.Solids.html","topicHref":"Hi.NcMech.Solids.html","topicUid":"Hi.NcMech.Solids","type":"Namespace","items":[{"name":"IGetSolid","href":"Hi.NcMech.Solids.IGetSolid.html","topicHref":"Hi.NcMech.Solids.IGetSolid.html","topicUid":"Hi.NcMech.Solids.IGetSolid","type":"Interface"},{"name":"Solid","href":"Hi.NcMech.Solids.Solid.html","topicHref":"Hi.NcMech.Solids.Solid.html","topicUid":"Hi.NcMech.Solids.Solid","type":"Class"},{"name":"Solid.RenderingModeEnum","href":"Hi.NcMech.Solids.Solid.RenderingModeEnum.html","topicHref":"Hi.NcMech.Solids.Solid.RenderingModeEnum.html","topicUid":"Hi.NcMech.Solids.Solid.RenderingModeEnum","type":"Enum"},{"name":"SolidFuncSource","href":"Hi.NcMech.Solids.SolidFuncSource.html","topicHref":"Hi.NcMech.Solids.SolidFuncSource.html","topicUid":"Hi.NcMech.Solids.SolidFuncSource","type":"Class"}]},{"name":"Hi.NcMech.Topo","href":"Hi.NcMech.Topo.html","topicHref":"Hi.NcMech.Topo.html","topicUid":"Hi.NcMech.Topo","type":"Namespace","items":[{"name":"INcStroke","href":"Hi.NcMech.Topo.INcStroke.html","topicHref":"Hi.NcMech.Topo.INcStroke.html","topicUid":"Hi.NcMech.Topo.INcStroke","type":"Interface"},{"name":"INcTransformer","href":"Hi.NcMech.Topo.INcTransformer.html","topicHref":"Hi.NcMech.Topo.INcTransformer.html","topicUid":"Hi.NcMech.Topo.INcTransformer","type":"Interface"},{"name":"ITopoBrick","href":"Hi.NcMech.Topo.ITopoBrick.html","topicHref":"Hi.NcMech.Topo.ITopoBrick.html","topicUid":"Hi.NcMech.Topo.ITopoBrick","type":"Interface"},{"name":"NcRotation","href":"Hi.NcMech.Topo.NcRotation.html","topicHref":"Hi.NcMech.Topo.NcRotation.html","topicUid":"Hi.NcMech.Topo.NcRotation","type":"Class"},{"name":"NcTranslation","href":"Hi.NcMech.Topo.NcTranslation.html","topicHref":"Hi.NcMech.Topo.NcTranslation.html","topicUid":"Hi.NcMech.Topo.NcTranslation","type":"Class"},{"name":"SolidSourceTopoBrick","href":"Hi.NcMech.Topo.SolidSourceTopoBrick.html","topicHref":"Hi.NcMech.Topo.SolidSourceTopoBrick.html","topicUid":"Hi.NcMech.Topo.SolidSourceTopoBrick","type":"Class"},{"name":"StlSourceTopoBrick","href":"Hi.NcMech.Topo.StlSourceTopoBrick.html","topicHref":"Hi.NcMech.Topo.StlSourceTopoBrick.html","topicUid":"Hi.NcMech.Topo.StlSourceTopoBrick","type":"Class"}]},{"name":"Hi.NcMech.Workpieces","href":"Hi.NcMech.Workpieces.html","topicHref":"Hi.NcMech.Workpieces.html","topicUid":"Hi.NcMech.Workpieces","type":"Namespace","items":[{"name":"Workpiece","href":"Hi.NcMech.Workpieces.Workpiece.html","topicHref":"Hi.NcMech.Workpieces.Workpiece.html","topicUid":"Hi.NcMech.Workpieces.Workpiece","type":"Class"},{"name":"WorkpieceEditorDisplayee","href":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayee.html","topicHref":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayee.html","topicUid":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayee","type":"Class"},{"name":"WorkpieceEditorDisplayeeConfig","href":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayeeConfig.html","topicHref":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayeeConfig.html","topicUid":"Hi.NcMech.Workpieces.WorkpieceEditorDisplayeeConfig","type":"Class"},{"name":"WorkpieceService","href":"Hi.NcMech.Workpieces.WorkpieceService.html","topicHref":"Hi.NcMech.Workpieces.WorkpieceService.html","topicUid":"Hi.NcMech.Workpieces.WorkpieceService","type":"Class"}]},{"name":"Hi.NcMech.Xyzabc","href":"Hi.NcMech.Xyzabc.html","topicHref":"Hi.NcMech.Xyzabc.html","topicUid":"Hi.NcMech.Xyzabc","type":"Namespace","items":[{"name":"CodeXyzabcMachineTool","href":"Hi.NcMech.Xyzabc.CodeXyzabcMachineTool.html","topicHref":"Hi.NcMech.Xyzabc.CodeXyzabcMachineTool.html","topicUid":"Hi.NcMech.Xyzabc.CodeXyzabcMachineTool","type":"Class"},{"name":"CodeXyzabcMachineToolUri","href":"Hi.NcMech.Xyzabc.CodeXyzabcMachineToolUri.html","topicHref":"Hi.NcMech.Xyzabc.CodeXyzabcMachineToolUri.html","topicUid":"Hi.NcMech.Xyzabc.CodeXyzabcMachineToolUri","type":"Class"},{"name":"GeneralXyzabcMachineTool","href":"Hi.NcMech.Xyzabc.GeneralXyzabcMachineTool.html","topicHref":"Hi.NcMech.Xyzabc.GeneralXyzabcMachineTool.html","topicUid":"Hi.NcMech.Xyzabc.GeneralXyzabcMachineTool","type":"Class"},{"name":"IGetCodeXyzabcMachineTool","href":"Hi.NcMech.Xyzabc.IGetCodeXyzabcMachineTool.html","topicHref":"Hi.NcMech.Xyzabc.IGetCodeXyzabcMachineTool.html","topicUid":"Hi.NcMech.Xyzabc.IGetCodeXyzabcMachineTool","type":"Interface"},{"name":"IXyzabcMachineTool","href":"Hi.NcMech.Xyzabc.IXyzabcMachineTool.html","topicHref":"Hi.NcMech.Xyzabc.IXyzabcMachineTool.html","topicUid":"Hi.NcMech.Xyzabc.IXyzabcMachineTool","type":"Interface"}]},{"name":"Hi.NcOpt","href":"Hi.NcOpt.html","topicHref":"Hi.NcOpt.html","topicUid":"Hi.NcOpt","type":"Namespace","items":[{"name":"CuttingVelocityOptLimit","href":"Hi.NcOpt.CuttingVelocityOptLimit.html","topicHref":"Hi.NcOpt.CuttingVelocityOptLimit.html","topicUid":"Hi.NcOpt.CuttingVelocityOptLimit","type":"Class"},{"name":"FixedFeedPerCycleOptLimit","href":"Hi.NcOpt.FixedFeedPerCycleOptLimit.html","topicHref":"Hi.NcOpt.FixedFeedPerCycleOptLimit.html","topicUid":"Hi.NcOpt.FixedFeedPerCycleOptLimit","type":"Class"},{"name":"FixedFeedPerToothOptLimit","href":"Hi.NcOpt.FixedFeedPerToothOptLimit.html","topicHref":"Hi.NcOpt.FixedFeedPerToothOptLimit.html","topicUid":"Hi.NcOpt.FixedFeedPerToothOptLimit","type":"Class"},{"name":"ICutterOptLimitHost","href":"Hi.NcOpt.ICutterOptLimitHost.html","topicHref":"Hi.NcOpt.ICutterOptLimitHost.html","topicUid":"Hi.NcOpt.ICutterOptLimitHost","type":"Interface"},{"name":"ICutterOptOption","href":"Hi.NcOpt.ICutterOptOption.html","topicHref":"Hi.NcOpt.ICutterOptOption.html","topicUid":"Hi.NcOpt.ICutterOptOption","type":"Interface"},{"name":"ICuttingVelocityOptLimit","href":"Hi.NcOpt.ICuttingVelocityOptLimit.html","topicHref":"Hi.NcOpt.ICuttingVelocityOptLimit.html","topicUid":"Hi.NcOpt.ICuttingVelocityOptLimit","type":"Interface"},{"name":"IFeedPerToothOptLimit","href":"Hi.NcOpt.IFeedPerToothOptLimit.html","topicHref":"Hi.NcOpt.IFeedPerToothOptLimit.html","topicUid":"Hi.NcOpt.IFeedPerToothOptLimit","type":"Interface"},{"name":"MillingCutterOptOption","href":"Hi.NcOpt.MillingCutterOptOption.html","topicHref":"Hi.NcOpt.MillingCutterOptOption.html","topicUid":"Hi.NcOpt.MillingCutterOptOption","type":"Class"},{"name":"NcOptOption","href":"Hi.NcOpt.NcOptOption.html","topicHref":"Hi.NcOpt.NcOptOption.html","topicUid":"Hi.NcOpt.NcOptOption","type":"Class"},{"name":"NcOptProc","href":"Hi.NcOpt.NcOptProc.html","topicHref":"Hi.NcOpt.NcOptProc.html","topicUid":"Hi.NcOpt.NcOptProc","type":"Class"},{"name":"NcOptimizationEmbeddedLogMode","href":"Hi.NcOpt.NcOptimizationEmbeddedLogMode.html","topicHref":"Hi.NcOpt.NcOptimizationEmbeddedLogMode.html","topicUid":"Hi.NcOpt.NcOptimizationEmbeddedLogMode","type":"Enum"},{"name":"ShapeBasedCutterOptLimit","href":"Hi.NcOpt.ShapeBasedCutterOptLimit.html","topicHref":"Hi.NcOpt.ShapeBasedCutterOptLimit.html","topicUid":"Hi.NcOpt.ShapeBasedCutterOptLimit","type":"Class"}]},{"name":"Hi.NcParsers","href":"Hi.NcParsers.html","topicHref":"Hi.NcParsers.html","topicUid":"Hi.NcParsers","type":"Namespace","items":[{"name":"IGetSentence","href":"Hi.NcParsers.IGetSentence.html","topicHref":"Hi.NcParsers.IGetSentence.html","topicUid":"Hi.NcParsers.IGetSentence","type":"Interface"},{"name":"ISentenceCarrier","href":"Hi.NcParsers.ISentenceCarrier.html","topicHref":"Hi.NcParsers.ISentenceCarrier.html","topicUid":"Hi.NcParsers.ISentenceCarrier","type":"Interface"},{"name":"ISentenceIndexed","href":"Hi.NcParsers.ISentenceIndexed.html","topicHref":"Hi.NcParsers.ISentenceIndexed.html","topicUid":"Hi.NcParsers.ISentenceIndexed","type":"Interface"},{"name":"ISessionResettable","href":"Hi.NcParsers.ISessionResettable.html","topicHref":"Hi.NcParsers.ISessionResettable.html","topicUid":"Hi.NcParsers.ISessionResettable","type":"Interface"},{"name":"IndexedSentence","href":"Hi.NcParsers.IndexedSentence.html","topicHref":"Hi.NcParsers.IndexedSentence.html","topicUid":"Hi.NcParsers.IndexedSentence","type":"Class"},{"name":"NcDiagnostic","href":"Hi.NcParsers.NcDiagnostic.html","topicHref":"Hi.NcParsers.NcDiagnostic.html","topicUid":"Hi.NcParsers.NcDiagnostic","type":"Class"},{"name":"NcDiagnosticCategory","href":"Hi.NcParsers.NcDiagnosticCategory.html","topicHref":"Hi.NcParsers.NcDiagnosticCategory.html","topicUid":"Hi.NcParsers.NcDiagnosticCategory","type":"Enum"},{"name":"NcDiagnosticProgress","href":"Hi.NcParsers.NcDiagnosticProgress.html","topicHref":"Hi.NcParsers.NcDiagnosticProgress.html","topicUid":"Hi.NcParsers.NcDiagnosticProgress","type":"Class"},{"name":"NcDiagnosticSeverity","href":"Hi.NcParsers.NcDiagnosticSeverity.html","topicHref":"Hi.NcParsers.NcDiagnosticSeverity.html","topicUid":"Hi.NcParsers.NcDiagnosticSeverity","type":"Enum"},{"name":"Sentence","href":"Hi.NcParsers.Sentence.html","topicHref":"Hi.NcParsers.Sentence.html","topicUid":"Hi.NcParsers.Sentence","type":"Class"},{"name":"SoftNcRunner","href":"Hi.NcParsers.SoftNcRunner.html","topicHref":"Hi.NcParsers.SoftNcRunner.html","topicUid":"Hi.NcParsers.SoftNcRunner","type":"Class"},{"name":"SoftNcUtil","href":"Hi.NcParsers.SoftNcUtil.html","topicHref":"Hi.NcParsers.SoftNcUtil.html","topicUid":"Hi.NcParsers.SoftNcUtil","type":"Class"}]},{"name":"Hi.NcParsers.Dependencys","href":"Hi.NcParsers.Dependencys.html","topicHref":"Hi.NcParsers.Dependencys.html","topicUid":"Hi.NcParsers.Dependencys","type":"Namespace","items":[{"name":"AxisType","href":"Hi.NcParsers.Dependencys.AxisType.html","topicHref":"Hi.NcParsers.Dependencys.AxisType.html","topicUid":"Hi.NcParsers.Dependencys.AxisType","type":"Enum"},{"name":"CncBrandDependency","href":"Hi.NcParsers.Dependencys.CncBrandDependency.html","topicHref":"Hi.NcParsers.Dependencys.CncBrandDependency.html","topicUid":"Hi.NcParsers.Dependencys.CncBrandDependency","type":"Class"},{"name":"ControllerParameterTableBase","href":"Hi.NcParsers.Dependencys.ControllerParameterTableBase.html","topicHref":"Hi.NcParsers.Dependencys.ControllerParameterTableBase.html","topicUid":"Hi.NcParsers.Dependencys.ControllerParameterTableBase","type":"Class"},{"name":"HeidenhainDatumTable","href":"Hi.NcParsers.Dependencys.HeidenhainDatumTable.html","topicHref":"Hi.NcParsers.Dependencys.HeidenhainDatumTable.html","topicUid":"Hi.NcParsers.Dependencys.HeidenhainDatumTable","type":"Class"},{"name":"IBlockSkipConfig","href":"Hi.NcParsers.Dependencys.IBlockSkipConfig.html","topicHref":"Hi.NcParsers.Dependencys.IBlockSkipConfig.html","topicUid":"Hi.NcParsers.Dependencys.IBlockSkipConfig","type":"Interface"},{"name":"ICannedCycleConfig","href":"Hi.NcParsers.Dependencys.ICannedCycleConfig.html","topicHref":"Hi.NcParsers.Dependencys.ICannedCycleConfig.html","topicUid":"Hi.NcParsers.Dependencys.ICannedCycleConfig","type":"Interface"},{"name":"IHomeMcConfig","href":"Hi.NcParsers.Dependencys.IHomeMcConfig.html","topicHref":"Hi.NcParsers.Dependencys.IHomeMcConfig.html","topicUid":"Hi.NcParsers.Dependencys.IHomeMcConfig","type":"Interface"},{"name":"IIsoCoordinateConfig","href":"Hi.NcParsers.Dependencys.IIsoCoordinateConfig.html","topicHref":"Hi.NcParsers.Dependencys.IIsoCoordinateConfig.html","topicUid":"Hi.NcParsers.Dependencys.IIsoCoordinateConfig","type":"Interface"},{"name":"IMachineAxisConfig","href":"Hi.NcParsers.Dependencys.IMachineAxisConfig.html","topicHref":"Hi.NcParsers.Dependencys.IMachineAxisConfig.html","topicUid":"Hi.NcParsers.Dependencys.IMachineAxisConfig","type":"Interface"},{"name":"INcDependency","href":"Hi.NcParsers.Dependencys.INcDependency.html","topicHref":"Hi.NcParsers.Dependencys.INcDependency.html","topicUid":"Hi.NcParsers.Dependencys.INcDependency","type":"Interface"},{"name":"IPowerResettable","href":"Hi.NcParsers.Dependencys.IPowerResettable.html","topicHref":"Hi.NcParsers.Dependencys.IPowerResettable.html","topicUid":"Hi.NcParsers.Dependencys.IPowerResettable","type":"Interface"},{"name":"IRapidFeedrateConfig","href":"Hi.NcParsers.Dependencys.IRapidFeedrateConfig.html","topicHref":"Hi.NcParsers.Dependencys.IRapidFeedrateConfig.html","topicUid":"Hi.NcParsers.Dependencys.IRapidFeedrateConfig","type":"Interface"},{"name":"IStrokeLimitConfig","href":"Hi.NcParsers.Dependencys.IStrokeLimitConfig.html","topicHref":"Hi.NcParsers.Dependencys.IStrokeLimitConfig.html","topicUid":"Hi.NcParsers.Dependencys.IStrokeLimitConfig","type":"Interface"},{"name":"IToolOffsetConfig","href":"Hi.NcParsers.Dependencys.IToolOffsetConfig.html","topicHref":"Hi.NcParsers.Dependencys.IToolOffsetConfig.html","topicUid":"Hi.NcParsers.Dependencys.IToolOffsetConfig","type":"Interface"},{"name":"IToolingMcConfig","href":"Hi.NcParsers.Dependencys.IToolingMcConfig.html","topicHref":"Hi.NcParsers.Dependencys.IToolingMcConfig.html","topicUid":"Hi.NcParsers.Dependencys.IToolingMcConfig","type":"Interface"},{"name":"IsoCoordinateAddressMap","href":"Hi.NcParsers.Dependencys.IsoCoordinateAddressMap.html","topicHref":"Hi.NcParsers.Dependencys.IsoCoordinateAddressMap.html","topicUid":"Hi.NcParsers.Dependencys.IsoCoordinateAddressMap","type":"Class"}]},{"name":"Hi.NcParsers.Dependencys.Fanuc","href":"Hi.NcParsers.Dependencys.Fanuc.html","topicHref":"Hi.NcParsers.Dependencys.Fanuc.html","topicUid":"Hi.NcParsers.Dependencys.Fanuc","type":"Namespace","items":[{"name":"CutterCompensationType","href":"Hi.NcParsers.Dependencys.Fanuc.CutterCompensationType.html","topicHref":"Hi.NcParsers.Dependencys.Fanuc.CutterCompensationType.html","topicUid":"Hi.NcParsers.Dependencys.Fanuc.CutterCompensationType","type":"Enum"},{"name":"FanucGotoIterationDependency","href":"Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html","topicHref":"Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html","topicUid":"Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency","type":"Class"},{"name":"FanucParameterTable","href":"Hi.NcParsers.Dependencys.Fanuc.FanucParameterTable.html","topicHref":"Hi.NcParsers.Dependencys.Fanuc.FanucParameterTable.html","topicUid":"Hi.NcParsers.Dependencys.Fanuc.FanucParameterTable","type":"Class"},{"name":"FanucPositionVariableLookup","href":"Hi.NcParsers.Dependencys.Fanuc.FanucPositionVariableLookup.html","topicHref":"Hi.NcParsers.Dependencys.Fanuc.FanucPositionVariableLookup.html","topicUid":"Hi.NcParsers.Dependencys.Fanuc.FanucPositionVariableLookup","type":"Class"},{"name":"FanucToolOffsetVariableLookup","href":"Hi.NcParsers.Dependencys.Fanuc.FanucToolOffsetVariableLookup.html","topicHref":"Hi.NcParsers.Dependencys.Fanuc.FanucToolOffsetVariableLookup.html","topicUid":"Hi.NcParsers.Dependencys.Fanuc.FanucToolOffsetVariableLookup","type":"Class"},{"name":"FanucWhileDoIterationDependency","href":"Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html","topicHref":"Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html","topicUid":"Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency","type":"Class"},{"name":"RetainedCommonVariableTable","href":"Hi.NcParsers.Dependencys.Fanuc.RetainedCommonVariableTable.html","topicHref":"Hi.NcParsers.Dependencys.Fanuc.RetainedCommonVariableTable.html","topicUid":"Hi.NcParsers.Dependencys.Fanuc.RetainedCommonVariableTable","type":"Class"}]},{"name":"Hi.NcParsers.Dependencys.Generic","href":"Hi.NcParsers.Dependencys.Generic.html","topicHref":"Hi.NcParsers.Dependencys.Generic.html","topicUid":"Hi.NcParsers.Dependencys.Generic","type":"Namespace","items":[{"name":"FallbackConfig","href":"Hi.NcParsers.Dependencys.Generic.FallbackConfig.html","topicHref":"Hi.NcParsers.Dependencys.Generic.FallbackConfig.html","topicUid":"Hi.NcParsers.Dependencys.Generic.FallbackConfig","type":"Class"},{"name":"GenericBlockSkipConfig","href":"Hi.NcParsers.Dependencys.Generic.GenericBlockSkipConfig.html","topicHref":"Hi.NcParsers.Dependencys.Generic.GenericBlockSkipConfig.html","topicUid":"Hi.NcParsers.Dependencys.Generic.GenericBlockSkipConfig","type":"Class"},{"name":"IsoCoordinateTable","href":"Hi.NcParsers.Dependencys.Generic.IsoCoordinateTable.html","topicHref":"Hi.NcParsers.Dependencys.Generic.IsoCoordinateTable.html","topicUid":"Hi.NcParsers.Dependencys.Generic.IsoCoordinateTable","type":"Class"},{"name":"SubProgramFolderConfig","href":"Hi.NcParsers.Dependencys.Generic.SubProgramFolderConfig.html","topicHref":"Hi.NcParsers.Dependencys.Generic.SubProgramFolderConfig.html","topicUid":"Hi.NcParsers.Dependencys.Generic.SubProgramFolderConfig","type":"Class"},{"name":"ToolOffsetRow","href":"Hi.NcParsers.Dependencys.Generic.ToolOffsetRow.html","topicHref":"Hi.NcParsers.Dependencys.Generic.ToolOffsetRow.html","topicUid":"Hi.NcParsers.Dependencys.Generic.ToolOffsetRow","type":"Class"},{"name":"ToolOffsetTable","href":"Hi.NcParsers.Dependencys.Generic.ToolOffsetTable.html","topicHref":"Hi.NcParsers.Dependencys.Generic.ToolOffsetTable.html","topicUid":"Hi.NcParsers.Dependencys.Generic.ToolOffsetTable","type":"Class"},{"name":"ToolingMcConfig","href":"Hi.NcParsers.Dependencys.Generic.ToolingMcConfig.html","topicHref":"Hi.NcParsers.Dependencys.Generic.ToolingMcConfig.html","topicUid":"Hi.NcParsers.Dependencys.Generic.ToolingMcConfig","type":"Class"}]},{"name":"Hi.NcParsers.Dependencys.Heidenhain","href":"Hi.NcParsers.Dependencys.Heidenhain.html","topicHref":"Hi.NcParsers.Dependencys.Heidenhain.html","topicUid":"Hi.NcParsers.Dependencys.Heidenhain","type":"Namespace","items":[{"name":"HeidenhainParameterTable","href":"Hi.NcParsers.Dependencys.Heidenhain.HeidenhainParameterTable.html","topicHref":"Hi.NcParsers.Dependencys.Heidenhain.HeidenhainParameterTable.html","topicUid":"Hi.NcParsers.Dependencys.Heidenhain.HeidenhainParameterTable","type":"Class"}]},{"name":"Hi.NcParsers.Dependencys.Siemens","href":"Hi.NcParsers.Dependencys.Siemens.html","topicHref":"Hi.NcParsers.Dependencys.Siemens.html","topicUid":"Hi.NcParsers.Dependencys.Siemens","type":"Namespace","items":[{"name":"ISiemensToolOffsetConfig","href":"Hi.NcParsers.Dependencys.Siemens.ISiemensToolOffsetConfig.html","topicHref":"Hi.NcParsers.Dependencys.Siemens.ISiemensToolOffsetConfig.html","topicUid":"Hi.NcParsers.Dependencys.Siemens.ISiemensToolOffsetConfig","type":"Interface"},{"name":"SiemensFrameTable","href":"Hi.NcParsers.Dependencys.Siemens.SiemensFrameTable.html","topicHref":"Hi.NcParsers.Dependencys.Siemens.SiemensFrameTable.html","topicUid":"Hi.NcParsers.Dependencys.Siemens.SiemensFrameTable","type":"Class"},{"name":"SiemensMachineDataTable","href":"Hi.NcParsers.Dependencys.Siemens.SiemensMachineDataTable.html","topicHref":"Hi.NcParsers.Dependencys.Siemens.SiemensMachineDataTable.html","topicUid":"Hi.NcParsers.Dependencys.Siemens.SiemensMachineDataTable","type":"Class"}]},{"name":"Hi.NcParsers.Dependencys.Syntec","href":"Hi.NcParsers.Dependencys.Syntec.html","topicHref":"Hi.NcParsers.Dependencys.Syntec.html","topicUid":"Hi.NcParsers.Dependencys.Syntec","type":"Namespace","items":[{"name":"SyntecParameterTable","href":"Hi.NcParsers.Dependencys.Syntec.SyntecParameterTable.html","topicHref":"Hi.NcParsers.Dependencys.Syntec.SyntecParameterTable.html","topicUid":"Hi.NcParsers.Dependencys.Syntec.SyntecParameterTable","type":"Class"}]},{"name":"Hi.NcParsers.Dependencys.SystemWired","href":"Hi.NcParsers.Dependencys.SystemWired.html","topicHref":"Hi.NcParsers.Dependencys.SystemWired.html","topicUid":"Hi.NcParsers.Dependencys.SystemWired","type":"Namespace","items":[{"name":"FileIndexCounterDependency","href":"Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.html","topicHref":"Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.html","topicUid":"Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency","type":"Class"},{"name":"MachiningServiceDependency","href":"Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html","topicHref":"Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html","topicUid":"Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency","type":"Class"},{"name":"NcKinematicsDependency","href":"Hi.NcParsers.Dependencys.SystemWired.NcKinematicsDependency.html","topicHref":"Hi.NcParsers.Dependencys.SystemWired.NcKinematicsDependency.html","topicUid":"Hi.NcParsers.Dependencys.SystemWired.NcKinematicsDependency","type":"Class"},{"name":"ProjectFolderDependency","href":"Hi.NcParsers.Dependencys.SystemWired.ProjectFolderDependency.html","topicHref":"Hi.NcParsers.Dependencys.SystemWired.ProjectFolderDependency.html","topicUid":"Hi.NcParsers.Dependencys.SystemWired.ProjectFolderDependency","type":"Class"},{"name":"SegmenterDependency","href":"Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency.html","topicHref":"Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency.html","topicUid":"Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency","type":"Class"},{"name":"StepPropertyAccessDictionaryDependency","href":"Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html","topicHref":"Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html","topicUid":"Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency","type":"Class"},{"name":"SyntaxPieceLayerDependency","href":"Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency.html","topicHref":"Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency.html","topicUid":"Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency","type":"Class"}]},{"name":"Hi.NcParsers.EvaluationSyntaxs","href":"Hi.NcParsers.EvaluationSyntaxs.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs","type":"Namespace","items":[{"name":"CallStackUtil","href":"Hi.NcParsers.EvaluationSyntaxs.CallStackUtil.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.CallStackUtil.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.CallStackUtil","type":"Class"},{"name":"LabelScanUtil","href":"Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil","type":"Class"},{"name":"MacroFileResolver","href":"Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver","type":"Class"},{"name":"MacroFileResolver.ResolvedFile","href":"Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile","type":"Struct"},{"name":"MacroInlineUtil","href":"Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil","type":"Class"},{"name":"RetainedCommonVariableReadingSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.RetainedCommonVariableReadingSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.RetainedCommonVariableReadingSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.RetainedCommonVariableReadingSyntax","type":"Class"},{"name":"SubProgramCallSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.SubProgramCallSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.SubProgramCallSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.SubProgramCallSyntax","type":"Class"},{"name":"SubProgramReturnSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.SubProgramReturnSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.SubProgramReturnSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.SubProgramReturnSyntax","type":"Class"},{"name":"VariableEvaluatorSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax","type":"Class"},{"name":"VolatileVariableReadingSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.VolatileVariableReadingSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.VolatileVariableReadingSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.VolatileVariableReadingSyntax","type":"Class"}]},{"name":"Hi.NcParsers.EvaluationSyntaxs.Evaluation","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation","type":"Namespace","items":[{"name":"EvalResult","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.EvalResult.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.EvalResult.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.EvalResult","type":"Struct"},{"name":"IRuntimeVariableLookup","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.IRuntimeVariableLookup.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.IRuntimeVariableLookup.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.IRuntimeVariableLookup","type":"Interface"},{"name":"IVariableLookup","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.IVariableLookup.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.IVariableLookup.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.IVariableLookup","type":"Interface"},{"name":"LocalVariableLookup","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.LocalVariableLookup.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.LocalVariableLookup.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.LocalVariableLookup","type":"Class"},{"name":"NcBinaryExpr","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcBinaryExpr.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcBinaryExpr.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcBinaryExpr","type":"Class"},{"name":"NcBinaryOp","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcBinaryOp.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcBinaryOp.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcBinaryOp","type":"Enum"},{"name":"NcExpr","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpr.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpr.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpr","type":"Class"},{"name":"NcExpressionEvaluator","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionEvaluator.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionEvaluator.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionEvaluator","type":"Class"},{"name":"NcExpressionParser","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionParser.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionParser.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionParser","type":"Class"},{"name":"NcFunctionExpr","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcFunctionExpr.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcFunctionExpr.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcFunctionExpr","type":"Class"},{"name":"NcIndirectVariableExpr","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcIndirectVariableExpr.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcIndirectVariableExpr.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcIndirectVariableExpr","type":"Class"},{"name":"NcLiteralExpr","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcLiteralExpr.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcLiteralExpr.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcLiteralExpr","type":"Class"},{"name":"NcUnaryExpr","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcUnaryExpr.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcUnaryExpr.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcUnaryExpr","type":"Class"},{"name":"NcUnaryOp","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcUnaryOp.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcUnaryOp.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcUnaryOp","type":"Enum"},{"name":"NcVariableExpr","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcVariableExpr.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcVariableExpr.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcVariableExpr","type":"Class"},{"name":"VolatileVariableLookup","href":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.VolatileVariableLookup.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.VolatileVariableLookup.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Evaluation.VolatileVariableLookup","type":"Class"}]},{"name":"Hi.NcParsers.EvaluationSyntaxs.Fanuc","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc","type":"Namespace","items":[{"name":"FanucConditionReader","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader","type":"Class"},{"name":"FanucGotoSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax","type":"Class"},{"name":"FanucIfThenSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucIfThenSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucIfThenSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucIfThenSyntax","type":"Class"},{"name":"FanucLocalVariableReadingSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucLocalVariableReadingSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucLocalVariableReadingSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucLocalVariableReadingSyntax","type":"Class"},{"name":"FanucMacroArgumentMap","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroArgumentMap.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroArgumentMap.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroArgumentMap","type":"Class"},{"name":"FanucMacroCallSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroCallSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroCallSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroCallSyntax","type":"Class"},{"name":"FanucModalMacroSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucModalMacroSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucModalMacroSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucModalMacroSyntax","type":"Class"},{"name":"FanucModalMacroSyntax.SyntaxPhase","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucModalMacroSyntax.SyntaxPhase.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucModalMacroSyntax.SyntaxPhase.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucModalMacroSyntax.SyntaxPhase","type":"Enum"},{"name":"FanucSystemControlVariableSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucSystemControlVariableSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucSystemControlVariableSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucSystemControlVariableSyntax","type":"Class"},{"name":"FanucWhileDoSyntax","href":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html","topicHref":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html","topicUid":"Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax","type":"Class"}]},{"name":"Hi.NcParsers.Initializers","href":"Hi.NcParsers.Initializers.html","topicHref":"Hi.NcParsers.Initializers.html","topicUid":"Hi.NcParsers.Initializers","type":"Namespace","items":[{"name":"HomeMcInitializer","href":"Hi.NcParsers.Initializers.HomeMcInitializer.html","topicHref":"Hi.NcParsers.Initializers.HomeMcInitializer.html","topicUid":"Hi.NcParsers.Initializers.HomeMcInitializer","type":"Class"},{"name":"INcInitializer","href":"Hi.NcParsers.Initializers.INcInitializer.html","topicHref":"Hi.NcParsers.Initializers.INcInitializer.html","topicUid":"Hi.NcParsers.Initializers.INcInitializer","type":"Interface"},{"name":"StaticInitializer","href":"Hi.NcParsers.Initializers.StaticInitializer.html","topicHref":"Hi.NcParsers.Initializers.StaticInitializer.html","topicUid":"Hi.NcParsers.Initializers.StaticInitializer","type":"Class"}]},{"name":"Hi.NcParsers.InspectionSyntaxs","href":"Hi.NcParsers.InspectionSyntaxs.html","topicHref":"Hi.NcParsers.InspectionSyntaxs.html","topicUid":"Hi.NcParsers.InspectionSyntaxs","type":"Namespace","items":[{"name":"CleanupSyntax","href":"Hi.NcParsers.InspectionSyntaxs.CleanupSyntax.html","topicHref":"Hi.NcParsers.InspectionSyntaxs.CleanupSyntax.html","topicUid":"Hi.NcParsers.InspectionSyntaxs.CleanupSyntax","type":"Class"},{"name":"ProgramXyzBackfillSyntax","href":"Hi.NcParsers.InspectionSyntaxs.ProgramXyzBackfillSyntax.html","topicHref":"Hi.NcParsers.InspectionSyntaxs.ProgramXyzBackfillSyntax.html","topicUid":"Hi.NcParsers.InspectionSyntaxs.ProgramXyzBackfillSyntax","type":"Class"},{"name":"SnapshotSyntax","href":"Hi.NcParsers.InspectionSyntaxs.SnapshotSyntax.html","topicHref":"Hi.NcParsers.InspectionSyntaxs.SnapshotSyntax.html","topicUid":"Hi.NcParsers.InspectionSyntaxs.SnapshotSyntax","type":"Class"},{"name":"UnconsumedCheckSyntax","href":"Hi.NcParsers.InspectionSyntaxs.UnconsumedCheckSyntax.html","topicHref":"Hi.NcParsers.InspectionSyntaxs.UnconsumedCheckSyntax.html","topicUid":"Hi.NcParsers.InspectionSyntaxs.UnconsumedCheckSyntax","type":"Class"}]},{"name":"Hi.NcParsers.Keywords","href":"Hi.NcParsers.Keywords.html","topicHref":"Hi.NcParsers.Keywords.html","topicUid":"Hi.NcParsers.Keywords","type":"Namespace","items":[{"name":"BlockSkip","href":"Hi.NcParsers.Keywords.BlockSkip.html","topicHref":"Hi.NcParsers.Keywords.BlockSkip.html","topicUid":"Hi.NcParsers.Keywords.BlockSkip","type":"Class"},{"name":"CallFrame","href":"Hi.NcParsers.Keywords.CallFrame.html","topicHref":"Hi.NcParsers.Keywords.CallFrame.html","topicUid":"Hi.NcParsers.Keywords.CallFrame","type":"Class"},{"name":"CallStack","href":"Hi.NcParsers.Keywords.CallStack.html","topicHref":"Hi.NcParsers.Keywords.CallStack.html","topicUid":"Hi.NcParsers.Keywords.CallStack","type":"Class"},{"name":"CannedCycle","href":"Hi.NcParsers.Keywords.CannedCycle.html","topicHref":"Hi.NcParsers.Keywords.CannedCycle.html","topicUid":"Hi.NcParsers.Keywords.CannedCycle","type":"Class"},{"name":"Comment","href":"Hi.NcParsers.Keywords.Comment.html","topicHref":"Hi.NcParsers.Keywords.Comment.html","topicUid":"Hi.NcParsers.Keywords.Comment","type":"Class"},{"name":"CompoundMotion","href":"Hi.NcParsers.Keywords.CompoundMotion.html","topicHref":"Hi.NcParsers.Keywords.CompoundMotion.html","topicUid":"Hi.NcParsers.Keywords.CompoundMotion","type":"Class"},{"name":"Coolant","href":"Hi.NcParsers.Keywords.Coolant.html","topicHref":"Hi.NcParsers.Keywords.Coolant.html","topicUid":"Hi.NcParsers.Keywords.Coolant","type":"Class"},{"name":"CoordinateOffset","href":"Hi.NcParsers.Keywords.CoordinateOffset.html","topicHref":"Hi.NcParsers.Keywords.CoordinateOffset.html","topicUid":"Hi.NcParsers.Keywords.CoordinateOffset","type":"Class"},{"name":"CsScript","href":"Hi.NcParsers.Keywords.CsScript.html","topicHref":"Hi.NcParsers.Keywords.CsScript.html","topicUid":"Hi.NcParsers.Keywords.CsScript","type":"Class"},{"name":"Dwell","href":"Hi.NcParsers.Keywords.Dwell.html","topicHref":"Hi.NcParsers.Keywords.Dwell.html","topicUid":"Hi.NcParsers.Keywords.Dwell","type":"Class"},{"name":"FanucGoto","href":"Hi.NcParsers.Keywords.FanucGoto.html","topicHref":"Hi.NcParsers.Keywords.FanucGoto.html","topicUid":"Hi.NcParsers.Keywords.FanucGoto","type":"Class"},{"name":"FanucIfThen","href":"Hi.NcParsers.Keywords.FanucIfThen.html","topicHref":"Hi.NcParsers.Keywords.FanucIfThen.html","topicUid":"Hi.NcParsers.Keywords.FanucIfThen","type":"Class"},{"name":"FanucMacroCall","href":"Hi.NcParsers.Keywords.FanucMacroCall.html","topicHref":"Hi.NcParsers.Keywords.FanucMacroCall.html","topicUid":"Hi.NcParsers.Keywords.FanucMacroCall","type":"Class"},{"name":"FanucModalMacro","href":"Hi.NcParsers.Keywords.FanucModalMacro.html","topicHref":"Hi.NcParsers.Keywords.FanucModalMacro.html","topicUid":"Hi.NcParsers.Keywords.FanucModalMacro","type":"Class"},{"name":"FanucPathSmoothing","href":"Hi.NcParsers.Keywords.FanucPathSmoothing.html","topicHref":"Hi.NcParsers.Keywords.FanucPathSmoothing.html","topicUid":"Hi.NcParsers.Keywords.FanucPathSmoothing","type":"Class"},{"name":"FanucProgramNumber","href":"Hi.NcParsers.Keywords.FanucProgramNumber.html","topicHref":"Hi.NcParsers.Keywords.FanucProgramNumber.html","topicUid":"Hi.NcParsers.Keywords.FanucProgramNumber","type":"Class"},{"name":"FanucWhileDo","href":"Hi.NcParsers.Keywords.FanucWhileDo.html","topicHref":"Hi.NcParsers.Keywords.FanucWhileDo.html","topicUid":"Hi.NcParsers.Keywords.FanucWhileDo","type":"Class"},{"name":"Feedrate","href":"Hi.NcParsers.Keywords.Feedrate.html","topicHref":"Hi.NcParsers.Keywords.Feedrate.html","topicUid":"Hi.NcParsers.Keywords.Feedrate","type":"Class"},{"name":"IArcMotionDef","href":"Hi.NcParsers.Keywords.IArcMotionDef.html","topicHref":"Hi.NcParsers.Keywords.IArcMotionDef.html","topicUid":"Hi.NcParsers.Keywords.IArcMotionDef","type":"Interface"},{"name":"ICannedCycleDef","href":"Hi.NcParsers.Keywords.ICannedCycleDef.html","topicHref":"Hi.NcParsers.Keywords.ICannedCycleDef.html","topicUid":"Hi.NcParsers.Keywords.ICannedCycleDef","type":"Interface"},{"name":"ICompoundMotionDef","href":"Hi.NcParsers.Keywords.ICompoundMotionDef.html","topicHref":"Hi.NcParsers.Keywords.ICompoundMotionDef.html","topicUid":"Hi.NcParsers.Keywords.ICompoundMotionDef","type":"Interface"},{"name":"ICoolantDef","href":"Hi.NcParsers.Keywords.ICoolantDef.html","topicHref":"Hi.NcParsers.Keywords.ICoolantDef.html","topicUid":"Hi.NcParsers.Keywords.ICoolantDef","type":"Interface"},{"name":"IDwellDef","href":"Hi.NcParsers.Keywords.IDwellDef.html","topicHref":"Hi.NcParsers.Keywords.IDwellDef.html","topicUid":"Hi.NcParsers.Keywords.IDwellDef","type":"Interface"},{"name":"IFanucPathSmoothingDef","href":"Hi.NcParsers.Keywords.IFanucPathSmoothingDef.html","topicHref":"Hi.NcParsers.Keywords.IFanucPathSmoothingDef.html","topicUid":"Hi.NcParsers.Keywords.IFanucPathSmoothingDef","type":"Interface"},{"name":"IFeedrateDef","href":"Hi.NcParsers.Keywords.IFeedrateDef.html","topicHref":"Hi.NcParsers.Keywords.IFeedrateDef.html","topicUid":"Hi.NcParsers.Keywords.IFeedrateDef","type":"Interface"},{"name":"IFlagsDef","href":"Hi.NcParsers.Keywords.IFlagsDef.html","topicHref":"Hi.NcParsers.Keywords.IFlagsDef.html","topicUid":"Hi.NcParsers.Keywords.IFlagsDef","type":"Interface"},{"name":"IMachineCoordinateStateDef","href":"Hi.NcParsers.Keywords.IMachineCoordinateStateDef.html","topicHref":"Hi.NcParsers.Keywords.IMachineCoordinateStateDef.html","topicUid":"Hi.NcParsers.Keywords.IMachineCoordinateStateDef","type":"Interface"},{"name":"IMotionEventDef","href":"Hi.NcParsers.Keywords.IMotionEventDef.html","topicHref":"Hi.NcParsers.Keywords.IMotionEventDef.html","topicUid":"Hi.NcParsers.Keywords.IMotionEventDef","type":"Interface"},{"name":"IMotionStateDef","href":"Hi.NcParsers.Keywords.IMotionStateDef.html","topicHref":"Hi.NcParsers.Keywords.IMotionStateDef.html","topicUid":"Hi.NcParsers.Keywords.IMotionStateDef","type":"Interface"},{"name":"IParsingDef","href":"Hi.NcParsers.Keywords.IParsingDef.html","topicHref":"Hi.NcParsers.Keywords.IParsingDef.html","topicUid":"Hi.NcParsers.Keywords.IParsingDef","type":"Interface"},{"name":"IPathSmoothingDef","href":"Hi.NcParsers.Keywords.IPathSmoothingDef.html","topicHref":"Hi.NcParsers.Keywords.IPathSmoothingDef.html","topicUid":"Hi.NcParsers.Keywords.IPathSmoothingDef","type":"Interface"},{"name":"IPlaneSelectDef","href":"Hi.NcParsers.Keywords.IPlaneSelectDef.html","topicHref":"Hi.NcParsers.Keywords.IPlaneSelectDef.html","topicUid":"Hi.NcParsers.Keywords.IPlaneSelectDef","type":"Interface"},{"name":"IPositioningDef","href":"Hi.NcParsers.Keywords.IPositioningDef.html","topicHref":"Hi.NcParsers.Keywords.IPositioningDef.html","topicUid":"Hi.NcParsers.Keywords.IPositioningDef","type":"Interface"},{"name":"IProgramEndDef","href":"Hi.NcParsers.Keywords.IProgramEndDef.html","topicHref":"Hi.NcParsers.Keywords.IProgramEndDef.html","topicUid":"Hi.NcParsers.Keywords.IProgramEndDef","type":"Interface"},{"name":"IProgramStopDef","href":"Hi.NcParsers.Keywords.IProgramStopDef.html","topicHref":"Hi.NcParsers.Keywords.IProgramStopDef.html","topicUid":"Hi.NcParsers.Keywords.IProgramStopDef","type":"Interface"},{"name":"IProgramXyzDef","href":"Hi.NcParsers.Keywords.IProgramXyzDef.html","topicHref":"Hi.NcParsers.Keywords.IProgramXyzDef.html","topicUid":"Hi.NcParsers.Keywords.IProgramXyzDef","type":"Interface"},{"name":"IRadiusCompensationDef","href":"Hi.NcParsers.Keywords.IRadiusCompensationDef.html","topicHref":"Hi.NcParsers.Keywords.IRadiusCompensationDef.html","topicUid":"Hi.NcParsers.Keywords.IRadiusCompensationDef","type":"Interface"},{"name":"ISpindleControlDef","href":"Hi.NcParsers.Keywords.ISpindleControlDef.html","topicHref":"Hi.NcParsers.Keywords.ISpindleControlDef.html","topicUid":"Hi.NcParsers.Keywords.ISpindleControlDef","type":"Interface"},{"name":"ISpindleOrientationDef","href":"Hi.NcParsers.Keywords.ISpindleOrientationDef.html","topicHref":"Hi.NcParsers.Keywords.ISpindleOrientationDef.html","topicUid":"Hi.NcParsers.Keywords.ISpindleOrientationDef","type":"Interface"},{"name":"ISpindleSpeedDef","href":"Hi.NcParsers.Keywords.ISpindleSpeedDef.html","topicHref":"Hi.NcParsers.Keywords.ISpindleSpeedDef.html","topicUid":"Hi.NcParsers.Keywords.ISpindleSpeedDef","type":"Interface"},{"name":"ITiltTransformDef","href":"Hi.NcParsers.Keywords.ITiltTransformDef.html","topicHref":"Hi.NcParsers.Keywords.ITiltTransformDef.html","topicUid":"Hi.NcParsers.Keywords.ITiltTransformDef","type":"Interface"},{"name":"IToolHeightCompensationDef","href":"Hi.NcParsers.Keywords.IToolHeightCompensationDef.html","topicHref":"Hi.NcParsers.Keywords.IToolHeightCompensationDef.html","topicUid":"Hi.NcParsers.Keywords.IToolHeightCompensationDef","type":"Interface"},{"name":"ITransformationDef","href":"Hi.NcParsers.Keywords.ITransformationDef.html","topicHref":"Hi.NcParsers.Keywords.ITransformationDef.html","topicUid":"Hi.NcParsers.Keywords.ITransformationDef","type":"Interface"},{"name":"IUnitDef","href":"Hi.NcParsers.Keywords.IUnitDef.html","topicHref":"Hi.NcParsers.Keywords.IUnitDef.html","topicUid":"Hi.NcParsers.Keywords.IUnitDef","type":"Interface"},{"name":"IUnparsedTextDef","href":"Hi.NcParsers.Keywords.IUnparsedTextDef.html","topicHref":"Hi.NcParsers.Keywords.IUnparsedTextDef.html","topicUid":"Hi.NcParsers.Keywords.IUnparsedTextDef","type":"Interface"},{"name":"IndexNote","href":"Hi.NcParsers.Keywords.IndexNote.html","topicHref":"Hi.NcParsers.Keywords.IndexNote.html","topicUid":"Hi.NcParsers.Keywords.IndexNote","type":"Class"},{"name":"IsoLocalCoordinateOffset","href":"Hi.NcParsers.Keywords.IsoLocalCoordinateOffset.html","topicHref":"Hi.NcParsers.Keywords.IsoLocalCoordinateOffset.html","topicUid":"Hi.NcParsers.Keywords.IsoLocalCoordinateOffset","type":"Class"},{"name":"MachineCoordinateState","href":"Hi.NcParsers.Keywords.MachineCoordinateState.html","topicHref":"Hi.NcParsers.Keywords.MachineCoordinateState.html","topicUid":"Hi.NcParsers.Keywords.MachineCoordinateState","type":"Class"},{"name":"MacroFrame","href":"Hi.NcParsers.Keywords.MacroFrame.html","topicHref":"Hi.NcParsers.Keywords.MacroFrame.html","topicUid":"Hi.NcParsers.Keywords.MacroFrame","type":"Class"},{"name":"MotionEvent","href":"Hi.NcParsers.Keywords.MotionEvent.html","topicHref":"Hi.NcParsers.Keywords.MotionEvent.html","topicUid":"Hi.NcParsers.Keywords.MotionEvent","type":"Class"},{"name":"MotionState","href":"Hi.NcParsers.Keywords.MotionState.html","topicHref":"Hi.NcParsers.Keywords.MotionState.html","topicUid":"Hi.NcParsers.Keywords.MotionState","type":"Class"},{"name":"PathSmoothing","href":"Hi.NcParsers.Keywords.PathSmoothing.html","topicHref":"Hi.NcParsers.Keywords.PathSmoothing.html","topicUid":"Hi.NcParsers.Keywords.PathSmoothing","type":"Class"},{"name":"PlaneSelect","href":"Hi.NcParsers.Keywords.PlaneSelect.html","topicHref":"Hi.NcParsers.Keywords.PlaneSelect.html","topicUid":"Hi.NcParsers.Keywords.PlaneSelect","type":"Class"},{"name":"Positioning","href":"Hi.NcParsers.Keywords.Positioning.html","topicHref":"Hi.NcParsers.Keywords.Positioning.html","topicUid":"Hi.NcParsers.Keywords.Positioning","type":"Class"},{"name":"ProgramEnd","href":"Hi.NcParsers.Keywords.ProgramEnd.html","topicHref":"Hi.NcParsers.Keywords.ProgramEnd.html","topicUid":"Hi.NcParsers.Keywords.ProgramEnd","type":"Class"},{"name":"ProgramStop","href":"Hi.NcParsers.Keywords.ProgramStop.html","topicHref":"Hi.NcParsers.Keywords.ProgramStop.html","topicUid":"Hi.NcParsers.Keywords.ProgramStop","type":"Class"},{"name":"RadiusCompensation","href":"Hi.NcParsers.Keywords.RadiusCompensation.html","topicHref":"Hi.NcParsers.Keywords.RadiusCompensation.html","topicUid":"Hi.NcParsers.Keywords.RadiusCompensation","type":"Class"},{"name":"SpindleControl","href":"Hi.NcParsers.Keywords.SpindleControl.html","topicHref":"Hi.NcParsers.Keywords.SpindleControl.html","topicUid":"Hi.NcParsers.Keywords.SpindleControl","type":"Class"},{"name":"SpindleOrientation","href":"Hi.NcParsers.Keywords.SpindleOrientation.html","topicHref":"Hi.NcParsers.Keywords.SpindleOrientation.html","topicUid":"Hi.NcParsers.Keywords.SpindleOrientation","type":"Class"},{"name":"SpindleSpeed","href":"Hi.NcParsers.Keywords.SpindleSpeed.html","topicHref":"Hi.NcParsers.Keywords.SpindleSpeed.html","topicUid":"Hi.NcParsers.Keywords.SpindleSpeed","type":"Class"},{"name":"SubProgramCall","href":"Hi.NcParsers.Keywords.SubProgramCall.html","topicHref":"Hi.NcParsers.Keywords.SubProgramCall.html","topicUid":"Hi.NcParsers.Keywords.SubProgramCall","type":"Class"},{"name":"SubProgramReturn","href":"Hi.NcParsers.Keywords.SubProgramReturn.html","topicHref":"Hi.NcParsers.Keywords.SubProgramReturn.html","topicUid":"Hi.NcParsers.Keywords.SubProgramReturn","type":"Class"},{"name":"TapeBoundary","href":"Hi.NcParsers.Keywords.TapeBoundary.html","topicHref":"Hi.NcParsers.Keywords.TapeBoundary.html","topicUid":"Hi.NcParsers.Keywords.TapeBoundary","type":"Class"},{"name":"TiltTransform","href":"Hi.NcParsers.Keywords.TiltTransform.html","topicHref":"Hi.NcParsers.Keywords.TiltTransform.html","topicUid":"Hi.NcParsers.Keywords.TiltTransform","type":"Class"},{"name":"ToolHeightCompensation","href":"Hi.NcParsers.Keywords.ToolHeightCompensation.html","topicHref":"Hi.NcParsers.Keywords.ToolHeightCompensation.html","topicUid":"Hi.NcParsers.Keywords.ToolHeightCompensation","type":"Class"},{"name":"Unit","href":"Hi.NcParsers.Keywords.Unit.html","topicHref":"Hi.NcParsers.Keywords.Unit.html","topicUid":"Hi.NcParsers.Keywords.Unit","type":"Class"},{"name":"Vars","href":"Hi.NcParsers.Keywords.Vars.html","topicHref":"Hi.NcParsers.Keywords.Vars.html","topicUid":"Hi.NcParsers.Keywords.Vars","type":"Class"}]},{"name":"Hi.NcParsers.Keywords.Fanuc","href":"Hi.NcParsers.Keywords.Fanuc.html","topicHref":"Hi.NcParsers.Keywords.Fanuc.html","topicUid":"Hi.NcParsers.Keywords.Fanuc","type":"Namespace","items":[{"name":"FanucKeywords","href":"Hi.NcParsers.Keywords.Fanuc.FanucKeywords.html","topicHref":"Hi.NcParsers.Keywords.Fanuc.FanucKeywords.html","topicUid":"Hi.NcParsers.Keywords.Fanuc.FanucKeywords","type":"Class"}]},{"name":"Hi.NcParsers.Keywords.Generic","href":"Hi.NcParsers.Keywords.Generic.html","topicHref":"Hi.NcParsers.Keywords.Generic.html","topicUid":"Hi.NcParsers.Keywords.Generic","type":"Namespace","items":[{"name":"IsoKeywords","href":"Hi.NcParsers.Keywords.Generic.IsoKeywords.html","topicHref":"Hi.NcParsers.Keywords.Generic.IsoKeywords.html","topicUid":"Hi.NcParsers.Keywords.Generic.IsoKeywords","type":"Class"},{"name":"MotionForm","href":"Hi.NcParsers.Keywords.Generic.MotionForm.html","topicHref":"Hi.NcParsers.Keywords.Generic.MotionForm.html","topicUid":"Hi.NcParsers.Keywords.Generic.MotionForm","type":"Class"}]},{"name":"Hi.NcParsers.Keywords.Heidenhain","href":"Hi.NcParsers.Keywords.Heidenhain.html","topicHref":"Hi.NcParsers.Keywords.Heidenhain.html","topicUid":"Hi.NcParsers.Keywords.Heidenhain","type":"Namespace","items":[{"name":"ICyclDef","href":"Hi.NcParsers.Keywords.Heidenhain.ICyclDef.html","topicHref":"Hi.NcParsers.Keywords.Heidenhain.ICyclDef.html","topicUid":"Hi.NcParsers.Keywords.Heidenhain.ICyclDef","type":"Interface"}]},{"name":"Hi.NcParsers.Keywords.Siemens","href":"Hi.NcParsers.Keywords.Siemens.html","topicHref":"Hi.NcParsers.Keywords.Siemens.html","topicUid":"Hi.NcParsers.Keywords.Siemens","type":"Namespace","items":[{"name":"SiemensKeywords","href":"Hi.NcParsers.Keywords.Siemens.SiemensKeywords.html","topicHref":"Hi.NcParsers.Keywords.Siemens.SiemensKeywords.html","topicUid":"Hi.NcParsers.Keywords.Siemens.SiemensKeywords","type":"Class"}]},{"name":"Hi.NcParsers.LogicSyntaxs","href":"Hi.NcParsers.LogicSyntaxs.html","topicHref":"Hi.NcParsers.LogicSyntaxs.html","topicUid":"Hi.NcParsers.LogicSyntaxs","type":"Namespace","items":[{"name":"BackBoringSyntax","href":"Hi.NcParsers.LogicSyntaxs.BackBoringSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.BackBoringSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.BackBoringSyntax","type":"Class"},{"name":"BareG28Behavior","href":"Hi.NcParsers.LogicSyntaxs.BareG28Behavior.html","topicHref":"Hi.NcParsers.LogicSyntaxs.BareG28Behavior.html","topicUid":"Hi.NcParsers.LogicSyntaxs.BareG28Behavior","type":"Enum"},{"name":"BoringCycleSyntax","href":"Hi.NcParsers.LogicSyntaxs.BoringCycleSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.BoringCycleSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.BoringCycleSyntax","type":"Class"},{"name":"CannedCycleResolveSyntax","href":"Hi.NcParsers.LogicSyntaxs.CannedCycleResolveSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.CannedCycleResolveSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.CannedCycleResolveSyntax","type":"Class"},{"name":"CircularMotionSyntax","href":"Hi.NcParsers.LogicSyntaxs.CircularMotionSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.CircularMotionSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.CircularMotionSyntax","type":"Class"},{"name":"CoolantSyntax","href":"Hi.NcParsers.LogicSyntaxs.CoolantSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.CoolantSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.CoolantSyntax","type":"Class"},{"name":"CoordinateOffsetUtil","href":"Hi.NcParsers.LogicSyntaxs.CoordinateOffsetUtil.html","topicHref":"Hi.NcParsers.LogicSyntaxs.CoordinateOffsetUtil.html","topicUid":"Hi.NcParsers.LogicSyntaxs.CoordinateOffsetUtil","type":"Class"},{"name":"DrillingCycleSyntax","href":"Hi.NcParsers.LogicSyntaxs.DrillingCycleSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.DrillingCycleSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.DrillingCycleSyntax","type":"Class"},{"name":"FanucPathSmoothingSyntax","href":"Hi.NcParsers.LogicSyntaxs.FanucPathSmoothingSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.FanucPathSmoothingSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.FanucPathSmoothingSyntax","type":"Class"},{"name":"FeedrateSyntax","href":"Hi.NcParsers.LogicSyntaxs.FeedrateSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.FeedrateSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.FeedrateSyntax","type":"Class"},{"name":"FineBoringSyntax","href":"Hi.NcParsers.LogicSyntaxs.FineBoringSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.FineBoringSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.FineBoringSyntax","type":"Class"},{"name":"G43p4RtcpSyntax","href":"Hi.NcParsers.LogicSyntaxs.G43p4RtcpSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.G43p4RtcpSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.G43p4RtcpSyntax","type":"Class"},{"name":"G53p1RotaryPositionSyntax","href":"Hi.NcParsers.LogicSyntaxs.G53p1RotaryPositionSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.G53p1RotaryPositionSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.G53p1RotaryPositionSyntax","type":"Class"},{"name":"HighSpeedPeckCycleSyntax","href":"Hi.NcParsers.LogicSyntaxs.HighSpeedPeckCycleSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.HighSpeedPeckCycleSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.HighSpeedPeckCycleSyntax","type":"Class"},{"name":"IncrementalResolveSyntax","href":"Hi.NcParsers.LogicSyntaxs.IncrementalResolveSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.IncrementalResolveSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.IncrementalResolveSyntax","type":"Class"},{"name":"IsoCoordinateOffsetSyntax","href":"Hi.NcParsers.LogicSyntaxs.IsoCoordinateOffsetSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.IsoCoordinateOffsetSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.IsoCoordinateOffsetSyntax","type":"Class"},{"name":"IsoG68RotationSyntax","href":"Hi.NcParsers.LogicSyntaxs.IsoG68RotationSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.IsoG68RotationSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.IsoG68RotationSyntax","type":"Class"},{"name":"IsoG68p2TiltSyntax","href":"Hi.NcParsers.LogicSyntaxs.IsoG68p2TiltSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.IsoG68p2TiltSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.IsoG68p2TiltSyntax","type":"Class"},{"name":"IsoLocalCoordinateOffsetSyntax","href":"Hi.NcParsers.LogicSyntaxs.IsoLocalCoordinateOffsetSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.IsoLocalCoordinateOffsetSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.IsoLocalCoordinateOffsetSyntax","type":"Class"},{"name":"LinearMotionSyntax","href":"Hi.NcParsers.LogicSyntaxs.LinearMotionSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.LinearMotionSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.LinearMotionSyntax","type":"Class"},{"name":"MachineCoordSelectSyntax","href":"Hi.NcParsers.LogicSyntaxs.MachineCoordSelectSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.MachineCoordSelectSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.MachineCoordSelectSyntax","type":"Class"},{"name":"McAbcCyclicPathSyntax","href":"Hi.NcParsers.LogicSyntaxs.McAbcCyclicPathSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.McAbcCyclicPathSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.McAbcCyclicPathSyntax","type":"Class"},{"name":"McAbcSyntax","href":"Hi.NcParsers.LogicSyntaxs.McAbcSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.McAbcSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.McAbcSyntax","type":"Class"},{"name":"McAbcXyzFallbackSyntax","href":"Hi.NcParsers.LogicSyntaxs.McAbcXyzFallbackSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.McAbcXyzFallbackSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.McAbcXyzFallbackSyntax","type":"Class"},{"name":"McXyzSyntax","href":"Hi.NcParsers.LogicSyntaxs.McXyzSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.McXyzSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.McXyzSyntax","type":"Class"},{"name":"PeckDrillingCycleSyntax","href":"Hi.NcParsers.LogicSyntaxs.PeckDrillingCycleSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.PeckDrillingCycleSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.PeckDrillingCycleSyntax","type":"Class"},{"name":"PivotTransformationSyntax","href":"Hi.NcParsers.LogicSyntaxs.PivotTransformationSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.PivotTransformationSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.PivotTransformationSyntax","type":"Class"},{"name":"PlaneSelectSyntax","href":"Hi.NcParsers.LogicSyntaxs.PlaneSelectSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.PlaneSelectSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.PlaneSelectSyntax","type":"Class"},{"name":"PositioningSyntax","href":"Hi.NcParsers.LogicSyntaxs.PositioningSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.PositioningSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.PositioningSyntax","type":"Class"},{"name":"ProgramEndCleanSyntax","href":"Hi.NcParsers.LogicSyntaxs.ProgramEndCleanSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.ProgramEndCleanSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.ProgramEndCleanSyntax","type":"Class"},{"name":"ProgramEndSyntax","href":"Hi.NcParsers.LogicSyntaxs.ProgramEndSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.ProgramEndSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.ProgramEndSyntax","type":"Class"},{"name":"ProgramStopSyntax","href":"Hi.NcParsers.LogicSyntaxs.ProgramStopSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.ProgramStopSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.ProgramStopSyntax","type":"Class"},{"name":"ProgramXyzSyntax","href":"Hi.NcParsers.LogicSyntaxs.ProgramXyzSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.ProgramXyzSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.ProgramXyzSyntax","type":"Class"},{"name":"ProgramXyzUtil","href":"Hi.NcParsers.LogicSyntaxs.ProgramXyzUtil.html","topicHref":"Hi.NcParsers.LogicSyntaxs.ProgramXyzUtil.html","topicUid":"Hi.NcParsers.LogicSyntaxs.ProgramXyzUtil","type":"Class"},{"name":"ReferenceReturnSyntax","href":"Hi.NcParsers.LogicSyntaxs.ReferenceReturnSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.ReferenceReturnSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.ReferenceReturnSyntax","type":"Class"},{"name":"RotaryAxisUtil","href":"Hi.NcParsers.LogicSyntaxs.RotaryAxisUtil.html","topicHref":"Hi.NcParsers.LogicSyntaxs.RotaryAxisUtil.html","topicUid":"Hi.NcParsers.LogicSyntaxs.RotaryAxisUtil","type":"Class"},{"name":"SpindleSpeedSyntax","href":"Hi.NcParsers.LogicSyntaxs.SpindleSpeedSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.SpindleSpeedSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.SpindleSpeedSyntax","type":"Class"},{"name":"TappingCycleSyntax","href":"Hi.NcParsers.LogicSyntaxs.TappingCycleSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.TappingCycleSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.TappingCycleSyntax","type":"Class"},{"name":"TiltTransformUtil","href":"Hi.NcParsers.LogicSyntaxs.TiltTransformUtil.html","topicHref":"Hi.NcParsers.LogicSyntaxs.TiltTransformUtil.html","topicUid":"Hi.NcParsers.LogicSyntaxs.TiltTransformUtil","type":"Class"},{"name":"ToolChangeSyntax","href":"Hi.NcParsers.LogicSyntaxs.ToolChangeSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.ToolChangeSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.ToolChangeSyntax","type":"Class"},{"name":"ToolHeightOffsetSyntax","href":"Hi.NcParsers.LogicSyntaxs.ToolHeightOffsetSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.ToolHeightOffsetSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.ToolHeightOffsetSyntax","type":"Class"},{"name":"UnitModeSyntax","href":"Hi.NcParsers.LogicSyntaxs.UnitModeSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.UnitModeSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.UnitModeSyntax","type":"Class"}]},{"name":"Hi.NcParsers.LogicSyntaxs.Heidenhain","href":"Hi.NcParsers.LogicSyntaxs.Heidenhain.html","topicHref":"Hi.NcParsers.LogicSyntaxs.Heidenhain.html","topicUid":"Hi.NcParsers.LogicSyntaxs.Heidenhain","type":"Namespace","items":[{"name":"HeidenhainCoordinateOffsetSyntax","href":"Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCoordinateOffsetSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCoordinateOffsetSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCoordinateOffsetSyntax","type":"Class"}]},{"name":"Hi.NcParsers.LogicSyntaxs.Siemens","href":"Hi.NcParsers.LogicSyntaxs.Siemens.html","topicHref":"Hi.NcParsers.LogicSyntaxs.Siemens.html","topicUid":"Hi.NcParsers.LogicSyntaxs.Siemens","type":"Namespace","items":[{"name":"SiemensCoordinateOffsetSyntax","href":"Hi.NcParsers.LogicSyntaxs.Siemens.SiemensCoordinateOffsetSyntax.html","topicHref":"Hi.NcParsers.LogicSyntaxs.Siemens.SiemensCoordinateOffsetSyntax.html","topicUid":"Hi.NcParsers.LogicSyntaxs.Siemens.SiemensCoordinateOffsetSyntax","type":"Class"}]},{"name":"Hi.NcParsers.ParsingSyntaxs","href":"Hi.NcParsers.ParsingSyntaxs.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.html","topicUid":"Hi.NcParsers.ParsingSyntaxs","type":"Namespace","items":[{"name":"BlockSkipSyntax","href":"Hi.NcParsers.ParsingSyntaxs.BlockSkipSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.BlockSkipSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.BlockSkipSyntax","type":"Class"},{"name":"CsScriptSyntax","href":"Hi.NcParsers.ParsingSyntaxs.CsScriptSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.CsScriptSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.CsScriptSyntax","type":"Class"},{"name":"FlagSyntax","href":"Hi.NcParsers.ParsingSyntaxs.FlagSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.FlagSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.FlagSyntax","type":"Class"},{"name":"FloatTagValueSyntax","href":"Hi.NcParsers.ParsingSyntaxs.FloatTagValueSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.FloatTagValueSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.FloatTagValueSyntax","type":"Class"},{"name":"HeadIndexSyntax","href":"Hi.NcParsers.ParsingSyntaxs.HeadIndexSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.HeadIndexSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.HeadIndexSyntax","type":"Class"},{"name":"IntegerTagValueSyntax","href":"Hi.NcParsers.ParsingSyntaxs.IntegerTagValueSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.IntegerTagValueSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.IntegerTagValueSyntax","type":"Class"},{"name":"NamedVarAssignmentSyntax","href":"Hi.NcParsers.ParsingSyntaxs.NamedVarAssignmentSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.NamedVarAssignmentSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.NamedVarAssignmentSyntax","type":"Class"},{"name":"NumberedFlagSyntax","href":"Hi.NcParsers.ParsingSyntaxs.NumberedFlagSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.NumberedFlagSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.NumberedFlagSyntax","type":"Class"},{"name":"ParameterizedFlagSyntax","href":"Hi.NcParsers.ParsingSyntaxs.ParameterizedFlagSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.ParameterizedFlagSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.ParameterizedFlagSyntax","type":"Class"},{"name":"ShrinkIfNoDecimalPointSyntax","href":"Hi.NcParsers.ParsingSyntaxs.ShrinkIfNoDecimalPointSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.ShrinkIfNoDecimalPointSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.ShrinkIfNoDecimalPointSyntax","type":"Class"},{"name":"TagAssignmentSyntax","href":"Hi.NcParsers.ParsingSyntaxs.TagAssignmentSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.TagAssignmentSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.TagAssignmentSyntax","type":"Class"},{"name":"TagValueSyntax","href":"Hi.NcParsers.ParsingSyntaxs.TagValueSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.TagValueSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.TagValueSyntax","type":"Class"},{"name":"TapeBoundarySyntax","href":"Hi.NcParsers.ParsingSyntaxs.TapeBoundarySyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.TapeBoundarySyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.TapeBoundarySyntax","type":"Class"}]},{"name":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs","href":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs","type":"Namespace","items":[{"name":"QuoteCommentSyntax","href":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.QuoteCommentSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.QuoteCommentSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.QuoteCommentSyntax","type":"Class"},{"name":"TailCommentSyntax","href":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.TailCommentSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.TailCommentSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.TailCommentSyntax","type":"Class"}]},{"name":"Hi.NcParsers.ParsingSyntaxs.Fanuc","href":"Hi.NcParsers.ParsingSyntaxs.Fanuc.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Fanuc.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Fanuc","type":"Namespace","items":[{"name":"FanucGotoParsingSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucGotoParsingSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucGotoParsingSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucGotoParsingSyntax","type":"Class"},{"name":"FanucIfThenParsingSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucIfThenParsingSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucIfThenParsingSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucIfThenParsingSyntax","type":"Class"},{"name":"FanucProgramNumberSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucProgramNumberSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucProgramNumberSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucProgramNumberSyntax","type":"Class"},{"name":"FanucWhileDoParsingSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax","type":"Class"}]},{"name":"Hi.NcParsers.ParsingSyntaxs.Heidenhain","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain","type":"Namespace","items":[{"name":"HeidenhainBlkFormSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainBlkFormSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainBlkFormSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainBlkFormSyntax","type":"Class"},{"name":"HeidenhainCallSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCallSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCallSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCallSyntax","type":"Class"},{"name":"HeidenhainCyclDefSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCyclDefSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCyclDefSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCyclDefSyntax","type":"Class"},{"name":"HeidenhainFnAssignmentSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainFnAssignmentSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainFnAssignmentSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainFnAssignmentSyntax","type":"Class"},{"name":"HeidenhainLSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainLSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainLSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainLSyntax","type":"Class"},{"name":"HeidenhainLblSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainLblSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainLblSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainLblSyntax","type":"Class"},{"name":"HeidenhainPlaneSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainPlaneSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainPlaneSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainPlaneSyntax","type":"Class"},{"name":"HeidenhainProgramSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainProgramSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainProgramSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainProgramSyntax","type":"Class"},{"name":"HeidenhainToolCallSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainToolCallSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainToolCallSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainToolCallSyntax","type":"Class"}]},{"name":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs","type":"Namespace","items":[{"name":"HeidenhainDatumSettingSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainDatumSettingSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainDatumSettingSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainDatumSettingSyntax","type":"Class"},{"name":"HeidenhainDatumShiftSyntax","href":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainDatumShiftSyntax.html","topicHref":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainDatumShiftSyntax.html","topicUid":"Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainDatumShiftSyntax","type":"Class"}]},{"name":"Hi.NcParsers.PostLogicSyntaxs","href":"Hi.NcParsers.PostLogicSyntaxs.html","topicHref":"Hi.NcParsers.PostLogicSyntaxs.html","topicUid":"Hi.NcParsers.PostLogicSyntaxs","type":"Namespace","items":[{"name":"ModalCarrySyntax","href":"Hi.NcParsers.PostLogicSyntaxs.ModalCarrySyntax.html","topicHref":"Hi.NcParsers.PostLogicSyntaxs.ModalCarrySyntax.html","topicUid":"Hi.NcParsers.PostLogicSyntaxs.ModalCarrySyntax","type":"Class"},{"name":"RadiusCompensationSyntax","href":"Hi.NcParsers.PostLogicSyntaxs.RadiusCompensationSyntax.html","topicHref":"Hi.NcParsers.PostLogicSyntaxs.RadiusCompensationSyntax.html","topicUid":"Hi.NcParsers.PostLogicSyntaxs.RadiusCompensationSyntax","type":"Class"}]},{"name":"Hi.NcParsers.Segmenters","href":"Hi.NcParsers.Segmenters.html","topicHref":"Hi.NcParsers.Segmenters.html","topicUid":"Hi.NcParsers.Segmenters","type":"Namespace","items":[{"name":"HeidenhainSegmenter","href":"Hi.NcParsers.Segmenters.HeidenhainSegmenter.html","topicHref":"Hi.NcParsers.Segmenters.HeidenhainSegmenter.html","topicUid":"Hi.NcParsers.Segmenters.HeidenhainSegmenter","type":"Class"},{"name":"ISegmenter","href":"Hi.NcParsers.Segmenters.ISegmenter.html","topicHref":"Hi.NcParsers.Segmenters.ISegmenter.html","topicUid":"Hi.NcParsers.Segmenters.ISegmenter","type":"Interface"},{"name":"InlineDelimiterSegmenter","href":"Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.html","topicHref":"Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.html","topicUid":"Hi.NcParsers.Segmenters.InlineDelimiterSegmenter","type":"Class"},{"name":"SingleLineSegmenter","href":"Hi.NcParsers.Segmenters.SingleLineSegmenter.html","topicHref":"Hi.NcParsers.Segmenters.SingleLineSegmenter.html","topicUid":"Hi.NcParsers.Segmenters.SingleLineSegmenter","type":"Class"}]},{"name":"Hi.NcParsers.Semantics","href":"Hi.NcParsers.Semantics.html","topicHref":"Hi.NcParsers.Semantics.html","topicUid":"Hi.NcParsers.Semantics","type":"Namespace","items":[{"name":"ClLinearMotionSemantic","href":"Hi.NcParsers.Semantics.ClLinearMotionSemantic.html","topicHref":"Hi.NcParsers.Semantics.ClLinearMotionSemantic.html","topicUid":"Hi.NcParsers.Semantics.ClLinearMotionSemantic","type":"Class"},{"name":"CompoundMotionSemantic","href":"Hi.NcParsers.Semantics.CompoundMotionSemantic.html","topicHref":"Hi.NcParsers.Semantics.CompoundMotionSemantic.html","topicUid":"Hi.NcParsers.Semantics.CompoundMotionSemantic","type":"Class"},{"name":"CoolantSemantic","href":"Hi.NcParsers.Semantics.CoolantSemantic.html","topicHref":"Hi.NcParsers.Semantics.CoolantSemantic.html","topicUid":"Hi.NcParsers.Semantics.CoolantSemantic","type":"Class"},{"name":"CsScriptBeginSemantic","href":"Hi.NcParsers.Semantics.CsScriptBeginSemantic.html","topicHref":"Hi.NcParsers.Semantics.CsScriptBeginSemantic.html","topicUid":"Hi.NcParsers.Semantics.CsScriptBeginSemantic","type":"Class"},{"name":"CsScriptEndSemantic","href":"Hi.NcParsers.Semantics.CsScriptEndSemantic.html","topicHref":"Hi.NcParsers.Semantics.CsScriptEndSemantic.html","topicUid":"Hi.NcParsers.Semantics.CsScriptEndSemantic","type":"Class"},{"name":"CsScriptSemantic","href":"Hi.NcParsers.Semantics.CsScriptSemantic.html","topicHref":"Hi.NcParsers.Semantics.CsScriptSemantic.html","topicUid":"Hi.NcParsers.Semantics.CsScriptSemantic","type":"Class"},{"name":"INcSemantic","href":"Hi.NcParsers.Semantics.INcSemantic.html","topicHref":"Hi.NcParsers.Semantics.INcSemantic.html","topicUid":"Hi.NcParsers.Semantics.INcSemantic","type":"Interface"},{"name":"MachineCoordinateStepSemantic","href":"Hi.NcParsers.Semantics.MachineCoordinateStepSemantic.html","topicHref":"Hi.NcParsers.Semantics.MachineCoordinateStepSemantic.html","topicUid":"Hi.NcParsers.Semantics.MachineCoordinateStepSemantic","type":"Class"},{"name":"McArcMotionSemantic","href":"Hi.NcParsers.Semantics.McArcMotionSemantic.html","topicHref":"Hi.NcParsers.Semantics.McArcMotionSemantic.html","topicUid":"Hi.NcParsers.Semantics.McArcMotionSemantic","type":"Class"},{"name":"McLinearMotionSemantic","href":"Hi.NcParsers.Semantics.McLinearMotionSemantic.html","topicHref":"Hi.NcParsers.Semantics.McLinearMotionSemantic.html","topicUid":"Hi.NcParsers.Semantics.McLinearMotionSemantic","type":"Class"},{"name":"SpindleSpeedSemantic","href":"Hi.NcParsers.Semantics.SpindleSpeedSemantic.html","topicHref":"Hi.NcParsers.Semantics.SpindleSpeedSemantic.html","topicUid":"Hi.NcParsers.Semantics.SpindleSpeedSemantic","type":"Class"},{"name":"StrokeLimitCheckSemantic","href":"Hi.NcParsers.Semantics.StrokeLimitCheckSemantic.html","topicHref":"Hi.NcParsers.Semantics.StrokeLimitCheckSemantic.html","topicUid":"Hi.NcParsers.Semantics.StrokeLimitCheckSemantic","type":"Class"},{"name":"ToolChangeSemantic","href":"Hi.NcParsers.Semantics.ToolChangeSemantic.html","topicHref":"Hi.NcParsers.Semantics.ToolChangeSemantic.html","topicUid":"Hi.NcParsers.Semantics.ToolChangeSemantic","type":"Class"}]},{"name":"Hi.NcParsers.Syntaxs","href":"Hi.NcParsers.Syntaxs.html","topicHref":"Hi.NcParsers.Syntaxs.html","topicUid":"Hi.NcParsers.Syntaxs","type":"Namespace","items":[{"name":"BundleSyntax","href":"Hi.NcParsers.Syntaxs.BundleSyntax.html","topicHref":"Hi.NcParsers.Syntaxs.BundleSyntax.html","topicUid":"Hi.NcParsers.Syntaxs.BundleSyntax","type":"Class"},{"name":"FanucSyntaxUtil","href":"Hi.NcParsers.Syntaxs.FanucSyntaxUtil.html","topicHref":"Hi.NcParsers.Syntaxs.FanucSyntaxUtil.html","topicUid":"Hi.NcParsers.Syntaxs.FanucSyntaxUtil","type":"Class"},{"name":"GenericSyntaxKit","href":"Hi.NcParsers.Syntaxs.GenericSyntaxKit.html","topicHref":"Hi.NcParsers.Syntaxs.GenericSyntaxKit.html","topicUid":"Hi.NcParsers.Syntaxs.GenericSyntaxKit","type":"Class"},{"name":"HeidenhainSyntaxUtil","href":"Hi.NcParsers.Syntaxs.HeidenhainSyntaxUtil.html","topicHref":"Hi.NcParsers.Syntaxs.HeidenhainSyntaxUtil.html","topicUid":"Hi.NcParsers.Syntaxs.HeidenhainSyntaxUtil","type":"Class"},{"name":"IExpandingNcSyntax","href":"Hi.NcParsers.Syntaxs.IExpandingNcSyntax.html","topicHref":"Hi.NcParsers.Syntaxs.IExpandingNcSyntax.html","topicUid":"Hi.NcParsers.Syntaxs.IExpandingNcSyntax","type":"Interface"},{"name":"INcSyntax","href":"Hi.NcParsers.Syntaxs.INcSyntax.html","topicHref":"Hi.NcParsers.Syntaxs.INcSyntax.html","topicUid":"Hi.NcParsers.Syntaxs.INcSyntax","type":"Interface"},{"name":"ISituNcSyntax","href":"Hi.NcParsers.Syntaxs.ISituNcSyntax.html","topicHref":"Hi.NcParsers.Syntaxs.ISituNcSyntax.html","topicUid":"Hi.NcParsers.Syntaxs.ISituNcSyntax","type":"Interface"},{"name":"MazakSyntaxUtil","href":"Hi.NcParsers.Syntaxs.MazakSyntaxUtil.html","topicHref":"Hi.NcParsers.Syntaxs.MazakSyntaxUtil.html","topicUid":"Hi.NcParsers.Syntaxs.MazakSyntaxUtil","type":"Class"},{"name":"NcSyntaxUtil","href":"Hi.NcParsers.Syntaxs.NcSyntaxUtil.html","topicHref":"Hi.NcParsers.Syntaxs.NcSyntaxUtil.html","topicUid":"Hi.NcParsers.Syntaxs.NcSyntaxUtil","type":"Class"},{"name":"SiemensSyntaxUtil","href":"Hi.NcParsers.Syntaxs.SiemensSyntaxUtil.html","topicHref":"Hi.NcParsers.Syntaxs.SiemensSyntaxUtil.html","topicUid":"Hi.NcParsers.Syntaxs.SiemensSyntaxUtil","type":"Class"},{"name":"SyntaxPiece","href":"Hi.NcParsers.Syntaxs.SyntaxPiece.html","topicHref":"Hi.NcParsers.Syntaxs.SyntaxPiece.html","topicUid":"Hi.NcParsers.Syntaxs.SyntaxPiece","type":"Class"},{"name":"SyntaxStageKeys","href":"Hi.NcParsers.Syntaxs.SyntaxStageKeys.html","topicHref":"Hi.NcParsers.Syntaxs.SyntaxStageKeys.html","topicUid":"Hi.NcParsers.Syntaxs.SyntaxStageKeys","type":"Class"},{"name":"SyntecSyntaxUtil","href":"Hi.NcParsers.Syntaxs.SyntecSyntaxUtil.html","topicHref":"Hi.NcParsers.Syntaxs.SyntecSyntaxUtil.html","topicUid":"Hi.NcParsers.Syntaxs.SyntecSyntaxUtil","type":"Class"},{"name":"TagValue","href":"Hi.NcParsers.Syntaxs.TagValue.html","topicHref":"Hi.NcParsers.Syntaxs.TagValue.html","topicUid":"Hi.NcParsers.Syntaxs.TagValue","type":"Class"},{"name":"TransformationUtil","href":"Hi.NcParsers.Syntaxs.TransformationUtil.html","topicHref":"Hi.NcParsers.Syntaxs.TransformationUtil.html","topicUid":"Hi.NcParsers.Syntaxs.TransformationUtil","type":"Class"}]},{"name":"Hi.Numerical","href":"Hi.Numerical.html","topicHref":"Hi.Numerical.html","topicUid":"Hi.Numerical","type":"Namespace","items":[{"name":"CncBrand","href":"Hi.Numerical.CncBrand.html","topicHref":"Hi.Numerical.CncBrand.html","topicUid":"Hi.Numerical.CncBrand","type":"Enum"},{"name":"CommentMark","href":"Hi.Numerical.CommentMark.html","topicHref":"Hi.Numerical.CommentMark.html","topicUid":"Hi.Numerical.CommentMark","type":"Enum"},{"name":"CoolantMode","href":"Hi.Numerical.CoolantMode.html","topicHref":"Hi.Numerical.CoolantMode.html","topicUid":"Hi.Numerical.CoolantMode","type":"Enum"},{"name":"CoordinateInterpolationMode","href":"Hi.Numerical.CoordinateInterpolationMode.html","topicHref":"Hi.Numerical.CoordinateInterpolationMode.html","topicUid":"Hi.Numerical.CoordinateInterpolationMode","type":"Enum"},{"name":"FlexDictionaryUtil","href":"Hi.Numerical.FlexDictionaryUtil.html","topicHref":"Hi.Numerical.FlexDictionaryUtil.html","topicUid":"Hi.Numerical.FlexDictionaryUtil","type":"Class"},{"name":"HardNcComment","href":"Hi.Numerical.HardNcComment.html","topicHref":"Hi.Numerical.HardNcComment.html","topicUid":"Hi.Numerical.HardNcComment","type":"Class"},{"name":"HardNcEnv","href":"Hi.Numerical.HardNcEnv.html","topicHref":"Hi.Numerical.HardNcEnv.html","topicUid":"Hi.Numerical.HardNcEnv","type":"Class"},{"name":"HardNcLine","href":"Hi.Numerical.HardNcLine.html","topicHref":"Hi.Numerical.HardNcLine.html","topicUid":"Hi.Numerical.HardNcLine","type":"Class"},{"name":"HardNcUtil","href":"Hi.Numerical.HardNcUtil.html","topicHref":"Hi.Numerical.HardNcUtil.html","topicUid":"Hi.Numerical.HardNcUtil","type":"Class"},{"name":"HeidenhainCoordinateEntryDisplayee","href":"Hi.Numerical.HeidenhainCoordinateEntryDisplayee.html","topicHref":"Hi.Numerical.HeidenhainCoordinateEntryDisplayee.html","topicUid":"Hi.Numerical.HeidenhainCoordinateEntryDisplayee","type":"Class"},{"name":"IControlRunner","href":"Hi.Numerical.IControlRunner.html","topicHref":"Hi.Numerical.IControlRunner.html","topicUid":"Hi.Numerical.IControlRunner","type":"Interface"},{"name":"IFlexDictionaryHost","href":"Hi.Numerical.IFlexDictionaryHost-1.html","topicHref":"Hi.Numerical.IFlexDictionaryHost-1.html","topicUid":"Hi.Numerical.IFlexDictionaryHost`1","type":"Interface"},{"name":"IGetFeedrate","href":"Hi.Numerical.IGetFeedrate.html","topicHref":"Hi.Numerical.IGetFeedrate.html","topicUid":"Hi.Numerical.IGetFeedrate","type":"Interface"},{"name":"IGetSpindleSpeed","href":"Hi.Numerical.IGetSpindleSpeed.html","topicHref":"Hi.Numerical.IGetSpindleSpeed.html","topicUid":"Hi.Numerical.IGetSpindleSpeed","type":"Interface"},{"name":"ISetFeedrate","href":"Hi.Numerical.ISetFeedrate.html","topicHref":"Hi.Numerical.ISetFeedrate.html","topicUid":"Hi.Numerical.ISetFeedrate","type":"Interface"},{"name":"ISetSpindleSpeed","href":"Hi.Numerical.ISetSpindleSpeed.html","topicHref":"Hi.Numerical.ISetSpindleSpeed.html","topicUid":"Hi.Numerical.ISetSpindleSpeed","type":"Interface"},{"name":"IsoCoordinateEntryDisplayee","href":"Hi.Numerical.IsoCoordinateEntryDisplayee.html","topicHref":"Hi.Numerical.IsoCoordinateEntryDisplayee.html","topicUid":"Hi.Numerical.IsoCoordinateEntryDisplayee","type":"Class"},{"name":"MechNcUtil","href":"Hi.Numerical.MechNcUtil.html","topicHref":"Hi.Numerical.MechNcUtil.html","topicUid":"Hi.Numerical.MechNcUtil","type":"Class"},{"name":"MillingToolOffsetTable","href":"Hi.Numerical.MillingToolOffsetTable.html","topicHref":"Hi.Numerical.MillingToolOffsetTable.html","topicUid":"Hi.Numerical.MillingToolOffsetTable","type":"Class"},{"name":"MillingToolOffsetTableRow","href":"Hi.Numerical.MillingToolOffsetTableRow.html","topicHref":"Hi.Numerical.MillingToolOffsetTableRow.html","topicUid":"Hi.Numerical.MillingToolOffsetTableRow","type":"Class"},{"name":"NcFlag","href":"Hi.Numerical.NcFlag.html","topicHref":"Hi.Numerical.NcFlag.html","topicUid":"Hi.Numerical.NcFlag","type":"Enum"},{"name":"NcFlagUtil","href":"Hi.Numerical.NcFlagUtil.html","topicHref":"Hi.Numerical.NcFlagUtil.html","topicUid":"Hi.Numerical.NcFlagUtil","type":"Class"},{"name":"NcGroup00","href":"Hi.Numerical.NcGroup00.html","topicHref":"Hi.Numerical.NcGroup00.html","topicUid":"Hi.Numerical.NcGroup00","type":"Enum"},{"name":"NcGroup01","href":"Hi.Numerical.NcGroup01.html","topicHref":"Hi.Numerical.NcGroup01.html","topicUid":"Hi.Numerical.NcGroup01","type":"Enum"},{"name":"NcGroup02","href":"Hi.Numerical.NcGroup02.html","topicHref":"Hi.Numerical.NcGroup02.html","topicUid":"Hi.Numerical.NcGroup02","type":"Enum"},{"name":"NcGroup03","href":"Hi.Numerical.NcGroup03.html","topicHref":"Hi.Numerical.NcGroup03.html","topicUid":"Hi.Numerical.NcGroup03","type":"Enum"},{"name":"NcGroup05","href":"Hi.Numerical.NcGroup05.html","topicHref":"Hi.Numerical.NcGroup05.html","topicUid":"Hi.Numerical.NcGroup05","type":"Enum"},{"name":"NcGroup06","href":"Hi.Numerical.NcGroup06.html","topicHref":"Hi.Numerical.NcGroup06.html","topicUid":"Hi.Numerical.NcGroup06","type":"Enum"},{"name":"NcGroup07","href":"Hi.Numerical.NcGroup07.html","topicHref":"Hi.Numerical.NcGroup07.html","topicUid":"Hi.Numerical.NcGroup07","type":"Enum"},{"name":"NcGroup08","href":"Hi.Numerical.NcGroup08.html","topicHref":"Hi.Numerical.NcGroup08.html","topicUid":"Hi.Numerical.NcGroup08","type":"Enum"},{"name":"NcGroup09","href":"Hi.Numerical.NcGroup09.html","topicHref":"Hi.Numerical.NcGroup09.html","topicUid":"Hi.Numerical.NcGroup09","type":"Enum"},{"name":"NcGroup10","href":"Hi.Numerical.NcGroup10.html","topicHref":"Hi.Numerical.NcGroup10.html","topicUid":"Hi.Numerical.NcGroup10","type":"Enum"},{"name":"NcGroup13","href":"Hi.Numerical.NcGroup13.html","topicHref":"Hi.Numerical.NcGroup13.html","topicUid":"Hi.Numerical.NcGroup13","type":"Enum"},{"name":"NcGroup14","href":"Hi.Numerical.NcGroup14.html","topicHref":"Hi.Numerical.NcGroup14.html","topicUid":"Hi.Numerical.NcGroup14","type":"Enum"},{"name":"NcGroup15","href":"Hi.Numerical.NcGroup15.html","topicHref":"Hi.Numerical.NcGroup15.html","topicUid":"Hi.Numerical.NcGroup15","type":"Enum"},{"name":"NcGroup16","href":"Hi.Numerical.NcGroup16.html","topicHref":"Hi.Numerical.NcGroup16.html","topicUid":"Hi.Numerical.NcGroup16","type":"Enum"},{"name":"NcGroup21","href":"Hi.Numerical.NcGroup21.html","topicHref":"Hi.Numerical.NcGroup21.html","topicUid":"Hi.Numerical.NcGroup21","type":"Enum"},{"name":"NcGroupAttribute","href":"Hi.Numerical.NcGroupAttribute.html","topicHref":"Hi.Numerical.NcGroupAttribute.html","topicUid":"Hi.Numerical.NcGroupAttribute","type":"Class"},{"name":"NcGroupHeidenhainM107M108","href":"Hi.Numerical.NcGroupHeidenhainM107M108.html","topicHref":"Hi.Numerical.NcGroupHeidenhainM107M108.html","topicUid":"Hi.Numerical.NcGroupHeidenhainM107M108","type":"Enum"},{"name":"NcGroupHeidenhainPlane","href":"Hi.Numerical.NcGroupHeidenhainPlane.html","topicHref":"Hi.Numerical.NcGroupHeidenhainPlane.html","topicUid":"Hi.Numerical.NcGroupHeidenhainPlane","type":"Enum"},{"name":"NcGroupHeidenhainShortestRotaryPath","href":"Hi.Numerical.NcGroupHeidenhainShortestRotaryPath.html","topicHref":"Hi.Numerical.NcGroupHeidenhainShortestRotaryPath.html","topicUid":"Hi.Numerical.NcGroupHeidenhainShortestRotaryPath","type":"Enum"},{"name":"NcGroupSpindleRotation","href":"Hi.Numerical.NcGroupSpindleRotation.html","topicHref":"Hi.Numerical.NcGroupSpindleRotation.html","topicUid":"Hi.Numerical.NcGroupSpindleRotation","type":"Enum"},{"name":"NcLifeCycleAttribute","href":"Hi.Numerical.NcLifeCycleAttribute.html","topicHref":"Hi.Numerical.NcLifeCycleAttribute.html","topicUid":"Hi.Numerical.NcLifeCycleAttribute","type":"Class"},{"name":"NcLifeCycleMode","href":"Hi.Numerical.NcLifeCycleMode.html","topicHref":"Hi.Numerical.NcLifeCycleMode.html","topicUid":"Hi.Numerical.NcLifeCycleMode","type":"Enum"},{"name":"NcNameAttribute","href":"Hi.Numerical.NcNameAttribute.html","topicHref":"Hi.Numerical.NcNameAttribute.html","topicUid":"Hi.Numerical.NcNameAttribute","type":"Class"},{"name":"NcNoteCache","href":"Hi.Numerical.NcNoteCache.html","topicHref":"Hi.Numerical.NcNoteCache.html","topicUid":"Hi.Numerical.NcNoteCache","type":"Class"},{"name":"NcProc","href":"Hi.Numerical.NcProc.html","topicHref":"Hi.Numerical.NcProc.html","topicUid":"Hi.Numerical.NcProc","type":"Class"},{"name":"NcWarningSceneEnum","href":"Hi.Numerical.NcWarningSceneEnum.html","topicHref":"Hi.Numerical.NcWarningSceneEnum.html","topicUid":"Hi.Numerical.NcWarningSceneEnum","type":"Enum"},{"name":"NumericUtil","href":"Hi.Numerical.NumericUtil.html","topicHref":"Hi.Numerical.NumericUtil.html","topicUid":"Hi.Numerical.NumericUtil","type":"Class"},{"name":"PolarEntry","href":"Hi.Numerical.PolarEntry.html","topicHref":"Hi.Numerical.PolarEntry.html","topicUid":"Hi.Numerical.PolarEntry","type":"Class"},{"name":"RadiusCompensationBuf","href":"Hi.Numerical.RadiusCompensationBuf.html","topicHref":"Hi.Numerical.RadiusCompensationBuf.html","topicUid":"Hi.Numerical.RadiusCompensationBuf","type":"Class"},{"name":"SourcedActEntry","href":"Hi.Numerical.SourcedActEntry.html","topicHref":"Hi.Numerical.SourcedActEntry.html","topicUid":"Hi.Numerical.SourcedActEntry","type":"Class"},{"name":"SpindleDirection","href":"Hi.Numerical.SpindleDirection.html","topicHref":"Hi.Numerical.SpindleDirection.html","topicUid":"Hi.Numerical.SpindleDirection","type":"Enum"},{"name":"SubStringKit","href":"Hi.Numerical.SubStringKit.html","topicHref":"Hi.Numerical.SubStringKit.html","topicUid":"Hi.Numerical.SubStringKit","type":"Class"},{"name":"SubStringKit.ActivationMode","href":"Hi.Numerical.SubStringKit.ActivationMode.html","topicHref":"Hi.Numerical.SubStringKit.ActivationMode.html","topicUid":"Hi.Numerical.SubStringKit.ActivationMode","type":"Enum"},{"name":"ToolConfigNotFoundException","href":"Hi.Numerical.ToolConfigNotFoundException.html","topicHref":"Hi.Numerical.ToolConfigNotFoundException.html","topicUid":"Hi.Numerical.ToolConfigNotFoundException","type":"Class"}]},{"name":"Hi.Numerical.Acts","href":"Hi.Numerical.Acts.html","topicHref":"Hi.Numerical.Acts.html","topicUid":"Hi.Numerical.Acts","type":"Namespace","items":[{"name":"ActActualTime","href":"Hi.Numerical.Acts.ActActualTime.html","topicHref":"Hi.Numerical.Acts.ActActualTime.html","topicUid":"Hi.Numerical.Acts.ActActualTime","type":"Class"},{"name":"ActClArc","href":"Hi.Numerical.Acts.ActClArc.html","topicHref":"Hi.Numerical.Acts.ActClArc.html","topicUid":"Hi.Numerical.Acts.ActClArc","type":"Class"},{"name":"ActClDerivedMcXyzabcContour","href":"Hi.Numerical.Acts.ActClDerivedMcXyzabcContour.html","topicHref":"Hi.Numerical.Acts.ActClDerivedMcXyzabcContour.html","topicUid":"Hi.Numerical.Acts.ActClDerivedMcXyzabcContour","type":"Class"},{"name":"ActClLinear","href":"Hi.Numerical.Acts.ActClLinear.html","topicHref":"Hi.Numerical.Acts.ActClLinear.html","topicUid":"Hi.Numerical.Acts.ActClLinear","type":"Class"},{"name":"ActClStep","href":"Hi.Numerical.Acts.ActClStep.html","topicHref":"Hi.Numerical.Acts.ActClStep.html","topicUid":"Hi.Numerical.Acts.ActClStep","type":"Class"},{"name":"ActClTeleport","href":"Hi.Numerical.Acts.ActClTeleport.html","topicHref":"Hi.Numerical.Acts.ActClTeleport.html","topicUid":"Hi.Numerical.Acts.ActClTeleport","type":"Class"},{"name":"ActCooling","href":"Hi.Numerical.Acts.ActCooling.html","topicHref":"Hi.Numerical.Acts.ActCooling.html","topicUid":"Hi.Numerical.Acts.ActCooling","type":"Class"},{"name":"ActData","href":"Hi.Numerical.Acts.ActData.html","topicHref":"Hi.Numerical.Acts.ActData.html","topicUid":"Hi.Numerical.Acts.ActData","type":"Class"},{"name":"ActDelay","href":"Hi.Numerical.Acts.ActDelay.html","topicHref":"Hi.Numerical.Acts.ActDelay.html","topicUid":"Hi.Numerical.Acts.ActDelay","type":"Class"},{"name":"ActFeedrate","href":"Hi.Numerical.Acts.ActFeedrate.html","topicHref":"Hi.Numerical.Acts.ActFeedrate.html","topicUid":"Hi.Numerical.Acts.ActFeedrate","type":"Class"},{"name":"ActHiddenStateChanged","href":"Hi.Numerical.Acts.ActHiddenStateChanged.html","topicHref":"Hi.Numerical.Acts.ActHiddenStateChanged.html","topicUid":"Hi.Numerical.Acts.ActHiddenStateChanged","type":"Class"},{"name":"ActIntentionalSkip","href":"Hi.Numerical.Acts.ActIntentionalSkip.html","topicHref":"Hi.Numerical.Acts.ActIntentionalSkip.html","topicUid":"Hi.Numerical.Acts.ActIntentionalSkip","type":"Class"},{"name":"ActLineBegin","href":"Hi.Numerical.Acts.ActLineBegin.html","topicHref":"Hi.Numerical.Acts.ActLineBegin.html","topicUid":"Hi.Numerical.Acts.ActLineBegin","type":"Class"},{"name":"ActLineCsScript","href":"Hi.Numerical.Acts.ActLineCsScript.html","topicHref":"Hi.Numerical.Acts.ActLineCsScript.html","topicUid":"Hi.Numerical.Acts.ActLineCsScript","type":"Class"},{"name":"ActLineEnd","href":"Hi.Numerical.Acts.ActLineEnd.html","topicHref":"Hi.Numerical.Acts.ActLineEnd.html","topicUid":"Hi.Numerical.Acts.ActLineEnd","type":"Class"},{"name":"ActMcPolarLinearContour","href":"Hi.Numerical.Acts.ActMcPolarLinearContour.html","topicHref":"Hi.Numerical.Acts.ActMcPolarLinearContour.html","topicUid":"Hi.Numerical.Acts.ActMcPolarLinearContour","type":"Class"},{"name":"ActMcXyzLinearContour","href":"Hi.Numerical.Acts.ActMcXyzLinearContour.html","topicHref":"Hi.Numerical.Acts.ActMcXyzLinearContour.html","topicUid":"Hi.Numerical.Acts.ActMcXyzLinearContour","type":"Class"},{"name":"ActMcXyzSpiralContour","href":"Hi.Numerical.Acts.ActMcXyzSpiralContour.html","topicHref":"Hi.Numerical.Acts.ActMcXyzSpiralContour.html","topicUid":"Hi.Numerical.Acts.ActMcXyzSpiralContour","type":"Class"},{"name":"ActMcXyzStep","href":"Hi.Numerical.Acts.ActMcXyzStep.html","topicHref":"Hi.Numerical.Acts.ActMcXyzStep.html","topicUid":"Hi.Numerical.Acts.ActMcXyzStep","type":"Class"},{"name":"ActMcXyzabcLinearContour","href":"Hi.Numerical.Acts.ActMcXyzabcLinearContour.html","topicHref":"Hi.Numerical.Acts.ActMcXyzabcLinearContour.html","topicUid":"Hi.Numerical.Acts.ActMcXyzabcLinearContour","type":"Class"},{"name":"ActMcXyzabcStep","href":"Hi.Numerical.Acts.ActMcXyzabcStep.html","topicHref":"Hi.Numerical.Acts.ActMcXyzabcStep.html","topicUid":"Hi.Numerical.Acts.ActMcXyzabcStep","type":"Class"},{"name":"ActRapid","href":"Hi.Numerical.Acts.ActRapid.html","topicHref":"Hi.Numerical.Acts.ActRapid.html","topicUid":"Hi.Numerical.Acts.ActRapid","type":"Class"},{"name":"ActSpindleDirection","href":"Hi.Numerical.Acts.ActSpindleDirection.html","topicHref":"Hi.Numerical.Acts.ActSpindleDirection.html","topicUid":"Hi.Numerical.Acts.ActSpindleDirection","type":"Class"},{"name":"ActSpindleOrientation","href":"Hi.Numerical.Acts.ActSpindleOrientation.html","topicHref":"Hi.Numerical.Acts.ActSpindleOrientation.html","topicUid":"Hi.Numerical.Acts.ActSpindleOrientation","type":"Class"},{"name":"ActSpindleSpeed","href":"Hi.Numerical.Acts.ActSpindleSpeed.html","topicHref":"Hi.Numerical.Acts.ActSpindleSpeed.html","topicUid":"Hi.Numerical.Acts.ActSpindleSpeed","type":"Class"},{"name":"ActToolingStep","href":"Hi.Numerical.Acts.ActToolingStep.html","topicHref":"Hi.Numerical.Acts.ActToolingStep.html","topicUid":"Hi.Numerical.Acts.ActToolingStep","type":"Class"},{"name":"ActToolingTeleport","href":"Hi.Numerical.Acts.ActToolingTeleport.html","topicHref":"Hi.Numerical.Acts.ActToolingTeleport.html","topicUid":"Hi.Numerical.Acts.ActToolingTeleport","type":"Class"},{"name":"ActUnknownSkip","href":"Hi.Numerical.Acts.ActUnknownSkip.html","topicHref":"Hi.Numerical.Acts.ActUnknownSkip.html","topicUid":"Hi.Numerical.Acts.ActUnknownSkip","type":"Class"},{"name":"ActUtil","href":"Hi.Numerical.Acts.ActUtil.html","topicHref":"Hi.Numerical.Acts.ActUtil.html","topicUid":"Hi.Numerical.Acts.ActUtil","type":"Class"},{"name":"IAct","href":"Hi.Numerical.Acts.IAct.html","topicHref":"Hi.Numerical.Acts.IAct.html","topicUid":"Hi.Numerical.Acts.IAct","type":"Interface"},{"name":"IActClMove","href":"Hi.Numerical.Acts.IActClMove.html","topicHref":"Hi.Numerical.Acts.IActClMove.html","topicUid":"Hi.Numerical.Acts.IActClMove","type":"Interface"},{"name":"IActDuration","href":"Hi.Numerical.Acts.IActDuration.html","topicHref":"Hi.Numerical.Acts.IActDuration.html","topicUid":"Hi.Numerical.Acts.IActDuration","type":"Interface"},{"name":"IActMachineStep","href":"Hi.Numerical.Acts.IActMachineStep.html","topicHref":"Hi.Numerical.Acts.IActMachineStep.html","topicUid":"Hi.Numerical.Acts.IActMachineStep","type":"Interface"},{"name":"IActMcXyzContour","href":"Hi.Numerical.Acts.IActMcXyzContour.html","topicHref":"Hi.Numerical.Acts.IActMcXyzContour.html","topicUid":"Hi.Numerical.Acts.IActMcXyzContour","type":"Interface"},{"name":"IActMcXyzabcContour","href":"Hi.Numerical.Acts.IActMcXyzabcContour.html","topicHref":"Hi.Numerical.Acts.IActMcXyzabcContour.html","topicUid":"Hi.Numerical.Acts.IActMcXyzabcContour","type":"Interface"},{"name":"IActSkip","href":"Hi.Numerical.Acts.IActSkip.html","topicHref":"Hi.Numerical.Acts.IActSkip.html","topicUid":"Hi.Numerical.Acts.IActSkip","type":"Interface"},{"name":"IActTooling","href":"Hi.Numerical.Acts.IActTooling.html","topicHref":"Hi.Numerical.Acts.IActTooling.html","topicUid":"Hi.Numerical.Acts.IActTooling","type":"Interface"},{"name":"IWorkTimeAttrib","href":"Hi.Numerical.Acts.IWorkTimeAttrib.html","topicHref":"Hi.Numerical.Acts.IWorkTimeAttrib.html","topicUid":"Hi.Numerical.Acts.IWorkTimeAttrib","type":"Interface"},{"name":"IWorkTimeGetter","href":"Hi.Numerical.Acts.IWorkTimeGetter.html","topicHref":"Hi.Numerical.Acts.IWorkTimeGetter.html","topicUid":"Hi.Numerical.Acts.IWorkTimeGetter","type":"Interface"},{"name":"IWorkTimeSetter","href":"Hi.Numerical.Acts.IWorkTimeSetter.html","topicHref":"Hi.Numerical.Acts.IWorkTimeSetter.html","topicUid":"Hi.Numerical.Acts.IWorkTimeSetter","type":"Interface"},{"name":"StateActRunner","href":"Hi.Numerical.Acts.StateActRunner.html","topicHref":"Hi.Numerical.Acts.StateActRunner.html","topicUid":"Hi.Numerical.Acts.StateActRunner","type":"Class"}]},{"name":"Hi.Numerical.Args","href":"Hi.Numerical.Args.html","topicHref":"Hi.Numerical.Args.html","topicUid":"Hi.Numerical.Args","type":"Namespace","items":[{"name":"OrthogonalPlaneFlag","href":"Hi.Numerical.Args.OrthogonalPlaneFlag.html","topicHref":"Hi.Numerical.Args.OrthogonalPlaneFlag.html","topicUid":"Hi.Numerical.Args.OrthogonalPlaneFlag","type":"Enum"},{"name":"PolarModeDirEnum","href":"Hi.Numerical.Args.PolarModeDirEnum.html","topicHref":"Hi.Numerical.Args.PolarModeDirEnum.html","topicUid":"Hi.Numerical.Args.PolarModeDirEnum","type":"Enum"}]},{"name":"Hi.Numerical.CsvParsers","href":"Hi.Numerical.CsvParsers.html","topicHref":"Hi.Numerical.CsvParsers.html","topicUid":"Hi.Numerical.CsvParsers","type":"Namespace","items":[{"name":"CsvRowSemantic","href":"Hi.Numerical.CsvParsers.CsvRowSemantic.html","topicHref":"Hi.Numerical.CsvParsers.CsvRowSemantic.html","topicUid":"Hi.Numerical.CsvParsers.CsvRowSemantic","type":"Class"},{"name":"CsvRowSyntax","href":"Hi.Numerical.CsvParsers.CsvRowSyntax.html","topicHref":"Hi.Numerical.CsvParsers.CsvRowSyntax.html","topicUid":"Hi.Numerical.CsvParsers.CsvRowSyntax","type":"Class"},{"name":"CsvRunnerConfig","href":"Hi.Numerical.CsvParsers.CsvRunnerConfig.html","topicHref":"Hi.Numerical.CsvParsers.CsvRunnerConfig.html","topicUid":"Hi.Numerical.CsvParsers.CsvRunnerConfig","type":"Class"},{"name":"CsvSegmenter","href":"Hi.Numerical.CsvParsers.CsvSegmenter.html","topicHref":"Hi.Numerical.CsvParsers.CsvSegmenter.html","topicUid":"Hi.Numerical.CsvParsers.CsvSegmenter","type":"Class"},{"name":"CsvSoftRunner","href":"Hi.Numerical.CsvParsers.CsvSoftRunner.html","topicHref":"Hi.Numerical.CsvParsers.CsvSoftRunner.html","topicUid":"Hi.Numerical.CsvParsers.CsvSoftRunner","type":"Class"}]},{"name":"Hi.Numerical.FilePlayers","href":"Hi.Numerical.FilePlayers.html","topicHref":"Hi.Numerical.FilePlayers.html","topicUid":"Hi.Numerical.FilePlayers","type":"Namespace","items":[{"name":"CsvRunner","href":"Hi.Numerical.FilePlayers.CsvRunner.html","topicHref":"Hi.Numerical.FilePlayers.CsvRunner.html","topicUid":"Hi.Numerical.FilePlayers.CsvRunner","type":"Class"},{"name":"HardNcRunner","href":"Hi.Numerical.FilePlayers.HardNcRunner.html","topicHref":"Hi.Numerical.FilePlayers.HardNcRunner.html","topicUid":"Hi.Numerical.FilePlayers.HardNcRunner","type":"Class"}]},{"name":"Hi.Numerical.MachiningMotionResolutionUtils","href":"Hi.Numerical.MachiningMotionResolutionUtils.html","topicHref":"Hi.Numerical.MachiningMotionResolutionUtils.html","topicUid":"Hi.Numerical.MachiningMotionResolutionUtils","type":"Namespace","items":[{"name":"FeedPerCycleMachiningMotionResolution","href":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerCycleMachiningMotionResolution.html","topicHref":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerCycleMachiningMotionResolution.html","topicUid":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerCycleMachiningMotionResolution","type":"Class"},{"name":"FeedPerToothMachiningMotionResolution","href":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerToothMachiningMotionResolution.html","topicHref":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerToothMachiningMotionResolution.html","topicUid":"Hi.Numerical.MachiningMotionResolutionUtils.FeedPerToothMachiningMotionResolution","type":"Class"},{"name":"FixedMachiningMotionResolution","href":"Hi.Numerical.MachiningMotionResolutionUtils.FixedMachiningMotionResolution.html","topicHref":"Hi.Numerical.MachiningMotionResolutionUtils.FixedMachiningMotionResolution.html","topicUid":"Hi.Numerical.MachiningMotionResolutionUtils.FixedMachiningMotionResolution","type":"Class"},{"name":"IMachiningMotionResolution","href":"Hi.Numerical.MachiningMotionResolutionUtils.IMachiningMotionResolution.html","topicHref":"Hi.Numerical.MachiningMotionResolutionUtils.IMachiningMotionResolution.html","topicUid":"Hi.Numerical.MachiningMotionResolutionUtils.IMachiningMotionResolution","type":"Interface"}]},{"name":"Hi.Numerical.NcArgs","href":"Hi.Numerical.NcArgs.html","topicHref":"Hi.Numerical.NcArgs.html","topicUid":"Hi.Numerical.NcArgs","type":"Namespace","items":[{"name":"ArcNcArg","href":"Hi.Numerical.NcArgs.ArcNcArg.html","topicHref":"Hi.Numerical.NcArgs.ArcNcArg.html","topicUid":"Hi.Numerical.NcArgs.ArcNcArg","type":"Class"},{"name":"G28Arg","href":"Hi.Numerical.NcArgs.G28Arg.html","topicHref":"Hi.Numerical.NcArgs.G28Arg.html","topicUid":"Hi.Numerical.NcArgs.G28Arg","type":"Class"},{"name":"Group07NcArg","href":"Hi.Numerical.NcArgs.Group07NcArg.html","topicHref":"Hi.Numerical.NcArgs.Group07NcArg.html","topicUid":"Hi.Numerical.NcArgs.Group07NcArg","type":"Class"},{"name":"Group09NcArg","href":"Hi.Numerical.NcArgs.Group09NcArg.html","topicHref":"Hi.Numerical.NcArgs.Group09NcArg.html","topicUid":"Hi.Numerical.NcArgs.Group09NcArg","type":"Class"},{"name":"HeidenhainCycleDef7Arg","href":"Hi.Numerical.NcArgs.HeidenhainCycleDef7Arg.html","topicHref":"Hi.Numerical.NcArgs.HeidenhainCycleDef7Arg.html","topicUid":"Hi.Numerical.NcArgs.HeidenhainCycleDef7Arg","type":"Class"},{"name":"HeidenhainPlaneSpatialArg","href":"Hi.Numerical.NcArgs.HeidenhainPlaneSpatialArg.html","topicHref":"Hi.Numerical.NcArgs.HeidenhainPlaneSpatialArg.html","topicUid":"Hi.Numerical.NcArgs.HeidenhainPlaneSpatialArg","type":"Class"},{"name":"IHeidenhainBlockCacheArg","href":"Hi.Numerical.NcArgs.IHeidenhainBlockCacheArg.html","topicHref":"Hi.Numerical.NcArgs.IHeidenhainBlockCacheArg.html","topicUid":"Hi.Numerical.NcArgs.IHeidenhainBlockCacheArg","type":"Interface"},{"name":"IHeidenhainPlaneArg","href":"Hi.Numerical.NcArgs.IHeidenhainPlaneArg.html","topicHref":"Hi.Numerical.NcArgs.IHeidenhainPlaneArg.html","topicUid":"Hi.Numerical.NcArgs.IHeidenhainPlaneArg","type":"Interface"},{"name":"ITiltPlaneNcArg","href":"Hi.Numerical.NcArgs.ITiltPlaneNcArg.html","topicHref":"Hi.Numerical.NcArgs.ITiltPlaneNcArg.html","topicUid":"Hi.Numerical.NcArgs.ITiltPlaneNcArg","type":"Interface"},{"name":"NcArgCycle800","href":"Hi.Numerical.NcArgs.NcArgCycle800.html","topicHref":"Hi.Numerical.NcArgs.NcArgCycle800.html","topicUid":"Hi.Numerical.NcArgs.NcArgCycle800","type":"Class"},{"name":"NcArgG68","href":"Hi.Numerical.NcArgs.NcArgG68.html","topicHref":"Hi.Numerical.NcArgs.NcArgG68.html","topicUid":"Hi.Numerical.NcArgs.NcArgG68","type":"Class"},{"name":"NcArgG68p2","href":"Hi.Numerical.NcArgs.NcArgG68p2.html","topicHref":"Hi.Numerical.NcArgs.NcArgG68p2.html","topicUid":"Hi.Numerical.NcArgs.NcArgG68p2","type":"Class"},{"name":"NcArgSiemensFrame","href":"Hi.Numerical.NcArgs.NcArgSiemensFrame.html","topicHref":"Hi.Numerical.NcArgs.NcArgSiemensFrame.html","topicUid":"Hi.Numerical.NcArgs.NcArgSiemensFrame","type":"Class"},{"name":"PausingNcArg","href":"Hi.Numerical.NcArgs.PausingNcArg.html","topicHref":"Hi.Numerical.NcArgs.PausingNcArg.html","topicUid":"Hi.Numerical.NcArgs.PausingNcArg","type":"Class"}]},{"name":"Hi.Numerical.StepSelectionUtils","href":"Hi.Numerical.StepSelectionUtils.html","topicHref":"Hi.Numerical.StepSelectionUtils.html","topicUid":"Hi.Numerical.StepSelectionUtils","type":"Namespace","items":[{"name":"AnchorMode","href":"Hi.Numerical.StepSelectionUtils.AnchorMode.html","topicHref":"Hi.Numerical.StepSelectionUtils.AnchorMode.html","topicUid":"Hi.Numerical.StepSelectionUtils.AnchorMode","type":"Enum"},{"name":"BoundSelector","href":"Hi.Numerical.StepSelectionUtils.BoundSelector.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelector.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelector","type":"Class"},{"name":"BoundSelectorHost","href":"Hi.Numerical.StepSelectionUtils.BoundSelectorHost.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelectorHost.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelectorHost","type":"Class"},{"name":"BoundSelectorPair","href":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair","type":"Class"},{"name":"BoundSelectorPair.BoundLocale","href":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair.BoundLocale.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair.BoundLocale.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelectorPair.BoundLocale","type":"Enum"},{"name":"BoundSelectorStepSectionBundle","href":"Hi.Numerical.StepSelectionUtils.BoundSelectorStepSectionBundle.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelectorStepSectionBundle.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelectorStepSectionBundle","type":"Class"},{"name":"BoundSelectorUtil","href":"Hi.Numerical.StepSelectionUtils.BoundSelectorUtil.html","topicHref":"Hi.Numerical.StepSelectionUtils.BoundSelectorUtil.html","topicUid":"Hi.Numerical.StepSelectionUtils.BoundSelectorUtil","type":"Class"},{"name":"DistanceShift","href":"Hi.Numerical.StepSelectionUtils.DistanceShift.html","topicHref":"Hi.Numerical.StepSelectionUtils.DistanceShift.html","topicUid":"Hi.Numerical.StepSelectionUtils.DistanceShift","type":"Class"},{"name":"IStepShift","href":"Hi.Numerical.StepSelectionUtils.IStepShift.html","topicHref":"Hi.Numerical.StepSelectionUtils.IStepShift.html","topicUid":"Hi.Numerical.StepSelectionUtils.IStepShift","type":"Interface"},{"name":"TimeShift","href":"Hi.Numerical.StepSelectionUtils.TimeShift.html","topicHref":"Hi.Numerical.StepSelectionUtils.TimeShift.html","topicUid":"Hi.Numerical.StepSelectionUtils.TimeShift","type":"Class"}]},{"name":"Hi.Numerical.Xyzabc","href":"Hi.Numerical.Xyzabc.html","topicHref":"Hi.Numerical.Xyzabc.html","topicUid":"Hi.Numerical.Xyzabc","type":"Namespace","items":[{"name":"Abc","href":"Hi.Numerical.Xyzabc.Abc.html","topicHref":"Hi.Numerical.Xyzabc.Abc.html","topicUid":"Hi.Numerical.Xyzabc.Abc","type":"Struct"},{"name":"CodeXyzabcChain","href":"Hi.Numerical.Xyzabc.CodeXyzabcChain.html","topicHref":"Hi.Numerical.Xyzabc.CodeXyzabcChain.html","topicUid":"Hi.Numerical.Xyzabc.CodeXyzabcChain","type":"Class"},{"name":"GeneralXyzabcChain","href":"Hi.Numerical.Xyzabc.GeneralXyzabcChain.html","topicHref":"Hi.Numerical.Xyzabc.GeneralXyzabcChain.html","topicUid":"Hi.Numerical.Xyzabc.GeneralXyzabcChain","type":"Class"},{"name":"IGetMcXyzabc","href":"Hi.Numerical.Xyzabc.IGetMcXyzabc.html","topicHref":"Hi.Numerical.Xyzabc.IGetMcXyzabc.html","topicUid":"Hi.Numerical.Xyzabc.IGetMcXyzabc","type":"Interface"},{"name":"IGetXyzabcChain","href":"Hi.Numerical.Xyzabc.IGetXyzabcChain.html","topicHref":"Hi.Numerical.Xyzabc.IGetXyzabcChain.html","topicUid":"Hi.Numerical.Xyzabc.IGetXyzabcChain","type":"Interface"},{"name":"IMachineKinematics","href":"Hi.Numerical.Xyzabc.IMachineKinematics.html","topicHref":"Hi.Numerical.Xyzabc.IMachineKinematics.html","topicUid":"Hi.Numerical.Xyzabc.IMachineKinematics","type":"Interface"},{"name":"ISetMcXyzabc","href":"Hi.Numerical.Xyzabc.ISetMcXyzabc.html","topicHref":"Hi.Numerical.Xyzabc.ISetMcXyzabc.html","topicUid":"Hi.Numerical.Xyzabc.ISetMcXyzabc","type":"Interface"},{"name":"IXyzabcChain","href":"Hi.Numerical.Xyzabc.IXyzabcChain.html","topicHref":"Hi.Numerical.Xyzabc.IXyzabcChain.html","topicUid":"Hi.Numerical.Xyzabc.IXyzabcChain","type":"Interface"},{"name":"ReflectedXyzabcChain","href":"Hi.Numerical.Xyzabc.ReflectedXyzabcChain.html","topicHref":"Hi.Numerical.Xyzabc.ReflectedXyzabcChain.html","topicUid":"Hi.Numerical.Xyzabc.ReflectedXyzabcChain","type":"Class"},{"name":"XyzabcSolver","href":"Hi.Numerical.Xyzabc.XyzabcSolver.html","topicHref":"Hi.Numerical.Xyzabc.XyzabcSolver.html","topicUid":"Hi.Numerical.Xyzabc.XyzabcSolver","type":"Class"},{"name":"XyzabcUtil","href":"Hi.Numerical.Xyzabc.XyzabcUtil.html","topicHref":"Hi.Numerical.Xyzabc.XyzabcUtil.html","topicUid":"Hi.Numerical.Xyzabc.XyzabcUtil","type":"Class"}]},{"name":"Hi.PanelModels","href":"Hi.PanelModels.html","topicHref":"Hi.PanelModels.html","topicUid":"Hi.PanelModels","type":"Namespace","items":[{"name":"HiKey","href":"Hi.PanelModels.HiKey.html","topicHref":"Hi.PanelModels.HiKey.html","topicUid":"Hi.PanelModels.HiKey","type":"Enum"},{"name":"HiKeyEvent","href":"Hi.PanelModels.HiKeyEvent.html","topicHref":"Hi.PanelModels.HiKeyEvent.html","topicUid":"Hi.PanelModels.HiKeyEvent","type":"Class"},{"name":"HiModifierKeys","href":"Hi.PanelModels.HiModifierKeys.html","topicHref":"Hi.PanelModels.HiModifierKeys.html","topicUid":"Hi.PanelModels.HiModifierKeys","type":"Enum"},{"name":"HiMouseButton","href":"Hi.PanelModels.HiMouseButton.html","topicHref":"Hi.PanelModels.HiMouseButton.html","topicUid":"Hi.PanelModels.HiMouseButton","type":"Enum"},{"name":"HiMouseButtonEvent","href":"Hi.PanelModels.HiMouseButtonEvent.html","topicHref":"Hi.PanelModels.HiMouseButtonEvent.html","topicUid":"Hi.PanelModels.HiMouseButtonEvent","type":"Class"},{"name":"HiMouseButtonMask","href":"Hi.PanelModels.HiMouseButtonMask.html","topicHref":"Hi.PanelModels.HiMouseButtonMask.html","topicUid":"Hi.PanelModels.HiMouseButtonMask","type":"Enum"},{"name":"HiMouseButtonMaskUtil","href":"Hi.PanelModels.HiMouseButtonMaskUtil.html","topicHref":"Hi.PanelModels.HiMouseButtonMaskUtil.html","topicUid":"Hi.PanelModels.HiMouseButtonMaskUtil","type":"Class"},{"name":"HiMouseMoveEvent","href":"Hi.PanelModels.HiMouseMoveEvent.html","topicHref":"Hi.PanelModels.HiMouseMoveEvent.html","topicUid":"Hi.PanelModels.HiMouseMoveEvent","type":"Class"},{"name":"HiMouseWheelEvent","href":"Hi.PanelModels.HiMouseWheelEvent.html","topicHref":"Hi.PanelModels.HiMouseWheelEvent.html","topicUid":"Hi.PanelModels.HiMouseWheelEvent","type":"Class"},{"name":"PanelModel","href":"Hi.PanelModels.PanelModel.html","topicHref":"Hi.PanelModels.PanelModel.html","topicUid":"Hi.PanelModels.PanelModel","type":"Class"}]},{"name":"Hi.Parallels","href":"Hi.Parallels.html","topicHref":"Hi.Parallels.html","topicUid":"Hi.Parallels","type":"Namespace","items":[{"name":"CurrentThreadTaskScheduler","href":"Hi.Parallels.CurrentThreadTaskScheduler.html","topicHref":"Hi.Parallels.CurrentThreadTaskScheduler.html","topicUid":"Hi.Parallels.CurrentThreadTaskScheduler","type":"Class"},{"name":"DistributedQueueTaskScheduler","href":"Hi.Parallels.DistributedQueueTaskScheduler.html","topicHref":"Hi.Parallels.DistributedQueueTaskScheduler.html","topicUid":"Hi.Parallels.DistributedQueueTaskScheduler","type":"Class"},{"name":"DistributedQueueTaskStarter","href":"Hi.Parallels.DistributedQueueTaskStarter.html","topicHref":"Hi.Parallels.DistributedQueueTaskStarter.html","topicUid":"Hi.Parallels.DistributedQueueTaskStarter","type":"Class"},{"name":"LockUtil","href":"Hi.Parallels.LockUtil.html","topicHref":"Hi.Parallels.LockUtil.html","topicUid":"Hi.Parallels.LockUtil","type":"Class"},{"name":"PriorityTaskScheduler","href":"Hi.Parallels.PriorityTaskScheduler.html","topicHref":"Hi.Parallels.PriorityTaskScheduler.html","topicUid":"Hi.Parallels.PriorityTaskScheduler","type":"Class"},{"name":"QueueTaskScheduler","href":"Hi.Parallels.QueueTaskScheduler.html","topicHref":"Hi.Parallels.QueueTaskScheduler.html","topicUid":"Hi.Parallels.QueueTaskScheduler","type":"Class"},{"name":"ReaderWriterLockUtil","href":"Hi.Parallels.ReaderWriterLockUtil.html","topicHref":"Hi.Parallels.ReaderWriterLockUtil.html","topicUid":"Hi.Parallels.ReaderWriterLockUtil","type":"Class"},{"name":"SemaphoreUtil","href":"Hi.Parallels.SemaphoreUtil.html","topicHref":"Hi.Parallels.SemaphoreUtil.html","topicUid":"Hi.Parallels.SemaphoreUtil","type":"Class"},{"name":"ThreadSafeSet","href":"Hi.Parallels.ThreadSafeSet-1.html","topicHref":"Hi.Parallels.ThreadSafeSet-1.html","topicUid":"Hi.Parallels.ThreadSafeSet`1","type":"Class"}]},{"name":"Hi.Physics","href":"Hi.Physics.html","topicHref":"Hi.Physics.html","topicUid":"Hi.Physics","type":"Namespace","items":[{"name":"AmpPhase","href":"Hi.Physics.AmpPhase.html","topicHref":"Hi.Physics.AmpPhase.html","topicUid":"Hi.Physics.AmpPhase","type":"Class"},{"name":"CoatingMaterial","href":"Hi.Physics.CoatingMaterial.html","topicHref":"Hi.Physics.CoatingMaterial.html","topicUid":"Hi.Physics.CoatingMaterial","type":"Class"},{"name":"CoolantHeatCondition","href":"Hi.Physics.CoolantHeatCondition.html","topicHref":"Hi.Physics.CoolantHeatCondition.html","topicUid":"Hi.Physics.CoolantHeatCondition","type":"Class"},{"name":"CutterMaterial","href":"Hi.Physics.CutterMaterial.html","topicHref":"Hi.Physics.CutterMaterial.html","topicUid":"Hi.Physics.CutterMaterial","type":"Class"},{"name":"IGetThermalLayerList","href":"Hi.Physics.IGetThermalLayerList.html","topicHref":"Hi.Physics.IGetThermalLayerList.html","topicUid":"Hi.Physics.IGetThermalLayerList","type":"Interface"},{"name":"IStructureMaterial","href":"Hi.Physics.IStructureMaterial.html","topicHref":"Hi.Physics.IStructureMaterial.html","topicUid":"Hi.Physics.IStructureMaterial","type":"Interface"},{"name":"ISuccessivePhysicsBriefAccessor","href":"Hi.Physics.ISuccessivePhysicsBriefAccessor.html","topicHref":"Hi.Physics.ISuccessivePhysicsBriefAccessor.html","topicUid":"Hi.Physics.ISuccessivePhysicsBriefAccessor","type":"Interface"},{"name":"ISurfaceMaterial","href":"Hi.Physics.ISurfaceMaterial.html","topicHref":"Hi.Physics.ISurfaceMaterial.html","topicUid":"Hi.Physics.ISurfaceMaterial","type":"Interface"},{"name":"ITimeGetter","href":"Hi.Physics.ITimeGetter.html","topicHref":"Hi.Physics.ITimeGetter.html","topicUid":"Hi.Physics.ITimeGetter","type":"Interface"},{"name":"MillingTemperatureUtil","href":"Hi.Physics.MillingTemperatureUtil.html","topicHref":"Hi.Physics.MillingTemperatureUtil.html","topicUid":"Hi.Physics.MillingTemperatureUtil","type":"Class"},{"name":"SeqPhysicsBrief","href":"Hi.Physics.SeqPhysicsBrief.html","topicHref":"Hi.Physics.SeqPhysicsBrief.html","topicUid":"Hi.Physics.SeqPhysicsBrief","type":"Class"},{"name":"StructureMaterial","href":"Hi.Physics.StructureMaterial.html","topicHref":"Hi.Physics.StructureMaterial.html","topicUid":"Hi.Physics.StructureMaterial","type":"Class"},{"name":"TemperatureUtil","href":"Hi.Physics.TemperatureUtil.html","topicHref":"Hi.Physics.TemperatureUtil.html","topicUid":"Hi.Physics.TemperatureUtil","type":"Class"},{"name":"TemperatureVsHardness","href":"Hi.Physics.TemperatureVsHardness.html","topicHref":"Hi.Physics.TemperatureVsHardness.html","topicUid":"Hi.Physics.TemperatureVsHardness","type":"Class"},{"name":"ThermalLayer1D","href":"Hi.Physics.ThermalLayer1D.html","topicHref":"Hi.Physics.ThermalLayer1D.html","topicUid":"Hi.Physics.ThermalLayer1D","type":"Class"},{"name":"TimeSeriesUtil","href":"Hi.Physics.TimeSeriesUtil.html","topicHref":"Hi.Physics.TimeSeriesUtil.html","topicUid":"Hi.Physics.TimeSeriesUtil","type":"Class"},{"name":"TimeValue","href":"Hi.Physics.TimeValue.html","topicHref":"Hi.Physics.TimeValue.html","topicUid":"Hi.Physics.TimeValue","type":"Class"},{"name":"WorkpieceMaterial","href":"Hi.Physics.WorkpieceMaterial.html","topicHref":"Hi.Physics.WorkpieceMaterial.html","topicUid":"Hi.Physics.WorkpieceMaterial","type":"Class"}]},{"name":"Hi.SessionCommands","href":"Hi.SessionCommands.html","topicHref":"Hi.SessionCommands.html","topicUid":"Hi.SessionCommands","type":"Namespace","items":[{"name":"EnablingWrapper","href":"Hi.SessionCommands.EnablingWrapper.html","topicHref":"Hi.SessionCommands.EnablingWrapper.html","topicUid":"Hi.SessionCommands.EnablingWrapper","type":"Class"},{"name":"GeomDiffCommand","href":"Hi.SessionCommands.GeomDiffCommand.html","topicHref":"Hi.SessionCommands.GeomDiffCommand.html","topicUid":"Hi.SessionCommands.GeomDiffCommand","type":"Class"},{"name":"ISessionCommand","href":"Hi.SessionCommands.ISessionCommand.html","topicHref":"Hi.SessionCommands.ISessionCommand.html","topicUid":"Hi.SessionCommands.ISessionCommand","type":"Interface"},{"name":"ITitleCommand","href":"Hi.SessionCommands.ITitleCommand.html","topicHref":"Hi.SessionCommands.ITitleCommand.html","topicUid":"Hi.SessionCommands.ITitleCommand","type":"Interface"},{"name":"Lang","href":"Hi.SessionCommands.Lang.html","topicHref":"Hi.SessionCommands.Lang.html","topicUid":"Hi.SessionCommands.Lang","type":"Class"},{"name":"ListCommand","href":"Hi.SessionCommands.ListCommand.html","topicHref":"Hi.SessionCommands.ListCommand.html","topicUid":"Hi.SessionCommands.ListCommand","type":"Class"},{"name":"MachiningMotionResolutionCommand","href":"Hi.SessionCommands.MachiningMotionResolutionCommand.html","topicHref":"Hi.SessionCommands.MachiningMotionResolutionCommand.html","topicUid":"Hi.SessionCommands.MachiningMotionResolutionCommand","type":"Class"},{"name":"NcCodeCommand","href":"Hi.SessionCommands.NcCodeCommand.html","topicHref":"Hi.SessionCommands.NcCodeCommand.html","topicUid":"Hi.SessionCommands.NcCodeCommand","type":"Class"},{"name":"NcFileCommand","href":"Hi.SessionCommands.NcFileCommand.html","topicHref":"Hi.SessionCommands.NcFileCommand.html","topicUid":"Hi.SessionCommands.NcFileCommand","type":"Class"},{"name":"NcFileListCommand","href":"Hi.SessionCommands.NcFileListCommand.html","topicHref":"Hi.SessionCommands.NcFileListCommand.html","topicUid":"Hi.SessionCommands.NcFileListCommand","type":"Class"},{"name":"NcOptOptionCommand","href":"Hi.SessionCommands.NcOptOptionCommand.html","topicHref":"Hi.SessionCommands.NcOptOptionCommand.html","topicUid":"Hi.SessionCommands.NcOptOptionCommand","type":"Class"},{"name":"OptimizeToFilesCommand","href":"Hi.SessionCommands.OptimizeToFilesCommand.html","topicHref":"Hi.SessionCommands.OptimizeToFilesCommand.html","topicUid":"Hi.SessionCommands.OptimizeToFilesCommand","type":"Class"},{"name":"PostExecutionCommand","href":"Hi.SessionCommands.PostExecutionCommand.html","topicHref":"Hi.SessionCommands.PostExecutionCommand.html","topicUid":"Hi.SessionCommands.PostExecutionCommand","type":"Class"},{"name":"PreSettingCommand","href":"Hi.SessionCommands.PreSettingCommand.html","topicHref":"Hi.SessionCommands.PreSettingCommand.html","topicUid":"Hi.SessionCommands.PreSettingCommand","type":"Class"},{"name":"RecordRuntimeGeomActionEnum","href":"Hi.SessionCommands.RecordRuntimeGeomActionEnum.html","topicHref":"Hi.SessionCommands.RecordRuntimeGeomActionEnum.html","topicUid":"Hi.SessionCommands.RecordRuntimeGeomActionEnum","type":"Enum"},{"name":"RecordRuntimeGeomCommand","href":"Hi.SessionCommands.RecordRuntimeGeomCommand.html","topicHref":"Hi.SessionCommands.RecordRuntimeGeomCommand.html","topicUid":"Hi.SessionCommands.RecordRuntimeGeomCommand","type":"Class"},{"name":"ScriptCommand","href":"Hi.SessionCommands.ScriptCommand.html","topicHref":"Hi.SessionCommands.ScriptCommand.html","topicUid":"Hi.SessionCommands.ScriptCommand","type":"Class"},{"name":"SimpleSessionCommand","href":"Hi.SessionCommands.SimpleSessionCommand.html","topicHref":"Hi.SessionCommands.SimpleSessionCommand.html","topicUid":"Hi.SessionCommands.SimpleSessionCommand","type":"Class"},{"name":"WriteRuntimeGeomToStlCommand","href":"Hi.SessionCommands.WriteRuntimeGeomToStlCommand.html","topicHref":"Hi.SessionCommands.WriteRuntimeGeomToStlCommand.html","topicUid":"Hi.SessionCommands.WriteRuntimeGeomToStlCommand","type":"Class"},{"name":"WriteShotFilesCommand","href":"Hi.SessionCommands.WriteShotFilesCommand.html","topicHref":"Hi.SessionCommands.WriteShotFilesCommand.html","topicUid":"Hi.SessionCommands.WriteShotFilesCommand","type":"Class"},{"name":"WriteStepFilesCommand","href":"Hi.SessionCommands.WriteStepFilesCommand.html","topicHref":"Hi.SessionCommands.WriteStepFilesCommand.html","topicUid":"Hi.SessionCommands.WriteStepFilesCommand","type":"Class"}]},{"name":"Hi.SessionShellUtils","href":"Hi.SessionShellUtils.html","topicHref":"Hi.SessionShellUtils.html","topicUid":"Hi.SessionShellUtils","type":"Namespace","items":[{"name":"ISessionShell","href":"Hi.SessionShellUtils.ISessionShell.html","topicHref":"Hi.SessionShellUtils.ISessionShell.html","topicUid":"Hi.SessionShellUtils.ISessionShell","type":"Interface"},{"name":"JsAceAttribute","href":"Hi.SessionShellUtils.JsAceAttribute.html","topicHref":"Hi.SessionShellUtils.JsAceAttribute.html","topicUid":"Hi.SessionShellUtils.JsAceAttribute","type":"Class"}]},{"name":"Hi.SqliteUtils","href":"Hi.SqliteUtils.html","topicHref":"Hi.SqliteUtils.html","topicUid":"Hi.SqliteUtils","type":"Namespace","items":[{"name":"SqliteIdentityRole","href":"Hi.SqliteUtils.SqliteIdentityRole.html","topicHref":"Hi.SqliteUtils.SqliteIdentityRole.html","topicUid":"Hi.SqliteUtils.SqliteIdentityRole","type":"Class"},{"name":"SqliteIdentityStorage","href":"Hi.SqliteUtils.SqliteIdentityStorage.html","topicHref":"Hi.SqliteUtils.SqliteIdentityStorage.html","topicUid":"Hi.SqliteUtils.SqliteIdentityStorage","type":"Class"},{"name":"SqliteIdentityStorage.RoleRow","href":"Hi.SqliteUtils.SqliteIdentityStorage.RoleRow.html","topicHref":"Hi.SqliteUtils.SqliteIdentityStorage.RoleRow.html","topicUid":"Hi.SqliteUtils.SqliteIdentityStorage.RoleRow","type":"Class"},{"name":"SqliteIdentityStorage.UserRow","href":"Hi.SqliteUtils.SqliteIdentityStorage.UserRow.html","topicHref":"Hi.SqliteUtils.SqliteIdentityStorage.UserRow.html","topicUid":"Hi.SqliteUtils.SqliteIdentityStorage.UserRow","type":"Class"},{"name":"SqliteIdentityUser","href":"Hi.SqliteUtils.SqliteIdentityUser.html","topicHref":"Hi.SqliteUtils.SqliteIdentityUser.html","topicUid":"Hi.SqliteUtils.SqliteIdentityUser","type":"Class"},{"name":"SqliteRoleStore","href":"Hi.SqliteUtils.SqliteRoleStore-1.html","topicHref":"Hi.SqliteUtils.SqliteRoleStore-1.html","topicUid":"Hi.SqliteUtils.SqliteRoleStore`1","type":"Class"},{"name":"SqliteStepStorage","href":"Hi.SqliteUtils.SqliteStepStorage.html","topicHref":"Hi.SqliteUtils.SqliteStepStorage.html","topicUid":"Hi.SqliteUtils.SqliteStepStorage","type":"Class"},{"name":"SqliteStepStorage.MillingStepLuggageRow","href":"Hi.SqliteUtils.SqliteStepStorage.MillingStepLuggageRow.html","topicHref":"Hi.SqliteUtils.SqliteStepStorage.MillingStepLuggageRow.html","topicUid":"Hi.SqliteUtils.SqliteStepStorage.MillingStepLuggageRow","type":"Class"},{"name":"SqliteUserStore","href":"Hi.SqliteUtils.SqliteUserStore-1.html","topicHref":"Hi.SqliteUtils.SqliteUserStore-1.html","topicUid":"Hi.SqliteUtils.SqliteUserStore`1","type":"Class"}]},{"name":"Hi.Test","href":"Hi.Test.html","topicHref":"Hi.Test.html","topicUid":"Hi.Test","type":"Namespace","items":[{"name":"TestCollision","href":"Hi.Test.TestCollision.html","topicHref":"Hi.Test.TestCollision.html","topicUid":"Hi.Test.TestCollision","type":"Class"}]},{"name":"Hi.UiExtensions","href":"Hi.UiExtensions.html","topicHref":"Hi.UiExtensions.html","topicUid":"Hi.UiExtensions","type":"Namespace","items":[{"name":"ChartBoundary","href":"Hi.UiExtensions.ChartBoundary.html","topicHref":"Hi.UiExtensions.ChartBoundary.html","topicUid":"Hi.UiExtensions.ChartBoundary","type":"Class"},{"name":"ChartBoundaryEnum","href":"Hi.UiExtensions.ChartBoundaryEnum.html","topicHref":"Hi.UiExtensions.ChartBoundaryEnum.html","topicUid":"Hi.UiExtensions.ChartBoundaryEnum","type":"Enum"},{"name":"NativeVisibility","href":"Hi.UiExtensions.NativeVisibility.html","topicHref":"Hi.UiExtensions.NativeVisibility.html","topicUid":"Hi.UiExtensions.NativeVisibility","type":"Enum"},{"name":"UiUtil","href":"Hi.UiExtensions.UiUtil.html","topicHref":"Hi.UiExtensions.UiUtil.html","topicUid":"Hi.UiExtensions.UiUtil","type":"Class"},{"name":"UiUtil.InvokeFunc","href":"Hi.UiExtensions.UiUtil.InvokeFunc.html","topicHref":"Hi.UiExtensions.UiUtil.InvokeFunc.html","topicUid":"Hi.UiExtensions.UiUtil.InvokeFunc","type":"Delegate"}]},{"name":"Hi.UniversalNc","href":"Hi.UniversalNc.html","topicHref":"Hi.UniversalNc.html","topicUid":"Hi.UniversalNc","type":"Namespace","items":[{"name":"Lang","href":"Hi.UniversalNc.Lang.html","topicHref":"Hi.UniversalNc.Lang.html","topicUid":"Hi.UniversalNc.Lang","type":"Class"}]},{"name":"Hi.Vibrations","href":"Hi.Vibrations.html","topicHref":"Hi.Vibrations.html","topicUid":"Hi.Vibrations","type":"Namespace","items":[{"name":"AngularVelocityUtil","href":"Hi.Vibrations.AngularVelocityUtil.html","topicHref":"Hi.Vibrations.AngularVelocityUtil.html","topicUid":"Hi.Vibrations.AngularVelocityUtil","type":"Class"},{"name":"ForceAccelAmpPhase","href":"Hi.Vibrations.ForceAccelAmpPhase.html","topicHref":"Hi.Vibrations.ForceAccelAmpPhase.html","topicUid":"Hi.Vibrations.ForceAccelAmpPhase","type":"Class"},{"name":"ForceAccelFourierSeries","href":"Hi.Vibrations.ForceAccelFourierSeries.html","topicHref":"Hi.Vibrations.ForceAccelFourierSeries.html","topicUid":"Hi.Vibrations.ForceAccelFourierSeries","type":"Class"},{"name":"ForceAccelShot","href":"Hi.Vibrations.ForceAccelShot.html","topicHref":"Hi.Vibrations.ForceAccelShot.html","topicUid":"Hi.Vibrations.ForceAccelShot","type":"Class"},{"name":"ForceAccelUtil","href":"Hi.Vibrations.ForceAccelUtil.html","topicHref":"Hi.Vibrations.ForceAccelUtil.html","topicUid":"Hi.Vibrations.ForceAccelUtil","type":"Class"},{"name":"IAngularVelocityOwner","href":"Hi.Vibrations.IAngularVelocityOwner.html","topicHref":"Hi.Vibrations.IAngularVelocityOwner.html","topicUid":"Hi.Vibrations.IAngularVelocityOwner","type":"Interface"},{"name":"VibrationUtil","href":"Hi.Vibrations.VibrationUtil.html","topicHref":"Hi.Vibrations.VibrationUtil.html","topicUid":"Hi.Vibrations.VibrationUtil","type":"Class"},{"name":"WAmpPhase","href":"Hi.Vibrations.WAmpPhase.html","topicHref":"Hi.Vibrations.WAmpPhase.html","topicUid":"Hi.Vibrations.WAmpPhase","type":"Class"},{"name":"WAmpPhaseXyzTransformation","href":"Hi.Vibrations.WAmpPhaseXyzTransformation.html","topicHref":"Hi.Vibrations.WAmpPhaseXyzTransformation.html","topicUid":"Hi.Vibrations.WAmpPhaseXyzTransformation","type":"Class"}]},{"name":"Hi.WinForm.Disp","href":"Hi.WinForm.Disp.html","topicHref":"Hi.WinForm.Disp.html","topicUid":"Hi.WinForm.Disp","type":"Namespace","items":[{"name":"RenderingCanvas","href":"Hi.WinForm.Disp.RenderingCanvas.html","topicHref":"Hi.WinForm.Disp.RenderingCanvas.html","topicUid":"Hi.WinForm.Disp.RenderingCanvas","type":"Class"},{"name":"RenderingForm","href":"Hi.WinForm.Disp.RenderingForm.html","topicHref":"Hi.WinForm.Disp.RenderingForm.html","topicUid":"Hi.WinForm.Disp.RenderingForm","type":"Class"}]},{"name":"Hi.WpfPlus.Disp","href":"Hi.WpfPlus.Disp.html","topicHref":"Hi.WpfPlus.Disp.html","topicUid":"Hi.WpfPlus.Disp","type":"Namespace","items":[{"name":"RenderingCanvas","href":"Hi.WpfPlus.Disp.RenderingCanvas.html","topicHref":"Hi.WpfPlus.Disp.RenderingCanvas.html","topicUid":"Hi.WpfPlus.Disp.RenderingCanvas","type":"Class"},{"name":"RenderingWindow","href":"Hi.WpfPlus.Disp.RenderingWindow.html","topicHref":"Hi.WpfPlus.Disp.RenderingWindow.html","topicUid":"Hi.WpfPlus.Disp.RenderingWindow","type":"Class"},{"name":"WpfDispUtil","href":"Hi.WpfPlus.Disp.WpfDispUtil.html","topicHref":"Hi.WpfPlus.Disp.WpfDispUtil.html","topicUid":"Hi.WpfPlus.Disp.WpfDispUtil","type":"Class"}]},{"name":"HiMachining.Milling","href":"HiMachining.Milling.html","topicHref":"HiMachining.Milling.html","topicUid":"HiMachining.Milling","type":"Namespace","items":[{"name":"ClMillingDevice","href":"HiMachining.Milling.ClMillingDevice.html","topicHref":"HiMachining.Milling.ClMillingDevice.html","topicUid":"HiMachining.Milling.ClMillingDevice","type":"Class"}]}],"memberLayout":"SamePage"} diff --git a/App/wwwroot/HiAPI-docsite/app-anatomy/geom/cylindroid-control.html b/App/wwwroot/HiAPI-docsite/app-anatomy/geom/cylindroid-control.html index bec6b658..bd5fa803 100644 --- a/App/wwwroot/HiAPI-docsite/app-anatomy/geom/cylindroid-control.html +++ b/App/wwwroot/HiAPI-docsite/app-anatomy/geom/cylindroid-control.html @@ -109,9 +109,11 @@
  • Geom/CylindroidControl
  • Web Service Application Source Code Path

    +

    HiNC-2025-webservice (Quasar CLI SPA):

      -
    • wwwroot/geom/cylindroid-control.js
    • -
    • Geom/CylindroidHub.cs
    • +
    • wwwroot-src/src/components/geom/CylindroidEditor.vue — reusable Z-R pair editor (add / remove / edit); edits the cylindroid by IndexService key and emits changed so the owner can resync.
    • +
    • wwwroot-src/src/api/geometry.ts — Cylindroid API wrappers.
    • +
    • Geom/CylindroidController.cs — REST endpoints at /api/Cylindroid/* (Get / GetPairCount / GetPairAt / UpdatePairAt / UpdateAllPairs / AddPair / RemovePairAt / SortByZ).
    diff --git a/App/wwwroot/HiAPI-docsite/app-anatomy/mech/holder/cylindroid-holder-panel.html b/App/wwwroot/HiAPI-docsite/app-anatomy/mech/holder/cylindroid-holder-panel.html index 4d63204b..94c60c4c 100644 --- a/App/wwwroot/HiAPI-docsite/app-anatomy/mech/holder/cylindroid-holder-panel.html +++ b/App/wwwroot/HiAPI-docsite/app-anatomy/mech/holder/cylindroid-holder-panel.html @@ -127,9 +127,11 @@ Model: Web Page Application Source Code Path +

    HiNC-2025-webservice (Quasar CLI SPA):

      -
    • wwwroot/mech/holder/cylindroid-holder-panel.js
    • -
    • Controller/Mech/MechController.cs
    • +
    • wwwroot-src/src/components/toolhouse/CylindroidHolderEditor.vue — holder-aware editor with Geometry / Resolution / Info tabs; wraps the reusable CylindroidEditor.vue and triggers the holder resync after geometry / resolution edits.
    • +
    • wwwroot-src/src/api/cylindroidHolder.ts — typed wrapper over CylindroidHolderController.
    • +
    • Mech/CylindroidHolderController.cs — REST endpoints at /api/CylindroidHolder/*: GET Get (+ indexes the holder's Cylindroid for the generic Cylindroid editor), POST UpdateGeometryContent | SetName | SetNote | SetPolarResolution. UpdateGeometryContent performs the resync (UpdateByCylindroid() + ClearCache()).
    diff --git a/App/wwwroot/HiAPI-docsite/app-anatomy/mech/holder/freeform-holder-panel.html b/App/wwwroot/HiAPI-docsite/app-anatomy/mech/holder/freeform-holder-panel.html index 110f9c8b..d0098d6d 100644 --- a/App/wwwroot/HiAPI-docsite/app-anatomy/mech/holder/freeform-holder-panel.html +++ b/App/wwwroot/HiAPI-docsite/app-anatomy/mech/holder/freeform-holder-panel.html @@ -134,10 +134,7 @@ Model:
    Web Page Application Source Code Path -
      -
    • wwwroot/mech/holder/freeform-holder-panel.js
    • -
    • Controller/Mech/MechController.cs
    • -
    +

    HiNC-2025-webservice (Quasar CLI SPA): not yet ported — FreeformHolder geometry / transformer editing is deferred (see Tool House Page). Existing FreeformHolder objects are preserved; edit via the WPF client or HiNcRcl in the meantime. When ported, it should follow CylindroidHolderEditor.vue + a FreeformHolderController (calling UpdateByGeom() for the resync).

    diff --git a/App/wwwroot/HiAPI-docsite/app-anatomy/mech/holder/index.html b/App/wwwroot/HiAPI-docsite/app-anatomy/mech/holder/index.html index 7163bd83..6d9db984 100644 --- a/App/wwwroot/HiAPI-docsite/app-anatomy/mech/holder/index.html +++ b/App/wwwroot/HiAPI-docsite/app-anatomy/mech/holder/index.html @@ -130,9 +130,10 @@ The content varied by the Holder Type.
  • Mech/ToolHouse/HolderPanel
  • Web Page Application Source Code Path

    +

    HiNC-2025-webservice (Quasar CLI SPA):

      -
    • wwwroot/mech/holder/holder-panel.js
    • -
    • Controller/Mech/MechController.cs
    • +
    • wwwroot-src/src/components/toolhouse/HolderPanel.vue — Holder Type selector that dispatches to a per-type editor component (e.g. CylindroidHolderEditor.vue); Freeform editing is not yet ported.
    • +
    • Mech/ToolHouseController.csPOST SetHolderType, GET GetHolder (returns holder type + abstract note). Per-holder-type editing lives in the dedicated holder controllers.
    diff --git a/App/wwwroot/HiAPI-docsite/app-anatomy/mech/tool-house-page.html b/App/wwwroot/HiAPI-docsite/app-anatomy/mech/tool-house-page.html index ac3cf8f3..52096acf 100644 --- a/App/wwwroot/HiAPI-docsite/app-anatomy/mech/tool-house-page.html +++ b/App/wwwroot/HiAPI-docsite/app-anatomy/mech/tool-house-page.html @@ -223,10 +223,13 @@ Visible if Web Service Application Source Code Path -
      -
    • wwwroot/widget/polar-resolution-2d-panel.js
    • -
    +

    HiNC-2025-webservice (Quasar CLI SPA): no standalone widget yet — the resolution is edited inline in the owning holder editor's Resolution tab (e.g. wwwroot-src/src/components/toolhouse/CylindroidHolderEditor.vue) and persisted through that holder's controller (e.g. CylindroidHolderController.SetPolarResolution).

    diff --git a/App/wwwroot/HiAPI-docsite/index.json b/App/wwwroot/HiAPI-docsite/index.json index 36855656..8462d1ec 100644 --- a/App/wwwroot/HiAPI-docsite/index.json +++ b/App/wwwroot/HiAPI-docsite/index.json @@ -472,7 +472,7 @@ "api/Hi.Common.CsvUtils.CsvInputKit.html": { "href": "api/Hi.Common.CsvUtils.CsvInputKit.html", "title": "Class CsvInputKit | HiAPI-C# 2025", - "summary": "Class CsvInputKit Namespace Hi.Common.CsvUtils Assembly HiGeom.dll Utility class for parsing and processing CSV input data. public class CsvInputKit Inheritance object CsvInputKit Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors CsvInputKit() Initializes a new instance of the CsvInputKit class. public CsvInputKit() Properties TitleLine Gets or sets the CSV header line as a comma-separated string. public string TitleLine { get; set; } Property Value string TitleList Gets or sets the list of column titles from the CSV header. public List TitleList { get; set; } Property Value List TypeDictionary Dictionary mapping type names to their corresponding Type objects. public Dictionary TypeDictionary { get; } Property Value Dictionary Methods GetCsvDictionary(string) Creates a dictionary from a CSV row, mapping column titles to their values. The row should not be the header line, and TitleLine or TitleList must be set first. public Dictionary GetCsvDictionary(string row) Parameters row string The CSV row to process Returns Dictionary A dictionary mapping column titles to their values" + "summary": "Class CsvInputKit Namespace Hi.Common.CsvUtils Assembly HiGeom.dll Utility class for parsing and processing CSV input data. public class CsvInputKit Inheritance object CsvInputKit Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors CsvInputKit() Initializes a new instance of the CsvInputKit class. public CsvInputKit() Properties TitleLine Gets or sets the CSV header line as a comma-separated string. public string TitleLine { get; set; } Property Value string TitleList Gets or sets the list of column titles from the CSV header. public List TitleList { get; set; } Property Value List TypeDictionary Dictionary mapping type names to their corresponding Type objects. public Dictionary TypeDictionary { get; } Property Value Dictionary Methods GetCsvDictionary(IList, string) Splits a CSV row into a title→cell dictionary. Stateless allocation-light variant of GetCsvDictionary(string); use this when the caller already has the title list and does not need to hold a CsvInputKit instance. public static Dictionary GetCsvDictionary(IList titleList, string row) Parameters titleList IList Column titles, in CSV column order. row string CSV data row (not the header line). Returns Dictionary Dictionary keyed by column title; cells past titleList are keyed by column[i]. GetCsvDictionary(string) Creates a dictionary from a CSV row, mapping column titles to their values. The row should not be the header line, and TitleLine or TitleList must be set first. public Dictionary GetCsvDictionary(string row) Parameters row string The CSV row to process Returns Dictionary A dictionary mapping column titles to their values" }, "api/Hi.Common.CsvUtils.CsvOutputKit.html": { "href": "api/Hi.Common.CsvUtils.CsvOutputKit.html", @@ -1749,66 +1749,6 @@ "title": "Namespace Hi.Geom | HiAPI-C# 2025", "summary": "Namespace Hi.Geom Classes ArrayUtil Utility class for array operations. AxisAngle4d Axis(3d) and angle(1d) Box2d Lightweight 2d box. An orthogonal box which the edges are all parallel with Cartesian Coordinate. The data contains in a Box2d is Min and Max. Box2d.NoInit Flag for calling Box2d(NoInit). Box3d Lightweight 3d box. An orthogonal box which the edges are all parallel with Cartesian Coordinate. The data contains in a Box3d is Min and Max. Box3d.NoInit Flag for calling Box3d(NoInit). Cylindroid 3d Geometry of Cylindroid. DVec3d Dual Vec3d with p(Vec3d) and n(Vec3d). ExtendedCylinder An extensible cylinder geometry that generates a corresponding Cylindroid by the start section and the total length. Flat3d Represents a 3D plane defined by a unit normal vector and its signed distance from the origin. The plane equation is: Ax + By + Cz + d = 0, where (A,B,C) is the normal vector and d is the distance to origin. GeomCombination A class that manages multiple STL sources as a single source. GeomUtil Utility of Geometry. Mat4d 4x4 Matrix. MathNetUtil Utility class for MathNet.Numerics operations. MathUtil Math Utility. NativeFraction Native wrapper for C++ fraction_t<0> (unlimited precision fraction). A fraction consists of a numerator and denominator using unlimited precision integers. NativeStl Native Stl. For purpose of efficient swept volume. NativeTopoStld Native TopoStl with element type double. NativeTopoStlfr Native TopoStl with element type fraction. ObjUtil Wavefront OBJ writer for RGB-coloured triangle buffers. PairZr Value pair of Z and R. PairZrUtil Utility class for working with PairZr objects PlyUtil Stanford PLY writer for RGB-coloured triangle buffers. Polar3d Represents a point in 3D space using polar coordinates Segment3d Represents a 3D line segment defined by two endpoints. Stl STL (stereolithography). Composed by Triangles. Provide Stl File R/W. StlFile Represents an STL file with loading and saving capabilities StlFuncHost A class that hosts a function to generate STL geometry. StlUtil Utility for Stl. TransformationGeom Represents a geometric transformation that can be applied to a geometry object. This class combines a transformer with a target geometry to produce transformed geometric results. Tri3d Basic 3D Triangle. Tri3dUtil Utility of Tri3d. Include generator of triangles from points. Vec2d Basic 2D point (or vector). Vec2i Basic 2D point (or vector). Vec3d Basic 3D point (or vector). Structs Fraction Pure C# unlimited precision fraction. Interfaces IExpandToBox2d Object that can be expanded to a Box2d. IExpandToBox3d Object that can be expanded to a Box3d. IFlat3d Interface for a 3D plane that provides an anchor point and a normal vector. IGenStl Interface for generating STL geometry with a resolution. IGeomProperty Interface for objects that have a geometry property. IGetStl Interface for retrieving STL geometry data. IGetZrContour Interface for retrieving Z-R contour data for rotational geometries. IGetZrList Interface for getting a list of Z-R pairs. IStlSource Stl provider with xml support. ITri3d Interface for 3D triangles. IVec Interface for vector types with generic element type. IZrListSourceProperty Provides a source for obtaining an IGetZrList. Enums Dir Enumeration of coordinate axis directions in 3D space. FractionStatus Status flags for Fraction and NativeFraction. Corresponds to IS_PACKED_MASK and IS_EVALUATED_MASK in C++ fraction_base_t. Mat4d.IndexFlag Specifies the indexing method for matrix construction from vectors. Stl.StlType Stl file format." }, - "api/Hi.Grpcs.ClStripService.ClStripServiceBase.html": { - "href": "api/Hi.Grpcs.ClStripService.ClStripServiceBase.html", - "title": "Class ClStripService.ClStripServiceBase | HiAPI-C# 2025", - "summary": "Class ClStripService.ClStripServiceBase Namespace Hi.Grpcs Assembly HiNc.dll Base class for server-side implementations of ClStripService [BindServiceMethod(typeof(ClStripService), \"BindService\")] public abstract class ClStripService.ClStripServiceBase Inheritance object ClStripService.ClStripServiceBase Derived ClStripServiceRunner Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Methods StepRan(Empty, IServerStreamWriter, ServerCallContext) data returned if step ran. public virtual Task StepRan(Empty request, IServerStreamWriter responseStream, ServerCallContext context) Parameters request Empty The request received from the client. responseStream IServerStreamWriter Used for sending responses back to the client. context ServerCallContext The context of the server-side call handler being invoked. Returns Task A task indicating completion of the handler. StepSelected(Empty, IServerStreamWriter, ServerCallContext) data returned if step selected. public virtual Task StepSelected(Empty request, IServerStreamWriter responseStream, ServerCallContext context) Parameters request Empty The request received from the client. responseStream IServerStreamWriter Used for sending responses back to the client. context ServerCallContext The context of the server-side call handler being invoked. Returns Task A task indicating completion of the handler." - }, - "api/Hi.Grpcs.ClStripService.ClStripServiceClient.html": { - "href": "api/Hi.Grpcs.ClStripService.ClStripServiceClient.html", - "title": "Class ClStripService.ClStripServiceClient | HiAPI-C# 2025", - "summary": "Class ClStripService.ClStripServiceClient Namespace Hi.Grpcs Assembly HiNc.dll Client for ClStripService public class ClStripService.ClStripServiceClient : ClientBase Inheritance object ClientBase ClientBase ClStripService.ClStripServiceClient Inherited Members ClientBase.WithHost(string) ClientBase.CallInvoker object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors ClStripServiceClient() Protected parameterless constructor to allow creation of test doubles. protected ClStripServiceClient() ClStripServiceClient(CallInvoker) Creates a new client for ClStripService that uses a custom CallInvoker. public ClStripServiceClient(CallInvoker callInvoker) Parameters callInvoker CallInvoker The callInvoker to use to make remote calls. ClStripServiceClient(ChannelBase) Creates a new client for ClStripService public ClStripServiceClient(ChannelBase channel) Parameters channel ChannelBase The channel to use to make remote calls. ClStripServiceClient(ClientBaseConfiguration) Protected constructor to allow creation of configured clients. protected ClStripServiceClient(ClientBase.ClientBaseConfiguration configuration) Parameters configuration ClientBase.ClientBaseConfiguration The client configuration. Methods NewInstance(ClientBaseConfiguration) Creates a new instance of client from given ClientBaseConfiguration. protected override ClStripService.ClStripServiceClient NewInstance(ClientBase.ClientBaseConfiguration configuration) Parameters configuration ClientBase.ClientBaseConfiguration Returns ClStripService.ClStripServiceClient StepRan(Empty, CallOptions) data returned if step ran. public virtual AsyncServerStreamingCall StepRan(Empty request, CallOptions options) Parameters request Empty The request to send to the server. options CallOptions The options for the call. Returns AsyncServerStreamingCall The call object. StepRan(Empty, Metadata, DateTime?, CancellationToken) data returned if step ran. public virtual AsyncServerStreamingCall StepRan(Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default) Parameters request Empty The request to send to the server. headers Metadata The initial metadata to send with the call. This parameter is optional. deadline DateTime? An optional deadline for the call. The call will be cancelled if deadline is hit. cancellationToken CancellationToken An optional token for canceling the call. Returns AsyncServerStreamingCall The call object. StepSelected(Empty, CallOptions) data returned if step selected. public virtual AsyncServerStreamingCall StepSelected(Empty request, CallOptions options) Parameters request Empty The request to send to the server. options CallOptions The options for the call. Returns AsyncServerStreamingCall The call object. StepSelected(Empty, Metadata, DateTime?, CancellationToken) data returned if step selected. public virtual AsyncServerStreamingCall StepSelected(Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default) Parameters request Empty The request to send to the server. headers Metadata The initial metadata to send with the call. This parameter is optional. deadline DateTime? An optional deadline for the call. The call will be cancelled if deadline is hit. cancellationToken CancellationToken An optional token for canceling the call. Returns AsyncServerStreamingCall The call object." - }, - "api/Hi.Grpcs.ClStripService.html": { - "href": "api/Hi.Grpcs.ClStripService.html", - "title": "Class ClStripService | HiAPI-C# 2025", - "summary": "Class ClStripService Namespace Hi.Grpcs Assembly HiNc.dll milling process service based on dictionary data type. public static class ClStripService Inheritance object ClStripService Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties Descriptor Service descriptor public static ServiceDescriptor Descriptor { get; } Property Value ServiceDescriptor Methods BindService(ServiceBinderBase, ClStripServiceBase) Register service method with a service binder with or without implementation. Useful when customizing the service binding logic. Note: this method is part of an experimental API that can change or be removed without any prior notice. public static void BindService(ServiceBinderBase serviceBinder, ClStripService.ClStripServiceBase serviceImpl) Parameters serviceBinder ServiceBinderBase Service methods will be bound by calling AddMethod on this object. serviceImpl ClStripService.ClStripServiceBase An object implementing the server-side handling logic. BindService(ClStripServiceBase) Creates service definition that can be registered with a server public static ServerServiceDefinition BindService(ClStripService.ClStripServiceBase serviceImpl) Parameters serviceImpl ClStripService.ClStripServiceBase An object implementing the server-side handling logic. Returns ServerServiceDefinition" - }, - "api/Hi.Grpcs.ClStripServiceReflection.html": { - "href": "api/Hi.Grpcs.ClStripServiceReflection.html", - "title": "Class ClStripServiceReflection | HiAPI-C# 2025", - "summary": "Class ClStripServiceReflection Namespace Hi.Grpcs Assembly HiNc.dll Holder for reflection information generated from Grpcs/ClStripService.proto public static class ClStripServiceReflection Inheritance object ClStripServiceReflection Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties Descriptor File descriptor for Grpcs/ClStripService.proto public static FileDescriptor Descriptor { get; } Property Value FileDescriptor" - }, - "api/Hi.Grpcs.ClStripServiceRunner.html": { - "href": "api/Hi.Grpcs.ClStripServiceRunner.html", - "title": "Class ClStripServiceRunner | HiAPI-C# 2025", - "summary": "Class ClStripServiceRunner Namespace Hi.Grpcs Assembly HiNc.dll Service runner for the ClStrip gRPC service. public class ClStripServiceRunner : ClStripService.ClStripServiceBase Inheritance object ClStripService.ClStripServiceBase ClStripServiceRunner Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors ClStripServiceRunner(LocalProjectService) Initializes a new instance of the ClStripServiceRunner class. public ClStripServiceRunner(LocalProjectService machiningProjectHost) Parameters machiningProjectHost LocalProjectService Function to provide access to the current MachiningProject instance Methods StepRan(Empty, IServerStreamWriter, ServerCallContext) Streams step data as steps are executed. public override Task StepRan(Empty request, IServerStreamWriter responseStream, ServerCallContext context) Parameters request Empty Empty request responseStream IServerStreamWriter Stream to write step data to context ServerCallContext Server call context Returns Task Task representing the asynchronous operation StepSelected(Empty, IServerStreamWriter, ServerCallContext) Streams step data when a step is selected in the UI. public override Task StepSelected(Empty request, IServerStreamWriter responseStream, ServerCallContext context) Parameters request Empty Empty request responseStream IServerStreamWriter Stream to write step data to context ServerCallContext Server call context Returns Task Task representing the asynchronous operation" - }, - "api/Hi.Grpcs.DictionaryStep.html": { - "href": "api/Hi.Grpcs.DictionaryStep.html", - "title": "Class DictionaryStep | HiAPI-C# 2025", - "summary": "Class DictionaryStep Namespace Hi.Grpcs Assembly HiNc.dll step which data type is dictionary public sealed class DictionaryStep : IMessage, IEquatable, IDeepCloneable, IBufferMessage, IMessage Inheritance object DictionaryStep Implements IMessage IEquatable IDeepCloneable IBufferMessage IMessage Inherited Members object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors DictionaryStep() public DictionaryStep() DictionaryStep(DictionaryStep) public DictionaryStep(DictionaryStep other) Parameters other DictionaryStep Fields DictionaryFieldNumber Field number for the “Dictionary” field. public const int DictionaryFieldNumber = 1 Field Value int Properties Descriptor public static MessageDescriptor Descriptor { get; } Property Value MessageDescriptor Dictionary all data in dictionary type. public MapField Dictionary { get; } Property Value MapField Parser public static MessageParser Parser { get; } Property Value MessageParser Methods CalculateSize() Calculates the size of this message in Protocol Buffer wire format, in bytes. public int CalculateSize() Returns int The number of bytes required to write this message to a coded output stream. Clone() Creates a deep clone of this object. public DictionaryStep Clone() Returns DictionaryStep A deep clone of this object. Equals(DictionaryStep) Indicates whether the current object is equal to another object of the same type. public bool Equals(DictionaryStep other) Parameters other DictionaryStep An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object other) Parameters other object Returns bool true if the specified object is equal to the current object; otherwise, false. GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. MergeFrom(CodedInputStream) Merges the data from the specified coded input stream with the current message. public void MergeFrom(CodedInputStream input) Parameters input CodedInputStream Remarks See the user guide for precise merge semantics. MergeFrom(DictionaryStep) Merges the given message into this one. public void MergeFrom(DictionaryStep other) Parameters other DictionaryStep Remarks See the user guide for precise merge semantics. ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. WriteTo(CodedOutputStream) Writes the data to the given coded output stream. public void WriteTo(CodedOutputStream output) Parameters output CodedOutputStream Coded output stream to write the data to. Must not be null." - }, - "api/Hi.Grpcs.PlayerService.PlayerServiceBase.html": { - "href": "api/Hi.Grpcs.PlayerService.PlayerServiceBase.html", - "title": "Class PlayerService.PlayerServiceBase | HiAPI-C# 2025", - "summary": "Class PlayerService.PlayerServiceBase Namespace Hi.Grpcs Assembly HiNc.dll Base class for server-side implementations of PlayerService [BindServiceMethod(typeof(PlayerService), \"BindService\")] public abstract class PlayerService.PlayerServiceBase Inheritance object PlayerService.PlayerServiceBase Derived PlayerServiceRunner Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Methods Pause(Empty, ServerCallContext) Pause file playing if playing; otherwise do nothing. public virtual Task Pause(Empty request, ServerCallContext context) Parameters request Empty The request received from the client. context ServerCallContext The context of the server-side call handler being invoked. Returns Task The response to send back to the client (wrapped by a task). Reset(Empty, ServerCallContext) Reset file player to the state as before running Start function. public virtual Task Reset(Empty request, ServerCallContext context) Parameters request Empty The request received from the client. context ServerCallContext The context of the server-side call handler being invoked. Returns Task The response to send back to the client (wrapped by a task). Resume(Empty, ServerCallContext) Resume file playing if paused; otherwise do nothing. public virtual Task Resume(Empty request, ServerCallContext context) Parameters request Empty The request received from the client. context ServerCallContext The context of the server-side call handler being invoked. Returns Task The response to send back to the client (wrapped by a task). Start(Empty, ServerCallContext) Start file playing. public virtual Task Start(Empty request, ServerCallContext context) Parameters request Empty The request received from the client. context ServerCallContext The context of the server-side call handler being invoked. Returns Task The response to send back to the client (wrapped by a task)." - }, - "api/Hi.Grpcs.PlayerService.PlayerServiceClient.html": { - "href": "api/Hi.Grpcs.PlayerService.PlayerServiceClient.html", - "title": "Class PlayerService.PlayerServiceClient | HiAPI-C# 2025", - "summary": "Class PlayerService.PlayerServiceClient Namespace Hi.Grpcs Assembly HiNc.dll Client for PlayerService public class PlayerService.PlayerServiceClient : ClientBase Inheritance object ClientBase ClientBase PlayerService.PlayerServiceClient Inherited Members ClientBase.WithHost(string) ClientBase.CallInvoker object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors PlayerServiceClient() Protected parameterless constructor to allow creation of test doubles. protected PlayerServiceClient() PlayerServiceClient(CallInvoker) Creates a new client for PlayerService that uses a custom CallInvoker. public PlayerServiceClient(CallInvoker callInvoker) Parameters callInvoker CallInvoker The callInvoker to use to make remote calls. PlayerServiceClient(ChannelBase) Creates a new client for PlayerService public PlayerServiceClient(ChannelBase channel) Parameters channel ChannelBase The channel to use to make remote calls. PlayerServiceClient(ClientBaseConfiguration) Protected constructor to allow creation of configured clients. protected PlayerServiceClient(ClientBase.ClientBaseConfiguration configuration) Parameters configuration ClientBase.ClientBaseConfiguration The client configuration. Methods NewInstance(ClientBaseConfiguration) Creates a new instance of client from given ClientBaseConfiguration. protected override PlayerService.PlayerServiceClient NewInstance(ClientBase.ClientBaseConfiguration configuration) Parameters configuration ClientBase.ClientBaseConfiguration Returns PlayerService.PlayerServiceClient Pause(Empty, CallOptions) Pause file playing if playing; otherwise do nothing. public virtual Empty Pause(Empty request, CallOptions options) Parameters request Empty The request to send to the server. options CallOptions The options for the call. Returns Empty The response received from the server. Pause(Empty, Metadata, DateTime?, CancellationToken) Pause file playing if playing; otherwise do nothing. public virtual Empty Pause(Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default) Parameters request Empty The request to send to the server. headers Metadata The initial metadata to send with the call. This parameter is optional. deadline DateTime? An optional deadline for the call. The call will be cancelled if deadline is hit. cancellationToken CancellationToken An optional token for canceling the call. Returns Empty The response received from the server. PauseAsync(Empty, CallOptions) Pause file playing if playing; otherwise do nothing. public virtual AsyncUnaryCall PauseAsync(Empty request, CallOptions options) Parameters request Empty The request to send to the server. options CallOptions The options for the call. Returns AsyncUnaryCall The call object. PauseAsync(Empty, Metadata, DateTime?, CancellationToken) Pause file playing if playing; otherwise do nothing. public virtual AsyncUnaryCall PauseAsync(Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default) Parameters request Empty The request to send to the server. headers Metadata The initial metadata to send with the call. This parameter is optional. deadline DateTime? An optional deadline for the call. The call will be cancelled if deadline is hit. cancellationToken CancellationToken An optional token for canceling the call. Returns AsyncUnaryCall The call object. Reset(Empty, CallOptions) Reset file player to the state as before running Start function. public virtual Empty Reset(Empty request, CallOptions options) Parameters request Empty The request to send to the server. options CallOptions The options for the call. Returns Empty The response received from the server. Reset(Empty, Metadata, DateTime?, CancellationToken) Reset file player to the state as before running Start function. public virtual Empty Reset(Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default) Parameters request Empty The request to send to the server. headers Metadata The initial metadata to send with the call. This parameter is optional. deadline DateTime? An optional deadline for the call. The call will be cancelled if deadline is hit. cancellationToken CancellationToken An optional token for canceling the call. Returns Empty The response received from the server. ResetAsync(Empty, CallOptions) Reset file player to the state as before running Start function. public virtual AsyncUnaryCall ResetAsync(Empty request, CallOptions options) Parameters request Empty The request to send to the server. options CallOptions The options for the call. Returns AsyncUnaryCall The call object. ResetAsync(Empty, Metadata, DateTime?, CancellationToken) Reset file player to the state as before running Start function. public virtual AsyncUnaryCall ResetAsync(Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default) Parameters request Empty The request to send to the server. headers Metadata The initial metadata to send with the call. This parameter is optional. deadline DateTime? An optional deadline for the call. The call will be cancelled if deadline is hit. cancellationToken CancellationToken An optional token for canceling the call. Returns AsyncUnaryCall The call object. Resume(Empty, CallOptions) Resume file playing if paused; otherwise do nothing. public virtual Empty Resume(Empty request, CallOptions options) Parameters request Empty The request to send to the server. options CallOptions The options for the call. Returns Empty The response received from the server. Resume(Empty, Metadata, DateTime?, CancellationToken) Resume file playing if paused; otherwise do nothing. public virtual Empty Resume(Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default) Parameters request Empty The request to send to the server. headers Metadata The initial metadata to send with the call. This parameter is optional. deadline DateTime? An optional deadline for the call. The call will be cancelled if deadline is hit. cancellationToken CancellationToken An optional token for canceling the call. Returns Empty The response received from the server. ResumeAsync(Empty, CallOptions) Resume file playing if paused; otherwise do nothing. public virtual AsyncUnaryCall ResumeAsync(Empty request, CallOptions options) Parameters request Empty The request to send to the server. options CallOptions The options for the call. Returns AsyncUnaryCall The call object. ResumeAsync(Empty, Metadata, DateTime?, CancellationToken) Resume file playing if paused; otherwise do nothing. public virtual AsyncUnaryCall ResumeAsync(Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default) Parameters request Empty The request to send to the server. headers Metadata The initial metadata to send with the call. This parameter is optional. deadline DateTime? An optional deadline for the call. The call will be cancelled if deadline is hit. cancellationToken CancellationToken An optional token for canceling the call. Returns AsyncUnaryCall The call object. Start(Empty, CallOptions) Start file playing. public virtual Empty Start(Empty request, CallOptions options) Parameters request Empty The request to send to the server. options CallOptions The options for the call. Returns Empty The response received from the server. Start(Empty, Metadata, DateTime?, CancellationToken) Start file playing. public virtual Empty Start(Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default) Parameters request Empty The request to send to the server. headers Metadata The initial metadata to send with the call. This parameter is optional. deadline DateTime? An optional deadline for the call. The call will be cancelled if deadline is hit. cancellationToken CancellationToken An optional token for canceling the call. Returns Empty The response received from the server. StartAsync(Empty, CallOptions) Start file playing. public virtual AsyncUnaryCall StartAsync(Empty request, CallOptions options) Parameters request Empty The request to send to the server. options CallOptions The options for the call. Returns AsyncUnaryCall The call object. StartAsync(Empty, Metadata, DateTime?, CancellationToken) Start file playing. public virtual AsyncUnaryCall StartAsync(Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default) Parameters request Empty The request to send to the server. headers Metadata The initial metadata to send with the call. This parameter is optional. deadline DateTime? An optional deadline for the call. The call will be cancelled if deadline is hit. cancellationToken CancellationToken An optional token for canceling the call. Returns AsyncUnaryCall The call object." - }, - "api/Hi.Grpcs.PlayerService.html": { - "href": "api/Hi.Grpcs.PlayerService.html", - "title": "Class PlayerService | HiAPI-C# 2025", - "summary": "Class PlayerService Namespace Hi.Grpcs Assembly HiNc.dll numerical file player service. public static class PlayerService Inheritance object PlayerService Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties Descriptor Service descriptor public static ServiceDescriptor Descriptor { get; } Property Value ServiceDescriptor Methods BindService(ServiceBinderBase, PlayerServiceBase) Register service method with a service binder with or without implementation. Useful when customizing the service binding logic. Note: this method is part of an experimental API that can change or be removed without any prior notice. public static void BindService(ServiceBinderBase serviceBinder, PlayerService.PlayerServiceBase serviceImpl) Parameters serviceBinder ServiceBinderBase Service methods will be bound by calling AddMethod on this object. serviceImpl PlayerService.PlayerServiceBase An object implementing the server-side handling logic. BindService(PlayerServiceBase) Creates service definition that can be registered with a server public static ServerServiceDefinition BindService(PlayerService.PlayerServiceBase serviceImpl) Parameters serviceImpl PlayerService.PlayerServiceBase An object implementing the server-side handling logic. Returns ServerServiceDefinition" - }, - "api/Hi.Grpcs.PlayerServiceReflection.html": { - "href": "api/Hi.Grpcs.PlayerServiceReflection.html", - "title": "Class PlayerServiceReflection | HiAPI-C# 2025", - "summary": "Class PlayerServiceReflection Namespace Hi.Grpcs Assembly HiNc.dll Holder for reflection information generated from Grpcs/PlayerService.proto public static class PlayerServiceReflection Inheritance object PlayerServiceReflection Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties Descriptor File descriptor for Grpcs/PlayerService.proto public static FileDescriptor Descriptor { get; } Property Value FileDescriptor" - }, - "api/Hi.Grpcs.PlayerServiceRunner.html": { - "href": "api/Hi.Grpcs.PlayerServiceRunner.html", - "title": "Class PlayerServiceRunner | HiAPI-C# 2025", - "summary": "Class PlayerServiceRunner Namespace Hi.Grpcs Assembly HiNc.dll Service runner for the Player gRPC service. public class PlayerServiceRunner : PlayerService.PlayerServiceBase Inheritance object PlayerService.PlayerServiceBase PlayerServiceRunner Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors PlayerServiceRunner(LocalProjectService) Initializes a new instance of the PlayerServiceRunner class. public PlayerServiceRunner(LocalProjectService localProjectService) Parameters localProjectService LocalProjectService Methods Pause(Empty, ServerCallContext) Pauses the player. public override Task Pause(Empty request, ServerCallContext context) Parameters request Empty The empty request. context ServerCallContext The server call context. Returns Task Empty response. Reset(Empty, ServerCallContext) Resets the player. public override Task Reset(Empty request, ServerCallContext context) Parameters request Empty The empty request. context ServerCallContext The server call context. Returns Task Empty response. Resume(Empty, ServerCallContext) Resumes the player. public override Task Resume(Empty request, ServerCallContext context) Parameters request Empty The empty request. context ServerCallContext The server call context. Returns Task Empty response. Start(Empty, ServerCallContext) Starts the player. public override Task Start(Empty request, ServerCallContext context) Parameters request Empty The empty request. context ServerCallContext The server call context. Returns Task Empty response." - }, - "api/Hi.Grpcs.html": { - "href": "api/Hi.Grpcs.html", - "title": "Namespace Hi.Grpcs | HiAPI-C# 2025", - "summary": "Namespace Hi.Grpcs Classes ClStripService milling process service based on dictionary data type. ClStripService.ClStripServiceBase Base class for server-side implementations of ClStripService ClStripService.ClStripServiceClient Client for ClStripService ClStripServiceReflection Holder for reflection information generated from Grpcs/ClStripService.proto ClStripServiceRunner Service runner for the ClStrip gRPC service. DictionaryStep step which data type is dictionary PlayerService numerical file player service. PlayerService.PlayerServiceBase Base class for server-side implementations of PlayerService PlayerService.PlayerServiceClient Client for PlayerService PlayerServiceReflection Holder for reflection information generated from Grpcs/PlayerService.proto PlayerServiceRunner Service runner for the Player gRPC service." - }, "api/Hi.HiNcKits.BasePathEnum.html": { "href": "api/Hi.HiNcKits.BasePathEnum.html", "title": "Enum BasePathEnum | HiAPI-C# 2025", @@ -1927,12 +1867,12 @@ "api/Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment.html": { "href": "api/Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment.html", "title": "Interface IMachiningEquipment | HiAPI-C# 2025", - "summary": "Interface IMachiningEquipment Namespace Hi.Machining.MachiningEquipmentUtils Assembly HiMech.dll Machining equipment. public interface IMachiningEquipment : IDisplayee, IExpandToBox3d, IMakeXmlSource, IGetAnchoredDisplayeeList, IGetProgramCl, IGetAsmb, IGetAnchor, IGetTopoIndex, IGetMachiningChain Inherited Members IDisplayee.Display(Bind) IExpandToBox3d.ExpandToBox3d(Box3d) IMakeXmlSource.MakeXmlSource(string, string, bool) IGetAnchoredDisplayeeList.GetAnchoredDisplayeeList() IGetProgramCl.GetProgramCl() IGetAsmb.GetAsmb() IGetAnchor.GetAnchor() IGetMachiningChain.GetMachiningChain() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) MachiningEquipmentUtil.GetIsoCoordinatePosition(IMachiningEquipment, Vec3d) MachiningEquipmentUtil.GetMachinePositionAtProgramZero(IMachiningEquipment) MachiningEquipmentUtil.GetMachinePositionAtTableBuckleZero(IMachiningEquipment) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties Fixture Fixture of workpiece. Fixture Fixture { get; set; } Property Value Fixture MachiningTool Milling tool. IMachiningTool MachiningTool { get; set; } Property Value IMachiningTool TableToComp Component transformation from table. ITransformer TableToComp { get; set; } Property Value ITransformer Workpiece Workpiece. Workpiece Workpiece { get; set; } Property Value Workpiece WorkpieceDisplayee Displayee for workpiece rendering. Set by the runtime service layer. IDisplayee WorkpieceDisplayee { get; set; } Property Value IDisplayee" + "summary": "Interface IMachiningEquipment Namespace Hi.Machining.MachiningEquipmentUtils Assembly HiMech.dll Machining equipment. public interface IMachiningEquipment : IDisplayee, IExpandToBox3d, IMakeXmlSource, IGetAnchoredDisplayeeList, IGetProgramCl, IGetAsmb, IGetAnchor, IGetTopoIndex, IGetMachiningChain Inherited Members IDisplayee.Display(Bind) IExpandToBox3d.ExpandToBox3d(Box3d) IMakeXmlSource.MakeXmlSource(string, string, bool) IGetAnchoredDisplayeeList.GetAnchoredDisplayeeList() IGetProgramCl.GetProgramCl() IGetAsmb.GetAsmb() IGetAnchor.GetAnchor() IGetMachiningChain.GetMachiningChain() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) MachiningEquipmentUtil.AlignWorkpieceProgramZeroToIso(IMachiningEquipment, Vec3d) MachiningEquipmentUtil.GetIsoCoordinatePosition(IMachiningEquipment, Vec3d) MachiningEquipmentUtil.GetMachinePositionAtProgramZero(IMachiningEquipment) MachiningEquipmentUtil.GetMachinePositionAtTableBuckleZero(IMachiningEquipment) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties Fixture Fixture of workpiece. Fixture Fixture { get; set; } Property Value Fixture MachiningTool Milling tool. IMachiningTool MachiningTool { get; set; } Property Value IMachiningTool TableToComp Component transformation from table. ITransformer TableToComp { get; set; } Property Value ITransformer Workpiece Workpiece. Workpiece Workpiece { get; set; } Property Value Workpiece WorkpieceDisplayee Displayee for workpiece rendering. Set by the runtime service layer. IDisplayee WorkpieceDisplayee { get; set; } Property Value IDisplayee" }, "api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html": { "href": "api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html", "title": "Class MachiningEquipment | HiAPI-C# 2025", - "summary": "Class MachiningEquipment Namespace Hi.Machining.MachiningEquipmentUtils Assembly HiMech.dll Machining Equipment. Include the machining chain, workpiece, tool and fixture, etc.. public class MachiningEquipment : IMachiningEquipment, IDisplayee, IExpandToBox3d, IMakeXmlSource, IGetAnchoredDisplayeeList, IGetProgramCl, IGetAsmb, IGetAnchor, IGetTopoIndex, IGetMachiningChain, IGetMachiningEquipment Inheritance object MachiningEquipment Implements IMachiningEquipment IDisplayee IExpandToBox3d IMakeXmlSource IGetAnchoredDisplayeeList IGetProgramCl IGetAsmb IGetAnchor IGetTopoIndex IGetMachiningChain IGetMachiningEquipment Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) MachiningEquipmentUtil.GetIsoCoordinatePosition(IMachiningEquipment, Vec3d) MachiningEquipmentUtil.GetMachinePositionAtProgramZero(IMachiningEquipment) MachiningEquipmentUtil.GetMachinePositionAtTableBuckleZero(IMachiningEquipment) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningEquipment() Ctor. public MachiningEquipment() MachiningEquipment(XElement, string, string, IProgress) Initializes a new instance of the MachiningEquipment class from XML data. public MachiningEquipment(XElement src, string baseDirectory, string relFile, IProgress progress) Parameters src XElement The XML element containing the equipment configuration. baseDirectory string The base directory for resolving relative file paths. relFile string The relative file path for XML serialization. progress IProgress Progress reporter for diagnostic messages emitted during construction. Properties Asmb Asmb of the entire equipment. public Asmb Asmb { get; } Property Value Asmb BackgroundTemperature_C Gets or sets the background temperature in Celsius. This is a convenience property that converts between Celsius and Kelvin. public double BackgroundTemperature_C { get; set; } Property Value double BackgroundTemperature_K Gets or sets the background temperature in Kelvin. This represents the ambient temperature of the machining environment. public double BackgroundTemperature_K { get; set; } Property Value double CoolantHeatCondition Gets or sets the coolant heat condition settings. This includes coolant temperature and heat transfer coefficients. public CoolantHeatCondition CoolantHeatCondition { get; set; } Property Value CoolantHeatCondition Fixture Fixture. public Fixture Fixture { get; set; } Property Value Fixture MachiningChain Body of the equipment. public IMachiningChain MachiningChain { get; set; } Property Value IMachiningChain MachiningChainFile Gets or sets the file path of the solid machining chain. This is used for XML serialization and file management. public string MachiningChainFile { get; set; } Property Value string MachiningTool Milling tool. public IMachiningTool MachiningTool { get; set; } Property Value IMachiningTool SpindleCapability Gets or sets the spindle capability configuration. This defines the operational capabilities and limits of the spindle. public SpindleCapability SpindleCapability { get; set; } Property Value SpindleCapability SpindleCapabilityFile Gets or sets the file path of the spindle capability configuration. This is used for XML serialization and file management. public string SpindleCapabilityFile { get; set; } Property Value string TableToComp Transformer of the branch from table buckle to workpiece side buckle. Note that the workpiece side buckle links to Fixture if fixture exist; otherwise, it links to Workpiece if workpiece exist. If Workpiece either Fixture do not exist, this property makes no effect. public ITransformer TableToComp { get; set; } Property Value ITransformer Workpiece Workpiece. public Workpiece Workpiece { get; set; } Property Value Workpiece WorkpieceDisplayee Displayee for workpiece rendering. Set by the runtime service layer. public IDisplayee WorkpieceDisplayee { get; set; } Property Value IDisplayee XName Name for XML IO. public static string XName { get; } Property Value string Methods Detect(bool) Performs collision detection. public MechCollisionResult Detect(bool addFluteAndWorkpieceDetection) Parameters addFluteAndWorkpieceDetection bool Whether to include flute and workpiece in detection. Returns MechCollisionResult Significant collision result. Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. ExpandToBox3d(Box3d) Expands the destination box. This function is usually used to compute the bounding box of elements. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d Destination box GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor GetAnchoredDisplayeeList() Gets a list of anchored displayable objects. public List GetAnchoredDisplayeeList() Returns List A list of IAnchoredDisplayee objects GetAsmb() Gets the key asmb. public Asmb GetAsmb() Returns Asmb The key asmb. GetMachiningChain() Gets the machining chain instance. public IMachiningChain GetMachiningChain() Returns IMachiningChain The machining chain instance. GetMillingEquipment() Get MachiningEquipment. public MachiningEquipment GetMillingEquipment() Returns MachiningEquipment MachiningEquipment GetProgramCl() Get CL (Cutter Location). Where Point is tool tip position; Normal is tool orientation. public DVec3d GetProgramCl() Returns DVec3d CL GetToolTipXyzOnProgramZero() Get tool tip xyz from workpiece geom anchor. public Vec3d GetToolTipXyzOnProgramZero() Returns Vec3d if no MachiningTool or no Workpiece equiping, return null; otherwise, return the XYZ from workpiece geomanchor to tool tip. GetTransformFromRootToProgramZero() Gets the transform matrix from the root coordinate system to the program zero coordinate system. public Mat4d GetTransformFromRootToProgramZero() Returns Mat4d A 4x4 transformation matrix representing the coordinate system transformation. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. PrepareCollidableItems() Prepares all collidable items for collision detection. This method should be called before performing collision detection. public void PrepareCollidableItems() Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ResetCollisionFlags() Resets all collision flags to their default states. This should be called after collision detection is complete. public void ResetCollisionFlags() Tooling(int, MachiningToolHouse) Set MachiningTool by toolId and toolHouse. public bool Tooling(int toolId, MachiningToolHouse toolHouse) Parameters toolId int tool ID toolHouse MachiningToolHouse tool house Returns bool true if tool changed; otherwise, false. Exceptions ToolNotFoundException Throw If toolId does not exist on toolHouse." + "summary": "Class MachiningEquipment Namespace Hi.Machining.MachiningEquipmentUtils Assembly HiMech.dll Machining Equipment. Include the machining chain, workpiece, tool and fixture, etc.. public class MachiningEquipment : IMachiningEquipment, IDisplayee, IExpandToBox3d, IMakeXmlSource, IGetAnchoredDisplayeeList, IGetProgramCl, IGetAsmb, IGetAnchor, IGetTopoIndex, IGetMachiningChain, IGetMachiningEquipment Inheritance object MachiningEquipment Implements IMachiningEquipment IDisplayee IExpandToBox3d IMakeXmlSource IGetAnchoredDisplayeeList IGetProgramCl IGetAsmb IGetAnchor IGetTopoIndex IGetMachiningChain IGetMachiningEquipment Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) MachiningEquipmentUtil.AlignWorkpieceProgramZeroToIso(IMachiningEquipment, Vec3d) MachiningEquipmentUtil.GetIsoCoordinatePosition(IMachiningEquipment, Vec3d) MachiningEquipmentUtil.GetMachinePositionAtProgramZero(IMachiningEquipment) MachiningEquipmentUtil.GetMachinePositionAtTableBuckleZero(IMachiningEquipment) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningEquipment() Ctor. public MachiningEquipment() MachiningEquipment(XElement, string, string, IProgress) Initializes a new instance of the MachiningEquipment class from XML data. public MachiningEquipment(XElement src, string baseDirectory, string relFile, IProgress progress) Parameters src XElement The XML element containing the equipment configuration. baseDirectory string The base directory for resolving relative file paths. relFile string The relative file path for XML serialization. progress IProgress Progress reporter for diagnostic messages emitted during construction. Properties Asmb Asmb of the entire equipment. public Asmb Asmb { get; } Property Value Asmb BackgroundTemperature_C Gets or sets the background temperature in Celsius. This is a convenience property that converts between Celsius and Kelvin. public double BackgroundTemperature_C { get; set; } Property Value double BackgroundTemperature_K Gets or sets the background temperature in Kelvin. This represents the ambient temperature of the machining environment. public double BackgroundTemperature_K { get; set; } Property Value double CoolantHeatCondition Gets or sets the coolant heat condition settings. This includes coolant temperature and heat transfer coefficients. public CoolantHeatCondition CoolantHeatCondition { get; set; } Property Value CoolantHeatCondition Fixture Fixture. public Fixture Fixture { get; set; } Property Value Fixture MachiningChain Body of the equipment. public IMachiningChain MachiningChain { get; set; } Property Value IMachiningChain MachiningChainFile Gets or sets the file path of the solid machining chain. This is used for XML serialization and file management. public string MachiningChainFile { get; set; } Property Value string MachiningTool Milling tool. public IMachiningTool MachiningTool { get; set; } Property Value IMachiningTool SpindleCapability Gets or sets the spindle capability configuration. This defines the operational capabilities and limits of the spindle. public SpindleCapability SpindleCapability { get; set; } Property Value SpindleCapability SpindleCapabilityFile Gets or sets the file path of the spindle capability configuration. This is used for XML serialization and file management. public string SpindleCapabilityFile { get; set; } Property Value string TableToComp Transformer of the branch from table buckle to workpiece side buckle. Note that the workpiece side buckle links to Fixture if fixture exist; otherwise, it links to Workpiece if workpiece exist. If Workpiece either Fixture do not exist, this property makes no effect. public ITransformer TableToComp { get; set; } Property Value ITransformer Workpiece Workpiece. public Workpiece Workpiece { get; set; } Property Value Workpiece WorkpieceDisplayee Displayee for workpiece rendering. Set by the runtime service layer. public IDisplayee WorkpieceDisplayee { get; set; } Property Value IDisplayee XName Name for XML IO. public static string XName { get; } Property Value string Methods Detect(bool) Performs collision detection. public MechCollisionResult Detect(bool addFluteAndWorkpieceDetection) Parameters addFluteAndWorkpieceDetection bool Whether to include flute and workpiece in detection. Returns MechCollisionResult Significant collision result. Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. ExpandToBox3d(Box3d) Expands the destination box. This function is usually used to compute the bounding box of elements. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d Destination box GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor GetAnchoredDisplayeeList() Gets a list of anchored displayable objects. public List GetAnchoredDisplayeeList() Returns List A list of IAnchoredDisplayee objects GetAsmb() Gets the key asmb. public Asmb GetAsmb() Returns Asmb The key asmb. GetMachiningChain() Gets the machining chain instance. public IMachiningChain GetMachiningChain() Returns IMachiningChain The machining chain instance. GetMillingEquipment() Get MachiningEquipment. public MachiningEquipment GetMillingEquipment() Returns MachiningEquipment MachiningEquipment GetProgramCl() Get CL (Cutter Location). Where Point is tool tip position; Normal is tool orientation. public DVec3d GetProgramCl() Returns DVec3d CL GetToolTipXyzOnProgramZero() Get tool tip xyz from workpiece geom anchor. public Vec3d GetToolTipXyzOnProgramZero() Returns Vec3d if no MachiningTool or no Workpiece equiping, return null; otherwise, return the XYZ from workpiece geomanchor to tool tip. GetTransformFromRootToProgramZero() Gets the transform matrix from the root coordinate system to the program zero coordinate system. public Mat4d GetTransformFromRootToProgramZero() Returns Mat4d A 4x4 transformation matrix representing the coordinate system transformation. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. PrepareCollidableItems() Prepares all collidable items for collision detection. This method should be called before performing collision detection. public void PrepareCollidableItems() Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ResetCollisionFlags() Resets all collision flags to their default states. This should be called after collision detection is complete. public void ResetCollisionFlags() Tooling(int, MachiningToolHouse) Set MachiningTool by toolId and toolHouse. public bool Tooling(int toolId, MachiningToolHouse toolHouse) Parameters toolId int tool ID toolHouse MachiningToolHouse tool house Returns bool true if tool changed; otherwise, false. Exceptions ToolNotFoundException Throw If toolId does not exist on toolHouse." }, "api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndex.html": { "href": "api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndex.html", @@ -1947,7 +1887,7 @@ "api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.html": { "href": "api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.html", "title": "Class MachiningEquipmentUtil | HiAPI-C# 2025", - "summary": "Class MachiningEquipmentUtil Namespace Hi.Machining.MachiningEquipmentUtils Assembly HiMech.dll Utility methods for working with machining equipment. public static class MachiningEquipmentUtil Inheritance object MachiningEquipmentUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetIsoCoordinatePosition(IMachiningEquipment, Vec3d) Get ISO coordinate position from the g54seriesOffset. public static Vec3d GetIsoCoordinatePosition(this IMachiningEquipment equipment, Vec3d g54seriesOffset) Parameters equipment IMachiningEquipment g54seriesOffset Vec3d Returns Vec3d GetMachinePositionAtProgramZero(IMachiningEquipment) Gets the machine coordinate when the attacher is at program zero. The machine coordinate are all assumed to be zero. public static Vec3d GetMachinePositionAtProgramZero(this IMachiningEquipment equipment) Parameters equipment IMachiningEquipment The machining equipment. Returns Vec3d The machine coordinate vector. GetMachinePositionAtTableBuckleZero(IMachiningEquipment) Gets the machine coordinate when the attacher is at table buckle zero. public static Vec3d GetMachinePositionAtTableBuckleZero(this IMachiningEquipment equipment) Parameters equipment IMachiningEquipment The machining equipment. Returns Vec3d The machine coordinate vector." + "summary": "Class MachiningEquipmentUtil Namespace Hi.Machining.MachiningEquipmentUtils Assembly HiMech.dll Utility methods for working with machining equipment. public static class MachiningEquipmentUtil Inheritance object MachiningEquipmentUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods AlignWorkpieceProgramZeroToIso(IMachiningEquipment, Vec3d) Places Fixture under the kinematic chain so that ProgramZeroAnchor coincides with the world position the spindle reaches when the machine coordinate equals isoOffset (a G54/G55/… entry). Other anchors (FixtureBuckle, ProgramZeroAnchor, WorkpieceBuckle) must already be at their intended geometric positions (typically via the buckle “general rule”: bottom/top centers of geom). Only GeomToTableTransformer is mutated. Returns the assigned translation, or null when workpiece / fixture / Xyzabc machine tool is missing. public static Vec3d AlignWorkpieceProgramZeroToIso(this IMachiningEquipment equipment, Vec3d isoOffset) Parameters equipment IMachiningEquipment isoOffset Vec3d Returns Vec3d GetIsoCoordinatePosition(IMachiningEquipment, Vec3d) Get ISO coordinate position from the g54seriesOffset. public static Vec3d GetIsoCoordinatePosition(this IMachiningEquipment equipment, Vec3d g54seriesOffset) Parameters equipment IMachiningEquipment g54seriesOffset Vec3d Returns Vec3d GetMachinePositionAtProgramZero(IMachiningEquipment) Gets the machine coordinate when the attacher is at program zero. The machine coordinate are all assumed to be zero. public static Vec3d GetMachinePositionAtProgramZero(this IMachiningEquipment equipment) Parameters equipment IMachiningEquipment The machining equipment. Returns Vec3d The machine coordinate vector. GetMachinePositionAtTableBuckleZero(IMachiningEquipment) Gets the machine coordinate when the attacher is at table buckle zero. public static Vec3d GetMachinePositionAtTableBuckleZero(this IMachiningEquipment equipment) Parameters equipment IMachiningEquipment The machining equipment. Returns Vec3d The machine coordinate vector." }, "api/Hi.Machining.MachiningEquipmentUtils.html": { "href": "api/Hi.Machining.MachiningEquipmentUtils.html", @@ -2062,12 +2002,12 @@ "api/Hi.MachiningProcs.MachiningProject.html": { "href": "api/Hi.MachiningProcs.MachiningProject.html", "title": "Class MachiningProject | HiAPI-C# 2025", - "summary": "Class MachiningProject Namespace Hi.MachiningProcs Assembly HiNc.dll Represents a milling project that manages the execution, simulation, and analysis of NC programs. public class MachiningProject : IDisposable, IMakeXmlSource, IMachiningProjectGetter Inheritance object MachiningProject Implements IDisposable IMakeXmlSource IMachiningProjectGetter Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningProject(string) Initializes a new instance with the specified directory. public MachiningProject(string baseDirectory) Parameters baseDirectory string Base directory for file operations MachiningProject(XElement, string, IProgress) Initializes a new instance from XML data. public MachiningProject(XElement src, string baseDirectory, IProgress progress) Parameters src XElement XML element containing configuration data baseDirectory string Base directory for resolving relative paths progress IProgress Progress reporter for XML deserialization. Properties ApiVersion Gets the API version from the HiNc assembly (where MachiningProject is defined). public static Version ApiVersion { get; } Property Value Version BaseDirectory Gets the base directory where project files are located. public string BaseDirectory { get; } Property Value string DictionaryColorGuide public DictionaryColorGuide DictionaryColorGuide { get; } Property Value DictionaryColorGuide MachiningActRunnerConfig Gets or sets the configuration for the milling act runner. public MachiningActRunnerConfig MachiningActRunnerConfig { get; set; } Property Value MachiningActRunnerConfig MachiningToolHouse Gets or sets the machining tool house containing tool configurations. public MachiningToolHouse MachiningToolHouse { get; set; } Property Value MachiningToolHouse MachiningToolHouseFile Gets or sets the file path to the milling tool house configuration. public string MachiningToolHouseFile { get; set; } Property Value string MillingGuide Gets or sets the milling guide containing visualization and analysis configurations. public MillingGuide MillingGuide { get; set; } Property Value MillingGuide NcEnv Gets or sets the NC environment settings. public HardNcEnv NcEnv { get; set; } Property Value HardNcEnv PlayerCommand Gets the command to execute when playing the machining project. public ISessionCommand PlayerCommand { get; set; } Property Value ISessionCommand SoftNcRunner Gets or sets the configurable NC runner. When set, replaces the legacy HardNcRunner. public SoftNcRunner SoftNcRunner { get; set; } Property Value SoftNcRunner TimeMapping Gets or sets the time mapping for synchronizing different time-based data streams. public TimeMapping TimeMapping { get; set; } Property Value TimeMapping XName Name for XML IO. public static string XName { get; } Property Value string Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() Dispose(bool) protected virtual void Dispose(bool disposing) Parameters disposing bool GetMachiningProject() Gets the MachiningProject instance. public MachiningProject GetMachiningProject() Returns MachiningProject The MachiningProject instance. GetMillingEquipment() public MachiningEquipment GetMillingEquipment() Returns MachiningEquipment LoadFile(string, IProgress) Loads a machining project from the specified file path. public static MachiningProject LoadFile(string projectFilePath, IProgress progress) Parameters projectFilePath string Path to the project file to load progress IProgress Progress reporter for XML deserialization. Returns MachiningProject A new machining project instance loaded from the file MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer (and its legacy aliases) with the given XFactory (or Default when factory is null), and chains Reg(factory) on dependents so the registration graph is observable. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class MachiningProject Namespace Hi.MachiningProcs Assembly HiNc.dll Represents a milling project that manages the execution, simulation, and analysis of NC programs. public class MachiningProject : IDisposable, IMakeXmlSource, IMachiningProjectGetter Inheritance object MachiningProject Implements IDisposable IMakeXmlSource IMachiningProjectGetter Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningProject(string) Initializes a new instance with the specified directory. public MachiningProject(string baseDirectory) Parameters baseDirectory string Base directory for file operations MachiningProject(XElement, string, IProgress) Initializes a new instance from XML data. public MachiningProject(XElement src, string baseDirectory, IProgress progress) Parameters src XElement XML element containing configuration data baseDirectory string Base directory for resolving relative paths progress IProgress Progress reporter for XML deserialization. Properties ApiVersion Gets the API version from the HiNc assembly (where MachiningProject is defined). public static Version ApiVersion { get; } Property Value Version BaseDirectory Gets the base directory where project files are located. public string BaseDirectory { get; } Property Value string DictionaryColorGuide public DictionaryColorGuide DictionaryColorGuide { get; } Property Value DictionaryColorGuide MachiningActRunnerConfig Gets or sets the configuration for the milling act runner. public MachiningActRunnerConfig MachiningActRunnerConfig { get; set; } Property Value MachiningActRunnerConfig MachiningToolHouse Gets or sets the machining tool house containing tool configurations. public MachiningToolHouse MachiningToolHouse { get; set; } Property Value MachiningToolHouse MachiningToolHouseFile Gets or sets the file path to the milling tool house configuration. public string MachiningToolHouseFile { get; set; } Property Value string MillingGuide Gets or sets the milling guide containing visualization and analysis configurations. public MillingGuide MillingGuide { get; set; } Property Value MillingGuide NcEnv Gets or sets the NC environment settings. public HardNcEnv NcEnv { get; set; } Property Value HardNcEnv PlayerCommand Gets the command to execute when playing the machining project. public ISessionCommand PlayerCommand { get; set; } Property Value ISessionCommand SoftNcRunner Gets or sets the configurable NC runner. When set, replaces the legacy HardNcRunner. public SoftNcRunner SoftNcRunner { get; set; } Property Value SoftNcRunner SoftNcRunnerFile Gets or sets the project-relative file path of the SoftNcRunner XML. When non-null, MakeXmlSource(string, string, bool) writes the runner to this side file and embeds a file reference in the project XML; when null the runner is inlined. Mirrors MachiningChainFile. public string SoftNcRunnerFile { get; set; } Property Value string TimeMapping Gets or sets the time mapping for synchronizing different time-based data streams. public TimeMapping TimeMapping { get; set; } Property Value TimeMapping XName Name for XML IO. public static string XName { get; } Property Value string Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() Dispose(bool) protected virtual void Dispose(bool disposing) Parameters disposing bool GetMachiningProject() Gets the MachiningProject instance. public MachiningProject GetMachiningProject() Returns MachiningProject The MachiningProject instance. GetMillingEquipment() public MachiningEquipment GetMillingEquipment() Returns MachiningEquipment LoadFile(string, IProgress) Loads a machining project from the specified file path. public static MachiningProject LoadFile(string projectFilePath, IProgress progress) Parameters projectFilePath string Path to the project file to load progress IProgress Progress reporter for XML deserialization. Returns MachiningProject A new machining project instance loaded from the file MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer (and its legacy aliases) with the given XFactory (or Default when factory is null), and chains Reg(factory) on dependents so the registration graph is observable. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.MachiningProcs.MachiningProjectDisplayee.html": { "href": "api/Hi.MachiningProcs.MachiningProjectDisplayee.html", "title": "Class MachiningProjectDisplayee | HiAPI-C# 2025", - "summary": "Class MachiningProjectDisplayee Namespace Hi.MachiningProcs Assembly HiNc.dll Represents a displayable wrapper for a machining project. public class MachiningProjectDisplayee : IDisplayee, IExpandToBox3d, IGetAnchor, IGetTopoIndex Inheritance object MachiningProjectDisplayee Implements IDisplayee IExpandToBox3d IGetAnchor IGetTopoIndex Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningProjectDisplayee(LocalProjectService) Initializes a new instance of the MachiningProjectDisplayee class with default rendering flags. public MachiningProjectDisplayee(LocalProjectService localProjectService) Parameters localProjectService LocalProjectService Properties HeidenhainCoordinateEntryDisplayee Gets the Heidenhain coordinate entry displayee for Heidenhain-based coordinate systems. public HeidenhainCoordinateEntryDisplayee HeidenhainCoordinateEntryDisplayee { get; } Property Value HeidenhainCoordinateEntryDisplayee IsoCoordinateEntryDisplayee Gets the ISO coordinate entry displayee for ISO-based coordinate systems. public IsoCoordinateEntryDisplayee IsoCoordinateEntryDisplayee { get; } Property Value IsoCoordinateEntryDisplayee LocalProjectService Gets or sets the function that provides the machining project. public LocalProjectService LocalProjectService { get; set; } Property Value LocalProjectService MachiningProject Gets the current milling course from the host function. public MachiningProject MachiningProject { get; } Property Value MachiningProject RenderingFlagBitArray Gets or sets the bit array that controls which elements are rendered. public BitArray RenderingFlagBitArray { get; set; } Property Value BitArray Methods Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. ExpandToBox3d(Box3d) Expands the destination box. This function is usually used to compute the bounding box of elements. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d Destination box GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor" + "summary": "Class MachiningProjectDisplayee Namespace Hi.MachiningProcs Assembly HiNc.dll Represents a displayable wrapper for a machining project. public class MachiningProjectDisplayee : IDisplayee, IExpandToBox3d, IGetAnchor, IGetTopoIndex Inheritance object MachiningProjectDisplayee Implements IDisplayee IExpandToBox3d IGetAnchor IGetTopoIndex Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningProjectDisplayee(LocalProjectService) Initializes a new instance of the MachiningProjectDisplayee class with default rendering flags. public MachiningProjectDisplayee(LocalProjectService localProjectService) Parameters localProjectService LocalProjectService Properties HeidenhainCoordinateEntryDisplayee Gets the Heidenhain coordinate entry displayee for Heidenhain-based coordinate systems. public HeidenhainCoordinateEntryDisplayee HeidenhainCoordinateEntryDisplayee { get; } Property Value HeidenhainCoordinateEntryDisplayee IsoCoordinateEntryDisplayee Gets the ISO coordinate entry displayee for ISO-based coordinate systems. public IsoCoordinateEntryDisplayee IsoCoordinateEntryDisplayee { get; } Property Value IsoCoordinateEntryDisplayee LocalProjectService Gets or sets the function that provides the machining project. public LocalProjectService LocalProjectService { get; set; } Property Value LocalProjectService MachiningProject Gets the current milling course from the host function. public MachiningProject MachiningProject { get; } Property Value MachiningProject RenderingFlagBitArray Gets or sets the bit array that controls which elements are rendered. public BitArray RenderingFlagBitArray { get; set; } Property Value BitArray Methods Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. ExpandToBox3d(Box3d) Expands the destination box. This function is usually used to compute the bounding box of elements. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d Destination box GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor" }, "api/Hi.MachiningProcs.MachiningSession.html": { "href": "api/Hi.MachiningProcs.MachiningSession.html", @@ -2117,7 +2057,7 @@ "api/Hi.MachiningProcs.SessionShell.html": { "href": "api/Hi.MachiningProcs.SessionShell.html", "title": "Class SessionShell | HiAPI-C# 2025", - "summary": "Class SessionShell Namespace Hi.MachiningProcs Assembly HiNc.dll End-user-facing facade for a machining session: aggregates session lifecycle, NC playback, optimization, geometry I/O, and scripting infrastructure into a single delegation surface. Used as the C# script globals object and as the concrete target of ISessionCommand implementations. public class SessionShell : ISessionShell Inheritance object SessionShell Implements ISessionShell Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties DefaultParaTemplateDimension Gets or sets the parameter template dimension (2D or 3D). [JsAce] public int DefaultParaTemplateDimension { get; set; } Property Value int DiffVisualRadius_mm Gets or sets the visual radius in millimeters for difference visualization. Controls the radius used for highlighting differences between workpiece states. [JsAce] public double DiffVisualRadius_mm { get; set; } Property Value double DispCacheMb Gets or sets the display cache size in megabytes. [Obsolete] public long DispCacheMb { get; set; } Property Value long DispCache_Mb Gets or sets the display cache size in megabytes. [JsAce] public long DispCache_Mb { get; set; } Property Value long EmbeddedLogMode Gets or sets the embedded log mode for NC optimization. [JsAce] public static NcOptimizationEmbeddedLogMode EmbeddedLogMode { get; set; } Property Value NcOptimizationEmbeddedLogMode EnableCollisionDetection Gets or sets whether collision detection is enabled. [JsAce(DocContentHtml = \"Enable Collision Detection.\")] public bool EnableCollisionDetection { get; set; } Property Value bool EnableIndividualStepAdjustmentLog Gets or sets whether to enable individual step adjustment logging. [JsAce] public static bool EnableIndividualStepAdjustmentLog { get; set; } Property Value bool EnableMapOnSelectionEnd Gets or sets whether to automatically map selections when they end. [JsAce] public bool EnableMapOnSelectionEnd { get; set; } Property Value bool EnableMotionDependentMachiningResolution Gets or sets whether motion-dependent machining resolution is enabled. [JsAce] public bool EnableMotionDependentMachiningResolution { get; set; } Property Value bool EnableMzLeverWeightingOnTraining Gets or sets whether Mz lever weighting is enabled on training. [Obsolete] public bool EnableMzLeverWeightingOnTraining { get; set; } Property Value bool EnablePauseOnCollision Gets or sets whether to pause execution when a collision is detected. This property only has an effect if collision detection is enabled. [Obsolete] public bool EnablePauseOnCollision { get; set; } Property Value bool EnablePauseOnFailure Gets or sets whether to pause on failure during execution. [JsAce(DocContentHtml = \"Enable Pause On Failure.\")] public bool EnablePauseOnFailure { get; set; } Property Value bool EnablePhysics Gets or sets whether milling force evaluation is enabled. [JsAce(DocContentHtml = \"Enable milling force evaluation.\")] public bool EnablePhysics { get; set; } Property Value bool EnableSampleNormalization [Obsolete] public bool EnableSampleNormalization { get; set; } Property Value bool Remarks The input normalization deminish the quantity effect. The R-value decrease from 99% to 70% in moment training case from NKUST\\nkust2024-milling-para-training-plan\\workingx.hincproj Don't apply this option. EnableSoftNcRunner Workaround flag to use SoftNcRunner instead of HardNcRunner. Will be removed when HardNcRunner is fully replaced. [JsAce(DocContentHtml = \"Enable SoftNcRunner instead of legacy HardNcRunner.\")] public bool EnableSoftNcRunner { get; set; } Property Value bool EnableWearEffect Gets or sets whether tool wear effects are enabled in simulation. [JsAce] public bool EnableWearEffect { get; set; } Property Value bool FeedPerCycle Gets a new feed per cycle machining motion resolution instance. [JsAce] public FeedPerCycleMachiningMotionResolution FeedPerCycle { get; } Property Value FeedPerCycleMachiningMotionResolution FeedPerTooth Gets a new feed per tooth machining motion resolution instance. [JsAce] public FeedPerToothMachiningMotionResolution FeedPerTooth { get; } Property Value FeedPerToothMachiningMotionResolution Fixture Gets or sets the fixture. [JsAce] public Fixture Fixture { get; set; } Property Value Fixture Global [JsAce(\"Global[$1key]\")] public Dictionary Global { get; } Property Value Dictionary InitSpindleTemperature_C Gets or sets the initial spindle temperature in degrees Celsius. [JsAce(DocContentHtml = \"Spindle Temperature on initialization.\")] public double InitSpindleTemperature_C { get; set; } Property Value double JsAceCompletionProfileJsonArray Internal used. public static JsonArray JsAceCompletionProfileJsonArray { get; } Property Value JsonArray MachiningMotionResolution Gets or sets the machining motion resolution. [JsAce] public IMachiningMotionResolution MachiningMotionResolution { get; set; } Property Value IMachiningMotionResolution MachiningResolution Gets or sets the machining resolution in millimeters. [JsAce] [Obsolete(\"Use MachiningResolution_mm instead.\")] public double MachiningResolution { get; set; } Property Value double MachiningResolution_mm Gets or sets the machining resolution in millimeters. [JsAce] public double MachiningResolution_mm { get; set; } Property Value double MachiningSession public MachiningSession MachiningSession { get; } Property Value MachiningSession MapTask Task tracking the status of mapping operations. public Task MapTask { get; set; } Property Value Task MillingCycleDivisionNum Gets or sets the number of divisions per cycle for milling force calculation. This property should be set before milling force evaluation if TrainMillingPara(SampleFlag, string, double, ICuttingPara) is intended to be used. [JsAce] public static int MillingCycleDivisionNum { get; set; } Property Value int MillingForceCycleDivisionNum Gets or sets the number of divisions per cycle for milling force calculation. This property should be set before milling force evaluation if TrainMillingPara(SampleFlag, string, double, ICuttingPara) is intended to be used. [JsAce(DocContentHtml = \"Obsoleted. Use MillingCycleDivisionNum instead.\")] [Obsolete(\"Use MillingCycleDivisionNum instead.\")] public static int MillingForceCycleDivisionNum { get; set; } Property Value int NcOptOption Gets or sets the NC optimization options. [JsAce] public NcOptOption NcOptOption { get; set; } Property Value NcOptOption OptEnableDepthCompensation Enables or disables depth compensation during optimization. [JsAce] public bool OptEnableDepthCompensation { get; set; } Property Value bool OptEnableFeedrate Gets or sets whether to enable feed rate optimization in NC optimization. [JsAce] public bool OptEnableFeedrate { get; set; } Property Value bool OptEnableForwardCompensation Enables or disables forward compensation during optimization. [JsAce] public bool OptEnableForwardCompensation { get; set; } Property Value bool OptEnableInterpolation Enables or disables reinterpolation for optimization. [JsAce] public bool OptEnableInterpolation { get; set; } Property Value bool OptEnableSideCompensation Enables or disables side compensation during optimization. [JsAce] public bool OptEnableSideCompensation { get; set; } Property Value bool OptExtendedPostDistance_mm Gets or sets the extended post-distance in millimeters for NC optimization. This is the distance after the current segment that will be considered for optimization. [JsAce] public double OptExtendedPostDistance_mm { get; set; } Property Value double OptExtendedPreDistance_mm Gets or sets the extended pre-distance in millimeters for NC optimization. This is the distance before the current segment that will be considered for optimization. [JsAce] public double OptExtendedPreDistance_mm { get; set; } Property Value double OptFeedrateAssignmentRatio Gets or sets the feedrate assignment ratio for optimization. If the feedrate change exceeds this ratio, the feedrate in the NC line will be updated. [JsAce] public double OptFeedrateAssignmentRatio { get; set; } Property Value double OptMaxAcceleration_mmds2 Maximum acceleration in mm/s² during optimization. Only takes effect on reinterpolated section. [JsAce(DocContentHtml = \"Only take effect on reinterpolated section.\")] public double OptMaxAcceleration_mmds2 { get; set; } Property Value double OptMaxFeedPerTooth_mm Gets or sets the maximum feed per tooth in millimeters for optimization. [JsAce] public double OptMaxFeedPerTooth_mm { get; set; } Property Value double OptMaxFeedrate_mmdmin Maximum feed rate in mm/min for cutting movements during optimization. [JsAce] public double OptMaxFeedrate_mmdmin { get; set; } Property Value double OptMaxJerk_mmds3 Maximum jerk in mm/s³ during optimization. Only takes effect on reinterpolated section. [JsAce(DocContentHtml = \"Only take effect on reinterpolated section.\")] public double OptMaxJerk_mmds3 { get; set; } Property Value double OptMinFeedPerTooth_mm Gets or sets the minimum feed per tooth in millimeters for optimization. [JsAce] public double OptMinFeedPerTooth_mm { get; set; } Property Value double OptMinFeedrate_mmdmin Minimum feed rate in mm/min for cutting movements during optimization. [JsAce] public double OptMinFeedrate_mmdmin { get; set; } Property Value double OptPreferedForce_N Preferred force in N for optimization. [JsAce] public double OptPreferedForce_N { get; set; } Property Value double OptRapidFeed_mmdmin Rapid feed rate in mm/min for non-cutting movements during optimization. [JsAce] public double OptRapidFeed_mmdmin { get; set; } Property Value double OptSpindlePowerSafetyFactor Safety factor for MAX spindle power during optimization. [JsAce] public double OptSpindlePowerSafetyFactor { get; set; } Property Value double OptSpindlePowerUtilizationFactor Utilization factor for MAX spindle power during optimization. It is the reciprocal of the spindle power safety factor. [JsAce] public double OptSpindlePowerUtilizationFactor { get; set; } Property Value double OptSpindleTorqueSafetyFactor Gets or sets the MAX spindle torque safety factor for NC optimization. [JsAce] public double OptSpindleTorqueSafetyFactor { get; set; } Property Value double OptSpindleTorqueUtilizationFactor Utilization factor for MAX spindle torque during optimization. It is the reciprocal of the spindle torque safety factor. [JsAce] public double OptSpindleTorqueUtilizationFactor { get; set; } Property Value double OptThermalYieldSafetyFactor Safety factor for spindle torque during optimization. [JsAce] public double OptThermalYieldSafetyFactor { get; set; } Property Value double OptThermalYieldUtilizationFactor Utilization factor for thermal yield during optimization. It is the reciprocal of the thermal yield safety factor. [JsAce] public double OptThermalYieldUtilizationFactor { get; set; } Property Value double OptYieldingSafetyFactor Safety factor for yielding during optimization. [JsAce] public double OptYieldingSafetyFactor { get; set; } Property Value double OptYieldingUtilizationFactor Utilization factor for yielding during optimization. It is the reciprocal of the yielding safety factor. [JsAce] public double OptYieldingUtilizationFactor { get; set; } Property Value double ScriptOptions ScriptOptions. public ScriptOptions ScriptOptions { get; set; } Property Value ScriptOptions SessionMessageHost Obsolete alias for SessionProgress (session-scoped progress and messages). [JsAce] [Obsolete(\"Use SessionProgress instead.\")] public SessionProgress SessionMessageHost { get; } Property Value SessionProgress SessionProgress Gets the session message host for displaying messages. [JsAce] public SessionProgress SessionProgress { get; } Property Value SessionProgress StepCount Gets the total number of milling steps. [JsAce] public int StepCount { get; } Property Value int Workpiece Gets or sets the workpiece. [JsAce] public Workpiece Workpiece { get; set; } Property Value Workpiece Methods AddTimeDataByFile(string, string, double, double) Adds time-based data from a file to the time mapping dictionary with specified time bounds in seconds. [JsAce(\"AddTimeDataByFile($1key, $2relFile, $3beginTime, $4endTime)\")] public bool AddTimeDataByFile(string key, string relFile, double beginTime, double endTime) Parameters key string Key to identify the data relFile string Relative path to the data file beginTime double Beginning time in seconds endTime double Ending time in seconds Returns bool True if the data was successfully added, false otherwise AddTimeDataByFile(string, string, string, string) Adds time-based data from a file to the time mapping dictionary with specified time bounds. [JsAce(\"AddTimeDataByFile($1key, $2relFile, $3beginTime, $4endTime)\")] public bool AddTimeDataByFile(string key, string relFile, string beginTimeText, string endTimeText) Parameters key string Key to identify the data relFile string Relative path to the data file beginTimeText string Beginning time as text (seconds or TimeSpan format) endTimeText string Ending time as text (seconds or TimeSpan format) Returns bool True if the data was successfully added, false otherwise AdjustedFeedPerCycle(double, double) Gets a new feed per cycle machining motion resolution instance with adjusted scale and minimum linear resolution. [JsAce(\"AdjustedFeedPerCycle($1scale,$2minLinearResolution_mm)\")] public FeedPerCycleMachiningMotionResolution AdjustedFeedPerCycle(double scale, double minLinearResolution_mm = 0) Parameters scale double The scale factor for the resolution. minLinearResolution_mm double The minimum linear resolution in millimeters. Default is 0. Returns FeedPerCycleMachiningMotionResolution A new FeedPerCycleMachiningMotionResolution instance with the specified parameters. AppendMessagesToFile(string, params string[]) Appends messages to a file, optionally filtered by tags. [JsAce(\"AppendMessagesToFile(\\\"dstRelFile\\\",flags)\")] public void AppendMessagesToFile(string dstRelFile, params string[] flags) Parameters dstRelFile string Destination relative file path flags string[] Optional flags to filter messages by tags BeginPreserve() Begin Preserve section in optimzation process. [JsAce(\"BeginPreserve()\")] public void BeginPreserve() BeginSelection(string, AnchorMode, IStepShift) Begin mark on current line. milling step() has not triggered yet. public void BeginSelection(string key, AnchorMode anchorMode = AnchorMode.LineBegin, IStepShift shift = null) Parameters key string Identifier key for the selection anchorMode AnchorMode Mode for anchoring the beginning of selection shift IStepShift Step shift to apply BeginSession() Begins a new machining session. Not for end user. public void BeginSession() ClearDefectDisplayee() Clears the defect displayee from the workpiece. [JsAce] public void ClearDefectDisplayee() ClearTimeMappingData() Clears all time mapping data. [JsAce] public void ClearTimeMappingData() Diff(double) Performs a difference analysis on the workpiece geometry to detect variations. [JsAce(\"Diff($1detectionRadius_mm)\")] public void Diff(double detectionRadius_mm) Parameters detectionRadius_mm double Radius for detecting differences EndPreserve() End Preserve section in optimzation process. [JsAce(\"EndPreserve()\")] public void EndPreserve() EndSelection(string, AnchorMode, IStepShift) End mark on current line for selection. public void EndSelection(string key, AnchorMode anchorMode = AnchorMode.LineEnd, IStepShift shift = null) Parameters key string Identifier key for the selection anchorMode AnchorMode Mode for anchoring the end of selection shift IStepShift Step shift to apply EndSession() Ends the current machining session. Not for end user. public void EndSession() ErrorMessage(string) Displays an error message in the message host. [JsAce(\"ErrorMessage($1message)\")] public void ErrorMessage(string message) Parameters message string The error message to display FixedPace(double, double) Creates a fixed machining motion resolution with specified parameters. [JsAce(\"FixedPace($1linearResolution_mm, $2rotaryResolution_deg)\")] public FixedMachiningMotionResolution FixedPace(double linearResolution_mm, double rotaryResolution_deg) Parameters linearResolution_mm double Linear resolution in millimeters rotaryResolution_deg double Rotary resolution in degrees Returns FixedMachiningMotionResolution A new fixed machining motion resolution instance GetMillingStep(int) Retrieves a milling step at the specified index. [JsAce(Snippet = \"GetMillingStep($1\\\"stepIndex\\\")\")] public MachiningStep GetMillingStep(int stepIndex) Parameters stepIndex int Index of the milling step to retrieve Returns MachiningStep The milling step at the specified index GetStickMachiningToolObservationHeight_mm(int) Gets the observation height in millimeters for the specified stick machining tool. [JsAce(\"GetStickMachiningToolObservationHeight_mm($1toolId)\")] public double GetStickMachiningToolObservationHeight_mm(int toolId) Parameters toolId int The ID of the tool Returns double The observation height in millimeters GetUniformContourTrayShiftAngle_deg(int) Gets the shift angle in degrees for the uniform contour tray of the specified tool. [JsAce(\"GetUniformContourTrayShiftAngle_deg($1toolId)\")] public double GetUniformContourTrayShiftAngle_deg(int toolId) Parameters toolId int The ID of the tool Returns double The shift angle in degrees LineSelection(string, AnchorMode, IStepShift, AnchorMode, IStepShift) Create a line selection from begin to end mark. public void LineSelection(string key, AnchorMode beginAnchorMode = AnchorMode.LineBegin, IStepShift beginShift = null, AnchorMode endAnchorMode = AnchorMode.LineEnd, IStepShift endShift = null) Parameters key string Identifier key for the selection beginAnchorMode AnchorMode Mode for anchoring the beginning of selection beginShift IStepShift Step shift to apply at beginning endAnchorMode AnchorMode Mode for anchoring the end of selection endShift IStepShift Step shift to apply at end LoadCuttingParaByFile(string) Loads cutting parameters from a file. [JsAce(\"LoadCuttingParaByFile($1\\\"relFile\\\")\")] public void LoadCuttingParaByFile(string relFile) Parameters relFile string File path relative to BaseDirectory. Map(string, FileTimeSection, CycleSamplingMode?) Maps selection data to time section. public Task Map(string key, FileTimeSection fileTimeSection = null, StepTimeShotUtil.CycleSamplingMode? cycleSamplingMode = CycleSamplingMode.SpindleCycle) Parameters key string Identifier key for the selection fileTimeSection FileTimeSection File time section, or null to use the one associated with the key cycleSamplingMode StepTimeShotUtil.CycleSamplingMode? Cycle sampling mode Returns Task Task representing the asynchronous mapping operation MapByActualTime(string, CycleSamplingMode) Maps machining steps by actual time from a time shot file. [Obsolete] public void MapByActualTime(string timeShotRelFile, StepTimeShotUtil.CycleSamplingMode cycleSamplingMode = CycleSamplingMode.SpindleCycle) Parameters timeShotRelFile string Relative path to the time shot file. cycleSamplingMode StepTimeShotUtil.CycleSamplingMode The cycle sampling mode. MapSeriesByCsvFile(string, CycleSamplingMode) Maps machining steps by actual time from a time shot csv file. [JsAce(\"MapSeriesByCsvFile($1timeShotRelFile)\")] public void MapSeriesByCsvFile(string timeShotRelFile, StepTimeShotUtil.CycleSamplingMode cycleSamplingMode = CycleSamplingMode.SpindleCycle) Parameters timeShotRelFile string Relative path to the time shot file. cycleSamplingMode StepTimeShotUtil.CycleSamplingMode The cycle sampling mode. MapSingleByCsvFile(string) Reads a CSV file and performs time-based interpolation to map data to milling steps. It is one (step) - one (embedded-data) mapping. [JsAce(Snippet = \"MapSingleByCsvFile($1\\\"csvFile\\\")\")] public void MapSingleByCsvFile(string csvFile) Parameters csvFile string Path to the CSV file relative to the base directory Message(string) Displays a message in the message host. [JsAce(\"Message($1message)\")] public void Message(string message) Parameters message string The message to display OptCallPreferFuncIndexDictionary() Gets the dictionary of preferred function index for NC optimization. [JsAce(\"OptCallPreferFuncIndexDictionary()\")] public Dictionary, double> OptCallPreferFuncIndexDictionary() Returns Dictionary, double> Dictionary mapping functions to their preference indexes. OptimizeToFiles(string) Optimizes NC files and saves results using the specified file template. [JsAce(Snippet = \"OptimizeToFiles(\\\"Output/Opt-[NcName]\\\")\", DocContentHtml = \"Optimize To Files by substitude template keywoard \\\"[NcName]\\\"\")] public void OptimizeToFiles(string relFileTemplate = \"Output/Opt-[NcName]\") Parameters relFileTemplate string Template for output file path, can include [NcName] placeholder Pace() A pausable mark for the playing process. The function enables Pause() to take effect. [JsAce(\"Pace();\")] public void Pace() Remarks Waits for the player to signal the next pace. Pause() Pause Player [JsAce(DocContentHtml = \"Pause Player\")] public void Pause() PlayAct(IAct, IGetSentence, CancellationToken?) Plays an act with pacing control. [JsAce] public void PlayAct(IAct act, IGetSentence sourceCommand = null, CancellationToken? cancellationToken = null) Parameters act IAct The act to play. sourceCommand IGetSentence The source command. cancellationToken CancellationToken? Cancellation token. PlayClTeleport(double, double, double, double, double, double) Plays a CL (cutter location) teleport operation. [JsAce] public void PlayClTeleport(double x, double y, double z, double i, double j, double k) Parameters x double X coordinate. y double Y coordinate. z double Z coordinate. i double I vector component. j double J vector component. k double K vector component. PlayCsvFile(string) Plays an Csv file with the specified relative path. [JsAce(\"PlayCsvFile($1\\\"csvFile\\\");\")] public void PlayCsvFile(string relFilePath) Parameters relFilePath string Relative path to the CSV file PlayNc(string, string) Plays NC code directly from a string, executing each action and pacing between them. [JsAce(Snippet = \"PlayNc($1\\\"ncCommand\\\",$2\\\"\\\"(Direct Command)\\\"\\\");\", DocContentHtml = \"Play NC. second parameter is the file name alternative shows in the log.\")] public void PlayNc(string ncText, string fileNameAlternative = \"--\") Parameters ncText string NC code as a string fileNameAlternative string Alternative name to display in logs PlayNcFile(string) Plays an NC file with the specified relative path. [JsAce(\"PlayNcFile($1\\\"ncFile\\\");\")] public void PlayNcFile(string relNcFilePath) Parameters relNcFilePath string Relative path to the NC file PlayToolingTeleport(int) Plays a tooling teleport operation. [JsAce] public void PlayToolingTeleport(int toolId) Parameters toolId int The tool ID to teleport. PowerReset() Performs a controller power reset: every IPowerResettable dependency in the active NcDependencyList clears its volatile subset (e.g. Fanuc common volatile macro variables #100-#499). Persistent state is left intact. [JsAce(\"PowerReset();\")] public void PowerReset() Preserve() Preserve one line NC code in optimzation process. [JsAce(\"Preserve()\")] public void Preserve() ProgressMessage(string) Displays a progress message in the message host. [JsAce(\"ProgressMessage($1message)\")] public void ProgressMessage(string message) Parameters message string The progress message to display ReTrainMillingPara(SampleFlag, string, double) Re-trains milling parameters using the specified sample flag. [JsAce(\"ReTrainMillingPara(Fx|Fy|Fz, $1dstFile)\")] public void ReTrainMillingPara(SampleFlag sampleFlag, string dstRelFile, double outlierRatio = 0.1) Parameters sampleFlag SampleFlag Sample flag indicating which components to train dstRelFile string Destination relative file path outlierRatio double Outlier ratio for data filtering ReadCsvByTimeInterpolation(string) Reads a CSV file and performs time-based interpolation to map data to milling steps. It is one (step) - one (embedded-data) mapping. [Obsolete] public void ReadCsvByTimeInterpolation(string csvFile) Parameters csvFile string Path to the CSV file relative to the base directory ReadRuntimeGeom(string) Reads runtime geometry from a file. [JsAce(\"ReadRuntimeGeom($1\\\"srcFile\\\")\")] public void ReadRuntimeGeom(string relFile) Parameters relFile string Relative path to the input file RegisterStepVariable(string, string, string, string, Func) Registers a step variable for tracking during execution. [JsAce(Snippet = \"RegisterStepVariable(\\\"$1key\\\",\\\"$2name\\\",\\\"$3unit\\\",\\\"$4formatString\\\",\\\"$5variableFunc\\\")\", DocContentHtml = \"

    Register Step Variable.

    \\\"unit\\\" is nullable

    \\\"formatString\\\" is nullable

    \")] public void RegisterStepVariable(string key, string name, string unit, string formatString, Func variableFunc = null) Parameters key string Unique key to identify the variable name string Human-readable name of the variable unit string Physical unit of the variable (can be null) formatString string Format string for displaying the variable (can be null) variableFunc Func Function to compute the variable value from a milling step (can be null) RegisterWriteSyntaxPieces(string) Registers a text writer so each executed SyntaxPiece is appended to relOutputFile under the machining project base directory for debugging. [JsAce(Snippet = \"RegisterWriteSyntaxPieces($1\\\"Cache/syntax-pieces-output.txt\\\")\")] public void RegisterWriteSyntaxPieces(string relOutputFile) Parameters relOutputFile string Relative path for the output log file. RegisterWriteSyntaxPiecesWithActs(string) Registers a writer that outputs each SyntaxPiece once, followed by its associated IAct entries (one-to-many). [JsAce(Snippet = \"RegisterWriteSyntaxPiecesWithActs($1\\\"Cache/syntax-pieces-acts-output.txt\\\")\")] public void RegisterWriteSyntaxPiecesWithActs(string relOutputFile) Parameters relOutputFile string Output file path relative to BaseDirectory. RemoveFlyPiece() Removes any disconnected or “flying” pieces from the workpiece geometry. [JsAce] public void RemoveFlyPiece() Reset() Reset Player [JsAce(DocContentHtml = \"Reset Player\")] public void Reset() ResetRuntime() Clears internal buffers. [JsAce] public void ResetRuntime() RunNc(string, string) Runs NC code directly from a string. Not for end user with no programing skill. [JsAce(Snippet = \"RunNc($1\\\"ncCommand\\\",$2\\\"\\\"(Direct Command)\\\"\\\");\", DocContentHtml = \"Run NC. second parameter is the file name alternative shows in the log.\")] public IEnumerable RunNc(string ncText, string fileNameAlternative = \"--\") Parameters ncText string NC code as a string fileNameAlternative string Alternative name to display in logs Returns IEnumerable Enumerable sequence of actions to be executed RunNcFile(string) Runs an NC file with the specified relative path. Not for end user with no programing skill. [JsAce(\"RunNcFile($1\\\"ncFile\\\");\")] public IEnumerable RunNcFile(string relNcFilePath) Parameters relNcFilePath string Relative path to the NC file Returns IEnumerable Enumerable sequence of actions to be executed ScaledFeedPerCycle(double) Gets a new feed per cycle machining motion resolution instance with the specified scale. [JsAce(\"ScaledFeedPerCycle($1scale)\")] public FeedPerCycleMachiningMotionResolution ScaledFeedPerCycle(double scale) Parameters scale double The scale factor for the resolution. Returns FeedPerCycleMachiningMotionResolution A new FeedPerCycleMachiningMotionResolution instance with the specified scale. ScanRuntimeGeomInfDefect() Scans the runtime geometry for defects. After scanning, the scanned defects will render in the workpiece. [JsAce] public bool? ScanRuntimeGeomInfDefect() Returns bool? True if defects are found, false otherwise, or null if the operation cannot be performed. SetAllSnapshotSyntaxEnabled(bool) Sets IsEnabled on every SnapshotSyntax reachable from the active SoftNcRunner's NcSyntaxList (top-level slots and inside BundleSyntax). No-op when SoftNcRunner is not the active runner. [JsAce(DocContentHtml = \"Enable or disable every SnapshotSyntax in the active SoftNcRunner pipeline at once.\")] public void SetAllSnapshotSyntaxEnabled(bool isEnabled) Parameters isEnabled bool SetNcResolutionFeedPerCycle() Sets NC resolution to feed per cycle mode. public void SetNcResolutionFeedPerCycle() SetNcResolutionFeedPerTooth() Sets NC resolution to feed per tooth mode. public void SetNcResolutionFeedPerTooth() SetNcResolutionFixed(double, double) Sets NC resolution to fixed mode with specified resolution values. public void SetNcResolutionFixed(double linearResolution_mm, double rotaryResolution_deg) Parameters linearResolution_mm double Linear resolution in millimeters. rotaryResolution_deg double Rotary resolution in degrees. SetStickMachiningToolObservationHeight_mm(int, double) Sets the observation height in millimeters for the specified stick machining tool. [JsAce(\"SetStickMachiningToolObservationHeight_mm($1toolId,$2height_mm)\")] public void SetStickMachiningToolObservationHeight_mm(int toolId, double height) Parameters toolId int The ID of the tool height double The observation height in millimeters to set SetUniformContourTrayShiftAngle_deg(int, double) Sets the shift angle in degrees for the uniform contour tray of the specified tool. [JsAce(\"SetUniformContourTrayShiftAngle_deg($1toolId,$2angle_deg)\")] public void SetUniformContourTrayShiftAngle_deg(int toolId, double angle_deg) Parameters toolId int The ID of the tool angle_deg double The shift angle in degrees to set ShiftDistance_mm(double) Creates a distance shift object representing the specified distance in millimeters. public DistanceShift ShiftDistance_mm(double distanceShift_mm) Parameters distanceShift_mm double Distance shift in millimeters Returns DistanceShift Distance shift object ShiftTime_s(double) Creates a time shift object representing the specified time in seconds. public TimeShift ShiftTime_s(double seconds) Parameters seconds double Time in seconds Returns TimeShift Time shift object TrainMillingPara(SampleFlag, string, double, ICuttingPara) Trains milling parameters using the specified sample flag. [JsAce(\"TrainMillingPara(Fx|Fy|Fz, $1dstFile)\")] public void TrainMillingPara(SampleFlag sampleFlag, string dstRelFile, double outlierRatio = 0.1, ICuttingPara paraTemplate = null) Parameters sampleFlag SampleFlag Sample flag indicating which components to train dstRelFile string Destination relative file path outlierRatio double Outlier ratio for data filtering paraTemplate ICuttingPara Optional parameter template for cutting operations. WarningMessage(string) Displays a warning message in the message host. [JsAce(\"WarningMessage($1message)\")] public void WarningMessage(string message) Parameters message string The warning message to display WriteRuntimeGeom(string) Writes the current runtime geometry to a file. [JsAce(\"WriteRuntimeGeom($1\\\"dstFile\\\")\")] public void WriteRuntimeGeom(string relFile) Parameters relFile string Relative path to the output file WriteRuntimeGeomToObj(string, double) Writes the current runtime geometry to a Wavefront OBJ file with per-vertex RGB. [JsAce(\"WriteRuntimeGeomToObj($1\\\"dstFile\\\",$2resolution_mm)\")] public void WriteRuntimeGeomToObj(string relFile, double resolution_mm = 0) Parameters relFile string Relative path to the output OBJ file resolution_mm double Resolution in millimeters (0 for default) WriteRuntimeGeomToPly(string, double) Writes the current runtime geometry to a binary PLY file with per-vertex RGB. [JsAce(\"WriteRuntimeGeomToPly($1\\\"dstFile\\\",$2resolution_mm)\")] public void WriteRuntimeGeomToPly(string relFile, double resolution_mm = 0) Parameters relFile string Relative path to the output PLY file resolution_mm double Resolution in millimeters (0 for default) WriteRuntimeGeomToStl(string, double) Writes the current runtime geometry to an STL file. [JsAce(\"WriteRuntimeGeomToStl($1\\\"dstFile\\\",$2resolution_mm)\")] public void WriteRuntimeGeomToStl(string relFile, double resolution_mm = 0) Parameters relFile string Relative path to the output STL file resolution_mm double Resolution in millimeters (0 for default) WriteShotFiles(double, string) Writes time-series data to shot files with the specified resolution period (alternative parameter order). public void WriteShotFiles(double resolutionPeroid_ms, string relFileTemplate) Parameters resolutionPeroid_ms double Resolution period in milliseconds relFileTemplate string Template for output file path, can include [NcName] placeholder WriteShotFiles(string, double) Writes time-series data to shot files with the specified resolution period. [JsAce(Snippet = \"WriteShotFiles(\\\"Output/[NcName].shot.csv\\\",resolutionPeroid_ms)\", DocContentHtml = \"Write time series data by resolutionPeroid_ms\")] public void WriteShotFiles(string relFileTemplate = \"Output/[NcName].shot.csv\", double resolutionPeroid_ms = 1) Parameters relFileTemplate string Template for output file path, can include [NcName] placeholder resolutionPeroid_ms double Resolution period in milliseconds WriteStepFiles(string) Writes step-series data to files with the specified file template. [JsAce(Snippet = \"WriteStepFiles(\\\"Output/[NcName].step.csv\\\")\", DocContentHtml = \"Write step series data.\")] public void WriteStepFiles(string relFileTemplate = \"Output/[NcName].step.csv\") Parameters relFileTemplate string Template for output file path, can include [NcName] placeholder Events MachiningStepBuilt Session-scoped event triggered when a machining step is built. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). For app-lifetime event, use MachiningStepBuilt instead. [Obsolete(\"Use SessionStepBuilt instead.\")] public event MachiningActRunner.MachiningStepBuiltDelegate MachiningStepBuilt Event Type MachiningActRunner.MachiningStepBuiltDelegate MachiningStepSelected Session-scoped event triggered when a machining step is selected. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). [Obsolete(\"Use SessionStepSelected instead.\")] public event Action MachiningStepSelected Event Type Action SessionSourcedActEntry Session-scoped event triggered for each SourcedActEntry produced during NC/CSV execution. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). [JsAce(Snippet = \"SessionSourcedActEntry+=($1entry)=>{$2Command};\", DocContentHtml = \"Session-scoped event triggered for each SourcedActEntry. entry.SentenceSource is the source sentence; entry.Act is the associated act (may be null).\")] public event Action SessionSourcedActEntry Event Type Action SessionStepBuilt Session-scoped event triggered when a machining step is built. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). For app-lifetime event, use MachiningStepBuilt instead. [JsAce(Snippet = \"SessionStepBuilt+=($1preStep,$2curStep)=>{$3Command};\", DocContentHtml = \"Session-scoped step built event. preStep is the Previous Milling Step; curStep is the Current Milling Step. preStep is null if no previous step existed.\")] public event MachiningActRunner.MachiningStepBuiltDelegate SessionStepBuilt Event Type MachiningActRunner.MachiningStepBuiltDelegate SessionStepSelected Session-scoped event triggered when a machining step is selected. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). [JsAce(Snippet = \"SessionStepSelected+=($1millingStep)=>{$2Command};\")] public event Action SessionStepSelected Event Type Action SessionSyntaxPieceRan Session-scoped event triggered when a syntax piece has been executed. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). [JsAce(Snippet = \"SessionSyntaxPieceRan+=($1syntaxPiece)=>{$2Command};\", DocContentHtml = \"Session-scoped event triggered after each SyntaxPiece is executed. syntaxPiece may be null if the source command is not a SyntaxPiece.\")] public event Action SessionSyntaxPieceRan Event Type Action SyntaxPieceRan Session-scoped event triggered when a syntax piece has been executed. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). [Obsolete(\"Use SessionSyntaxPieceRan instead.\")] public event Action SyntaxPieceRan Event Type Action" + "summary": "Class SessionShell Namespace Hi.MachiningProcs Assembly HiNc.dll End-user-facing facade for a machining session: aggregates session lifecycle, NC playback, optimization, geometry I/O, and scripting infrastructure into a single delegation surface. Used as the C# script globals object and as the concrete target of ISessionCommand implementations. public class SessionShell : ISessionShell Inheritance object SessionShell Implements ISessionShell Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties DefaultParaTemplateDimension Gets or sets the parameter template dimension (2D or 3D). [JsAce] public int DefaultParaTemplateDimension { get; set; } Property Value int DiffVisualRadius_mm Gets or sets the visual radius in millimeters for difference visualization. Controls the radius used for highlighting differences between workpiece states. [JsAce] public double DiffVisualRadius_mm { get; set; } Property Value double DispCacheMb Gets or sets the display cache size in megabytes. [Obsolete] public long DispCacheMb { get; set; } Property Value long DispCache_Mb Gets or sets the display cache size in megabytes. [JsAce] public long DispCache_Mb { get; set; } Property Value long EmbeddedLogMode Gets or sets the embedded log mode for NC optimization. [JsAce] public static NcOptimizationEmbeddedLogMode EmbeddedLogMode { get; set; } Property Value NcOptimizationEmbeddedLogMode EnableCollisionDetection Gets or sets whether collision detection is enabled. [JsAce(DocContentHtml = \"Enable Collision Detection.\")] public bool EnableCollisionDetection { get; set; } Property Value bool EnableIndividualStepAdjustmentLog Gets or sets whether to enable individual step adjustment logging. [JsAce] public static bool EnableIndividualStepAdjustmentLog { get; set; } Property Value bool EnableMapOnSelectionEnd Gets or sets whether to automatically map selections when they end. [JsAce] public bool EnableMapOnSelectionEnd { get; set; } Property Value bool EnableMotionDependentMachiningResolution Gets or sets whether motion-dependent machining resolution is enabled. [JsAce] public bool EnableMotionDependentMachiningResolution { get; set; } Property Value bool EnableMzLeverWeightingOnTraining Gets or sets whether Mz lever weighting is enabled on training. [Obsolete] public bool EnableMzLeverWeightingOnTraining { get; set; } Property Value bool EnablePauseOnCollision Gets or sets whether to pause execution when a collision is detected. This property only has an effect if collision detection is enabled. [Obsolete] public bool EnablePauseOnCollision { get; set; } Property Value bool EnablePauseOnFailure Gets or sets whether to pause on failure during execution. [JsAce(DocContentHtml = \"Enable Pause On Failure.\")] public bool EnablePauseOnFailure { get; set; } Property Value bool EnablePhysics Gets or sets whether milling force evaluation is enabled. [JsAce(DocContentHtml = \"Enable milling force evaluation.\")] public bool EnablePhysics { get; set; } Property Value bool EnableSampleNormalization [Obsolete] public bool EnableSampleNormalization { get; set; } Property Value bool Remarks The input normalization deminish the quantity effect. The R-value decrease from 99% to 70% in moment training case from NKUST\\nkust2024-milling-para-training-plan\\workingx.hincproj Don't apply this option. EnableSoftNcRunner Workaround flag to use SoftNcRunner instead of HardNcRunner. Will be removed when HardNcRunner is fully replaced. [JsAce(DocContentHtml = \"Enable SoftNcRunner instead of legacy HardNcRunner.\")] public bool EnableSoftNcRunner { get; set; } Property Value bool EnableWearEffect Gets or sets whether tool wear effects are enabled in simulation. [JsAce] public bool EnableWearEffect { get; set; } Property Value bool FeedPerCycle Gets a new feed per cycle machining motion resolution instance. [JsAce] public FeedPerCycleMachiningMotionResolution FeedPerCycle { get; } Property Value FeedPerCycleMachiningMotionResolution FeedPerTooth Gets a new feed per tooth machining motion resolution instance. [JsAce] public FeedPerToothMachiningMotionResolution FeedPerTooth { get; } Property Value FeedPerToothMachiningMotionResolution Fixture Gets or sets the fixture. [JsAce] public Fixture Fixture { get; set; } Property Value Fixture Global [JsAce(\"Global[$1key]\")] public Dictionary Global { get; } Property Value Dictionary InitSpindleTemperature_C Gets or sets the initial spindle temperature in degrees Celsius. [JsAce(DocContentHtml = \"Spindle Temperature on initialization.\")] public double InitSpindleTemperature_C { get; set; } Property Value double JsAceCompletionProfileJsonArray Internal used. public static JsonArray JsAceCompletionProfileJsonArray { get; } Property Value JsonArray MachiningMotionResolution Gets or sets the machining motion resolution. [JsAce] public IMachiningMotionResolution MachiningMotionResolution { get; set; } Property Value IMachiningMotionResolution MachiningResolution Gets or sets the machining resolution in millimeters. [JsAce] [Obsolete(\"Use MachiningResolution_mm instead.\")] public double MachiningResolution { get; set; } Property Value double MachiningResolution_mm Gets or sets the machining resolution in millimeters. [JsAce] public double MachiningResolution_mm { get; set; } Property Value double MachiningSession public MachiningSession MachiningSession { get; } Property Value MachiningSession MapTask Task tracking the status of mapping operations. public Task MapTask { get; set; } Property Value Task MillingCycleDivisionNum Gets or sets the number of divisions per cycle for milling force calculation. This property should be set before milling force evaluation if TrainMillingPara(SampleFlag, string, double, ICuttingPara) is intended to be used. [JsAce] public static int MillingCycleDivisionNum { get; set; } Property Value int MillingForceCycleDivisionNum Gets or sets the number of divisions per cycle for milling force calculation. This property should be set before milling force evaluation if TrainMillingPara(SampleFlag, string, double, ICuttingPara) is intended to be used. [JsAce(DocContentHtml = \"Obsoleted. Use MillingCycleDivisionNum instead.\")] [Obsolete(\"Use MillingCycleDivisionNum instead.\")] public static int MillingForceCycleDivisionNum { get; set; } Property Value int NcOptOption Gets or sets the NC optimization options. [JsAce] public NcOptOption NcOptOption { get; set; } Property Value NcOptOption OptEnableDepthCompensation Enables or disables depth compensation during optimization. [JsAce] public bool OptEnableDepthCompensation { get; set; } Property Value bool OptEnableFeedrate Gets or sets whether to enable feed rate optimization in NC optimization. [JsAce] public bool OptEnableFeedrate { get; set; } Property Value bool OptEnableForwardCompensation Enables or disables forward compensation during optimization. [JsAce] public bool OptEnableForwardCompensation { get; set; } Property Value bool OptEnableInterpolation Enables or disables reinterpolation for optimization. [JsAce] public bool OptEnableInterpolation { get; set; } Property Value bool OptEnableSideCompensation Enables or disables side compensation during optimization. [JsAce] public bool OptEnableSideCompensation { get; set; } Property Value bool OptExtendedPostDistance_mm Gets or sets the extended post-distance in millimeters for NC optimization. This is the distance after the current segment that will be considered for optimization. [JsAce] public double OptExtendedPostDistance_mm { get; set; } Property Value double OptExtendedPreDistance_mm Gets or sets the extended pre-distance in millimeters for NC optimization. This is the distance before the current segment that will be considered for optimization. [JsAce] public double OptExtendedPreDistance_mm { get; set; } Property Value double OptFeedrateAssignmentRatio Gets or sets the feedrate assignment ratio for optimization. If the feedrate change exceeds this ratio, the feedrate in the NC line will be updated. [JsAce] public double OptFeedrateAssignmentRatio { get; set; } Property Value double OptMaxAcceleration_mmds2 Maximum acceleration in mm/s² during optimization. Only takes effect on reinterpolated section. [JsAce(DocContentHtml = \"Only take effect on reinterpolated section.\")] public double OptMaxAcceleration_mmds2 { get; set; } Property Value double OptMaxFeedPerTooth_mm Gets or sets the maximum feed per tooth in millimeters for optimization. [JsAce] public double OptMaxFeedPerTooth_mm { get; set; } Property Value double OptMaxFeedrate_mmdmin Maximum feed rate in mm/min for cutting movements during optimization. [JsAce] public double OptMaxFeedrate_mmdmin { get; set; } Property Value double OptMaxJerk_mmds3 Maximum jerk in mm/s³ during optimization. Only takes effect on reinterpolated section. [JsAce(DocContentHtml = \"Only take effect on reinterpolated section.\")] public double OptMaxJerk_mmds3 { get; set; } Property Value double OptMinFeedPerTooth_mm Gets or sets the minimum feed per tooth in millimeters for optimization. [JsAce] public double OptMinFeedPerTooth_mm { get; set; } Property Value double OptMinFeedrate_mmdmin Minimum feed rate in mm/min for cutting movements during optimization. [JsAce] public double OptMinFeedrate_mmdmin { get; set; } Property Value double OptPreferedForce_N Preferred force in N for optimization. [JsAce] public double OptPreferedForce_N { get; set; } Property Value double OptRapidFeed_mmdmin Rapid feed rate in mm/min for non-cutting movements during optimization. [JsAce] public double OptRapidFeed_mmdmin { get; set; } Property Value double OptSpindlePowerSafetyFactor Safety factor for MAX spindle power during optimization. [JsAce] public double OptSpindlePowerSafetyFactor { get; set; } Property Value double OptSpindlePowerUtilizationFactor Utilization factor for MAX spindle power during optimization. It is the reciprocal of the spindle power safety factor. [JsAce] public double OptSpindlePowerUtilizationFactor { get; set; } Property Value double OptSpindleTorqueSafetyFactor Gets or sets the MAX spindle torque safety factor for NC optimization. [JsAce] public double OptSpindleTorqueSafetyFactor { get; set; } Property Value double OptSpindleTorqueUtilizationFactor Utilization factor for MAX spindle torque during optimization. It is the reciprocal of the spindle torque safety factor. [JsAce] public double OptSpindleTorqueUtilizationFactor { get; set; } Property Value double OptThermalYieldSafetyFactor Safety factor for spindle torque during optimization. [JsAce] public double OptThermalYieldSafetyFactor { get; set; } Property Value double OptThermalYieldUtilizationFactor Utilization factor for thermal yield during optimization. It is the reciprocal of the thermal yield safety factor. [JsAce] public double OptThermalYieldUtilizationFactor { get; set; } Property Value double OptYieldingSafetyFactor Safety factor for yielding during optimization. [JsAce] public double OptYieldingSafetyFactor { get; set; } Property Value double OptYieldingUtilizationFactor Utilization factor for yielding during optimization. It is the reciprocal of the yielding safety factor. [JsAce] public double OptYieldingUtilizationFactor { get; set; } Property Value double ScriptOptions ScriptOptions. public ScriptOptions ScriptOptions { get; set; } Property Value ScriptOptions SessionMessageHost Obsolete alias for SessionProgress (session-scoped progress and messages). [JsAce] [Obsolete(\"Use SessionProgress instead.\")] public SessionProgress SessionMessageHost { get; } Property Value SessionProgress SessionProgress Gets the session message host for displaying messages. [JsAce] public SessionProgress SessionProgress { get; } Property Value SessionProgress StepCount Gets the total number of milling steps. [JsAce] public int StepCount { get; } Property Value int Workpiece Gets or sets the workpiece. [JsAce] public Workpiece Workpiece { get; set; } Property Value Workpiece Methods AddTimeDataByFile(string, string, double, double) Adds time-based data from a file to the time mapping dictionary with specified time bounds in seconds. [JsAce(\"AddTimeDataByFile($1key, $2relFile, $3beginTime, $4endTime)\")] public bool AddTimeDataByFile(string key, string relFile, double beginTime, double endTime) Parameters key string Key to identify the data relFile string Relative path to the data file beginTime double Beginning time in seconds endTime double Ending time in seconds Returns bool True if the data was successfully added, false otherwise AddTimeDataByFile(string, string, string, string) Adds time-based data from a file to the time mapping dictionary with specified time bounds. [JsAce(\"AddTimeDataByFile($1key, $2relFile, $3beginTime, $4endTime)\")] public bool AddTimeDataByFile(string key, string relFile, string beginTimeText, string endTimeText) Parameters key string Key to identify the data relFile string Relative path to the data file beginTimeText string Beginning time as text (seconds or TimeSpan format) endTimeText string Ending time as text (seconds or TimeSpan format) Returns bool True if the data was successfully added, false otherwise AdjustedFeedPerCycle(double, double) Gets a new feed per cycle machining motion resolution instance with adjusted scale and minimum linear resolution. [JsAce(\"AdjustedFeedPerCycle($1scale,$2minLinearResolution_mm)\")] public FeedPerCycleMachiningMotionResolution AdjustedFeedPerCycle(double scale, double minLinearResolution_mm = 0) Parameters scale double The scale factor for the resolution. minLinearResolution_mm double The minimum linear resolution in millimeters. Default is 0. Returns FeedPerCycleMachiningMotionResolution A new FeedPerCycleMachiningMotionResolution instance with the specified parameters. AlignWorkpieceProgramZeroToIso(string) Places workpiece + fixture so that ProgramZeroAnchor coincides with the world position the spindle reaches when the machine coordinate equals isoCoordId's entry (G54/G55/...). The buckle anchors must already be set per the general rule (typically by the project XML): FixtureBuckle at the bottom center of the workpiece geom, WorkpieceBuckle at the top center of the fixture geom, ProgramZeroAnchor at the workpiece-geom top center (or any chosen tip). Only GeomToTableTransformer is mutated. Delegates topology math to AlignWorkpieceProgramZeroToIso(IMachiningEquipment, Vec3d). [JsAce] public void AlignWorkpieceProgramZeroToIso(string isoCoordId) Parameters isoCoordId string ID into the IsoCoordinateTable, e.g. “G54”. AppendMessagesToFile(string, params string[]) Appends messages to a file, optionally filtered by tags. [JsAce(\"AppendMessagesToFile(\\\"dstRelFile\\\",flags)\")] public void AppendMessagesToFile(string dstRelFile, params string[] flags) Parameters dstRelFile string Destination relative file path flags string[] Optional flags to filter messages by tags BeginPreserve() Begin Preserve section in optimzation process. [JsAce(\"BeginPreserve()\")] public void BeginPreserve() BeginSelection(string, AnchorMode, IStepShift) Begin mark on current line. milling step() has not triggered yet. public void BeginSelection(string key, AnchorMode anchorMode = AnchorMode.LineBegin, IStepShift shift = null) Parameters key string Identifier key for the selection anchorMode AnchorMode Mode for anchoring the beginning of selection shift IStepShift Step shift to apply BeginSession() Begins a new machining session. Not for end user. public void BeginSession() ClearDefectDisplayee() Clears the defect displayee from the workpiece. [JsAce] public void ClearDefectDisplayee() ClearTimeMappingData() Clears all time mapping data. [JsAce] public void ClearTimeMappingData() Diff(double) Performs a difference analysis on the workpiece geometry to detect variations. [JsAce(\"Diff($1detectionRadius_mm)\")] public void Diff(double detectionRadius_mm) Parameters detectionRadius_mm double Radius for detecting differences EndPreserve() End Preserve section in optimzation process. [JsAce(\"EndPreserve()\")] public void EndPreserve() EndSelection(string, AnchorMode, IStepShift) End mark on current line for selection. public void EndSelection(string key, AnchorMode anchorMode = AnchorMode.LineEnd, IStepShift shift = null) Parameters key string Identifier key for the selection anchorMode AnchorMode Mode for anchoring the end of selection shift IStepShift Step shift to apply EndSession() Ends the current machining session. Not for end user. public void EndSession() ErrorMessage(string) Displays an error message in the message host. [JsAce(\"ErrorMessage($1message)\")] public void ErrorMessage(string message) Parameters message string The error message to display FixedPace(double, double) Creates a fixed machining motion resolution with specified parameters. [JsAce(\"FixedPace($1linearResolution_mm, $2rotaryResolution_deg)\")] public FixedMachiningMotionResolution FixedPace(double linearResolution_mm, double rotaryResolution_deg) Parameters linearResolution_mm double Linear resolution in millimeters rotaryResolution_deg double Rotary resolution in degrees Returns FixedMachiningMotionResolution A new fixed machining motion resolution instance GetMillingStep(int) Retrieves a milling step at the specified index. [JsAce(Snippet = \"GetMillingStep($1\\\"stepIndex\\\")\")] public MachiningStep GetMillingStep(int stepIndex) Parameters stepIndex int Index of the milling step to retrieve Returns MachiningStep The milling step at the specified index GetStickMachiningToolObservationHeight_mm(int) Gets the observation height in millimeters for the specified stick machining tool. [JsAce(\"GetStickMachiningToolObservationHeight_mm($1toolId)\")] public double GetStickMachiningToolObservationHeight_mm(int toolId) Parameters toolId int The ID of the tool Returns double The observation height in millimeters GetUniformContourTrayShiftAngle_deg(int) Gets the shift angle in degrees for the uniform contour tray of the specified tool. [JsAce(\"GetUniformContourTrayShiftAngle_deg($1toolId)\")] public double GetUniformContourTrayShiftAngle_deg(int toolId) Parameters toolId int The ID of the tool Returns double The shift angle in degrees LineSelection(string, AnchorMode, IStepShift, AnchorMode, IStepShift) Create a line selection from begin to end mark. public void LineSelection(string key, AnchorMode beginAnchorMode = AnchorMode.LineBegin, IStepShift beginShift = null, AnchorMode endAnchorMode = AnchorMode.LineEnd, IStepShift endShift = null) Parameters key string Identifier key for the selection beginAnchorMode AnchorMode Mode for anchoring the beginning of selection beginShift IStepShift Step shift to apply at beginning endAnchorMode AnchorMode Mode for anchoring the end of selection endShift IStepShift Step shift to apply at end LoadCuttingParaByFile(string) Loads cutting parameters from a file. [JsAce(\"LoadCuttingParaByFile($1\\\"relFile\\\")\")] public void LoadCuttingParaByFile(string relFile) Parameters relFile string File path relative to BaseDirectory. Map(string, FileTimeSection, CycleSamplingMode?) Maps selection data to time section. public Task Map(string key, FileTimeSection fileTimeSection = null, StepTimeShotUtil.CycleSamplingMode? cycleSamplingMode = CycleSamplingMode.SpindleCycle) Parameters key string Identifier key for the selection fileTimeSection FileTimeSection File time section, or null to use the one associated with the key cycleSamplingMode StepTimeShotUtil.CycleSamplingMode? Cycle sampling mode Returns Task Task representing the asynchronous mapping operation MapByActualTime(string, CycleSamplingMode) Maps machining steps by actual time from a time shot file. [Obsolete] public void MapByActualTime(string timeShotRelFile, StepTimeShotUtil.CycleSamplingMode cycleSamplingMode = CycleSamplingMode.SpindleCycle) Parameters timeShotRelFile string Relative path to the time shot file. cycleSamplingMode StepTimeShotUtil.CycleSamplingMode The cycle sampling mode. MapSeriesByCsvFile(string, CycleSamplingMode) Maps machining steps by actual time from a time shot csv file. [JsAce(\"MapSeriesByCsvFile($1timeShotRelFile)\")] public void MapSeriesByCsvFile(string timeShotRelFile, StepTimeShotUtil.CycleSamplingMode cycleSamplingMode = CycleSamplingMode.SpindleCycle) Parameters timeShotRelFile string Relative path to the time shot file. cycleSamplingMode StepTimeShotUtil.CycleSamplingMode The cycle sampling mode. MapSingleByCsvFile(string) Reads a CSV file and performs time-based interpolation to map data to milling steps. It is one (step) - one (embedded-data) mapping. [JsAce(Snippet = \"MapSingleByCsvFile($1\\\"csvFile\\\")\")] public void MapSingleByCsvFile(string csvFile) Parameters csvFile string Path to the CSV file relative to the base directory Message(string) Displays a message in the message host. [JsAce(\"Message($1message)\")] public void Message(string message) Parameters message string The message to display OptCallPreferFuncIndexDictionary() Gets the dictionary of preferred function index for NC optimization. [JsAce(\"OptCallPreferFuncIndexDictionary()\")] public Dictionary, double> OptCallPreferFuncIndexDictionary() Returns Dictionary, double> Dictionary mapping functions to their preference indexes. OptimizeToFiles(string) Optimizes NC files and saves results using the specified file template. [JsAce(Snippet = \"OptimizeToFiles(\\\"Output/Opt-[NcName]\\\")\", DocContentHtml = \"Optimize To Files by substitude template keywoard \\\"[NcName]\\\"\")] public void OptimizeToFiles(string relFileTemplate = \"Output/Opt-[NcName]\") Parameters relFileTemplate string Template for output file path, can include [NcName] placeholder Pace() A pausable mark for the playing process. The function enables Pause() to take effect. [JsAce(\"Pace();\")] public void Pace() Remarks Waits for the player to signal the next pace. Pause() Pause Player [JsAce(DocContentHtml = \"Pause Player\")] public void Pause() PlayAct(IAct, IGetSentence, CancellationToken?) Plays an act with pacing control. [JsAce] public void PlayAct(IAct act, IGetSentence sourceCommand = null, CancellationToken? cancellationToken = null) Parameters act IAct The act to play. sourceCommand IGetSentence The source command. cancellationToken CancellationToken? Cancellation token. PlayClTeleport(double, double, double, double, double, double) Plays a CL (cutter location) teleport operation. [JsAce] public void PlayClTeleport(double x, double y, double z, double i, double j, double k) Parameters x double X coordinate. y double Y coordinate. z double Z coordinate. i double I vector component. j double J vector component. k double K vector component. PlayCsvFile(string) Plays an Csv file with the specified relative path. [JsAce(\"PlayCsvFile($1\\\"csvFile\\\");\")] public void PlayCsvFile(string relFilePath) Parameters relFilePath string Relative path to the CSV file PlayNc(string, string) Plays NC code directly from a string, executing each action and pacing between them. [JsAce(Snippet = \"PlayNc($1\\\"ncCommand\\\",$2\\\"\\\"(Direct Command)\\\"\\\");\", DocContentHtml = \"Play NC. second parameter is the file name alternative shows in the log.\")] public void PlayNc(string ncText, string fileNameAlternative = \"--\") Parameters ncText string NC code as a string fileNameAlternative string Alternative name to display in logs PlayNcFile(string) Plays an NC file with the specified relative path. [JsAce(\"PlayNcFile($1\\\"ncFile\\\");\")] public void PlayNcFile(string relNcFilePath) Parameters relNcFilePath string Relative path to the NC file PlayToolingTeleport(int) Plays a tooling teleport operation. [JsAce] public void PlayToolingTeleport(int toolId) Parameters toolId int The tool ID to teleport. PowerReset() Performs a controller power reset: every IPowerResettable dependency in the active NcDependencyList clears its volatile subset (e.g. Fanuc common volatile macro variables #100-#499). Persistent state is left intact. [JsAce(\"PowerReset();\")] public void PowerReset() Preserve() Preserve one line NC code in optimzation process. [JsAce(\"Preserve()\")] public void Preserve() ProgressMessage(string) Displays a progress message in the message host. [JsAce(\"ProgressMessage($1message)\")] public void ProgressMessage(string message) Parameters message string The progress message to display ReTrainMillingPara(SampleFlag, string, double) Re-trains milling parameters using the specified sample flag. [JsAce(\"ReTrainMillingPara(Fx|Fy|Fz, $1dstFile)\")] public void ReTrainMillingPara(SampleFlag sampleFlag, string dstRelFile, double outlierRatio = 0.1) Parameters sampleFlag SampleFlag Sample flag indicating which components to train dstRelFile string Destination relative file path outlierRatio double Outlier ratio for data filtering ReadCsvByTimeInterpolation(string) Reads a CSV file and performs time-based interpolation to map data to milling steps. It is one (step) - one (embedded-data) mapping. [Obsolete] public void ReadCsvByTimeInterpolation(string csvFile) Parameters csvFile string Path to the CSV file relative to the base directory ReadRuntimeGeom(string) Reads runtime geometry from a file. [JsAce(\"ReadRuntimeGeom($1\\\"srcFile\\\")\")] public void ReadRuntimeGeom(string relFile) Parameters relFile string Relative path to the input file RegisterStepVariable(string, string, string, string, Func) Registers a step variable for tracking during execution. [JsAce(Snippet = \"RegisterStepVariable(\\\"$1key\\\",\\\"$2name\\\",\\\"$3unit\\\",\\\"$4formatString\\\",\\\"$5variableFunc\\\")\", DocContentHtml = \"

    Register Step Variable.

    \\\"unit\\\" is nullable

    \\\"formatString\\\" is nullable

    \")] public void RegisterStepVariable(string key, string name, string unit, string formatString, Func variableFunc = null) Parameters key string Unique key to identify the variable name string Human-readable name of the variable unit string Physical unit of the variable (can be null) formatString string Format string for displaying the variable (can be null) variableFunc Func Function to compute the variable value from a milling step (can be null) RegisterWriteSyntaxPieces(string) Registers a text writer so each executed SyntaxPiece is appended to relOutputFile under the machining project base directory for debugging. [JsAce(Snippet = \"RegisterWriteSyntaxPieces($1\\\"Cache/syntax-pieces-output.txt\\\")\")] public void RegisterWriteSyntaxPieces(string relOutputFile) Parameters relOutputFile string Relative path for the output log file. RegisterWriteSyntaxPiecesWithActs(string) Registers a writer that outputs each SyntaxPiece once, followed by its associated IAct entries (one-to-many). [JsAce(Snippet = \"RegisterWriteSyntaxPiecesWithActs($1\\\"Cache/syntax-pieces-acts-output.txt\\\")\")] public void RegisterWriteSyntaxPiecesWithActs(string relOutputFile) Parameters relOutputFile string Output file path relative to BaseDirectory. RemoveFlyPiece() Removes any disconnected or “flying” pieces from the workpiece geometry. [JsAce] public void RemoveFlyPiece() Reset() Reset Player [JsAce(DocContentHtml = \"Reset Player\")] public void Reset() ResetRuntime() Clears internal buffers. [JsAce] public void ResetRuntime() RunNc(string, string) Runs NC code directly from a string. Not for end user with no programing skill. [JsAce(Snippet = \"RunNc($1\\\"ncCommand\\\",$2\\\"\\\"(Direct Command)\\\"\\\");\", DocContentHtml = \"Run NC. second parameter is the file name alternative shows in the log.\")] public IEnumerable RunNc(string ncText, string fileNameAlternative = \"--\") Parameters ncText string NC code as a string fileNameAlternative string Alternative name to display in logs Returns IEnumerable Enumerable sequence of actions to be executed RunNcFile(string) Runs an NC file with the specified relative path. Not for end user with no programing skill. [JsAce(\"RunNcFile($1\\\"ncFile\\\");\")] public IEnumerable RunNcFile(string relNcFilePath) Parameters relNcFilePath string Relative path to the NC file Returns IEnumerable Enumerable sequence of actions to be executed ScaledFeedPerCycle(double) Gets a new feed per cycle machining motion resolution instance with the specified scale. [JsAce(\"ScaledFeedPerCycle($1scale)\")] public FeedPerCycleMachiningMotionResolution ScaledFeedPerCycle(double scale) Parameters scale double The scale factor for the resolution. Returns FeedPerCycleMachiningMotionResolution A new FeedPerCycleMachiningMotionResolution instance with the specified scale. ScanRuntimeGeomInfDefect() Scans the runtime geometry for defects. After scanning, the scanned defects will render in the workpiece. [JsAce] public bool? ScanRuntimeGeomInfDefect() Returns bool? True if defects are found, false otherwise, or null if the operation cannot be performed. SetAllSnapshotSyntaxEnabled(bool) Sets IsEnabled on every SnapshotSyntax reachable from the active SoftNcRunner's NcSyntaxList (top-level slots and inside BundleSyntax). No-op when SoftNcRunner is not the active runner. [JsAce(DocContentHtml = \"Enable or disable every SnapshotSyntax in the active SoftNcRunner pipeline at once.\")] public void SetAllSnapshotSyntaxEnabled(bool isEnabled) Parameters isEnabled bool SetNcResolutionFeedPerCycle() Sets NC resolution to feed per cycle mode. public void SetNcResolutionFeedPerCycle() SetNcResolutionFeedPerTooth() Sets NC resolution to feed per tooth mode. public void SetNcResolutionFeedPerTooth() SetNcResolutionFixed(double, double) Sets NC resolution to fixed mode with specified resolution values. public void SetNcResolutionFixed(double linearResolution_mm, double rotaryResolution_deg) Parameters linearResolution_mm double Linear resolution in millimeters. rotaryResolution_deg double Rotary resolution in degrees. SetStickMachiningToolObservationHeight_mm(int, double) Sets the observation height in millimeters for the specified stick machining tool. [JsAce(\"SetStickMachiningToolObservationHeight_mm($1toolId,$2height_mm)\")] public void SetStickMachiningToolObservationHeight_mm(int toolId, double height) Parameters toolId int The ID of the tool height double The observation height in millimeters to set SetUniformContourTrayShiftAngle_deg(int, double) Sets the shift angle in degrees for the uniform contour tray of the specified tool. [JsAce(\"SetUniformContourTrayShiftAngle_deg($1toolId,$2angle_deg)\")] public void SetUniformContourTrayShiftAngle_deg(int toolId, double angle_deg) Parameters toolId int The ID of the tool angle_deg double The shift angle in degrees to set ShiftDistance_mm(double) Creates a distance shift object representing the specified distance in millimeters. public DistanceShift ShiftDistance_mm(double distanceShift_mm) Parameters distanceShift_mm double Distance shift in millimeters Returns DistanceShift Distance shift object ShiftTime_s(double) Creates a time shift object representing the specified time in seconds. public TimeShift ShiftTime_s(double seconds) Parameters seconds double Time in seconds Returns TimeShift Time shift object TrainMillingPara(SampleFlag, string, double, ICuttingPara) Trains milling parameters using the specified sample flag. [JsAce(\"TrainMillingPara(Fx|Fy|Fz, $1dstFile)\")] public void TrainMillingPara(SampleFlag sampleFlag, string dstRelFile, double outlierRatio = 0.1, ICuttingPara paraTemplate = null) Parameters sampleFlag SampleFlag Sample flag indicating which components to train dstRelFile string Destination relative file path outlierRatio double Outlier ratio for data filtering paraTemplate ICuttingPara Optional parameter template for cutting operations. WarningMessage(string) Displays a warning message in the message host. [JsAce(\"WarningMessage($1message)\")] public void WarningMessage(string message) Parameters message string The warning message to display WriteRuntimeGeom(string) Writes the current runtime geometry to a file. [JsAce(\"WriteRuntimeGeom($1\\\"dstFile\\\")\")] public void WriteRuntimeGeom(string relFile) Parameters relFile string Relative path to the output file WriteRuntimeGeomToObj(string, double) Writes the current runtime geometry to a Wavefront OBJ file with per-vertex RGB. [JsAce(\"WriteRuntimeGeomToObj($1\\\"dstFile\\\",$2resolution_mm)\")] public void WriteRuntimeGeomToObj(string relFile, double resolution_mm = 0) Parameters relFile string Relative path to the output OBJ file resolution_mm double Resolution in millimeters (0 for default) WriteRuntimeGeomToPly(string, double) Writes the current runtime geometry to a binary PLY file with per-vertex RGB. [JsAce(\"WriteRuntimeGeomToPly($1\\\"dstFile\\\",$2resolution_mm)\")] public void WriteRuntimeGeomToPly(string relFile, double resolution_mm = 0) Parameters relFile string Relative path to the output PLY file resolution_mm double Resolution in millimeters (0 for default) WriteRuntimeGeomToStl(string, double) Writes the current runtime geometry to an STL file. [JsAce(\"WriteRuntimeGeomToStl($1\\\"dstFile\\\",$2resolution_mm)\")] public void WriteRuntimeGeomToStl(string relFile, double resolution_mm = 0) Parameters relFile string Relative path to the output STL file resolution_mm double Resolution in millimeters (0 for default) WriteShotFiles(double, string) Writes time-series data to shot files with the specified resolution period (alternative parameter order). public void WriteShotFiles(double resolutionPeroid_ms, string relFileTemplate) Parameters resolutionPeroid_ms double Resolution period in milliseconds relFileTemplate string Template for output file path, can include [NcName] placeholder WriteShotFiles(string, double) Writes time-series data to shot files with the specified resolution period. [JsAce(Snippet = \"WriteShotFiles(\\\"Output/[NcName].shot.csv\\\",resolutionPeroid_ms)\", DocContentHtml = \"Write time series data by resolutionPeroid_ms\")] public void WriteShotFiles(string relFileTemplate = \"Output/[NcName].shot.csv\", double resolutionPeroid_ms = 1) Parameters relFileTemplate string Template for output file path, can include [NcName] placeholder resolutionPeroid_ms double Resolution period in milliseconds WriteStepFiles(string) Writes step-series data to files with the specified file template. [JsAce(Snippet = \"WriteStepFiles(\\\"Output/[NcName].step.csv\\\")\", DocContentHtml = \"Write step series data.\")] public void WriteStepFiles(string relFileTemplate = \"Output/[NcName].step.csv\") Parameters relFileTemplate string Template for output file path, can include [NcName] placeholder Events MachiningStepBuilt Session-scoped event triggered when a machining step is built. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). For app-lifetime event, use MachiningStepBuilt instead. [Obsolete(\"Use SessionStepBuilt instead.\")] public event MachiningActRunner.MachiningStepBuiltDelegate MachiningStepBuilt Event Type MachiningActRunner.MachiningStepBuiltDelegate MachiningStepSelected Session-scoped event triggered when a machining step is selected. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). [Obsolete(\"Use SessionStepSelected instead.\")] public event Action MachiningStepSelected Event Type Action SessionSourcedActEntry Session-scoped event triggered for each SourcedActEntry produced during NC/CSV execution. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). [JsAce(Snippet = \"SessionSourcedActEntry+=($1entry)=>{$2Command};\", DocContentHtml = \"Session-scoped event triggered for each SourcedActEntry. entry.SentenceSource is the source sentence; entry.Act is the associated act (may be null).\")] public event Action SessionSourcedActEntry Event Type Action SessionStepBuilt Session-scoped event triggered when a machining step is built. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). For app-lifetime event, use MachiningStepBuilt instead. [JsAce(Snippet = \"SessionStepBuilt+=($1preStep,$2curStep)=>{$3Command};\", DocContentHtml = \"Session-scoped step built event. preStep is the Previous Milling Step; curStep is the Current Milling Step. preStep is null if no previous step existed.\")] public event MachiningActRunner.MachiningStepBuiltDelegate SessionStepBuilt Event Type MachiningActRunner.MachiningStepBuiltDelegate SessionStepSelected Session-scoped event triggered when a machining step is selected. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). [JsAce(Snippet = \"SessionStepSelected+=($1millingStep)=>{$2Command};\")] public event Action SessionStepSelected Event Type Action SessionSyntaxPieceRan Session-scoped event triggered when a syntax piece has been executed. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). [JsAce(Snippet = \"SessionSyntaxPieceRan+=($1syntaxPiece)=>{$2Command};\", DocContentHtml = \"Session-scoped event triggered after each SyntaxPiece is executed. syntaxPiece may be null if the source command is not a SyntaxPiece.\")] public event Action SessionSyntaxPieceRan Event Type Action SyntaxPieceRan Session-scoped event triggered when a syntax piece has been executed. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). [Obsolete(\"Use SessionSyntaxPieceRan instead.\")] public event Action SyntaxPieceRan Event Type Action" }, "api/Hi.MachiningProcs.SessionShellController.html": { "href": "api/Hi.MachiningProcs.SessionShellController.html", @@ -2149,6 +2089,11 @@ "title": "Interface IMachiningService | HiAPI-C# 2025", "summary": "Interface IMachiningService Namespace Hi.MachiningSteps Assembly HiMech.dll Represents a host interface for milling steps that provides access to milling equipment and related resources. public interface IMachiningService : IGetMachiningEquipment Inherited Members IGetMachiningEquipment.GetMillingEquipment() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties ClStrip Gets the cutter location strip containing the machining steps. ClStrip ClStrip { get; } Property Value ClStrip DictionaryColorGuide Gets the color guide for dictionary-based coloring. DictionaryColorGuide DictionaryColorGuide { get; } Property Value DictionaryColorGuide MachiningEquipment Gets the milling equipment used for machining operations. MachiningEquipment MachiningEquipment { get; } Property Value MachiningEquipment MachiningSession Gets the current machining session. MachiningSession MachiningSession { get; } Property Value MachiningSession MachiningToolHouse Gets the tool house containing milling tools. MachiningToolHouse MachiningToolHouse { get; } Property Value MachiningToolHouse MillingStepLuggageReader Gets the parallel bulk reader for milling step luggage data. ParallelBulkReader MillingStepLuggageReader { get; } Property Value ParallelBulkReader TimeMapping Gets the time mapping for synchronization. TimeMapping TimeMapping { get; } Property Value TimeMapping Methods GetSessionShell() Returns the session shell that exposes the runtime surface of the active machining session. ISessionShell GetSessionShell() Returns ISessionShell" }, + "api/Hi.MachiningSteps.IStepPropertyAccessHost.html": { + "href": "api/Hi.MachiningSteps.IStepPropertyAccessHost.html", + "title": "Interface IStepPropertyAccessHost | HiAPI-C# 2025", + "summary": "Interface IStepPropertyAccessHost Namespace Hi.MachiningSteps Assembly HiMech.dll Narrow host contract for accessing the step-variable registry and registering new step variables. Exposed as a dedicated surface so pipelines that only need step-variable wiring (e.g. CsvRowSyntax) do not have to depend on the broader IMachiningService. public interface IStepPropertyAccessHost Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties StepPropertyAccessDictionary Dictionary of step-property accessors keyed by property name. Used by CSV title-row processing to decide whether a column already maps to a reserved step property; new columns are registered via RegisterStepVariable(string, string, string, string, Func). ConcurrentDictionary> StepPropertyAccessDictionary { get; } Property Value ConcurrentDictionary> Methods RegisterStepVariable(string, string, string, string, Func) Registers a step variable so downstream components (strip charts, CSV exports, scripting) can read it from MachiningStep. Idempotent on key. void RegisterStepVariable(string key, string name, string unit, string formatString, Func variableFunc = null) Parameters key string Unique key. name string Human-readable name; may equal key. unit string Physical unit name (PhysicsUnit); nullable. formatString string Display format string; nullable. variableFunc Func Optional value extractor; nullable when the value comes from the step's flex dictionary." + }, "api/Hi.MachiningSteps.MachineMotionStep.html": { "href": "api/Hi.MachiningSteps.MachineMotionStep.html", "title": "Class MachineMotionStep | HiAPI-C# 2025", @@ -2187,7 +2132,7 @@ "api/Hi.MachiningSteps.html": { "href": "api/Hi.MachiningSteps.html", "title": "Namespace Hi.MachiningSteps | HiAPI-C# 2025", - "summary": "Namespace Hi.MachiningSteps Classes MachineMotionStep MachiningStep has spindle information. Note that the spindle information is only for milling behavior. MachiningStep Represents a machining step enriched with physics, mapping and source metadata. The duration-based step property is based on the duration from previous-step to current-step. MachiningStep.CollidedKeyPair A pair of collided keys that indicates two entities are in collision. MachiningStepUtil Utility class for milling step related constants and helper methods. PresentAccess Provides a value accessor bound with its PresentAttribute metadata. PresentAttribute Attribute for presenting property information with localization support. PropertyAccess Provides access to properties of a milling step with presentation information. Interfaces IFlagText temperary design for showing flag text. IMachiningService Represents a host interface for milling steps that provides access to milling equipment and related resources." + "summary": "Namespace Hi.MachiningSteps Classes MachineMotionStep MachiningStep has spindle information. Note that the spindle information is only for milling behavior. MachiningStep Represents a machining step enriched with physics, mapping and source metadata. The duration-based step property is based on the duration from previous-step to current-step. MachiningStep.CollidedKeyPair A pair of collided keys that indicates two entities are in collision. MachiningStepUtil Utility class for milling step related constants and helper methods. PresentAccess Provides a value accessor bound with its PresentAttribute metadata. PresentAttribute Attribute for presenting property information with localization support. PropertyAccess Provides access to properties of a milling step with presentation information. Interfaces IFlagText temperary design for showing flag text. IMachiningService Represents a host interface for milling steps that provides access to milling equipment and related resources. IStepPropertyAccessHost Narrow host contract for accessing the step-variable registry and registering new step variables. Exposed as a dedicated surface so pipelines that only need step-variable wiring (e.g. CsvRowSyntax) do not have to depend on the broader IMachiningService." }, "api/Hi.Mapping.CsvNcStep.html": { "href": "api/Hi.Mapping.CsvNcStep.html", @@ -3417,7 +3362,7 @@ "api/Hi.NcMech.Xyzabc.CodeXyzabcMachineTool.html": { "href": "api/Hi.NcMech.Xyzabc.CodeXyzabcMachineTool.html", "title": "Class CodeXyzabcMachineTool | HiAPI-C# 2025", - "summary": "Class CodeXyzabcMachineTool Namespace Hi.NcMech.Xyzabc Assembly HiMech.dll For legacy compatible. Use GeneralXyzabcMachineTool instead. public class CodeXyzabcMachineTool : IXyzabcMachineTool, IDisplayee, IGetCollisionIndexPairs, IXyzabcChain, IGetXyzabcChain, IMachiningChain, IGetAsmb, IGetAnchor, IGetTopoIndex, IMakeXmlSource, IGetAnchorToSolidDictionary, IGetAnchoredDisplayeeList, IExpandToBox3d, INameNote Inheritance object CodeXyzabcMachineTool Implements IXyzabcMachineTool IDisplayee IGetCollisionIndexPairs IXyzabcChain IGetXyzabcChain IMachiningChain IGetAsmb IGetAnchor IGetTopoIndex IMakeXmlSource IGetAnchorToSolidDictionary IGetAnchoredDisplayeeList IExpandToBox3d INameNote Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) MachiningChainUtil.GetMcCodeTransformerDictionary(IMachiningChain) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) XyzabcUtil.GenerateCollisionIndexPairs(IXyzabcChain) XyzabcUtil.GetMc(IXyzabcChain, out DVec3d) XyzabcUtil.GetMc(IXyzabcChain, out double, out double, out double, out double, out double, out double) XyzabcUtil.GetMcAbc_rad(IXyzabcChain, out Abc) XyzabcUtil.GetMcXyzabc(IXyzabcChain) XyzabcUtil.GetNp(IXyzabcChain) XyzabcUtil.GetTransformationMat4d(IXyzabcChain) XyzabcUtil.SetMc(IXyzabcChain, DVec3d) XyzabcUtil.SetMc(IXyzabcChain, Vec3d) XyzabcUtil.SetMc(IXyzabcChain, double, double, double) XyzabcUtil.SetMc(IXyzabcChain, double, double, double, double, double, double) XyzabcUtil.SetMcAbc_rad(IXyzabcChain, Vec3d) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors CodeXyzabcMachineTool(CodeXyzabcChain) Initializes a new instance of the CodeXyzabcMachineTool class. public CodeXyzabcMachineTool(CodeXyzabcChain xyzabcChain) Parameters xyzabcChain CodeXyzabcChain The XYZABC chain instance. CodeXyzabcMachineTool(string, bool) Builds a machine tool from a compact CodeXyzabcChain axis string and vertical/horizontal layout flag. public CodeXyzabcMachineTool(string chainCode = \"[O][Z][C][w];[O][Y][X][B][S][t]\", bool isVertical = true) Parameters chainCode string Bracket token string consumed by CodeXyzabcChain (defaults to a common 5-axis layout). isVertical bool Whether the Z column is treated as vertical for the generated chain. CodeXyzabcMachineTool(XElement, string, IProgress) Initializes a new instance from XML. public CodeXyzabcMachineTool(XElement src, string baseDirectory, IProgress progress) Parameters src XElement The XML source element. baseDirectory string The base directory for resolving relative paths. progress IProgress The progress reporter. Properties CollisionIndexPairs Gets or sets the collection of collision index pairs. public HashSet CollisionIndexPairs { get; set; } Property Value HashSet EnableAutoGeneratingCollisionIndexPairsOnXmlLoaded Gets or sets whether to automatically generate collision index pairs when loading from XML. public bool EnableAutoGeneratingCollisionIndexPairsOnXmlLoaded { get; set; } Property Value bool McCodes Gets the machine codes array. public string[] McCodes { get; } Property Value string[] McTransformers Gets the machine transformers array. public IDynamicRegular[] McTransformers { get; } Property Value IDynamicRegular[] Name Gets or sets the name of the object. public string Name { get; set; } Property Value string Note Gets or sets the descriptive note for the object. public string Note { get; set; } Property Value string TableAnchor Anchor to attach fixture or workpiece. The anchor is the same as IXyzabcChain.Hi.Numerical.Xyzabc.IXyzabcChain.GetTableBuckle. public Anchor TableAnchor { get; } Property Value Anchor ToolAnchor Anchor to attach tool. The anchor is the same as IXyzabcChain.Hi.Numerical.Xyzabc.IXyzabcChain.GetToolBuckle. public Anchor ToolAnchor { get; } Property Value Anchor XName Name of XML element. public static string XName { get; } Property Value string XyzabcChain Gets the XYZABC chain instance. public IXyzabcChain XyzabcChain { get; } Property Value IXyzabcChain Methods Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. ExpandToBox3d(Box3d) Expands the destination box. This function is usually used to compute the bounding box of elements. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d Destination box GenerateCollisionIndexPairs() Generates collision index pairs for the machine tool components. public void GenerateCollisionIndexPairs() GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor GetAnchorToSolidDictionary() Gets a dictionary that maps Anchor objects to their corresponding Solid objects. public Dictionary GetAnchorToSolidDictionary() Returns Dictionary A dictionary where keys are anchors and values are their associated solids. GetAnchoredDisplayeeList() Gets a list of anchored displayable objects. public List GetAnchoredDisplayeeList() Returns List A list of IAnchoredDisplayee objects GetAsmb() Gets the key asmb. public Asmb GetAsmb() Returns Asmb The key asmb. GetCollisionIndexPairs() Gets a collection of collision index pairs for collision detection. public IEnumerable GetCollisionIndexPairs() Returns IEnumerable A collection of CollisionIndexPair objects. GetMachiningChain() public IMachiningChain GetMachiningChain() Returns IMachiningChain GetMcCodeTransformerDictionary() public Dictionary GetMcCodeTransformerDictionary() Returns Dictionary GetTableBuckle() Gets the table buckle anchor point. public IGetAnchor GetTableBuckle() Returns IGetAnchor The table buckle anchor point. GetToolBuckle() Gets the tool buckle anchor point. public IGetAnchor GetToolBuckle() Returns IGetAnchor The tool buckle anchor point. GetTransformerA() Get transformer A. public DynamicRotation GetTransformerA() Returns DynamicRotation transformer A GetTransformerB() Get transformer B. public DynamicRotation GetTransformerB() Returns DynamicRotation transformer B GetTransformerC() Get transformer C. public DynamicRotation GetTransformerC() Returns DynamicRotation transformer C GetTransformerX() Get transformer X. public DynamicTranslation GetTransformerX() Returns DynamicTranslation transformer X GetTransformerY() Get transformer Y. public DynamicTranslation GetTransformerY() Returns DynamicTranslation transformer Y GetTransformerZ() Get transformer Z. public DynamicTranslation GetTransformerZ() Returns DynamicTranslation transformer Z GetXyzabcChain() Get IXyzabcChain. public IXyzabcChain GetXyzabcChain() Returns IXyzabcChain IXyzabcChain GetXyzabcMachineTool() public CodeXyzabcMachineTool GetXyzabcMachineTool() Returns CodeXyzabcMachineTool MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class CodeXyzabcMachineTool Namespace Hi.NcMech.Xyzabc Assembly HiMech.dll This machine tool class helps very quick test by the code configuration. For general/end-user use, apply GeneralXyzabcMachineTool instead. public class CodeXyzabcMachineTool : IXyzabcMachineTool, IDisplayee, IGetCollisionIndexPairs, IXyzabcChain, IGetXyzabcChain, IMachiningChain, IGetAsmb, IGetAnchor, IGetTopoIndex, IMakeXmlSource, IGetAnchorToSolidDictionary, IGetAnchoredDisplayeeList, IExpandToBox3d, INameNote Inheritance object CodeXyzabcMachineTool Implements IXyzabcMachineTool IDisplayee IGetCollisionIndexPairs IXyzabcChain IGetXyzabcChain IMachiningChain IGetAsmb IGetAnchor IGetTopoIndex IMakeXmlSource IGetAnchorToSolidDictionary IGetAnchoredDisplayeeList IExpandToBox3d INameNote Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) MachiningChainUtil.GetMcCodeTransformerDictionary(IMachiningChain) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) XyzabcUtil.GenerateCollisionIndexPairs(IXyzabcChain) XyzabcUtil.GetMc(IXyzabcChain, out DVec3d) XyzabcUtil.GetMc(IXyzabcChain, out double, out double, out double, out double, out double, out double) XyzabcUtil.GetMcAbc_rad(IXyzabcChain, out Abc) XyzabcUtil.GetMcXyzabc(IXyzabcChain) XyzabcUtil.GetNp(IXyzabcChain) XyzabcUtil.GetTransformationMat4d(IXyzabcChain) XyzabcUtil.SetMc(IXyzabcChain, DVec3d) XyzabcUtil.SetMc(IXyzabcChain, Vec3d) XyzabcUtil.SetMc(IXyzabcChain, double, double, double) XyzabcUtil.SetMc(IXyzabcChain, double, double, double, double, double, double) XyzabcUtil.SetMcAbc_rad(IXyzabcChain, Vec3d) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors CodeXyzabcMachineTool(CodeXyzabcChain) Initializes a new instance of the CodeXyzabcMachineTool class. public CodeXyzabcMachineTool(CodeXyzabcChain xyzabcChain) Parameters xyzabcChain CodeXyzabcChain The XYZABC chain instance. CodeXyzabcMachineTool(string, bool) Builds a machine tool from a compact CodeXyzabcChain axis string and vertical/horizontal layout flag. public CodeXyzabcMachineTool(string chainCode = \"[O][Z][C][w];[O][Y][X][B][S][t]\", bool isVertical = true) Parameters chainCode string Bracket token string consumed by CodeXyzabcChain (defaults to a common 5-axis layout). isVertical bool Whether the Z column is treated as vertical for the generated chain. CodeXyzabcMachineTool(XElement, string, IProgress) Initializes a new instance from XML. public CodeXyzabcMachineTool(XElement src, string baseDirectory, IProgress progress) Parameters src XElement The XML source element. baseDirectory string The base directory for resolving relative paths. progress IProgress The progress reporter. Properties CollisionIndexPairs Gets or sets the collection of collision index pairs. public HashSet CollisionIndexPairs { get; set; } Property Value HashSet EnableAutoGeneratingCollisionIndexPairsOnXmlLoaded Gets or sets whether to automatically generate collision index pairs when loading from XML. public bool EnableAutoGeneratingCollisionIndexPairsOnXmlLoaded { get; set; } Property Value bool McCodes Gets the machine codes array. public string[] McCodes { get; } Property Value string[] McTransformers Gets the machine transformers array. public IDynamicRegular[] McTransformers { get; } Property Value IDynamicRegular[] Name Gets or sets the name of the object. public string Name { get; set; } Property Value string Note Gets or sets the descriptive note for the object. public string Note { get; set; } Property Value string TableAnchor Anchor to attach fixture or workpiece. The anchor is the same as IXyzabcChain.Hi.Numerical.Xyzabc.IXyzabcChain.GetTableBuckle. public Anchor TableAnchor { get; } Property Value Anchor ToolAnchor Anchor to attach tool. The anchor is the same as IXyzabcChain.Hi.Numerical.Xyzabc.IXyzabcChain.GetToolBuckle. public Anchor ToolAnchor { get; } Property Value Anchor XName Name of XML element. public static string XName { get; } Property Value string XyzabcChain Gets the XYZABC chain instance. public IXyzabcChain XyzabcChain { get; } Property Value IXyzabcChain Methods Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. ExpandToBox3d(Box3d) Expands the destination box. This function is usually used to compute the bounding box of elements. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d Destination box GenerateCollisionIndexPairs() Generates collision index pairs for the machine tool components. public void GenerateCollisionIndexPairs() GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor GetAnchorToSolidDictionary() Gets a dictionary that maps Anchor objects to their corresponding Solid objects. public Dictionary GetAnchorToSolidDictionary() Returns Dictionary A dictionary where keys are anchors and values are their associated solids. GetAnchoredDisplayeeList() Gets a list of anchored displayable objects. public List GetAnchoredDisplayeeList() Returns List A list of IAnchoredDisplayee objects GetAsmb() Gets the key asmb. public Asmb GetAsmb() Returns Asmb The key asmb. GetCollisionIndexPairs() Gets a collection of collision index pairs for collision detection. public IEnumerable GetCollisionIndexPairs() Returns IEnumerable A collection of CollisionIndexPair objects. GetMachiningChain() public IMachiningChain GetMachiningChain() Returns IMachiningChain GetMcCodeTransformerDictionary() public Dictionary GetMcCodeTransformerDictionary() Returns Dictionary GetTableBuckle() Gets the table buckle anchor point. public IGetAnchor GetTableBuckle() Returns IGetAnchor The table buckle anchor point. GetToolBuckle() Gets the tool buckle anchor point. public IGetAnchor GetToolBuckle() Returns IGetAnchor The tool buckle anchor point. GetTransformerA() Get transformer A. public DynamicRotation GetTransformerA() Returns DynamicRotation transformer A GetTransformerB() Get transformer B. public DynamicRotation GetTransformerB() Returns DynamicRotation transformer B GetTransformerC() Get transformer C. public DynamicRotation GetTransformerC() Returns DynamicRotation transformer C GetTransformerX() Get transformer X. public DynamicTranslation GetTransformerX() Returns DynamicTranslation transformer X GetTransformerY() Get transformer Y. public DynamicTranslation GetTransformerY() Returns DynamicTranslation transformer Y GetTransformerZ() Get transformer Z. public DynamicTranslation GetTransformerZ() Returns DynamicTranslation transformer Z GetXyzabcChain() Get IXyzabcChain. public IXyzabcChain GetXyzabcChain() Returns IXyzabcChain IXyzabcChain GetXyzabcMachineTool() public CodeXyzabcMachineTool GetXyzabcMachineTool() Returns CodeXyzabcMachineTool MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcMech.Xyzabc.CodeXyzabcMachineToolUri.html": { "href": "api/Hi.NcMech.Xyzabc.CodeXyzabcMachineToolUri.html", @@ -3442,7 +3387,7 @@ "api/Hi.NcMech.Xyzabc.html": { "href": "api/Hi.NcMech.Xyzabc.html", "title": "Namespace Hi.NcMech.Xyzabc | HiAPI-C# 2025", - "summary": "Namespace Hi.NcMech.Xyzabc Classes CodeXyzabcMachineTool For legacy compatible. Use GeneralXyzabcMachineTool instead. CodeXyzabcMachineToolUri Represents a URI-based container for CodeXyzabcMachineTool. GeneralXyzabcMachineTool General implementation of an XYZABC machine tool. Interfaces IGetCodeXyzabcMachineTool Interface of GetXyzabcMachineTool(). IXyzabcMachineTool Interface for XYZABC machine tools that combines chain, display, collision and other functionalities." + "summary": "Namespace Hi.NcMech.Xyzabc Classes CodeXyzabcMachineTool This machine tool class helps very quick test by the code configuration. For general/end-user use, apply GeneralXyzabcMachineTool instead. CodeXyzabcMachineToolUri Represents a URI-based container for CodeXyzabcMachineTool. GeneralXyzabcMachineTool General implementation of an XYZABC machine tool. Interfaces IGetCodeXyzabcMachineTool Interface of GetXyzabcMachineTool(). IXyzabcMachineTool Interface for XYZABC machine tools that combines chain, display, collision and other functionalities." }, "api/Hi.NcMech.html": { "href": "api/Hi.NcMech.html", @@ -3537,7 +3482,7 @@ "api/Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html": { "href": "api/Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html", "title": "Class FanucGotoIterationDependency | HiAPI-C# 2025", - "summary": "Class FanucGotoIterationDependency Namespace Hi.NcParsers.Dependencys.Fanuc Assembly HiMech.dll Watchdog for Fanuc Custom Macro B GOTO loops. Holds a MaxIterationsPerTarget limit (XML-persisted user config — the soft cap above which the upcoming FanucGotoSyntax stops firing and emits a warning) plus a runtime per-target hit counter (CountByTarget — not serialised, cleared at session start by RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken)). The dependency is syntax-managed: FanucGotoSyntax reads the limit, increments the counter, and decides whether to fire. There is no host Func provider — the dep is placed in Hi.NcParsers.Dependencys.Fanuc rather than Hi.NcParsers.Dependencys.SystemWired because nothing outside the syntax pipeline writes it; Reset() is a plain method call the runner invokes, not a host-wired Func. The counter key is (FileName, TargetN) where FileName is the source-level file path of the block containing the GOTO (the relative path form carried on FilePath — same form used by IndexedFileLine labels). Source-level keying means multiple inline invocations of the same subprogram pool their counts (they ARE the same source-code GOTO), while two different files with their own N100 stay isolated (they ARE different jumps). Default MaxIterationsPerTarget is 1000 — a runaway-loop guard, not a precise iteration budget. Legitimate macro loops (multi-hole drill matrices, calibration sweeps) sit well below this; truly infinite loops hit the limit fast. Projects with batch-style macros that legitimately need higher counts can raise the value in the project XML. public class FanucGotoIterationDependency : INcDependency, IMakeXmlSource Inheritance object FanucGotoIterationDependency Implements INcDependency IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors FanucGotoIterationDependency() Initializes a new instance with the default limit and an empty counter. public FanucGotoIterationDependency() FanucGotoIterationDependency(XElement) Loads MaxIterationsPerTarget from XML produced by MakeXmlSource(string, string, bool); absent element falls back to DefaultMaxIterationsPerTarget. public FanucGotoIterationDependency(XElement src) Parameters src XElement Root element named XName. Fields DefaultMaxIterationsPerTarget Default for MaxIterationsPerTarget. Sized as a runaway-loop guard: legitimate Fanuc macros (drill grids, calibration sweeps) stay well below, while truly unbounded loops hit it fast. public const int DefaultMaxIterationsPerTarget = 1000 Field Value int Properties CountByTarget Per-target hit counter keyed by (FileName, TargetN). Runtime-only; not serialised. Cleared by Reset() on the session-init edge so a brand-preset runner reused across sessions does not leak counts. public Dictionary<(string FileName, int TargetN), int> CountByTarget { get; } Property Value Dictionary<(string FileName, int TargetN), int> MaxIterationsPerTarget Soft cap on consecutive fires of any single GOTO target within one source file (see CountByTarget for the keying). Above this, the consuming syntax should emit a warning and suppress the redirect on the over-limit block; subsequent blocks flow through naturally. public int MaxIterationsPerTarget { get; set; } Property Value int XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory Reset() Clears CountByTarget; leaves MaxIterationsPerTarget untouched. public void Reset()" + "summary": "Class FanucGotoIterationDependency Namespace Hi.NcParsers.Dependencys.Fanuc Assembly HiMech.dll Watchdog for Fanuc Custom Macro B GOTO loops. Holds a MaxIterationsPerTarget limit (XML-persisted user config — the soft cap above which the upcoming FanucGotoSyntax stops firing and emits a warning) plus a runtime per-target hit counter (CountByTarget — not serialised, cleared at session start by the ISessionResettable sweep in RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken)). The dependency is syntax-managed: FanucGotoSyntax reads the limit, increments the counter, and decides whether to fire. There is no host Func provider — the dep is placed in Hi.NcParsers.Dependencys.Fanuc rather than Hi.NcParsers.Dependencys.SystemWired because nothing outside the syntax pipeline writes it; OnSessionReset() is the session-init hook the runner invokes through ISessionResettable, not a host-wired Func. The counter key is (FileName, TargetN) where FileName is the source-level file path of the block containing the GOTO (the relative path form carried on FilePath — same form used by IndexedFileLine labels). Source-level keying means multiple inline invocations of the same subprogram pool their counts (they ARE the same source-code GOTO), while two different files with their own N100 stay isolated (they ARE different jumps). Default MaxIterationsPerTarget is 1000 — a runaway-loop guard, not a precise iteration budget. Legitimate macro loops (multi-hole drill matrices, calibration sweeps) sit well below this; truly infinite loops hit the limit fast. Projects with batch-style macros that legitimately need higher counts can raise the value in the project XML. public class FanucGotoIterationDependency : INcDependency, IMakeXmlSource, ISessionResettable Inheritance object FanucGotoIterationDependency Implements INcDependency IMakeXmlSource ISessionResettable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors FanucGotoIterationDependency() Initializes a new instance with the default limit and an empty counter. public FanucGotoIterationDependency() FanucGotoIterationDependency(XElement) Loads MaxIterationsPerTarget from XML produced by MakeXmlSource(string, string, bool); absent element falls back to DefaultMaxIterationsPerTarget. public FanucGotoIterationDependency(XElement src) Parameters src XElement Root element named XName. Fields DefaultMaxIterationsPerTarget Default for MaxIterationsPerTarget. Sized as a runaway-loop guard: legitimate Fanuc macros (drill grids, calibration sweeps) stay well below, while truly unbounded loops hit it fast. public const int DefaultMaxIterationsPerTarget = 1000 Field Value int Properties CountByTarget Per-target hit counter keyed by (FileName, TargetN). Runtime-only; not serialised. Cleared by OnSessionReset() on the session-init edge so a brand-preset runner reused across sessions does not leak counts. public Dictionary<(string FileName, int TargetN), int> CountByTarget { get; } Property Value Dictionary<(string FileName, int TargetN), int> MaxIterationsPerTarget Soft cap on consecutive fires of any single GOTO target within one source file (see CountByTarget for the keying). Above this, the consuming syntax should emit a warning and suppress the redirect on the over-limit block; subsequent blocks flow through naturally. public int MaxIterationsPerTarget { get; set; } Property Value int XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. OnSessionReset() Clears CountByTarget; leaves MaxIterationsPerTarget untouched. public void OnSessionReset() Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.Fanuc.FanucParameterTable.html": { "href": "api/Hi.NcParsers.Dependencys.Fanuc.FanucParameterTable.html", @@ -3554,6 +3499,11 @@ "title": "Class FanucToolOffsetVariableLookup | HiAPI-C# 2025", "summary": "Class FanucToolOffsetVariableLookup Namespace Hi.NcParsers.Dependencys.Fanuc Assembly HiMech.dll Fanuc-side adapter that exposes a wrapped ToolOffsetTable (resolved at call time from the dependency list) as an IRuntimeVariableLookup following Fanuc Memory C tool offset addressing: #2001+N → effective height of offset N (geometry − wear). The underlying ToolOffsetTable stays brand-neutral — Heidenhain / Siemens can use the same storage with different addressing by registering their own adapter alongside the table. Stateless: holds no reference of its own and resolves the table from the per-call dependencies list, so XML round-trip is trivial (an empty element). Registered on a brand preset's RuntimeVariableLookups, not on NcDependencyList — the wrapper owns no long-lived data, only the Fanuc-style id addressing scheme. The underlying ToolOffsetTable still lives in NcDependencyList as the data dependency. public sealed class FanucToolOffsetVariableLookup : IRuntimeVariableLookup, IMakeXmlSource Inheritance object FanucToolOffsetVariableLookup Implements IRuntimeVariableLookup IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors FanucToolOffsetVariableLookup() Default constructor. public FanucToolOffsetVariableLookup() FanucToolOffsetVariableLookup(XElement) Loads from an XML element produced by MakeXmlSource(string, string, bool). Stateless — no fields to deserialise. public FanucToolOffsetVariableLookup(XElement src) Parameters src XElement Fields ToolHeightMax Inclusive upper bound of the Fanuc tool height address range (#2200). public const int ToolHeightMax = 2200 Field Value int ToolHeightMin Inclusive lower bound of the Fanuc tool height address range (#2001). public const int ToolHeightMin = 2001 Field Value int Properties XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods Get(string, LazyLinkedListNode, IReadOnlyList) Returns the value of the variable identified by key in the context of node and dependencies, or null if the key is outside this lookup's range or the value is vacant. public double? Get(string key, LazyLinkedListNode node, IReadOnlyList dependencies) Parameters key string node LazyLinkedListNode dependencies IReadOnlyList Returns double? Remarks Routes #2001-#2200 to GetToolHeightOffset_mm(int) on the ToolOffsetTable found in dependencies; other keys return null so the evaluator's lookup chain falls through. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, + "api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html": { + "href": "api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html", + "title": "Class FanucWhileDoIterationDependency | HiAPI-C# 2025", + "summary": "Class FanucWhileDoIterationDependency Namespace Hi.NcParsers.Dependencys.Fanuc Assembly HiMech.dll Watchdog for Fanuc Custom Macro B WHILE/END m bounded loops. Sibling to FanucGotoIterationDependency with the same “soft-cap + runtime counter + session-init ISessionResettable” shape, but kept as a separate dep (rather than sharing the GOTO bucket) so loop and jump iteration limits can be tuned independently and so diagnostic codes do not cross. The counter key is (FileName, LoopId) where FileName is the source-level file path of the WHILE/END pair (the relative path form carried on FilePath). Source-level keying means multiple inline invocations of the same subprogram pool their counts (same source-code loop), while two different files each with their own WHILE DO 1 stay isolated. The consuming syntax (FanucWhileDoSyntax) increments the counter at the END m reverse-jump step — not on the WHILE entry — so a loop that exits on first WHILE evaluation (condition false from the outset) consumes zero iterations. Above MaxIterationsPerLoopId, the END m block emits a warning and suppresses the redirect; subsequent flow falls through past END. Default MaxIterationsPerLoopId is 10000 — higher than the GOTO equivalent (1000) because WHILE/END is the legitimate iteration primitive that NcOpt-generated programs (drill grids, adaptive sweeps) depend on, and 1000 is too tight for those. public class FanucWhileDoIterationDependency : INcDependency, IMakeXmlSource, ISessionResettable Inheritance object FanucWhileDoIterationDependency Implements INcDependency IMakeXmlSource ISessionResettable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors FanucWhileDoIterationDependency() Initializes a new instance with the default limit and an empty counter. public FanucWhileDoIterationDependency() FanucWhileDoIterationDependency(XElement) Loads MaxIterationsPerLoopId from XML produced by MakeXmlSource(string, string, bool); absent element falls back to DefaultMaxIterationsPerLoopId. public FanucWhileDoIterationDependency(XElement src) Parameters src XElement Root element named XName. Fields DefaultMaxIterationsPerLoopId Default for MaxIterationsPerLoopId. Sized for legitimate macro iteration (NcOpt drill grids, calibration sweeps) while still catching runaway loops in a tractable time. public const int DefaultMaxIterationsPerLoopId = 10000 Field Value int Properties CountByLoop Per-loop hit counter keyed by (FileName, LoopId). Runtime-only; not serialised. Cleared by OnSessionReset() on the session-init edge so a brand-preset runner reused across sessions does not leak counts. public Dictionary<(string FileName, int LoopId), int> CountByLoop { get; } Property Value Dictionary<(string FileName, int TargetN), int> MaxIterationsPerLoopId Soft cap on consecutive END m reverse-jumps for any single (FileName, LoopId) pair. Above this the END m block emits FanucWhileDo–IterationLimitExceeded and suppresses the redirect; flow falls through past END. public int MaxIterationsPerLoopId { get; set; } Property Value int XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. OnSessionReset() Clears CountByLoop; leaves MaxIterationsPerLoopId untouched. public void OnSessionReset() Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + }, "api/Hi.NcParsers.Dependencys.Fanuc.RetainedCommonVariableTable.html": { "href": "api/Hi.NcParsers.Dependencys.Fanuc.RetainedCommonVariableTable.html", "title": "Class RetainedCommonVariableTable | HiAPI-C# 2025", @@ -3562,7 +3512,7 @@ "api/Hi.NcParsers.Dependencys.Fanuc.html": { "href": "api/Hi.NcParsers.Dependencys.Fanuc.html", "title": "Namespace Hi.NcParsers.Dependencys.Fanuc | HiAPI-C# 2025", - "summary": "Namespace Hi.NcParsers.Dependencys.Fanuc Classes FanucGotoIterationDependency Watchdog for Fanuc Custom Macro B GOTO loops. Holds a MaxIterationsPerTarget limit (XML-persisted user config — the soft cap above which the upcoming FanucGotoSyntax stops firing and emits a warning) plus a runtime per-target hit counter (CountByTarget — not serialised, cleared at session start by RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken)). The dependency is syntax-managed: FanucGotoSyntax reads the limit, increments the counter, and decides whether to fire. There is no host Func provider — the dep is placed in Hi.NcParsers.Dependencys.Fanuc rather than Hi.NcParsers.Dependencys.SystemWired because nothing outside the syntax pipeline writes it; Reset() is a plain method call the runner invokes, not a host-wired Func. The counter key is (FileName, TargetN) where FileName is the source-level file path of the block containing the GOTO (the relative path form carried on FilePath — same form used by IndexedFileLine labels). Source-level keying means multiple inline invocations of the same subprogram pool their counts (they ARE the same source-code GOTO), while two different files with their own N100 stay isolated (they ARE different jumps). Default MaxIterationsPerTarget is 1000 — a runaway-loop guard, not a precise iteration budget. Legitimate macro loops (multi-hole drill matrices, calibration sweeps) sit well below this; truly infinite loops hit the limit fast. Projects with batch-style macros that legitimately need higher counts can raise the value in the project XML. FanucParameterTable Fanuc controller parameter table. Stores system parameters (single value) and axis parameters (per-axis value) following real Fanuc parameter numbering. FanucPositionVariableLookup Fanuc-style position system variables read from the previous block's runtime-state JSON sections: #5001-#5003Block-end position X/Y/Z (workpiece) → previous block's ProgramXyz. #5021-#5023Current machine position X/Y/Z → previous block's MachineCoordinateState. #5041-#5043Current absolute position X/Y/Z → previous block's ProgramXyz. Stateless. Configured on RuntimeVariableLookups rather than NcDependencyList because the read needs the block node for Previous access — there is no long-lived dependency object that owns this data. FanucToolOffsetVariableLookup Fanuc-side adapter that exposes a wrapped ToolOffsetTable (resolved at call time from the dependency list) as an IRuntimeVariableLookup following Fanuc Memory C tool offset addressing: #2001+N → effective height of offset N (geometry − wear). The underlying ToolOffsetTable stays brand-neutral — Heidenhain / Siemens can use the same storage with different addressing by registering their own adapter alongside the table. Stateless: holds no reference of its own and resolves the table from the per-call dependencies list, so XML round-trip is trivial (an empty element). Registered on a brand preset's RuntimeVariableLookups, not on NcDependencyList — the wrapper owns no long-lived data, only the Fanuc-style id addressing scheme. The underlying ToolOffsetTable still lives in NcDependencyList as the data dependency. RetainedCommonVariableTable Fanuc-style ISO controller common variable table for the retained range #500-#999. These variables survive a power cycle (in real hardware they live in NV-RAM) and are serialised into the project file. Excluded by design: Local #1-#33Call-frame scoped (Fanuc local variables); lives in the SyntaxPiece JSON dataflow, not here. Non-retained common #100-#499Cleared by program-end / power reset; lives in the SyntaxPiece JSON dataflow as well, not in this table. System #1000+Read-only or computed from runtime state; resolved by dedicated reading syntaxes against other dependencies (e.g. FanucParameterTable, tool offset / WCS tables). Vacant (Fanuc ) is represented by null: either the dictionary has no entry for the key, or the entry maps to null. Both are treated identically by GetVariable(int). Naming rationale: Fanuc official documentation calls #500-#999 \"retained common variables\" (and #100-#499 \"non-retained common variables\"). The umbrella term \"macro variable\" was avoided because it conflicts with Custom Macro B's call-frame concept (G65/G66 push a frame containing the local #1-#33); using RetainedCommonVariableTable reserves \"macro\" for the call-frame topic. Enums CutterCompensationType Fanuc #5003: Cutter compensation startup/cancellation type." + "summary": "Namespace Hi.NcParsers.Dependencys.Fanuc Classes FanucGotoIterationDependency Watchdog for Fanuc Custom Macro B GOTO loops. Holds a MaxIterationsPerTarget limit (XML-persisted user config — the soft cap above which the upcoming FanucGotoSyntax stops firing and emits a warning) plus a runtime per-target hit counter (CountByTarget — not serialised, cleared at session start by the ISessionResettable sweep in RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken)). The dependency is syntax-managed: FanucGotoSyntax reads the limit, increments the counter, and decides whether to fire. There is no host Func provider — the dep is placed in Hi.NcParsers.Dependencys.Fanuc rather than Hi.NcParsers.Dependencys.SystemWired because nothing outside the syntax pipeline writes it; OnSessionReset() is the session-init hook the runner invokes through ISessionResettable, not a host-wired Func. The counter key is (FileName, TargetN) where FileName is the source-level file path of the block containing the GOTO (the relative path form carried on FilePath — same form used by IndexedFileLine labels). Source-level keying means multiple inline invocations of the same subprogram pool their counts (they ARE the same source-code GOTO), while two different files with their own N100 stay isolated (they ARE different jumps). Default MaxIterationsPerTarget is 1000 — a runaway-loop guard, not a precise iteration budget. Legitimate macro loops (multi-hole drill matrices, calibration sweeps) sit well below this; truly infinite loops hit the limit fast. Projects with batch-style macros that legitimately need higher counts can raise the value in the project XML. FanucParameterTable Fanuc controller parameter table. Stores system parameters (single value) and axis parameters (per-axis value) following real Fanuc parameter numbering. FanucPositionVariableLookup Fanuc-style position system variables read from the previous block's runtime-state JSON sections: #5001-#5003Block-end position X/Y/Z (workpiece) → previous block's ProgramXyz. #5021-#5023Current machine position X/Y/Z → previous block's MachineCoordinateState. #5041-#5043Current absolute position X/Y/Z → previous block's ProgramXyz. Stateless. Configured on RuntimeVariableLookups rather than NcDependencyList because the read needs the block node for Previous access — there is no long-lived dependency object that owns this data. FanucToolOffsetVariableLookup Fanuc-side adapter that exposes a wrapped ToolOffsetTable (resolved at call time from the dependency list) as an IRuntimeVariableLookup following Fanuc Memory C tool offset addressing: #2001+N → effective height of offset N (geometry − wear). The underlying ToolOffsetTable stays brand-neutral — Heidenhain / Siemens can use the same storage with different addressing by registering their own adapter alongside the table. Stateless: holds no reference of its own and resolves the table from the per-call dependencies list, so XML round-trip is trivial (an empty element). Registered on a brand preset's RuntimeVariableLookups, not on NcDependencyList — the wrapper owns no long-lived data, only the Fanuc-style id addressing scheme. The underlying ToolOffsetTable still lives in NcDependencyList as the data dependency. FanucWhileDoIterationDependency Watchdog for Fanuc Custom Macro B WHILE/END m bounded loops. Sibling to FanucGotoIterationDependency with the same “soft-cap + runtime counter + session-init ISessionResettable” shape, but kept as a separate dep (rather than sharing the GOTO bucket) so loop and jump iteration limits can be tuned independently and so diagnostic codes do not cross. The counter key is (FileName, LoopId) where FileName is the source-level file path of the WHILE/END pair (the relative path form carried on FilePath). Source-level keying means multiple inline invocations of the same subprogram pool their counts (same source-code loop), while two different files each with their own WHILE DO 1 stay isolated. The consuming syntax (FanucWhileDoSyntax) increments the counter at the END m reverse-jump step — not on the WHILE entry — so a loop that exits on first WHILE evaluation (condition false from the outset) consumes zero iterations. Above MaxIterationsPerLoopId, the END m block emits a warning and suppresses the redirect; subsequent flow falls through past END. Default MaxIterationsPerLoopId is 10000 — higher than the GOTO equivalent (1000) because WHILE/END is the legitimate iteration primitive that NcOpt-generated programs (drill grids, adaptive sweeps) depend on, and 1000 is too tight for those. RetainedCommonVariableTable Fanuc-style ISO controller common variable table for the retained range #500-#999. These variables survive a power cycle (in real hardware they live in NV-RAM) and are serialised into the project file. Excluded by design: Local #1-#33Call-frame scoped (Fanuc local variables); lives in the SyntaxPiece JSON dataflow, not here. Non-retained common #100-#499Cleared by program-end / power reset; lives in the SyntaxPiece JSON dataflow as well, not in this table. System #1000+Read-only or computed from runtime state; resolved by dedicated reading syntaxes against other dependencies (e.g. FanucParameterTable, tool offset / WCS tables). Vacant (Fanuc ) is represented by null: either the dictionary has no entry for the key, or the entry maps to null. Both are treated identically by GetVariable(int). Naming rationale: Fanuc official documentation calls #500-#999 \"retained common variables\" (and #100-#499 \"non-retained common variables\"). The umbrella term \"macro variable\" was avoided because it conflicts with Custom Macro B's call-frame concept (G65/G66 push a frame containing the local #1-#33); using RetainedCommonVariableTable reserves \"macro\" for the call-frame topic. Enums CutterCompensationType Fanuc #5003: Cutter compensation startup/cancellation type." }, "api/Hi.NcParsers.Dependencys.Generic.FallbackConfig.html": { "href": "api/Hi.NcParsers.Dependencys.Generic.FallbackConfig.html", @@ -3712,7 +3662,12 @@ "api/Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.html": { "href": "api/Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.html", "title": "Class FileIndexCounterDependency | HiAPI-C# 2025", - "summary": "Class FileIndexCounterDependency Namespace Hi.NcParsers.Dependencys.SystemWired Assembly HiMech.dll Per-session monotonically-increasing file index allocator. Holds the counter as a private field; Allocate() returns the next unused value and increments. Reset() rewinds to 0 — the owning RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) calls Reset() on the same edge that initializes a fresh NcRunnerSessionState, so a controller power-reset clears both the syntax-piece pipeline and this counter in lock-step. Two consumers share one allocator: RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) allocates one index per top-level NC file that streams through the runner. SubProgramCallSyntax allocates a fresh index for each inlined subprogram invocation, including each L repetition — distinct indices ensure (FileIndex, LineIndex) pairs stay unique across overlapping subprogram line ranges. Holding the counter on this dependency rather than on NcRunnerSessionState avoids a duplicate source-of-truth: the dep is the single seam through which syntaxes reach the counter, and there is no third reader that would benefit from session-state visibility. public class FileIndexCounterDependency : INcDependency, IMakeXmlSource Inheritance object FileIndexCounterDependency Implements INcDependency IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors FileIndexCounterDependency() Initializes a new instance with the counter at 0. public FileIndexCounterDependency() Properties XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods Allocate() Returns the next unused file index and post-increments the counter. First call after construction or Reset() returns 0. public int Allocate() Returns int MakeXmlSource(string, string, bool) Runtime-only dependency — the live counter value is per-session and not meaningful to persist; serialization writes only the empty element so the dependency survives an XML round-trip with the counter implicitly reset to 0. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string relFile string exhibitionOnly bool Returns XElement Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory Reset() Rewinds the counter to 0. Called by RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) on the same edge that initializes a fresh session pipeline so a single brand-preset runner can be reused across sessions without leaking file indices from the previous session. public void Reset()" + "summary": "Class FileIndexCounterDependency Namespace Hi.NcParsers.Dependencys.SystemWired Assembly HiMech.dll Per-session monotonically-increasing file index allocator. Holds the counter as a private field; Allocate() returns the next unused value and increments. OnSessionReset() rewinds to 0 — the owning RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) invokes it via the ISessionResettable sweep on the same edge that initializes a fresh NcRunnerSessionState, so a controller power-reset clears both the syntax-piece pipeline and this counter in lock-step. Two consumers share one allocator: RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) allocates one index per top-level NC file that streams through the runner. SubProgramCallSyntax allocates a fresh index for each inlined subprogram invocation, including each L repetition — distinct indices ensure (FileIndex, LineIndex) pairs stay unique across overlapping subprogram line ranges. Holding the counter on this dependency rather than on NcRunnerSessionState avoids a duplicate source-of-truth: the dep is the single seam through which syntaxes reach the counter, and there is no third reader that would benefit from session-state visibility. public class FileIndexCounterDependency : INcDependency, IMakeXmlSource, ISessionResettable Inheritance object FileIndexCounterDependency Implements INcDependency IMakeXmlSource ISessionResettable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors FileIndexCounterDependency() Initializes a new instance with the counter at 0. public FileIndexCounterDependency() Properties XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods Allocate() Returns the next unused file index and post-increments the counter. First call after construction or OnSessionReset() returns 0. public int Allocate() Returns int MakeXmlSource(string, string, bool) Runtime-only dependency — the live counter value is per-session and not meaningful to persist; serialization writes only the empty element so the dependency survives an XML round-trip with the counter implicitly reset to 0. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string relFile string exhibitionOnly bool Returns XElement OnSessionReset() Rewinds the counter to 0. Called by RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) via the ISessionResettable sweep on the same edge that initializes a fresh session pipeline so a single brand-preset runner can be reused across sessions without leaking file indices from the previous session. public void OnSessionReset() Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + }, + "api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html": { + "href": "api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html", + "title": "Class MachiningServiceDependency | HiAPI-C# 2025", + "summary": "Class MachiningServiceDependency Namespace Hi.NcParsers.Dependencys.SystemWired Assembly HiMech.dll Exposes the full IMachiningService surface to NC pipeline components — currently provided for client-authored syntaxes / semantics that need broad host access (machining equipment, session, tool house, time mapping, …). The built-in CSV pipeline does not consume this dependency; it uses the narrower StepPropertyAccessDictionaryDependency instead. public class MachiningServiceDependency : INcDependency, IMakeXmlSource Inheritance object MachiningServiceDependency Implements INcDependency IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningServiceDependency() Initializes a new instance with no ServiceProvider; the host wires one before queries. public MachiningServiceDependency() MachiningServiceDependency(Func) Initializes a new instance with the given ServiceProvider. public MachiningServiceDependency(Func provider) Parameters provider Func Delegate that resolves the live service at lookup time. Properties Service The live machining service, or null when ServiceProvider is unset or returns null. public IMachiningService Service { get; } Property Value IMachiningService ServiceProvider Runtime provider for the machining service. Null provider or null return means the host is not wired; consumers must null-check. public Func ServiceProvider { get; set; } Property Value Func XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Runtime-only dependency — the provider is wired per host and not meaningful to persist; serialization writes only the empty element so the dependency survives an XML round-trip. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string relFile string exhibitionOnly bool Returns XElement Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.SystemWired.NcKinematicsDependency.html": { "href": "api/Hi.NcParsers.Dependencys.SystemWired.NcKinematicsDependency.html", @@ -3729,6 +3684,11 @@ "title": "Class SegmenterDependency | HiAPI-C# 2025", "summary": "Class SegmenterDependency Namespace Hi.NcParsers.Dependencys.SystemWired Assembly HiMech.dll Exposes the active ISegmenter to syntaxes that need to re-segment auxiliary NC text mid-pipeline (e.g., SubProgramCallSyntax reading an O subprogram file and re-using the host runner's segmenter so the inlined blocks are split with the same rules). The actual segmenter is resolved at runtime via Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency.SegmenterProvider; RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) wires the provider to its own Segmenter at the start of each session run, so this dependency can sit in NcDependencyList without participating in XML serialization (see MakeXmlSource(string, string, bool)). public class SegmenterDependency : INcDependency, IMakeXmlSource Inheritance object SegmenterDependency Implements INcDependency IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors SegmenterDependency() Initializes a new instance with no Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency.SegmenterProvider; the host runner assigns one before queries. public SegmenterDependency() SegmenterDependency(Func) Initializes a new instance with the given Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency.SegmenterProvider. public SegmenterDependency(Func provider) Parameters provider Func Delegate that resolves the live ISegmenter at lookup time. Properties Segmenter The live segmenter, or null when Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency.SegmenterProvider is unset or returns null. public ISegmenter Segmenter { get; } Property Value ISegmenter XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Runtime-only dependency — the Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency.SegmenterProvider is wired per session and is not meaningful to persist; serialization writes only the empty element so the dependency survives an XML round-trip. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string relFile string exhibitionOnly bool Returns XElement Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, + "api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html": { + "href": "api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html", + "title": "Class StepPropertyAccessDictionaryDependency | HiAPI-C# 2025", + "summary": "Class StepPropertyAccessDictionaryDependency Namespace Hi.NcParsers.Dependencys.SystemWired Assembly HiMech.dll Exposes the host's step-variable registry to NC pipeline components (today: CsvRowSyntax) as a narrow IStepPropertyAccessHost surface. The provider is wired by the host (e.g. LocalProjectService) so the dependency does not carry strong references to host types; this lets the runner be created before the host is fully constructed and reused across project loads. A sibling MachiningServiceDependency exposes the broader IMachiningService surface to client-authored syntaxes. The two dependencies are independent — production hosts typically wire both providers to the same backing object, but a test fixture can supply just this narrow one. public class StepPropertyAccessDictionaryDependency : INcDependency, IMakeXmlSource Inheritance object StepPropertyAccessDictionaryDependency Implements INcDependency IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors StepPropertyAccessDictionaryDependency() Initializes a new instance with no HostProvider; the host wires one before queries. public StepPropertyAccessDictionaryDependency() StepPropertyAccessDictionaryDependency(Func) Initializes a new instance with the given HostProvider. public StepPropertyAccessDictionaryDependency(Func provider) Parameters provider Func Delegate that resolves the live host at lookup time. Properties Host The live host, or null when HostProvider is unset or returns null. public IStepPropertyAccessHost Host { get; } Property Value IStepPropertyAccessHost HostProvider Runtime provider for the host. Null provider or null return means the host is not wired (e.g. the dependency sits in a runner that runs in a unit-test fixture without a real project service). Consumers must null-check before use. public Func HostProvider { get; set; } Property Value Func XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Runtime-only dependency — the provider is wired per host and not meaningful to persist; serialization writes only the empty element so the dependency survives an XML round-trip. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string relFile string exhibitionOnly bool Returns XElement Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + }, "api/Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency.html": { "href": "api/Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency.html", "title": "Class SyntaxPieceLayerDependency | HiAPI-C# 2025", @@ -3737,7 +3697,7 @@ "api/Hi.NcParsers.Dependencys.SystemWired.html": { "href": "api/Hi.NcParsers.Dependencys.SystemWired.html", "title": "Namespace Hi.NcParsers.Dependencys.SystemWired | HiAPI-C# 2025", - "summary": "Namespace Hi.NcParsers.Dependencys.SystemWired Classes FileIndexCounterDependency Per-session monotonically-increasing file index allocator. Holds the counter as a private field; Allocate() returns the next unused value and increments. Reset() rewinds to 0 — the owning RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) calls Reset() on the same edge that initializes a fresh NcRunnerSessionState, so a controller power-reset clears both the syntax-piece pipeline and this counter in lock-step. Two consumers share one allocator: RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) allocates one index per top-level NC file that streams through the runner. SubProgramCallSyntax allocates a fresh index for each inlined subprogram invocation, including each L repetition — distinct indices ensure (FileIndex, LineIndex) pairs stay unique across overlapping subprogram line ranges. Holding the counter on this dependency rather than on NcRunnerSessionState avoids a duplicate source-of-truth: the dep is the single seam through which syntaxes reach the counter, and there is no third reader that would benefit from session-state visibility. NcKinematicsDependency Provides IMachineKinematics as an INcDependency for SoftNcRunner.NcDependencyList. The actual kinematics instance is resolved at runtime via KinematicsProvider. This supports scenarios where the machine tool is loaded or changed after the runner is configured (e.g., XML config loaded first, kinematics assigned later). Consumed by G53p1RotaryPositionSyntax, IsoG68p2TiltSyntax, and McLinearMotionSemantic via dependencyList.OfType(). ProjectFolderDependency Exposes the absolute base directory of the project that owns this runner. Resolved at runtime via BaseDirectoryProvider; the host (e.g. LocalProjectService, a test harness) wires the provider to its known project root after the runner is constructed, because SoftNcRunner itself does not retain the baseDirectory argument it sees during XML deserialization. Consumed by syntaxes that need to resolve a project-relative path to an absolute file system location — e.g. SubProgramCallSyntax for O subprogram lookup under InternalFolder. Reading FilePath is not a substitute: that path is relative and resolving it via Path.GetFullPath would anchor against the process working directory, not the project root. SegmenterDependency Exposes the active ISegmenter to syntaxes that need to re-segment auxiliary NC text mid-pipeline (e.g., SubProgramCallSyntax reading an O subprogram file and re-using the host runner's segmenter so the inlined blocks are split with the same rules). The actual segmenter is resolved at runtime via Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency.SegmenterProvider; RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) wires the provider to its own Segmenter at the start of each session run, so this dependency can sit in NcDependencyList without participating in XML serialization (see MakeXmlSource(string, string, bool)). SyntaxPieceLayerDependency Exposes the per-session SyntaxPiece layer chain (one LazyLinkedList per pipeline stage, owned by NcRunnerSessionState) to syntaxes that need to inject additional source pieces mid-pipeline — most notably SubProgramCallSyntax, which inlines a subprogram file's blocks back into layers[0] immediately after the M98 host node so the entire syntax pipeline naturally re-processes them. The actual layer list is resolved at runtime via Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency.LayersProvider; RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) wires the provider to the active session's SyntaxPieceLayers at the start of each call. Index 0 is the source layer (init seed + sentence-derived pieces); indices 1..N are post-NcSyntax layers — same convention as NcRunnerSessionState." + "summary": "Namespace Hi.NcParsers.Dependencys.SystemWired Classes FileIndexCounterDependency Per-session monotonically-increasing file index allocator. Holds the counter as a private field; Allocate() returns the next unused value and increments. OnSessionReset() rewinds to 0 — the owning RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) invokes it via the ISessionResettable sweep on the same edge that initializes a fresh NcRunnerSessionState, so a controller power-reset clears both the syntax-piece pipeline and this counter in lock-step. Two consumers share one allocator: RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) allocates one index per top-level NC file that streams through the runner. SubProgramCallSyntax allocates a fresh index for each inlined subprogram invocation, including each L repetition — distinct indices ensure (FileIndex, LineIndex) pairs stay unique across overlapping subprogram line ranges. Holding the counter on this dependency rather than on NcRunnerSessionState avoids a duplicate source-of-truth: the dep is the single seam through which syntaxes reach the counter, and there is no third reader that would benefit from session-state visibility. MachiningServiceDependency Exposes the full IMachiningService surface to NC pipeline components — currently provided for client-authored syntaxes / semantics that need broad host access (machining equipment, session, tool house, time mapping, …). The built-in CSV pipeline does not consume this dependency; it uses the narrower StepPropertyAccessDictionaryDependency instead. NcKinematicsDependency Provides IMachineKinematics as an INcDependency for SoftNcRunner.NcDependencyList. The actual kinematics instance is resolved at runtime via KinematicsProvider. This supports scenarios where the machine tool is loaded or changed after the runner is configured (e.g., XML config loaded first, kinematics assigned later). Consumed by G53p1RotaryPositionSyntax, IsoG68p2TiltSyntax, and McLinearMotionSemantic via dependencyList.OfType(). ProjectFolderDependency Exposes the absolute base directory of the project that owns this runner. Resolved at runtime via BaseDirectoryProvider; the host (e.g. LocalProjectService, a test harness) wires the provider to its known project root after the runner is constructed, because SoftNcRunner itself does not retain the baseDirectory argument it sees during XML deserialization. Consumed by syntaxes that need to resolve a project-relative path to an absolute file system location — e.g. SubProgramCallSyntax for O subprogram lookup under InternalFolder. Reading FilePath is not a substitute: that path is relative and resolving it via Path.GetFullPath would anchor against the process working directory, not the project root. SegmenterDependency Exposes the active ISegmenter to syntaxes that need to re-segment auxiliary NC text mid-pipeline (e.g., SubProgramCallSyntax reading an O subprogram file and re-using the host runner's segmenter so the inlined blocks are split with the same rules). The actual segmenter is resolved at runtime via Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency.SegmenterProvider; RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) wires the provider to its own Segmenter at the start of each session run, so this dependency can sit in NcDependencyList without participating in XML serialization (see MakeXmlSource(string, string, bool)). StepPropertyAccessDictionaryDependency Exposes the host's step-variable registry to NC pipeline components (today: CsvRowSyntax) as a narrow IStepPropertyAccessHost surface. The provider is wired by the host (e.g. LocalProjectService) so the dependency does not carry strong references to host types; this lets the runner be created before the host is fully constructed and reused across project loads. A sibling MachiningServiceDependency exposes the broader IMachiningService surface to client-authored syntaxes. The two dependencies are independent — production hosts typically wire both providers to the same backing object, but a test fixture can supply just this narrow one. SyntaxPieceLayerDependency Exposes the per-session SyntaxPiece layer chain (one LazyLinkedList per pipeline stage, owned by NcRunnerSessionState) to syntaxes that need to inject additional source pieces mid-pipeline — most notably SubProgramCallSyntax, which inlines a subprogram file's blocks back into layers[0] immediately after the M98 host node so the entire syntax pipeline naturally re-processes them. The actual layer list is resolved at runtime via Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency.LayersProvider; RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) wires the provider to the active session's SyntaxPieceLayers at the start of each call. Index 0 is the source layer (init seed + sentence-derived pieces); indices 1..N are post-NcSyntax layers — same convention as NcRunnerSessionState." }, "api/Hi.NcParsers.Dependencys.html": { "href": "api/Hi.NcParsers.Dependencys.html", @@ -3834,6 +3794,11 @@ "title": "Namespace Hi.NcParsers.EvaluationSyntaxs.Evaluation | HiAPI-C# 2025", "summary": "Namespace Hi.NcParsers.EvaluationSyntaxs.Evaluation Classes LocalVariableLookup Reads Fanuc-style local macro variables (#1-#33) from Vars.Local on the current SyntaxPiece JSON, falling back to the immediately previous block when they share the same MacroFrame id. Self-gates the id range so the evaluator's RuntimeVariableLookups chain can fall through to the next lookup for out-of-range keys. Two-step lookup (mirrors VolatileVariableLookup): the current block sees writes that FanucMacroCallSyntax stamped at inline time (the call-line argument bindings) and writes that FanucLocalVariableReadingSyntax applied on this block before the lookup runs; the previous block (frame-checked) supplies body-internal writes from the prior block in the same macro frame. Looking past the previous block is unnecessary because the reader carries forward block-by-block within a frame. Frame isolation via MacroFrame: a previous block whose frame id differs from the current block's is skipped — a macro body's body-internal locals are invisible to the caller after return, and the caller's main-frame locals are invisible inside the macro. M98/M198 subprogram inlining (SubProgramCallSyntax) deliberately does not stamp MacroFrame on its inlined blocks, so the callee inherits the caller's frame and sees the caller's locals — matching real Fanuc M98 semantics. Stateless and dependency-free — instances are interchangeable. NcBinaryExpr Binary operation on two operands. Covers arithmetic (+ - * / / MOD), comparison (EQ NE GT GE LT LE, yielding 1.0 / 0.0), and logical bitwise (AND OR XOR, operands truncated to long). NcExpr AST root for a Fanuc Custom Macro B value expression. Concrete leaves and combinators sit alongside NcExpressionParser; walking is the job of NcExpressionEvaluator. NcExpressionEvaluator Walks an NcExpr AST and produces an EvalResult. Resolves #nnn via an IVariableLookup; built-in function names are matched case-insensitively against a fixed table. Phase-1 supports: SIN COS TAN ASIN ACOS ATAN SQRT ABS ROUND FIX FUP LN EXP POW. Trigonometric arguments and results are in degrees, matching Fanuc Custom Macro B convention. Unknown function names surface as UnsupportedFunctionCode; arity mismatches as ArgumentMismatchCode; division / MOD by zero and domain errors (e.g. SQRT[-1]) as MathErrorCode; vacant operands as VacantErrorCode. Numeric domain & type conventions. All values are IEEE 754 double — there is no separate bool / int type at runtime. Comparison ops (EQ NE GT GE LT LE) yield 1.0 (true) or 0.0 (false), using strict double equality / ordering (NaN compares as IEEE specifies — NaN EQ NaN is 0.0). Logical ops (AND OR XOR) truncate each operand to a 64-bit signed integer (Truncate(double) then cast to long) before applying the bitwise operation; non-finite or out-of-range operands surface MathErrorCode rather than silently wrapping. Truthiness at caller-side IF / WHILE gates is value != 0 — any non-zero value (bit, float, comparator result) is true. NcExpressionParser Recursive-descent parser for Fanuc Custom Macro B value expressions. Pure: takes a string, produces an NcExpr AST. Performs no variable lookup and no evaluation. Grammar (lowest precedence at top): expr := or-expr or-expr := and-expr (('OR' | 'XOR') and-expr)* and-expr := cmp-expr ('AND' cmp-expr)* cmp-expr := add-expr (('EQ' | 'NE' | 'GT' | 'GE' | 'LT' | 'LE') add-expr)* add-expr := term (('+' | '-') term)* term := factor (('*' | '/' | 'MOD') factor)* factor := ('+' | '-')? primary primary := number | '#' integer | '#' '[' expr ']' | '[' expr ']' | ident '[' arglist ']' ('/' '[' expr ']')? arglist := expr (',' expr)* Function names and keyword operators (MOD, EQ NE GT GE LT LE, AND OR XOR) are case-insensitive (SIN = sin, EQ = eq); each keyword requires a non-identifier character on its right boundary so EQ1 is not the EQ operator followed by 1. Whitespace is skipped between tokens. The '/' '[' expr ']' tail captures the dual-bracket form Fanuc uses for ATAN[a]/[b]; non-ATAN callers that happen to use it produce a function with an extra arg, which the evaluator rejects with an arity error. Operator precedence intentionally puts boolean / logical layers below arithmetic so #1 + 1 GT 0 parses as (#1 + 1) GT 0 and #1 GT 0 AND #2 LT 10 parses as (#1 GT 0) AND (#2 LT 10), matching the Fanuc Custom Macro B spec for IF [..] GOTO / IF [..] THEN / WHILE [..] DO conditions. NcFunctionExpr Built-in function call like SIN[x], SQRT[x], ATAN[a]/[b]. NcIndirectVariableExpr Indirect variable reference #[expr]. The inner expression is evaluated and truncated toward zero to obtain an integer; the lookup key is then Prefix concatenated with that integer (e.g. Prefix=\"#\", computed 124 → \"#124\"). NcLiteralExpr Numeric literal (e.g. 1.5, 15., .5, 1e-3). NcUnaryExpr Unary + or - applied to an operand. NcVariableExpr Direct variable reference; Key is the raw source token (e.g. \"#124\") passed verbatim to Get(string). VolatileVariableLookup Reads Fanuc-style non-retained common variables (#100-#499) from Vars.Volatile. Self-gates the id range so the evaluator's RuntimeVariableLookups chain can fall through to the next lookup for out-of-range keys. Single-step lookup: VolatileVariableReadingSyntax already dict-merges every block's Vars.Volatile into the next block, so the entry — if it exists — must be on the current block (when this lookup runs after the reader) or on the immediately previous block (when this lookup runs before the reader on the same block, which is the Fanuc preset's order — evaluator first, reader second). No arbitrary walk-back: such a walk would be defensive overkill given the reader's carry guarantee. Stateless and dependency-free — instances are interchangeable. Reads stay decoupled from the reader (read side here; write side in the reader). Structs EvalResult Outcome of evaluating an NcExpr. Either a successful numeric value, or a failure with an error code matching the diagnostic catalogue used by reading / evaluator syntaxes. Interfaces IRuntimeVariableLookup Stateless variable lookup that needs per-block runtime context — the current SyntaxPiece node (for Previous traceback into runtime-state sections like MachineCoordinateState / ProgramXyz) and the dependency list (so the lookup can read from sibling dependencies without holding a static reference). Distinguished from IVariableLookup: that one is for long-lived dependencies that already hold their own data (parameter tables, tool-offset wrappers, retained-variable tables) and need no block context. IRuntimeVariableLookup is for context-sensitive resolutions configured declaratively on RuntimeVariableLookups. Implementations should be brand-specific (e.g. Fanuc #5001-#5043 position reads) and return null for keys outside their range so the evaluator's chain can fall through to the next lookup. Implementations are XML-serialised as part of VariableEvaluatorSyntax's round-trip: each impl exposes a static XName, registers itself with Generators, and implements MakeXmlSource(string, string, bool). Since impls are stateless, the typical body is just an empty element carrying the type name; brand identity is restored by XFactory dispatch. IVariableLookup Resolves a Custom Macro B variable reference to its current numeric value, or null for vacant (Fanuc ) and out-of-scope alike. The key is the raw source token — Fanuc \"#124\", Heidenhain \"Q1\", Siemens \"R1\" — so the interface itself is brand-agnostic. Implementations are typically narrow (one per id range / per brand prefix) and parse the prefix locally; chain them at the call site by trying each in priority order until one returns a non-null value. A returned null is treated by NcExpressionEvaluator as vacant and surfaces as a Variable--Vacant failure when the value is consumed in arithmetic context. Enums NcBinaryOp Binary operators allowed in Fanuc Custom Macro B value expressions. NcUnaryOp Unary operators allowed in Fanuc Custom Macro B value expressions." }, + "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.html": { + "href": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.html", + "title": "Class FanucConditionReader | HiAPI-C# 2025", + "summary": "Class FanucConditionReader Namespace Hi.NcParsers.EvaluationSyntaxs.Fanuc Assembly HiMech.dll Shared polymorphic reader for Fanuc Custom Macro B conditional gate expressions (IF [...] GOTO, IF [...] THEN, WHILE [...] DO m). The condition node is read post-evaluation — VariableEvaluatorSyntax's pass-2 tree walk has already substituted the original expression string with a numeric JsonValue when evaluation succeeded; this helper maps that node to a tri-state truthy outcome plus a display form for diagnostics. Three states, mapping directly to the ConditionEvaluated: true | false | null stamp shape used by all three consumers (see FanucGotoSyntax, FanucIfThenSyntax, and the WHILE-loop syntax): Truthy = true — node is a finite non-zero numeric; gate fires. Truthy = false — node is a finite numeric equal to zero; gate falls through silently. Truthy = null — node is null, still a string (evaluator failed), or non-finite double (NaN / ±∞); gate falls through and the caller emits its own --ConditionNotEvaluated warning. The Display form is the human-readable expression text for diagnostic messages. For resolved numerics it is the value formatted via InvariantCulture; for unresolved strings it is the original expression text. Diagnostics build their own message text — the helper just provides the source string so the caller can compose \"IF [] GOTO ...\" etc. Callers typically DeepClone() the original node before passing in here, then again before stamping back, so removing the parsing section and writing the host-level stamp can happen in any order without dangling references. public static class FanucConditionReader Inheritance object FanucConditionReader Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods ReadCondition(JsonNode) Maps a post-evaluation condition JsonNode to a display string + tri-state truthy outcome. See class XmlDoc for the three states' definitions. public static (string Display, bool? Truthy) ReadCondition(JsonNode node) Parameters node JsonNode Returns (string Display, bool? Truthy)" + }, "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax.html", "title": "Class FanucGotoSyntax | HiAPI-C# 2025", @@ -3842,7 +3807,7 @@ "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucIfThenSyntax.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucIfThenSyntax.html", "title": "Class FanucIfThenSyntax | HiAPI-C# 2025", - "summary": "Class FanucIfThenSyntax Namespace Hi.NcParsers.EvaluationSyntaxs.Fanuc Assembly HiMech.dll Resolves Fanuc Custom Macro B IF [] THEN single-block conditionals. Triggered by Parsing.FanucIfThen (written by FanucIfThenParsingSyntax); reads the now-resolved Condition node, decides whether to fire, and on fire lifts the parsing-stage PendingAssignments sub-object into the canonical Parsing.Assignments bucket so the brand-specific reader syntaxes downstream route each entry to its store the same way they would handle an unconditional #nnn = on a normal block. Unlike FanucGotoSyntax there is no source splice, no label scan, no iteration watchdog — the spec restricts the body to the current block. The host block is preserved either way (the stamped FanucIfThen section on the host's top-level JSON keeps the IF-THEN call site visible to cache dumps and diagnostics, with Applied flipped true only on a successful fire). Pipeline placement: in the Evaluation bundle after VariableEvaluatorSyntax (so the Condition expression has been substituted in place by pass-2 tree walk, and each PendingAssignments RHS string has been evaluated to a numeric JsonValue) and before the reader syntaxes (VolatileVariableReadingSyntax, RetainedCommonVariableReadingSyntax, FanucLocalVariableReadingSyntax, FanucSystemControlVariableSyntax) — that ordering lets the lifted entries reach the readers as if they had been written by TagAssignmentSyntax on a normal block. Three condition outcomes mirror the ReadCondition(JsonNode) shape: Truthy non-zero → lift assignments, stamp Applied=true. Truthy zero → fall through silently, Applied=false. Truthy null (evaluator failed, condition still a string or non-finite) → warn FanucIfThen--ConditionNotEvaluated, do not lift, Applied=false. A truthy condition with no PendingAssignments (body did not parse as one or more assignments — e.g. a G-code body, currently unsupported) warns FanucIfThen--UnsupportedBody and falls through. public class FanucIfThenSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object FanucIfThenSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors FanucIfThenSyntax() Parameterless instance (no XML state). public FanucIfThenSyntax() FanucIfThenSyntax(XElement) XML ctor (no child elements; reserved for forward compatibility). public FanucIfThenSyntax(XElement src) Parameters src XElement Root element named XName. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class FanucIfThenSyntax Namespace Hi.NcParsers.EvaluationSyntaxs.Fanuc Assembly HiMech.dll Resolves Fanuc Custom Macro B IF [] THEN single-block conditionals. Triggered by Parsing.FanucIfThen (written by FanucIfThenParsingSyntax); reads the now-resolved Condition node, decides whether to fire, and on fire lifts the parsing-stage PendingAssignments sub-object into the canonical Parsing.Assignments bucket so the brand-specific reader syntaxes downstream route each entry to its store the same way they would handle an unconditional #nnn = on a normal block. Unlike FanucGotoSyntax there is no source splice, no label scan, no iteration watchdog — the spec restricts the body to the current block. The host block is preserved either way (the stamped FanucIfThen section on the host's top-level JSON keeps the IF-THEN call site visible to cache dumps and diagnostics, with Applied flipped true only on a successful fire). Pipeline placement: in the Evaluation bundle after VariableEvaluatorSyntax (so the Condition expression has been substituted in place by pass-2 tree walk, and each PendingAssignments RHS string has been evaluated to a numeric JsonValue) and before the reader syntaxes (VolatileVariableReadingSyntax, RetainedCommonVariableReadingSyntax, FanucLocalVariableReadingSyntax, FanucSystemControlVariableSyntax) — that ordering lets the lifted entries reach the readers as if they had been written by TagAssignmentSyntax on a normal block. Three condition outcomes mirror the FanucGotoSyntax.ReadCondition shape: Truthy non-zero → lift assignments, stamp Applied=true. Truthy zero → fall through silently, Applied=false. Truthy null (evaluator failed, condition still a string or non-finite) → warn FanucIfThen--ConditionNotEvaluated, do not lift, Applied=false. A truthy condition with no PendingAssignments (body did not parse as one or more assignments — e.g. a G-code body, currently unsupported) warns FanucIfThen--UnsupportedBody and falls through. public class FanucIfThenSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object FanucIfThenSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors FanucIfThenSyntax() Parameterless instance (no XML state). public FanucIfThenSyntax() FanucIfThenSyntax(XElement) XML ctor (no child elements; reserved for forward compatibility). public FanucIfThenSyntax(XElement src) Parameters src XElement Root element named XName. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucLocalVariableReadingSyntax.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucLocalVariableReadingSyntax.html", @@ -3874,15 +3839,20 @@ "title": "Class FanucSystemControlVariableSyntax | HiAPI-C# 2025", "summary": "Class FanucSystemControlVariableSyntax Namespace Hi.NcParsers.EvaluationSyntaxs.Fanuc Assembly HiMech.dll Consumes Fanuc-style system-control variable assignments (#3000-#3999) — alarm trigger (#3000), millisecond and hour clocks (#3001 / #3002), single-block / feed-hold bypass flags (#3003 / #3004), pause-with-message (#3006), mirror-image flags (#3007), date / time (#3011 / #3012), tool-life data (#3030 / #3032), etc. Every id in this range is a controller-side state variable — its authoritative value lives on the real hardware (RTC, alarm bus, override switches, …) and an NC write at most triggers a side effect (clock reset, alarm raise, message-pause prompt). Offline simulation has none of that machinery, so this syntax does not emulate the effect. Instead it: records the literal write on the block JSON under Vars.SystemControl (round-trip and cache-dump visibility); emits a FanucSystemControl--Unsupported UnsupportedMessage(ISentenceCarrier, string, string, object) so the user knows the assignment was recognised but its controller-side effect is not simulated. Message-severity (not Warning) because these writes are safe no-ops offline — every consumed assignment would emit a Warning per block, which would be noisy without signalling anything the user must act on; removes the entry from Parsing.Assignments so it does not re-surface as a generic Parsing--Unconsumed diagnostic. The dictionary carries forward block-by-block (same dict-merge pattern as VolatileVariableReadingSyntax) so a downstream consumer can read the most recent recorded value via SyntaxPiece linkage. Only literal numeric RHS values are consumed; non-literal RHS (e.g. #3002 = #500) is left in Parsing.Assignments for VariableEvaluatorSyntax to resolve, mirroring the retained / volatile reading syntaxes. Fanuc-family only — Siemens uses named system variables ($AC_TIME, $A_DAY, …) and Heidenhain uses FN18: SYSREAD; neither flows through Parsing.Assignments.#nnn. public class FanucSystemControlVariableSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object FanucSystemControlVariableSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors FanucSystemControlVariableSyntax() Default constructor. public FanucSystemControlVariableSyntax() FanucSystemControlVariableSyntax(XElement) Loads from an XML element produced by MakeXmlSource(string, string, bool). No state to deserialise. public FanucSystemControlVariableSyntax(XElement src) Parameters src XElement Fields SystemControlMax Inclusive upper bound of the system-control range (#3999). public const int SystemControlMax = 3999 Field Value int SystemControlMin Inclusive lower bound of the system-control range (#3000). public const int SystemControlMin = 3000 Field Value int UnsupportedDiagId Diagnostic id emitted for every consumed #3000-#3999 assignment — recognised by the parser, ignored by simulation. public const string UnsupportedDiagId = \"FanucSystemControl--Unsupported\" Field Value string Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, + "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html": { + "href": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html", + "title": "Class FanucWhileDoSyntax | HiAPI-C# 2025", + "summary": "Class FanucWhileDoSyntax Namespace Hi.NcParsers.EvaluationSyntaxs.Fanuc Assembly HiMech.dll Resolves Fanuc Custom Macro B WHILE [..] DO m ... END m bounded loops. Two phrases dispatched by Term: WHILE [..] DO m — entry: reads the resolved condition via FanucConditionReader, manages the per-LoopId frame in the top-level WhileFrames dict, and either falls through (truthy) or forward-jumps past the matching END m (falsy / unresolved). END m — terminator: unconditionally reverse-jumps to the WHILE block recorded in WhileFrames[LoopId].BeginLineNo so the next iteration re-evaluates the entry condition. Increments the per-loop iteration counter on FanucWhileDoIterationDependency; suppresses the redirect above MaxIterationsPerLoopId. WhileFrames carrier. The top-level WhileFrames JSON section is a JsonObject keyed by LoopId-as-string whose values are { BeginLineNo: int }. Frames are pushed when a WHILE block first encounters a truthy condition with no existing frame for that LoopId; popped when the condition becomes falsy or unresolved; otherwise carried forward unchanged by ModalCarrySyntax's Logic tracked-key list. Nested loops with distinct LoopIds coexist in the same dict; same-LoopId nesting (spec-undefined) overwrites and is not given special handling. Pipeline placement. Evaluation bundle, after the variable readers (defensive — WHILE/END blocks per spec do not carry assignments, but the placement is consistent with GOTO). Must run after VariableEvaluatorSyntax so the condition string has been substituted to numeric. Forward scan to matching END m uses the LabelScanUtil predicate overload — probe runs the brand-default FanucWhileDoParsingSyntax on each candidate, predicate matches on Parsing.FanucWhileDo.Term == \"END\" && LoopId == target. Reverse scan to WHILE BeginLineNo does not need a label predicate — the BeginLineNo is a known file-line index recorded in the active frame, so the END side re-segments the file from the top and returns the slice starting at the first piece whose CharIndexSegment.Begin.LineIndex matches. public class FanucWhileDoSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object FanucWhileDoSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Remarks Worked Example — Three-iteration WHILE [..] DO m ... END m Given this Custom Macro B source: #100 = 0 WHILE [#100 LT 3] DO 1 #100 = #100 + 1 END 1 X5 Each block flows through the runtime as below. The WhileFrames lifeline represents the per-block active-loop state carried block-to-block by the modal-carry pipeline; the END block consults it to find the WHILE line to reverse-jump to. The runaway-loop counter ticks on every successful END reverse-jump and suppresses further jumps above the configured iteration limit. sequenceDiagram participant W as WHILE block participant B as body participant E as END block participant X as X5 participant F as WhileFrames Note over F: empty Note over W: iter 1: cond=true (0 LT 3) W->>F: push {LoopId 1, BeginLineNo} W->>B: fall through B->>E: Note over E: counter 0 to 1 (≤Max) E-->>W: reverse jump Note over W: iter 2: cond=true (1 LT 3) Note over W,F: frame exists, skip push W->>B: fall through B->>E: Note over E: counter 1 to 2 (≤Max) E-->>W: reverse jump Note over W: iter 3: cond=true (2 LT 3) W->>B: B->>E: Note over E: counter 2 to 3 (≤Max) E-->>W: reverse jump Note over W: iter 4: cond=false (3 LT 3) W->>F: pop LoopId 1 Note over W: forward jump past END W->>X: After the loop exits, X5 executes with #100 = 3 in Vars.Volatile. Constructors FanucWhileDoSyntax() Parameterless instance. public FanucWhileDoSyntax() FanucWhileDoSyntax(XElement) XML ctor (no child elements; reserved for forward compatibility). public FanucWhileDoSyntax(XElement src) Parameters src XElement Fields BeginLineNoKey Schema field inside each WhileFrames entry: the WHILE block's file-line index. public const string BeginLineNoKey = \"BeginLineNo\" Field Value string WhileFramesKey Top-level JSON key for the active-loop frame dict. public const string WhileFramesKey = \"WhileFrames\" Field Value string Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + }, "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.html", "title": "Namespace Hi.NcParsers.EvaluationSyntaxs.Fanuc | HiAPI-C# 2025", - "summary": "Namespace Hi.NcParsers.EvaluationSyntaxs.Fanuc Classes FanucGotoSyntax Resolves Fanuc Custom Macro B GOTO control flow. Triggered by Parsing.FanucGoto (written by FanucGotoParsingSyntax); decides whether to fire, and on fire calls ReplaceSource(IEnumerable) on layers[0] with the re-segmented file content starting at the matching N{target} label. The host block stays materialised (so cache dumps still see the GOTO call site); execution naturally continues from the new source once the pipeline pulls the next block. Both unconditional GOTO and conditional IF [] GOTO are implemented. The conditional form leans on VariableEvaluatorSyntax's pass-2 tree walk to substitute Parsing.FanucGoto.Condition with a numeric JsonValue when the expression evaluates successfully — ReadCondition(JsonNode) then reads the node polymorphically. Truthy non-zero fires the redirect; zero falls through silently; a still-string (unresolved) Condition emits FanucGoto--ConditionNotEvaluated and falls through. Pipeline placement: tail of the Fanuc / Mazak / Syntec Evaluation bundle. Must run after VariableEvaluatorSyntax so any # in the target N (e.g. GOTO #1) has been substituted to a literal in Parsing.FanucGoto.N. Reader syntaxes (VolatileVariableReadingSyntax etc.) are independent — they touch Parsing.Assignments, not Parsing.FanucGoto. Label scanning uses two hosted helper syntaxes — CommentSyntax and IndexSyntax — applied to each candidate block in turn so the predicate IndexNote.Number == target matches the same way the Parsing bundle would. Both are XML-IO-able so API customers can swap them (e.g. for a controller variant using ;-style comments or a different head symbol). Defaults match Fanuc: QuoteCommentSyntax and HeadIndexSyntax with the \"N\" symbol. FanucIfThenSyntax Resolves Fanuc Custom Macro B IF [] THEN single-block conditionals. Triggered by Parsing.FanucIfThen (written by FanucIfThenParsingSyntax); reads the now-resolved Condition node, decides whether to fire, and on fire lifts the parsing-stage PendingAssignments sub-object into the canonical Parsing.Assignments bucket so the brand-specific reader syntaxes downstream route each entry to its store the same way they would handle an unconditional #nnn = on a normal block. Unlike FanucGotoSyntax there is no source splice, no label scan, no iteration watchdog — the spec restricts the body to the current block. The host block is preserved either way (the stamped FanucIfThen section on the host's top-level JSON keeps the IF-THEN call site visible to cache dumps and diagnostics, with Applied flipped true only on a successful fire). Pipeline placement: in the Evaluation bundle after VariableEvaluatorSyntax (so the Condition expression has been substituted in place by pass-2 tree walk, and each PendingAssignments RHS string has been evaluated to a numeric JsonValue) and before the reader syntaxes (VolatileVariableReadingSyntax, RetainedCommonVariableReadingSyntax, FanucLocalVariableReadingSyntax, FanucSystemControlVariableSyntax) — that ordering lets the lifted entries reach the readers as if they had been written by TagAssignmentSyntax on a normal block. Three condition outcomes mirror the ReadCondition(JsonNode) shape: Truthy non-zero → lift assignments, stamp Applied=true. Truthy zero → fall through silently, Applied=false. Truthy null (evaluator failed, condition still a string or non-finite) → warn FanucIfThen--ConditionNotEvaluated, do not lift, Applied=false. A truthy condition with no PendingAssignments (body did not parse as one or more assignments — e.g. a G-code body, currently unsupported) warns FanucIfThen--UnsupportedBody and falls through. FanucLocalVariableReadingSyntax Routes literal-RHS assignments to Fanuc-style local macro variables (#1-#33) from Parsing.Assignments into Vars.Local on the current block, carrying the previous block's Vars.Local dict forward when both blocks share the same MacroFrame id. Mirrors VolatileVariableReadingSyntax for the #100-#499 range, with two differences: Carry is gated by MacroFrame equality, so a caller block after a G65 return does not inherit the macro body's final locals. Writes outside a macro frame (a main-program block doing #11 = 5) emit LocalVariable--MainFrameWriteUnsupported and consume the assignment without persisting — real Fanuc allows main-frame local writes but this simulator only tracks locals inside G65/G66 call frames; surfacing the gap as a diagnostic is more informative than a silent UnconsumedCheckSyntax hit. Pipeline placement: Evaluation bundle, after VariableEvaluatorSyntax (so any expression RHS such as #11 = #1 + 1 has already been normalised to a literal by the time this reader runs) and after the other range readers (RetainedCommonVariableReadingSyntax, VolatileVariableReadingSyntax) so they all share a similar Reader-stage shape. Only literal numeric RHS values are consumed here; non-literal entries (which can only persist if VariableEvaluatorSyntax failed to resolve them) are left untouched and surface via the evaluator's own VariableExpression--Unevaluated diagnostic plus UnconsumedCheckSyntax. FanucMacroArgumentMap Fanuc Custom Macro B Type-I argument-letter map: which call-line letter binds to which Vars.Local id (#1-#26) inside the macro body. Reserved letters (G, L, N, O, P) are absent — they are consumed by the call itself, not passed through. Used by FanucMacroCallSyntax (G65, one-shot) and FanucModalMacroSyntax (G66, modal) to translate the argument letters captured by G65Syntax / G66Syntax into the #nnn bindings the macro body's expression evaluator can read. FanucMacroCallSyntax Inlines a Fanuc Custom Macro B one-shot call (G65 P_ L_ [letter value …]) into the source layer and binds the call-line argument letters to Vars.Local #1-#26 per the Type-I map (see FanucMacroArgumentMap). Every inlined block carries the binding dict, a clone of the FanucMacroCall diagnostic record, and a MacroFrame id stamp — so LocalVariableLookup resolves arg references in a single-block lookup, a cache dump landing on any block immediately shows which call it belongs to, and downstream FanucLocalVariableReadingSyntax carries body-internal #1-#33 writes forward only within the same frame. The host block itself records FanucMacroCall but stays in the caller's frame (no MacroFrame stamp) and emits no motion act; after the macro body's last inlined block the pipeline continues naturally into the caller's next block (the inlined pieces sit ahead of the host block's successor in layers[0]). Frame isolation works on two layers. Statically, caller blocks have no MacroFrame stamp (frame id 0 by Get(JsonObject)), so the inlined frame ids (allocated fresh per L-repetition) never collide with main. Dynamically, LocalVariableLookup and FanucLocalVariableReadingSyntax compare frame ids before carrying any Vars.Local entry across a block boundary — a macro body's body-internal writes therefore stay inside the macro and never leak back into the caller's frame. Filename lookup mirrors SubProgramCallSyntax: O{P:D4}.NC, O{P}.NC, O{P:D4}, O{P}, {P:D4}.NC, {P}.NC — first match wins. The lookup root is InternalFolder (G65 has no \"external storage\" variant; M198's external root is M98/M198-only). L > 1 inlines the same macro L times in series. Each repetition is a fresh segmentation pass (so each block gets its own SyntaxPiece JSON object — the downstream pipeline mutates JSON in place and would clobber sibling repetitions if instances were shared) and gets a fresh FileIndex (so (FileIndex, LineIndex) pairs stay unique across the L-copies of the same source lines). Pipeline placement: ahead of SubProgramCallSyntax inside the Fanuc Evaluation BundleSyntax so a hypothetical G65 P_ + M98 P_ on the same block expands the G65 macro first (would be an unusual but legal composition). Detection is on the Parsing.G65 sub-object written by G65Syntax (a ParameterizedFlagSyntax) — the keyword \"G65\" never reaches Parsing.Flags because the parameterized match has already consumed the text by the time NumberedFlagSyntax runs. FanucModalMacroSyntax Handles Fanuc Custom Macro B modal-call lifecycle (G66 setup, G67 cancel, and per-motion-block implicit macro invocation). The same class is registered twice in the pipeline via Phase — once in the Evaluation bundle (Setup, captures G66/G67 edges and carries the FanucModalMacro state block-to-block) and once in the PostLogic bundle (Expansion, on every motion block within an active G66 modal, inlines the macro body via the same mechanism FanucMacroCallSyntax uses). Keeping both phases in one class makes the pairing visually explicit: readers see \"G66 in one file\" and the two methods (DoSetup, DoExpansion) make the lifecycle obvious. The two factory helpers (Setup, Expansion) mirror the ModalCarrySyntax.Logic / .PostLogic pattern already in the codebase. FanucSystemControlVariableSyntax Consumes Fanuc-style system-control variable assignments (#3000-#3999) — alarm trigger (#3000), millisecond and hour clocks (#3001 / #3002), single-block / feed-hold bypass flags (#3003 / #3004), pause-with-message (#3006), mirror-image flags (#3007), date / time (#3011 / #3012), tool-life data (#3030 / #3032), etc. Every id in this range is a controller-side state variable — its authoritative value lives on the real hardware (RTC, alarm bus, override switches, …) and an NC write at most triggers a side effect (clock reset, alarm raise, message-pause prompt). Offline simulation has none of that machinery, so this syntax does not emulate the effect. Instead it: records the literal write on the block JSON under Vars.SystemControl (round-trip and cache-dump visibility); emits a FanucSystemControl--Unsupported UnsupportedMessage(ISentenceCarrier, string, string, object) so the user knows the assignment was recognised but its controller-side effect is not simulated. Message-severity (not Warning) because these writes are safe no-ops offline — every consumed assignment would emit a Warning per block, which would be noisy without signalling anything the user must act on; removes the entry from Parsing.Assignments so it does not re-surface as a generic Parsing--Unconsumed diagnostic. The dictionary carries forward block-by-block (same dict-merge pattern as VolatileVariableReadingSyntax) so a downstream consumer can read the most recent recorded value via SyntaxPiece linkage. Only literal numeric RHS values are consumed; non-literal RHS (e.g. #3002 = #500) is left in Parsing.Assignments for VariableEvaluatorSyntax to resolve, mirroring the retained / volatile reading syntaxes. Fanuc-family only — Siemens uses named system variables ($AC_TIME, $A_DAY, …) and Heidenhain uses FN18: SYSREAD; neither flows through Parsing.Assignments.#nnn. Enums FanucModalMacroSyntax.SyntaxPhase Identifies which pipeline phase the instance runs in. The two values correspond to the Evaluation-bundle and PostLogic-bundle registrations of this same syntax class." + "summary": "Namespace Hi.NcParsers.EvaluationSyntaxs.Fanuc Classes FanucConditionReader Shared polymorphic reader for Fanuc Custom Macro B conditional gate expressions (IF [...] GOTO, IF [...] THEN, WHILE [...] DO m). The condition node is read post-evaluation — VariableEvaluatorSyntax's pass-2 tree walk has already substituted the original expression string with a numeric JsonValue when evaluation succeeded; this helper maps that node to a tri-state truthy outcome plus a display form for diagnostics. Three states, mapping directly to the ConditionEvaluated: true | false | null stamp shape used by all three consumers (see FanucGotoSyntax, FanucIfThenSyntax, and the WHILE-loop syntax): Truthy = true — node is a finite non-zero numeric; gate fires. Truthy = false — node is a finite numeric equal to zero; gate falls through silently. Truthy = null — node is null, still a string (evaluator failed), or non-finite double (NaN / ±∞); gate falls through and the caller emits its own --ConditionNotEvaluated warning. The Display form is the human-readable expression text for diagnostic messages. For resolved numerics it is the value formatted via InvariantCulture; for unresolved strings it is the original expression text. Diagnostics build their own message text — the helper just provides the source string so the caller can compose \"IF [] GOTO ...\" etc. Callers typically DeepClone() the original node before passing in here, then again before stamping back, so removing the parsing section and writing the host-level stamp can happen in any order without dangling references. FanucGotoSyntax Resolves Fanuc Custom Macro B GOTO control flow. Triggered by Parsing.FanucGoto (written by FanucGotoParsingSyntax); decides whether to fire, and on fire calls ReplaceSource(IEnumerable) on layers[0] with the re-segmented file content starting at the matching N{target} label. The host block stays materialised (so cache dumps still see the GOTO call site); execution naturally continues from the new source once the pipeline pulls the next block. Both unconditional GOTO and conditional IF [] GOTO are implemented. The conditional form leans on VariableEvaluatorSyntax's pass-2 tree walk to substitute Parsing.FanucGoto.Condition with a numeric JsonValue when the expression evaluates successfully — ReadCondition(JsonNode) then reads the node polymorphically. Truthy non-zero fires the redirect; zero falls through silently; a still-string (unresolved) Condition emits FanucGoto--ConditionNotEvaluated and falls through. Pipeline placement: tail of the Fanuc / Mazak / Syntec Evaluation bundle. Must run after VariableEvaluatorSyntax so any # in the target N (e.g. GOTO #1) has been substituted to a literal in Parsing.FanucGoto.N. Reader syntaxes (VolatileVariableReadingSyntax etc.) are independent — they touch Parsing.Assignments, not Parsing.FanucGoto. Label scanning uses two hosted helper syntaxes — CommentSyntax and IndexSyntax — applied to each candidate block in turn so the predicate IndexNote.Number == target matches the same way the Parsing bundle would. Both are XML-IO-able so API customers can swap them (e.g. for a controller variant using ;-style comments or a different head symbol). Defaults match Fanuc: QuoteCommentSyntax and HeadIndexSyntax with the \"N\" symbol. FanucIfThenSyntax Resolves Fanuc Custom Macro B IF [] THEN single-block conditionals. Triggered by Parsing.FanucIfThen (written by FanucIfThenParsingSyntax); reads the now-resolved Condition node, decides whether to fire, and on fire lifts the parsing-stage PendingAssignments sub-object into the canonical Parsing.Assignments bucket so the brand-specific reader syntaxes downstream route each entry to its store the same way they would handle an unconditional #nnn = on a normal block. Unlike FanucGotoSyntax there is no source splice, no label scan, no iteration watchdog — the spec restricts the body to the current block. The host block is preserved either way (the stamped FanucIfThen section on the host's top-level JSON keeps the IF-THEN call site visible to cache dumps and diagnostics, with Applied flipped true only on a successful fire). Pipeline placement: in the Evaluation bundle after VariableEvaluatorSyntax (so the Condition expression has been substituted in place by pass-2 tree walk, and each PendingAssignments RHS string has been evaluated to a numeric JsonValue) and before the reader syntaxes (VolatileVariableReadingSyntax, RetainedCommonVariableReadingSyntax, FanucLocalVariableReadingSyntax, FanucSystemControlVariableSyntax) — that ordering lets the lifted entries reach the readers as if they had been written by TagAssignmentSyntax on a normal block. Three condition outcomes mirror the FanucGotoSyntax.ReadCondition shape: Truthy non-zero → lift assignments, stamp Applied=true. Truthy zero → fall through silently, Applied=false. Truthy null (evaluator failed, condition still a string or non-finite) → warn FanucIfThen--ConditionNotEvaluated, do not lift, Applied=false. A truthy condition with no PendingAssignments (body did not parse as one or more assignments — e.g. a G-code body, currently unsupported) warns FanucIfThen--UnsupportedBody and falls through. FanucLocalVariableReadingSyntax Routes literal-RHS assignments to Fanuc-style local macro variables (#1-#33) from Parsing.Assignments into Vars.Local on the current block, carrying the previous block's Vars.Local dict forward when both blocks share the same MacroFrame id. Mirrors VolatileVariableReadingSyntax for the #100-#499 range, with two differences: Carry is gated by MacroFrame equality, so a caller block after a G65 return does not inherit the macro body's final locals. Writes outside a macro frame (a main-program block doing #11 = 5) emit LocalVariable--MainFrameWriteUnsupported and consume the assignment without persisting — real Fanuc allows main-frame local writes but this simulator only tracks locals inside G65/G66 call frames; surfacing the gap as a diagnostic is more informative than a silent UnconsumedCheckSyntax hit. Pipeline placement: Evaluation bundle, after VariableEvaluatorSyntax (so any expression RHS such as #11 = #1 + 1 has already been normalised to a literal by the time this reader runs) and after the other range readers (RetainedCommonVariableReadingSyntax, VolatileVariableReadingSyntax) so they all share a similar Reader-stage shape. Only literal numeric RHS values are consumed here; non-literal entries (which can only persist if VariableEvaluatorSyntax failed to resolve them) are left untouched and surface via the evaluator's own VariableExpression--Unevaluated diagnostic plus UnconsumedCheckSyntax. FanucMacroArgumentMap Fanuc Custom Macro B Type-I argument-letter map: which call-line letter binds to which Vars.Local id (#1-#26) inside the macro body. Reserved letters (G, L, N, O, P) are absent — they are consumed by the call itself, not passed through. Used by FanucMacroCallSyntax (G65, one-shot) and FanucModalMacroSyntax (G66, modal) to translate the argument letters captured by G65Syntax / G66Syntax into the #nnn bindings the macro body's expression evaluator can read. FanucMacroCallSyntax Inlines a Fanuc Custom Macro B one-shot call (G65 P_ L_ [letter value …]) into the source layer and binds the call-line argument letters to Vars.Local #1-#26 per the Type-I map (see FanucMacroArgumentMap). Every inlined block carries the binding dict, a clone of the FanucMacroCall diagnostic record, and a MacroFrame id stamp — so LocalVariableLookup resolves arg references in a single-block lookup, a cache dump landing on any block immediately shows which call it belongs to, and downstream FanucLocalVariableReadingSyntax carries body-internal #1-#33 writes forward only within the same frame. The host block itself records FanucMacroCall but stays in the caller's frame (no MacroFrame stamp) and emits no motion act; after the macro body's last inlined block the pipeline continues naturally into the caller's next block (the inlined pieces sit ahead of the host block's successor in layers[0]). Frame isolation works on two layers. Statically, caller blocks have no MacroFrame stamp (frame id 0 by Get(JsonObject)), so the inlined frame ids (allocated fresh per L-repetition) never collide with main. Dynamically, LocalVariableLookup and FanucLocalVariableReadingSyntax compare frame ids before carrying any Vars.Local entry across a block boundary — a macro body's body-internal writes therefore stay inside the macro and never leak back into the caller's frame. Filename lookup mirrors SubProgramCallSyntax: O{P:D4}.NC, O{P}.NC, O{P:D4}, O{P}, {P:D4}.NC, {P}.NC — first match wins. The lookup root is InternalFolder (G65 has no \"external storage\" variant; M198's external root is M98/M198-only). L > 1 inlines the same macro L times in series. Each repetition is a fresh segmentation pass (so each block gets its own SyntaxPiece JSON object — the downstream pipeline mutates JSON in place and would clobber sibling repetitions if instances were shared) and gets a fresh FileIndex (so (FileIndex, LineIndex) pairs stay unique across the L-copies of the same source lines). Pipeline placement: ahead of SubProgramCallSyntax inside the Fanuc Evaluation BundleSyntax so a hypothetical G65 P_ + M98 P_ on the same block expands the G65 macro first (would be an unusual but legal composition). Detection is on the Parsing.G65 sub-object written by G65Syntax (a ParameterizedFlagSyntax) — the keyword \"G65\" never reaches Parsing.Flags because the parameterized match has already consumed the text by the time NumberedFlagSyntax runs. FanucModalMacroSyntax Handles Fanuc Custom Macro B modal-call lifecycle (G66 setup, G67 cancel, and per-motion-block implicit macro invocation). The same class is registered twice in the pipeline via Phase — once in the Evaluation bundle (Setup, captures G66/G67 edges and carries the FanucModalMacro state block-to-block) and once in the PostLogic bundle (Expansion, on every motion block within an active G66 modal, inlines the macro body via the same mechanism FanucMacroCallSyntax uses). Keeping both phases in one class makes the pairing visually explicit: readers see \"G66 in one file\" and the two methods (DoSetup, DoExpansion) make the lifecycle obvious. The two factory helpers (Setup, Expansion) mirror the ModalCarrySyntax.Logic / .PostLogic pattern already in the codebase. FanucSystemControlVariableSyntax Consumes Fanuc-style system-control variable assignments (#3000-#3999) — alarm trigger (#3000), millisecond and hour clocks (#3001 / #3002), single-block / feed-hold bypass flags (#3003 / #3004), pause-with-message (#3006), mirror-image flags (#3007), date / time (#3011 / #3012), tool-life data (#3030 / #3032), etc. Every id in this range is a controller-side state variable — its authoritative value lives on the real hardware (RTC, alarm bus, override switches, …) and an NC write at most triggers a side effect (clock reset, alarm raise, message-pause prompt). Offline simulation has none of that machinery, so this syntax does not emulate the effect. Instead it: records the literal write on the block JSON under Vars.SystemControl (round-trip and cache-dump visibility); emits a FanucSystemControl--Unsupported UnsupportedMessage(ISentenceCarrier, string, string, object) so the user knows the assignment was recognised but its controller-side effect is not simulated. Message-severity (not Warning) because these writes are safe no-ops offline — every consumed assignment would emit a Warning per block, which would be noisy without signalling anything the user must act on; removes the entry from Parsing.Assignments so it does not re-surface as a generic Parsing--Unconsumed diagnostic. The dictionary carries forward block-by-block (same dict-merge pattern as VolatileVariableReadingSyntax) so a downstream consumer can read the most recent recorded value via SyntaxPiece linkage. Only literal numeric RHS values are consumed; non-literal RHS (e.g. #3002 = #500) is left in Parsing.Assignments for VariableEvaluatorSyntax to resolve, mirroring the retained / volatile reading syntaxes. Fanuc-family only — Siemens uses named system variables ($AC_TIME, $A_DAY, …) and Heidenhain uses FN18: SYSREAD; neither flows through Parsing.Assignments.#nnn. FanucWhileDoSyntax Resolves Fanuc Custom Macro B WHILE [..] DO m ... END m bounded loops. Two phrases dispatched by Term: WHILE [..] DO m — entry: reads the resolved condition via FanucConditionReader, manages the per-LoopId frame in the top-level WhileFrames dict, and either falls through (truthy) or forward-jumps past the matching END m (falsy / unresolved). END m — terminator: unconditionally reverse-jumps to the WHILE block recorded in WhileFrames[LoopId].BeginLineNo so the next iteration re-evaluates the entry condition. Increments the per-loop iteration counter on FanucWhileDoIterationDependency; suppresses the redirect above MaxIterationsPerLoopId. WhileFrames carrier. The top-level WhileFrames JSON section is a JsonObject keyed by LoopId-as-string whose values are { BeginLineNo: int }. Frames are pushed when a WHILE block first encounters a truthy condition with no existing frame for that LoopId; popped when the condition becomes falsy or unresolved; otherwise carried forward unchanged by ModalCarrySyntax's Logic tracked-key list. Nested loops with distinct LoopIds coexist in the same dict; same-LoopId nesting (spec-undefined) overwrites and is not given special handling. Pipeline placement. Evaluation bundle, after the variable readers (defensive — WHILE/END blocks per spec do not carry assignments, but the placement is consistent with GOTO). Must run after VariableEvaluatorSyntax so the condition string has been substituted to numeric. Forward scan to matching END m uses the LabelScanUtil predicate overload — probe runs the brand-default FanucWhileDoParsingSyntax on each candidate, predicate matches on Parsing.FanucWhileDo.Term == \"END\" && LoopId == target. Reverse scan to WHILE BeginLineNo does not need a label predicate — the BeginLineNo is a known file-line index recorded in the active frame, so the END side re-segments the file from the top and returns the slice starting at the first piece whose CharIndexSegment.Begin.LineIndex matches. Enums FanucModalMacroSyntax.SyntaxPhase Identifies which pipeline phase the instance runs in. The two values correspond to the Evaluation-bundle and PostLogic-bundle registrations of this same syntax class." }, "api/Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.html", "title": "Class LabelScanUtil | HiAPI-C# 2025", - "summary": "Class LabelScanUtil Namespace Hi.NcParsers.EvaluationSyntaxs Assembly HiMech.dll Shared “re-segment a file and skip pieces until a label matches” scan, used by both FanucGotoSyntax (unconditional GOTO redirect) and SubProgramReturnSyntax (M99 P{seq} jump into the caller file). Reads the file via ReadLines(int, string, string), segments through the provided ISegmenter, runs the caller-supplied probe syntaxes on each candidate block to extract IndexNote.Number, and returns the slice from the first matching block to EOF. Returns null when no block matches — the caller's responsibility to surface the appropriate diagnostic. The probes are idempotent because the downstream Parsing bundle re-runs the same syntaxes on the yielded pieces with no-op effect (the regex patterns no longer match once the N-prefix is consumed and the parenthesised comment stripped). public static class LabelScanUtil Inheritance object LabelScanUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods SegmentAndSkipUntilLabel(ISegmenter, string, string, int, int, int, List, NcDiagnosticProgress) Re-segments absPath from offset 0, scans for a block whose Number equals targetN (after the probeSyntaxes have stamped it in-place), and returns the sub-list of pieces from that block to EOF. Pieces are produced via GetSyntaxPieces(ISegmenter, IEnumerable, int, NcDiagnosticProgress, CancellationToken) with SentenceIndex stamped starting at sentenceIndexBegin. Returns null when no match is found; the caller emits its own brand-specific “label not found” diagnostic. The predicate is fixed at the IndexNote.Number section — the section name comes from nameof() so a future rename propagates without re-edits. Reconfigurability for non-standard label-output sections is achieved by replacing the probe syntaxes (the natural extension point) rather than parameterising the predicate path here: a probe stack that doesn't end up writing IndexNote on candidates is by definition not participating in this scan. public static List SegmentAndSkipUntilLabel(ISegmenter segmenter, string absPath, string labelPath, int fileIndex, int sentenceIndexBegin, int targetN, List probeSyntaxes, NcDiagnosticProgress diag) Parameters segmenter ISegmenter Segmenter used to slice the file into Sentence blocks. absPath string Absolute path to read line content from. labelPath string Project-relative path to stamp on each line's IndexedFileLine label (so diagnostics anchor to a relative form, not the resolver's transient absolute path). fileIndex int Fresh file index to stamp on each scanned line, allocated by the caller from FileIndexCounterDependency. sentenceIndexBegin int Starting execution-order index for the produced pieces. targetN int Integer label target to match against Number. probeSyntaxes List Ordered list of helper syntaxes to run on each candidate block before the predicate check (typically comment-stripper(s) followed by a head-index parser). May be null. diag NcDiagnosticProgress Sink for any diagnostics produced by the probe syntaxes (e.g. comment-stripper malformed-comment warnings). Returns List" + "summary": "Class LabelScanUtil Namespace Hi.NcParsers.EvaluationSyntaxs Assembly HiMech.dll Shared “re-segment a file and skip pieces until a label matches” scan, used by both FanucGotoSyntax (unconditional GOTO redirect) and SubProgramReturnSyntax (M99 P{seq} jump into the caller file). Reads the file via ReadLines(int, string, string), segments through the provided ISegmenter, runs the caller-supplied probe syntaxes on each candidate block to extract IndexNote.Number, and returns the slice from the first matching block to EOF. Returns null when no block matches — the caller's responsibility to surface the appropriate diagnostic. The probes are idempotent because the downstream Parsing bundle re-runs the same syntaxes on the yielded pieces with no-op effect (the regex patterns no longer match once the N-prefix is consumed and the parenthesised comment stripped). public static class LabelScanUtil Inheritance object LabelScanUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods SegmentAndSkipUntilLabel(ISegmenter, List, string, string, int, int, List, Func, NcDiagnosticProgress) Predicate-driven overload. The caller supplies match as the per-candidate gate (run on the candidate block's JsonObject after the probe syntaxes have finished stamping). This unblocks scans whose label representation differs from IndexNote.Number — for example END m blocks identified by a custom probe-written section, where reusing IndexNote would collide with real N{m} head indices in the same file. The default targetN overload delegates here with the IndexNote.Number == targetN predicate baked in; existing callers (Fanuc unconditional GOTO, M99 P{seq} jump) are unchanged. public static List SegmentAndSkipUntilLabel(ISegmenter segmenter, List ncDependencyList, string absPath, string labelPath, int fileIndex, int sentenceIndexBegin, List probeSyntaxes, Func match, NcDiagnosticProgress diag) Parameters segmenter ISegmenter Segmenter used to slice the file into Sentence blocks. ncDependencyList List NC dependency list forwarded to GetSyntaxPieces(ISegmenter, List, IEnumerable, int, NcDiagnosticProgress, CancellationToken) while re-segmenting the scanned file. absPath string Absolute path to read line content from. labelPath string Project-relative path to stamp on each line's IndexedFileLine label. fileIndex int Fresh file index to stamp on each scanned line, allocated by the caller from FileIndexCounterDependency. sentenceIndexBegin int Starting execution-order index for the produced pieces. probeSyntaxes List Ordered list of helper syntaxes to run on each candidate block before the predicate check. May be null. match Func Per-candidate predicate; true selects the first match. diag NcDiagnosticProgress Sink for any diagnostics produced by the probe syntaxes. Returns List SegmentAndSkipUntilLabel(ISegmenter, List, string, string, int, int, int, List, NcDiagnosticProgress) Re-segments absPath from offset 0, scans for a block whose Number equals targetN (after the probeSyntaxes have stamped it in-place), and returns the sub-list of pieces from that block to EOF. Pieces are produced via GetSyntaxPieces(ISegmenter, List, IEnumerable, int, NcDiagnosticProgress, CancellationToken) with SentenceIndex stamped starting at sentenceIndexBegin. Returns null when no match is found; the caller emits its own brand-specific “label not found” diagnostic. The predicate is fixed at the IndexNote.Number section — the section name comes from nameof() so a future rename propagates without re-edits. Reconfigurability for non-standard label-output sections is achieved by replacing the probe syntaxes (the natural extension point) rather than parameterising the predicate path here: a probe stack that doesn't end up writing IndexNote on candidates is by definition not participating in this scan. public static List SegmentAndSkipUntilLabel(ISegmenter segmenter, List ncDependencyList, string absPath, string labelPath, int fileIndex, int sentenceIndexBegin, int targetN, List probeSyntaxes, NcDiagnosticProgress diag) Parameters segmenter ISegmenter Segmenter used to slice the file into Sentence blocks. ncDependencyList List NC dependency list forwarded to GetSyntaxPieces(ISegmenter, List, IEnumerable, int, NcDiagnosticProgress, CancellationToken) while re-segmenting the scanned file. absPath string Absolute path to read line content from. labelPath string Project-relative path to stamp on each line's IndexedFileLine label (so diagnostics anchor to a relative form, not the resolver's transient absolute path). fileIndex int Fresh file index to stamp on each scanned line, allocated by the caller from FileIndexCounterDependency. sentenceIndexBegin int Starting execution-order index for the produced pieces. targetN int Integer label target to match against Number. probeSyntaxes List Ordered list of helper syntaxes to run on each candidate block before the predicate check (typically comment-stripper(s) followed by a head-index parser). May be null. diag NcDiagnosticProgress Sink for any diagnostics produced by the probe syntaxes (e.g. comment-stripper malformed-comment warnings). Returns List" }, "api/Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile.html", @@ -3897,7 +3867,7 @@ "api/Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.html", "title": "Class MacroInlineUtil | HiAPI-C# 2025", - "summary": "Class MacroInlineUtil Namespace Hi.NcParsers.EvaluationSyntaxs Assembly HiMech.dll Shared inline mechanism for Fanuc Custom Macro B body expansion — used by both FanucMacroCallSyntax (one-shot) and FanucModalMacroSyntax's expansion phase (modal trigger). Both callers do the same three things on every produced SyntaxPiece: stamp a FanucMacroCall clone, stamp a fresh MacroFrame id, and stamp argument bindings into Vars.Local. Centralising lets the two call sites stay in lock-step — frame allocation, file-index allocation, and the inline-piece JSON shape are guaranteed identical. Frame ids share the same FileIndexCounterDependency counter as file indices — both just need within-session uniqueness and the counter is rewound on session start in lock-step with the pipeline. The main NC file is allocated index 0 first, so all inline frame ids land at > 0 and never collide with main. public static class MacroInlineUtil Inheritance object MacroInlineUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods ApplyLocalBindings(JsonObject, IReadOnlyDictionary) Writes the resolved #N → value bindings into Vars.Local on the given block. No-op when bindings is empty. Always overwrites any pre-existing Vars.Local on the block — for inlined macro bodies this is a fresh stamp. public static void ApplyLocalBindings(JsonObject json, IReadOnlyDictionary bindings) Parameters json JsonObject bindings IReadOnlyDictionary BuildInlinedPieces(ResolvedFile, int, IReadOnlyDictionary, JsonObject, JsonObject, FileIndexCounterDependency, ISegmenter, int, NcDiagnosticProgress) Yields L repetitions of the macro body as inline-ready SyntaxPiece entries. Each repetition gets its own freshly-allocated FileIndex and MacroFrame id; every yielded piece is stamped with a deep clone of callRecord, the frame id, and the resolved #N → value bindings. The caller passes the result to PrependSource(IEnumerable) on the source layer. public static IEnumerable BuildInlinedPieces(MacroFileResolver.ResolvedFile resolvedFile, int l, IReadOnlyDictionary bindings, JsonObject callRecord, JsonObject pushedCallStack, FileIndexCounterDependency counterDep, ISegmenter segmenter, int sentenceIndexBegin, NcDiagnosticProgress ncDiagnosticProgress) Parameters resolvedFile MacroFileResolver.ResolvedFile l int bindings IReadOnlyDictionary callRecord JsonObject pushedCallStack JsonObject counterDep FileIndexCounterDependency segmenter ISegmenter sentenceIndexBegin int ncDiagnosticProgress NcDiagnosticProgress Returns IEnumerable BuildLocalBindings(JsonObject) Translates the argument-letter map captured by the host call ({ “A”: 1.5, “B”: 2.0, ... }) into the #N → value bindings the macro body's expression evaluator will read off Vars.Local. Skips non-numeric (string) args silently — those are unresolved variable references that the evaluator's own VariableExpression–Unevaluated diagnostic will surface; writing a string into Vars.Local would just propagate the residue. public static Dictionary BuildLocalBindings(JsonObject args) Parameters args JsonObject Returns Dictionary" + "summary": "Class MacroInlineUtil Namespace Hi.NcParsers.EvaluationSyntaxs Assembly HiMech.dll Shared inline mechanism for Fanuc Custom Macro B body expansion — used by both FanucMacroCallSyntax (one-shot) and FanucModalMacroSyntax's expansion phase (modal trigger). Both callers do the same three things on every produced SyntaxPiece: stamp a FanucMacroCall clone, stamp a fresh MacroFrame id, and stamp argument bindings into Vars.Local. Centralising lets the two call sites stay in lock-step — frame allocation, file-index allocation, and the inline-piece JSON shape are guaranteed identical. Frame ids share the same FileIndexCounterDependency counter as file indices — both just need within-session uniqueness and the counter is rewound on session start in lock-step with the pipeline. The main NC file is allocated index 0 first, so all inline frame ids land at > 0 and never collide with main. public static class MacroInlineUtil Inheritance object MacroInlineUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods ApplyLocalBindings(JsonObject, IReadOnlyDictionary) Writes the resolved #N → value bindings into Vars.Local on the given block. No-op when bindings is empty. Always overwrites any pre-existing Vars.Local on the block — for inlined macro bodies this is a fresh stamp. public static void ApplyLocalBindings(JsonObject json, IReadOnlyDictionary bindings) Parameters json JsonObject bindings IReadOnlyDictionary BuildInlinedPieces(ResolvedFile, int, IReadOnlyDictionary, JsonObject, JsonObject, FileIndexCounterDependency, ISegmenter, List, int, NcDiagnosticProgress) Yields L repetitions of the macro body as inline-ready SyntaxPiece entries. Each repetition gets its own freshly-allocated FileIndex and MacroFrame id; every yielded piece is stamped with a deep clone of callRecord, the frame id, and the resolved #N → value bindings. The caller passes the result to PrependSource(IEnumerable) on the source layer. public static IEnumerable BuildInlinedPieces(MacroFileResolver.ResolvedFile resolvedFile, int l, IReadOnlyDictionary bindings, JsonObject callRecord, JsonObject pushedCallStack, FileIndexCounterDependency counterDep, ISegmenter segmenter, List ncDependencyList, int sentenceIndexBegin, NcDiagnosticProgress ncDiagnosticProgress) Parameters resolvedFile MacroFileResolver.ResolvedFile l int bindings IReadOnlyDictionary callRecord JsonObject pushedCallStack JsonObject counterDep FileIndexCounterDependency segmenter ISegmenter ncDependencyList List sentenceIndexBegin int ncDiagnosticProgress NcDiagnosticProgress Returns IEnumerable BuildLocalBindings(JsonObject) Translates the argument-letter map captured by the host call ({ “A”: 1.5, “B”: 2.0, ... }) into the #N → value bindings the macro body's expression evaluator will read off Vars.Local. Skips non-numeric (string) args silently — those are unresolved variable references that the evaluator's own VariableExpression–Unevaluated diagnostic will surface; writing a string into Vars.Local would just propagate the residue. public static Dictionary BuildLocalBindings(JsonObject args) Parameters args JsonObject Returns Dictionary" }, "api/Hi.NcParsers.EvaluationSyntaxs.RetainedCommonVariableReadingSyntax.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.RetainedCommonVariableReadingSyntax.html", @@ -3912,12 +3882,12 @@ "api/Hi.NcParsers.EvaluationSyntaxs.SubProgramReturnSyntax.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.SubProgramReturnSyntax.html", "title": "Class SubProgramReturnSyntax | HiAPI-C# 2025", - "summary": "Class SubProgramReturnSyntax Namespace Hi.NcParsers.EvaluationSyntaxs Assembly HiMech.dll Consumes Fanuc-style M99 subprogram-return blocks and pops one CallStack frame. Plain M99 relies on the natural pipeline tail — the inlined body's last block is followed in layers[0] by the caller's next block, so the “return” happens implicitly; this syntax only consumes the M99 trigger (so UnconsumedCheckSyntax doesn't warn), stamps a SubProgramReturn diagnostic section, and writes the popped CallStack for downstream blocks to carry. M99 P{seq} additionally redirects control flow to the caller's N{seq} block via ReplaceSource(IEnumerable). The caller's file is resolved from the popped frame's CallerFilePath; the scan uses the same SegmentAndSkipUntilLabel(ISegmenter, string, string, int, int, int, List, NcDiagnosticProgress) helper as FanucGotoSyntax, with hardcoded Fanuc-default probes (QuoteCommentSyntax + HeadIndexSyntax with symbol \"N\") because the M99 P semantic itself is Fanuc-family-only and Mazak / Syntec follow the same conventions. The iteration is counted against FanucGotoIterationDependency, sharing the same runaway-loop guard as GOTO — keyed on the same (FileName, TargetN) bucket so a tight M98 → M99 P → M98 … loop trips the same threshold. Pipeline placement: same Evaluation bundle slot it always occupied, right after SubProgramCallSyntax at the head. Needs FanucGotoIterationDependency, ProjectFolderDependency, SegmenterDependency, SyntaxPieceLayerDependency, FileIndexCounterDependency on the dep list when M99 P{seq} is to fire; without them the plain-M99 path still works and the P-jump emits a configuration warning. Detection is on the Parsing.M99 sub-object written by M99Syntax (a ParameterizedFlagSyntax) — the keyword \"M99\" never reaches Parsing.Flags because the parameterized match has already consumed the text by the time NumberedFlagSyntax runs. public class SubProgramReturnSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object SubProgramReturnSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors SubProgramReturnSyntax() Parameterless instance with default probe list. public SubProgramReturnSyntax() SubProgramReturnSyntax(XElement, string, IProgress) Loads LabelProbeSyntaxes from XML produced by MakeXmlSource(string, string, bool). An absent wrapper falls back to the default probe list. public SubProgramReturnSyntax(XElement src, string baseDirectory, IProgress progress) Parameters src XElement Root element named XName. baseDirectory string Project base directory propagated to child XFactory calls. progress IProgress Diagnostic sink propagated to child factories. Properties LabelProbeSyntaxes Ordered list of probe syntaxes run on each candidate block during the M99 P{seq} caller-side scan, before the integer label predicate fires. Defaults match Fanuc / Mazak / Syntec (parenthesised comment stripper + N head-index parser); API customers can swap or extend (e.g. add a TailCommentSyntax for ; end-of-block comments, or insert a BlockSkipSyntax to exclude /-prefixed candidates) without subclassing. Mirrors the same hosted-list pattern as LabelProbeSyntaxes. public List LabelProbeSyntaxes { get; set; } Property Value List Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class SubProgramReturnSyntax Namespace Hi.NcParsers.EvaluationSyntaxs Assembly HiMech.dll Consumes Fanuc-style M99 subprogram-return blocks and pops one CallStack frame. Plain M99 relies on the natural pipeline tail — the inlined body's last block is followed in layers[0] by the caller's next block, so the “return” happens implicitly; this syntax only consumes the M99 trigger (so UnconsumedCheckSyntax doesn't warn), stamps a SubProgramReturn diagnostic section, and writes the popped CallStack for downstream blocks to carry. M99 P{seq} additionally redirects control flow to the caller's N{seq} block via ReplaceSource(IEnumerable). The caller's file is resolved from the popped frame's CallerFilePath; the scan uses the same LabelScanUtil.SegmentAndSkipUntilLabel helper as FanucGotoSyntax, with hardcoded Fanuc-default probes (QuoteCommentSyntax + HeadIndexSyntax with symbol \"N\") because the M99 P semantic itself is Fanuc-family-only and Mazak / Syntec follow the same conventions. The iteration is counted against FanucGotoIterationDependency, sharing the same runaway-loop guard as GOTO — keyed on the same (FileName, TargetN) bucket so a tight M98 → M99 P → M98 … loop trips the same threshold. Pipeline placement: same Evaluation bundle slot it always occupied, right after SubProgramCallSyntax at the head. Needs FanucGotoIterationDependency, ProjectFolderDependency, SegmenterDependency, SyntaxPieceLayerDependency, FileIndexCounterDependency on the dep list when M99 P{seq} is to fire; without them the plain-M99 path still works and the P-jump emits a configuration warning. Detection is on the Parsing.M99 sub-object written by M99Syntax (a ParameterizedFlagSyntax) — the keyword \"M99\" never reaches Parsing.Flags because the parameterized match has already consumed the text by the time NumberedFlagSyntax runs. public class SubProgramReturnSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object SubProgramReturnSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors SubProgramReturnSyntax() Parameterless instance with default probe list. public SubProgramReturnSyntax() SubProgramReturnSyntax(XElement, string, IProgress) Loads LabelProbeSyntaxes from XML produced by MakeXmlSource(string, string, bool). An absent wrapper falls back to the default probe list. public SubProgramReturnSyntax(XElement src, string baseDirectory, IProgress progress) Parameters src XElement Root element named XName. baseDirectory string Project base directory propagated to child XFactory calls. progress IProgress Diagnostic sink propagated to child factories. Properties LabelProbeSyntaxes Ordered list of probe syntaxes run on each candidate block during the M99 P{seq} caller-side scan, before the integer label predicate fires. Defaults match Fanuc / Mazak / Syntec (parenthesised comment stripper + N head-index parser); API customers can swap or extend (e.g. add a TailCommentSyntax for ; end-of-block comments, or insert a BlockSkipSyntax to exclude /-prefixed candidates) without subclassing. Mirrors the same hosted-list pattern as LabelProbeSyntaxes. public List LabelProbeSyntaxes { get; set; } Property Value List Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.html", "title": "Class VariableEvaluatorSyntax | HiAPI-C# 2025", - "summary": "Class VariableEvaluatorSyntax Namespace Hi.NcParsers.EvaluationSyntaxs Assembly HiMech.dll Pure expression normalizer for Custom Macro B syntax. Walks the parser-stage residue on a single block and inlines numeric values wherever a Fanuc-style variable reference or bracket expression appears — but does not write to any specific store. Routing “where the resolved literal lands” stays in the brand-specific reader syntaxes (VolatileVariableReadingSyntax, RetainedCommonVariableTable's reader, FanucSystemControlVariableSyntax, …) which run after this syntax on the same block. Two passes per block: Assignments normalize — Parsing.Assignments.#nnn entries whose RHS is non-literal (e.g. \"#500+1\", \"SQRT[#100]\") are evaluated via the VariableEvaluatorSyntax.ChainLookup and the RHS string is replaced with the resolved literal (round-trip-safe \"R\"-format). The entry stays in Parsing.Assignments so downstream reader syntaxes consume it as a pure-literal assignment. Iteration follows source order (Parsing.Assignments insertion order). Parsing tree substitution — every string-typed value reachable from Parsing. (axis tags, canned-cycle sub-objects) is parsed; on a successful evaluation the string is replaced with a numeric JsonValue. Failures silently leave the original string and rely on downstream GetParsedDouble(JsonObject, string, ISentenceCarrier, NcDiagnosticProgress) at consumer sites to surface VariableExpression--Unevaluated only if the tag is actually read. Lookup chain (first non-null wins, configured per brand preset via RuntimeVariableLookups + IVariableLookup instances on NcDependencyList): Current block's own resolved assignments — built-in to VariableEvaluatorSyntax.ChainLookup; covers same-block forward references in source order (an earlier #nnn=literal is visible to a later RHS that mentions #nnn). Each IRuntimeVariableLookup in RuntimeVariableLookups, in list order. Typical contents for a Fanuc-family preset: LocalVariableLookup (#1-#33), VolatileVariableLookup (#100-#499), FanucPositionVariableLookup (#5001-#5043). Each IVariableLookup on the runner's NcDependencyList, in registration order (RetainedCommonVariableTable, FanucParameterTable, FanucToolOffsetVariableLookup). Each lookup self-gates its id range; the evaluator stays brand- and range-agnostic. Adding a new variable surface is additive: register an IVariableLookup on a dependency or push an IRuntimeVariableLookup onto the per-preset list. Same-block forward reference — when an Assignment RHS references a #nnn that is also being assigned later in the same block (i.e. listed in Parsing.Assignments after the RHS being evaluated), the VariableEvaluatorSyntax.ChainLookup cannot pick up the not-yet-resolved value and falls back to traceback / dependency-table reads — effectively the pre-block value. A VariableEvaluator--SameBlockForwardReference warning is emitted per such RHS so the user is told the source-order semantics were not honoured. Practical impact is near-zero for typical CAM-emitted NC (one assignment per line). public class VariableEvaluatorSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object VariableEvaluatorSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors VariableEvaluatorSyntax() Default constructor. public VariableEvaluatorSyntax() VariableEvaluatorSyntax(XElement) Loads from an XML element produced by MakeXmlSource(string, string, bool); restores RuntimeVariableLookups via XFactory dispatch. public VariableEvaluatorSyntax(XElement src) Parameters src XElement Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string RuntimeVariableLookups Per-preset list of context-sensitive lookups (block-local Vars.Local / Vars.Volatile, position reads, runtime-state reads). Walked in list order, before the dependency-bound IVariableLookups. Brand presets configure this; the list is XML-serialised so a runner rebuilt from XML keeps its brand-specific lookups (each impl is stateless and dispatches by its XName via XFactory). public List RuntimeVariableLookups { get; set; } Property Value List XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class VariableEvaluatorSyntax Namespace Hi.NcParsers.EvaluationSyntaxs Assembly HiMech.dll Pure expression normalizer for Custom Macro B syntax. Walks the parser-stage residue on a single block and inlines numeric values wherever a Fanuc-style variable reference or bracket expression appears — but does not write to any specific store. Routing “where the resolved literal lands” stays in the brand-specific reader syntaxes (VolatileVariableReadingSyntax, RetainedCommonVariableTable's reader, FanucSystemControlVariableSyntax, …) which run after this syntax on the same block. Two passes per block: Assignments normalize — Parsing.Assignments.#nnn entries whose RHS is non-literal (e.g. \"#500+1\", \"SQRT[#100]\") are evaluated via the VariableEvaluatorSyntax.ChainLookup and the RHS string is replaced with the resolved literal (round-trip-safe \"R\"-format). The entry stays in Parsing.Assignments so downstream reader syntaxes consume it as a pure-literal assignment. Iteration follows source order (Parsing.Assignments insertion order). Parsing tree substitution — every string-typed value reachable from Parsing. (axis tags, canned-cycle sub-objects) is parsed; on a successful evaluation the string is replaced with a numeric JsonValue. Failures silently leave the original string and rely on downstream GetParsedDouble(JsonObject, string, ISentenceCarrier, NcDiagnosticProgress) at consumer sites to surface VariableExpression--Unevaluated only if the tag is actually read. Lookup chain (first non-null wins, configured per brand preset via RuntimeVariableLookups + IVariableLookup instances on NcDependencyList): Current block's own resolved assignments — built-in to VariableEvaluatorSyntax.ChainLookup; covers same-block forward references in source order (an earlier #nnn=literal is visible to a later RHS that mentions #nnn). Each IRuntimeVariableLookup in RuntimeVariableLookups, in list order. Typical contents for a Fanuc-family preset: LocalVariableLookup (#1-#33), VolatileVariableLookup (#100-#499), FanucPositionVariableLookup (#5001-#5043). Each IVariableLookup on the runner's NcDependencyList, in registration order (RetainedCommonVariableTable, FanucParameterTable, FanucToolOffsetVariableLookup). Each lookup self-gates its id range; the evaluator stays brand- and range-agnostic. Adding a new variable surface is additive: register an IVariableLookup on a dependency or push an IRuntimeVariableLookup onto the per-preset list. Same-block forward reference — when an Assignment RHS references a #nnn that is also being assigned later in the same block (i.e. listed in Parsing.Assignments after the RHS being evaluated), the VariableEvaluatorSyntax.ChainLookup cannot pick up the not-yet-resolved value and falls back to traceback / dependency-table reads — effectively the pre-block value. A VariableEvaluator--SameBlockForwardReference warning is emitted per such RHS so the user is told the source-order semantics were not honoured. Practical impact is near-zero for typical CAM-emitted NC (one assignment per line). Formula mirror tree — when either pass actually performs a non-trivial expression evaluation (i.e. the RHS / tag value was not already a pure literal and the evaluator returned a finite value), the original expression string is mirrored to a parallel Formula. entry at the root of the block JSON. The Parsing.* subtree carries the resolved value (R-format string for Assignments; numeric JsonValue for tags); the Formula.* subtree preserves the source-text expression for diagnostics, round-trip reconstruction, and downstream inspection. Pure-literal RHS / tag values produce no Formula entry — the Parsing value is already the original text. Evaluation failures (parse error, vacant variable, non-finite result) also produce no Formula entry — the original string is still in Parsing.* untouched, no preservation needed. public class VariableEvaluatorSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object VariableEvaluatorSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors VariableEvaluatorSyntax() Default constructor. public VariableEvaluatorSyntax() VariableEvaluatorSyntax(XElement) Loads from an XML element produced by MakeXmlSource(string, string, bool); restores RuntimeVariableLookups via XFactory dispatch. public VariableEvaluatorSyntax(XElement src) Parameters src XElement Fields FormulaKey Top-level key under which the Formula mirror tree is written. public const string FormulaKey = \"Formula\" Field Value string Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string RuntimeVariableLookups Per-preset list of context-sensitive lookups (block-local Vars.Local / Vars.Volatile, position reads, runtime-state reads). Walked in list order, before the dependency-bound IVariableLookups. Brand presets configure this; the list is XML-serialised so a runner rebuilt from XML keeps its brand-specific lookups (each impl is stateless and dispatches by its XName via XFactory). public List RuntimeVariableLookups { get; set; } Property Value List XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.EvaluationSyntaxs.VolatileVariableReadingSyntax.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.VolatileVariableReadingSyntax.html", @@ -3927,7 +3897,7 @@ "api/Hi.NcParsers.EvaluationSyntaxs.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.html", "title": "Namespace Hi.NcParsers.EvaluationSyntaxs | HiAPI-C# 2025", - "summary": "Namespace Hi.NcParsers.EvaluationSyntaxs Classes CallStackUtil Push / pop helpers for the per-block CallStack section. Both produce a fresh deep-cloned JsonObject ready to stamp onto an inlined piece (push site) or onto an M99 return block (pop site); the caller is responsible for deep-cloning again if it distributes the same stamp across multiple pieces of an L-repetition. Pairs with ModalCarrySyntax at the Logic stage: explicit push / pop writes seed the section at frame boundaries, ModalCarry copies it forward to every block in between so each block is self-contained for cache-dump readers and downstream consumers (notably M99 P{seq} reading the top frame's CallerFilePath). LabelScanUtil Shared “re-segment a file and skip pieces until a label matches” scan, used by both FanucGotoSyntax (unconditional GOTO redirect) and SubProgramReturnSyntax (M99 P{seq} jump into the caller file). Reads the file via ReadLines(int, string, string), segments through the provided ISegmenter, runs the caller-supplied probe syntaxes on each candidate block to extract IndexNote.Number, and returns the slice from the first matching block to EOF. Returns null when no block matches — the caller's responsibility to surface the appropriate diagnostic. The probes are idempotent because the downstream Parsing bundle re-runs the same syntaxes on the yielded pieces with no-op effect (the regex patterns no longer match once the N-prefix is consumed and the parenthesised comment stripped). MacroFileResolver Shared subprogram-/macro-file resolver for Fanuc-style O lookups consumed by SubProgramCallSyntax (M98 / M198) and FanucMacroCallSyntax (G65). Single helper so the three path forms — file name, project-relative path, absolute path — are produced together at one site and each caller gets exactly the form it should consume: FileName — bare O####.NC form the resolver matched. Stored in JSON sections (FanucMacroCall, SubProgramCall) as the structural NC-language identifier; independent of which folder the dependency happened to be pointing at, so the JSON stays portable across environments. RelPath — relative path against the project base directory (e.g. \"NC/O1234.NC\"). Used as the IndexedFileLine label so diagnostics on inlined blocks align with the relative form already used for the main file label. AbsPath — absolute path. Used only at the ReadLines(int, string, string) call site for actual disk I/O; never persisted, never returned to JSON. Lives inside the resolver's stack frame and the segmenter's enumeration. Filename lookup order (first match wins) mirrors real Fanuc fallback: O{P:D4}.NC, O{P}.NC, O{P:D4}, O{P}, {P:D4}.NC, {P}.NC. Case-insensitive match is delegated to the host filesystem (Windows is, Linux is not). MacroInlineUtil Shared inline mechanism for Fanuc Custom Macro B body expansion — used by both FanucMacroCallSyntax (one-shot) and FanucModalMacroSyntax's expansion phase (modal trigger). Both callers do the same three things on every produced SyntaxPiece: stamp a FanucMacroCall clone, stamp a fresh MacroFrame id, and stamp argument bindings into Vars.Local. Centralising lets the two call sites stay in lock-step — frame allocation, file-index allocation, and the inline-piece JSON shape are guaranteed identical. Frame ids share the same FileIndexCounterDependency counter as file indices — both just need within-session uniqueness and the counter is rewound on session start in lock-step with the pipeline. The main NC file is allocated index 0 first, so all inline frame ids land at > 0 and never collide with main. RetainedCommonVariableReadingSyntax Obtains values for Fanuc-style retained common variables (#500-#999) by consuming literal numeric assignments from Parsing.Assignments.#nnn and writing them straight to a registered RetainedCommonVariableTable. No SyntaxPiece JSON mirror is created — the table is the single source of truth for retained values, and VariableEvaluatorSyntax reads from the table directly. The hincproj round-trip preserves writes across project sessions. Only literal numeric RHS values are consumed by this syntax (#500 = 1.234 ✓; #600 = #500 + 1 ✗). Non-literal RHS entries are left untouched in Parsing.Assignments; VariableEvaluatorSyntax resolves them and writes the result through the same table. The two syntaxes are decoupled. If no RetainedCommonVariableTable is registered on the runner's NcDependencyList, this syntax is a no-op. SubProgramCallSyntax Inlines a Fanuc-style subprogram into the source layer when an M98 or M198 host block is reached. M98 P_ L_ reads the matching O

    file from InternalFolder; M198 P_ reads from ExternalFolder (Fanuc external-storage call — same mechanism as M98, different lookup root). The file is segmented through the host runner's segmenter (SegmenterDependency) and the resulting SyntaxPieces are prepended into layers[0] via PrependSource(IEnumerable); the rest of the pipeline picks them up through ordinary walkNode.Next traversal as if they had always been part of the host file. Pipeline placement: first child of the Fanuc Evaluation BundleSyntax. By the time this runs, M98Syntax / M198Syntax (each a ParameterizedFlagSyntax) have written a Parsing.M98 / Parsing.M198 sub-object carrying the captured P / L parameters. Note: those sub-objects are this syntax's only trigger — \"M98\" / \"M198\" never reach Parsing.Flags, because the parameterized match has already consumed the text by the time NumberedFlagSyntax runs. Filename lookup uses a fallback chain: O{P:D4}.NC, O{P}.NC, O{P:D4}, O{P}, {P:D4}.NC, {P}.NC — first match wins. Case-insensitive match is delegated to the host filesystem (Windows is, Linux is not). L > 1 inlines the same subprogram L times in series. Each repetition is a fresh segmentation pass so each block gets its own SyntaxPiece with an independent JSON object — the downstream pipeline mutates JSON in place and would clobber sibling repetitions if instances were shared. Not yet supported: M99 P{seq} early return inside a subprogram and partial-program calls (M98 P{seq}{prog} split encoding). Custom Macro B argument-binding calls (G65 / G66 / G67) live in FanucMacroCallSyntax and FanucModalMacroSyntax — those handle the argument-letter-to-#1..#26 binding and the macro-call frame isolation that M98 deliberately does not provide. SubProgramReturnSyntax Consumes Fanuc-style M99 subprogram-return blocks and pops one CallStack frame. Plain M99 relies on the natural pipeline tail — the inlined body's last block is followed in layers[0] by the caller's next block, so the “return” happens implicitly; this syntax only consumes the M99 trigger (so UnconsumedCheckSyntax doesn't warn), stamps a SubProgramReturn diagnostic section, and writes the popped CallStack for downstream blocks to carry. M99 P{seq} additionally redirects control flow to the caller's N{seq} block via ReplaceSource(IEnumerable). The caller's file is resolved from the popped frame's CallerFilePath; the scan uses the same SegmentAndSkipUntilLabel(ISegmenter, string, string, int, int, int, List, NcDiagnosticProgress) helper as FanucGotoSyntax, with hardcoded Fanuc-default probes (QuoteCommentSyntax + HeadIndexSyntax with symbol \"N\") because the M99 P semantic itself is Fanuc-family-only and Mazak / Syntec follow the same conventions. The iteration is counted against FanucGotoIterationDependency, sharing the same runaway-loop guard as GOTO — keyed on the same (FileName, TargetN) bucket so a tight M98 → M99 P → M98 … loop trips the same threshold. Pipeline placement: same Evaluation bundle slot it always occupied, right after SubProgramCallSyntax at the head. Needs FanucGotoIterationDependency, ProjectFolderDependency, SegmenterDependency, SyntaxPieceLayerDependency, FileIndexCounterDependency on the dep list when M99 P{seq} is to fire; without them the plain-M99 path still works and the P-jump emits a configuration warning. Detection is on the Parsing.M99 sub-object written by M99Syntax (a ParameterizedFlagSyntax) — the keyword \"M99\" never reaches Parsing.Flags because the parameterized match has already consumed the text by the time NumberedFlagSyntax runs. VariableEvaluatorSyntax Pure expression normalizer for Custom Macro B syntax. Walks the parser-stage residue on a single block and inlines numeric values wherever a Fanuc-style variable reference or bracket expression appears — but does not write to any specific store. Routing “where the resolved literal lands” stays in the brand-specific reader syntaxes (VolatileVariableReadingSyntax, RetainedCommonVariableTable's reader, FanucSystemControlVariableSyntax, …) which run after this syntax on the same block. Two passes per block: Assignments normalize — Parsing.Assignments.#nnn entries whose RHS is non-literal (e.g. \"#500+1\", \"SQRT[#100]\") are evaluated via the VariableEvaluatorSyntax.ChainLookup and the RHS string is replaced with the resolved literal (round-trip-safe \"R\"-format). The entry stays in Parsing.Assignments so downstream reader syntaxes consume it as a pure-literal assignment. Iteration follows source order (Parsing.Assignments insertion order). Parsing tree substitution — every string-typed value reachable from Parsing. (axis tags, canned-cycle sub-objects) is parsed; on a successful evaluation the string is replaced with a numeric JsonValue. Failures silently leave the original string and rely on downstream GetParsedDouble(JsonObject, string, ISentenceCarrier, NcDiagnosticProgress) at consumer sites to surface VariableExpression--Unevaluated only if the tag is actually read. Lookup chain (first non-null wins, configured per brand preset via RuntimeVariableLookups + IVariableLookup instances on NcDependencyList): Current block's own resolved assignments — built-in to VariableEvaluatorSyntax.ChainLookup; covers same-block forward references in source order (an earlier #nnn=literal is visible to a later RHS that mentions #nnn). Each IRuntimeVariableLookup in RuntimeVariableLookups, in list order. Typical contents for a Fanuc-family preset: LocalVariableLookup (#1-#33), VolatileVariableLookup (#100-#499), FanucPositionVariableLookup (#5001-#5043). Each IVariableLookup on the runner's NcDependencyList, in registration order (RetainedCommonVariableTable, FanucParameterTable, FanucToolOffsetVariableLookup). Each lookup self-gates its id range; the evaluator stays brand- and range-agnostic. Adding a new variable surface is additive: register an IVariableLookup on a dependency or push an IRuntimeVariableLookup onto the per-preset list. Same-block forward reference — when an Assignment RHS references a #nnn that is also being assigned later in the same block (i.e. listed in Parsing.Assignments after the RHS being evaluated), the VariableEvaluatorSyntax.ChainLookup cannot pick up the not-yet-resolved value and falls back to traceback / dependency-table reads — effectively the pre-block value. A VariableEvaluator--SameBlockForwardReference warning is emitted per such RHS so the user is told the source-order semantics were not honoured. Practical impact is near-zero for typical CAM-emitted NC (one assignment per line). VolatileVariableReadingSyntax Obtains values for Fanuc-style non-retained common variables (#100-#499). Reads literal numeric assignments from Parsing.Assignments.#nnn, dict-merges them with the previous block's volatile state, and writes the resulting per-block dictionary into Vars.Volatile. Lifetime is bounded by MachiningSession: within one session the dictionary carries forward block-by-block via this syntax; session restart abandons the SyntaxPiece JSON dataflow and starts fresh. Program-end (M02/M30) clearing is handled by ProgramEndCleanSyntax. Only literal numeric RHS values are consumed by this syntax (#124 = 15. ✓; #100 = #1 + 5 ✗). Non-literal RHS entries are left untouched in Parsing.Assignments; VariableEvaluatorSyntax resolves them and writes the result into the same per-block dictionary. The two syntaxes are decoupled — the evaluator's lookup tracebacks via SyntaxPiece linkage so it does not depend on having run before or after this syntax. Structs MacroFileResolver.ResolvedFile Tri-form resolution result. FileName is the bare matched name; RelPath is that name joined with the folder portion of the dependency (relative when the folder is configured relative, absolute fallback when it isn't); AbsPath is the fully-resolved I/O target." + "summary": "Namespace Hi.NcParsers.EvaluationSyntaxs Classes CallStackUtil Push / pop helpers for the per-block CallStack section. Both produce a fresh deep-cloned JsonObject ready to stamp onto an inlined piece (push site) or onto an M99 return block (pop site); the caller is responsible for deep-cloning again if it distributes the same stamp across multiple pieces of an L-repetition. Pairs with ModalCarrySyntax at the Logic stage: explicit push / pop writes seed the section at frame boundaries, ModalCarry copies it forward to every block in between so each block is self-contained for cache-dump readers and downstream consumers (notably M99 P{seq} reading the top frame's CallerFilePath). LabelScanUtil Shared “re-segment a file and skip pieces until a label matches” scan, used by both FanucGotoSyntax (unconditional GOTO redirect) and SubProgramReturnSyntax (M99 P{seq} jump into the caller file). Reads the file via ReadLines(int, string, string), segments through the provided ISegmenter, runs the caller-supplied probe syntaxes on each candidate block to extract IndexNote.Number, and returns the slice from the first matching block to EOF. Returns null when no block matches — the caller's responsibility to surface the appropriate diagnostic. The probes are idempotent because the downstream Parsing bundle re-runs the same syntaxes on the yielded pieces with no-op effect (the regex patterns no longer match once the N-prefix is consumed and the parenthesised comment stripped). MacroFileResolver Shared subprogram-/macro-file resolver for Fanuc-style O lookups consumed by SubProgramCallSyntax (M98 / M198) and FanucMacroCallSyntax (G65). Single helper so the three path forms — file name, project-relative path, absolute path — are produced together at one site and each caller gets exactly the form it should consume: FileName — bare O####.NC form the resolver matched. Stored in JSON sections (FanucMacroCall, SubProgramCall) as the structural NC-language identifier; independent of which folder the dependency happened to be pointing at, so the JSON stays portable across environments. RelPath — relative path against the project base directory (e.g. \"NC/O1234.NC\"). Used as the IndexedFileLine label so diagnostics on inlined blocks align with the relative form already used for the main file label. AbsPath — absolute path. Used only at the ReadLines(int, string, string) call site for actual disk I/O; never persisted, never returned to JSON. Lives inside the resolver's stack frame and the segmenter's enumeration. Filename lookup order (first match wins) mirrors real Fanuc fallback: O{P:D4}.NC, O{P}.NC, O{P:D4}, O{P}, {P:D4}.NC, {P}.NC. Case-insensitive match is delegated to the host filesystem (Windows is, Linux is not). MacroInlineUtil Shared inline mechanism for Fanuc Custom Macro B body expansion — used by both FanucMacroCallSyntax (one-shot) and FanucModalMacroSyntax's expansion phase (modal trigger). Both callers do the same three things on every produced SyntaxPiece: stamp a FanucMacroCall clone, stamp a fresh MacroFrame id, and stamp argument bindings into Vars.Local. Centralising lets the two call sites stay in lock-step — frame allocation, file-index allocation, and the inline-piece JSON shape are guaranteed identical. Frame ids share the same FileIndexCounterDependency counter as file indices — both just need within-session uniqueness and the counter is rewound on session start in lock-step with the pipeline. The main NC file is allocated index 0 first, so all inline frame ids land at > 0 and never collide with main. RetainedCommonVariableReadingSyntax Obtains values for Fanuc-style retained common variables (#500-#999) by consuming literal numeric assignments from Parsing.Assignments.#nnn and writing them straight to a registered RetainedCommonVariableTable. No SyntaxPiece JSON mirror is created — the table is the single source of truth for retained values, and VariableEvaluatorSyntax reads from the table directly. The hincproj round-trip preserves writes across project sessions. Only literal numeric RHS values are consumed by this syntax (#500 = 1.234 ✓; #600 = #500 + 1 ✗). Non-literal RHS entries are left untouched in Parsing.Assignments; VariableEvaluatorSyntax resolves them and writes the result through the same table. The two syntaxes are decoupled. If no RetainedCommonVariableTable is registered on the runner's NcDependencyList, this syntax is a no-op. SubProgramCallSyntax Inlines a Fanuc-style subprogram into the source layer when an M98 or M198 host block is reached. M98 P_ L_ reads the matching O

    file from InternalFolder; M198 P_ reads from ExternalFolder (Fanuc external-storage call — same mechanism as M98, different lookup root). The file is segmented through the host runner's segmenter (SegmenterDependency) and the resulting SyntaxPieces are prepended into layers[0] via PrependSource(IEnumerable); the rest of the pipeline picks them up through ordinary walkNode.Next traversal as if they had always been part of the host file. Pipeline placement: first child of the Fanuc Evaluation BundleSyntax. By the time this runs, M98Syntax / M198Syntax (each a ParameterizedFlagSyntax) have written a Parsing.M98 / Parsing.M198 sub-object carrying the captured P / L parameters. Note: those sub-objects are this syntax's only trigger — \"M98\" / \"M198\" never reach Parsing.Flags, because the parameterized match has already consumed the text by the time NumberedFlagSyntax runs. Filename lookup uses a fallback chain: O{P:D4}.NC, O{P}.NC, O{P:D4}, O{P}, {P:D4}.NC, {P}.NC — first match wins. Case-insensitive match is delegated to the host filesystem (Windows is, Linux is not). L > 1 inlines the same subprogram L times in series. Each repetition is a fresh segmentation pass so each block gets its own SyntaxPiece with an independent JSON object — the downstream pipeline mutates JSON in place and would clobber sibling repetitions if instances were shared. Not yet supported: M99 P{seq} early return inside a subprogram and partial-program calls (M98 P{seq}{prog} split encoding). Custom Macro B argument-binding calls (G65 / G66 / G67) live in FanucMacroCallSyntax and FanucModalMacroSyntax — those handle the argument-letter-to-#1..#26 binding and the macro-call frame isolation that M98 deliberately does not provide. SubProgramReturnSyntax Consumes Fanuc-style M99 subprogram-return blocks and pops one CallStack frame. Plain M99 relies on the natural pipeline tail — the inlined body's last block is followed in layers[0] by the caller's next block, so the “return” happens implicitly; this syntax only consumes the M99 trigger (so UnconsumedCheckSyntax doesn't warn), stamps a SubProgramReturn diagnostic section, and writes the popped CallStack for downstream blocks to carry. M99 P{seq} additionally redirects control flow to the caller's N{seq} block via ReplaceSource(IEnumerable). The caller's file is resolved from the popped frame's CallerFilePath; the scan uses the same LabelScanUtil.SegmentAndSkipUntilLabel helper as FanucGotoSyntax, with hardcoded Fanuc-default probes (QuoteCommentSyntax + HeadIndexSyntax with symbol \"N\") because the M99 P semantic itself is Fanuc-family-only and Mazak / Syntec follow the same conventions. The iteration is counted against FanucGotoIterationDependency, sharing the same runaway-loop guard as GOTO — keyed on the same (FileName, TargetN) bucket so a tight M98 → M99 P → M98 … loop trips the same threshold. Pipeline placement: same Evaluation bundle slot it always occupied, right after SubProgramCallSyntax at the head. Needs FanucGotoIterationDependency, ProjectFolderDependency, SegmenterDependency, SyntaxPieceLayerDependency, FileIndexCounterDependency on the dep list when M99 P{seq} is to fire; without them the plain-M99 path still works and the P-jump emits a configuration warning. Detection is on the Parsing.M99 sub-object written by M99Syntax (a ParameterizedFlagSyntax) — the keyword \"M99\" never reaches Parsing.Flags because the parameterized match has already consumed the text by the time NumberedFlagSyntax runs. VariableEvaluatorSyntax Pure expression normalizer for Custom Macro B syntax. Walks the parser-stage residue on a single block and inlines numeric values wherever a Fanuc-style variable reference or bracket expression appears — but does not write to any specific store. Routing “where the resolved literal lands” stays in the brand-specific reader syntaxes (VolatileVariableReadingSyntax, RetainedCommonVariableTable's reader, FanucSystemControlVariableSyntax, …) which run after this syntax on the same block. Two passes per block: Assignments normalize — Parsing.Assignments.#nnn entries whose RHS is non-literal (e.g. \"#500+1\", \"SQRT[#100]\") are evaluated via the VariableEvaluatorSyntax.ChainLookup and the RHS string is replaced with the resolved literal (round-trip-safe \"R\"-format). The entry stays in Parsing.Assignments so downstream reader syntaxes consume it as a pure-literal assignment. Iteration follows source order (Parsing.Assignments insertion order). Parsing tree substitution — every string-typed value reachable from Parsing. (axis tags, canned-cycle sub-objects) is parsed; on a successful evaluation the string is replaced with a numeric JsonValue. Failures silently leave the original string and rely on downstream GetParsedDouble(JsonObject, string, ISentenceCarrier, NcDiagnosticProgress) at consumer sites to surface VariableExpression--Unevaluated only if the tag is actually read. Lookup chain (first non-null wins, configured per brand preset via RuntimeVariableLookups + IVariableLookup instances on NcDependencyList): Current block's own resolved assignments — built-in to VariableEvaluatorSyntax.ChainLookup; covers same-block forward references in source order (an earlier #nnn=literal is visible to a later RHS that mentions #nnn). Each IRuntimeVariableLookup in RuntimeVariableLookups, in list order. Typical contents for a Fanuc-family preset: LocalVariableLookup (#1-#33), VolatileVariableLookup (#100-#499), FanucPositionVariableLookup (#5001-#5043). Each IVariableLookup on the runner's NcDependencyList, in registration order (RetainedCommonVariableTable, FanucParameterTable, FanucToolOffsetVariableLookup). Each lookup self-gates its id range; the evaluator stays brand- and range-agnostic. Adding a new variable surface is additive: register an IVariableLookup on a dependency or push an IRuntimeVariableLookup onto the per-preset list. Same-block forward reference — when an Assignment RHS references a #nnn that is also being assigned later in the same block (i.e. listed in Parsing.Assignments after the RHS being evaluated), the VariableEvaluatorSyntax.ChainLookup cannot pick up the not-yet-resolved value and falls back to traceback / dependency-table reads — effectively the pre-block value. A VariableEvaluator--SameBlockForwardReference warning is emitted per such RHS so the user is told the source-order semantics were not honoured. Practical impact is near-zero for typical CAM-emitted NC (one assignment per line). Formula mirror tree — when either pass actually performs a non-trivial expression evaluation (i.e. the RHS / tag value was not already a pure literal and the evaluator returned a finite value), the original expression string is mirrored to a parallel Formula. entry at the root of the block JSON. The Parsing.* subtree carries the resolved value (R-format string for Assignments; numeric JsonValue for tags); the Formula.* subtree preserves the source-text expression for diagnostics, round-trip reconstruction, and downstream inspection. Pure-literal RHS / tag values produce no Formula entry — the Parsing value is already the original text. Evaluation failures (parse error, vacant variable, non-finite result) also produce no Formula entry — the original string is still in Parsing.* untouched, no preservation needed. VolatileVariableReadingSyntax Obtains values for Fanuc-style non-retained common variables (#100-#499). Reads literal numeric assignments from Parsing.Assignments.#nnn, dict-merges them with the previous block's volatile state, and writes the resulting per-block dictionary into Vars.Volatile. Lifetime is bounded by MachiningSession: within one session the dictionary carries forward block-by-block via this syntax; session restart abandons the SyntaxPiece JSON dataflow and starts fresh. Program-end (M02/M30) clearing is handled by ProgramEndCleanSyntax. Only literal numeric RHS values are consumed by this syntax (#124 = 15. ✓; #100 = #1 + 5 ✗). Non-literal RHS entries are left untouched in Parsing.Assignments; VariableEvaluatorSyntax resolves them and writes the result into the same per-block dictionary. The two syntaxes are decoupled — the evaluator's lookup tracebacks via SyntaxPiece linkage so it does not depend on having run before or after this syntax. Structs MacroFileResolver.ResolvedFile Tri-form resolution result. FileName is the bare matched name; RelPath is that name joined with the folder portion of the dependency (relative when the folder is configured relative, absolute fallback when it isn't); AbsPath is the fully-resolved I/O target." }, "api/Hi.NcParsers.IGetSentence.html": { "href": "api/Hi.NcParsers.IGetSentence.html", @@ -3944,6 +3914,11 @@ "title": "Interface ISentenceIndexed | HiAPI-C# 2025", "summary": "Interface ISentenceIndexed Namespace Hi.NcParsers Assembly HiMech.dll Abstraction for an object that carries a SentenceIndex — a 0-based ordinal of its source Sentence in NC execution order. Use as a cross-process alignment key (messages, ClStripPos, MachiningStep, etc.) when source order (MixedIndex(IFileLineIndex)) is not enough because SubProgram inline reorders blocks relative to (FileIndex, LineIndex). public interface ISentenceIndexed Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties SentenceIndex 0-based ordinal in pipeline execution order. int SentenceIndex { get; } Property Value int" }, + "api/Hi.NcParsers.ISessionResettable.html": { + "href": "api/Hi.NcParsers.ISessionResettable.html", + "title": "Interface ISessionResettable | HiAPI-C# 2025", + "summary": "Interface ISessionResettable Namespace Hi.NcParsers Assembly HiMech.dll Marker for objects that hold session-scoped runtime state which must be cleared when RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) initializes a new session pipeline (the state.IsInitialized == false edge). Implementers may live on either chain: INcDependency or INcSyntax. SoftNcRunner scans NcDependencyList and NcSyntaxList on the session-init edge and calls OnSessionReset() on every match. Distinct from IPowerResettable: power-reset clears retained-but-volatile state on a controller power cycle (e.g., Fanuc #100-#499), an edge that survives ordinary session boundaries. Session-reset clears state whose lifetime is one pipeline pass (iteration counters, file-index allocators, etc.). public interface ISessionResettable Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Methods OnSessionReset() Clears the session-scoped subset owned by this object. Called by RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) on the same edge that rebuilds the syntax-piece pipeline so a runner reused across sessions does not leak counters / allocators / accumulators from the previous session. void OnSessionReset()" + }, "api/Hi.NcParsers.IndexedSentence.html": { "href": "api/Hi.NcParsers.IndexedSentence.html", "title": "Class IndexedSentence | HiAPI-C# 2025", @@ -4057,12 +4032,12 @@ "api/Hi.NcParsers.Keywords.FanucGoto.html": { "href": "api/Hi.NcParsers.Keywords.FanucGoto.html", "title": "Class FanucGoto | HiAPI-C# 2025", - "summary": "Class FanucGoto Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Fanuc Custom Macro B GOTO record. Stamped on the host block by FanucGotoSyntax after the control-flow decision has been made; produced earlier by FanucGotoParsingSyntax as a parsing-stage sub-section (Parsing.FanucGoto) carrying the raw captured fields. Two source forms map to the same shape: GOTO — unconditional jump. Condition is null. IF [] GOTO — conditional jump. Condition holds the expression text from inside the brackets. At parsing time N is a raw token from the source — it may be a literal (\"100\"), a variable reference (\"#1\"), or a bracketed expression (\"#[#2+5]\"). VariableEvaluatorSyntax substitutes a resolved literal back into the same field in the Evaluation bundle; FanucGotoSyntax then int.TryParses the final string to produce an int target. public class FanucGoto Inheritance object FanucGoto Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties Condition Raw boolean expression text from inside the IF [...] brackets, or null for the unconditional form. Evaluator boolean support is pending — until then, FanucGotoSyntax emits a warning and falls through for any non-null Condition. public string Condition { get; set; } Property Value string Fired Whether the GOTO actually redirected control flow on this block. False on conditional GOTOs whose condition evaluated to false, on conditional GOTOs whose condition was not evaluable, and on iteration-limit-exceeded blocks. The host block is preserved in either case so diagnostic readers can still see the call. public bool Fired { get; set; } Property Value bool N Target sequence-number expression — kept as a string so the in-place evaluator can substitute \"#1\" → “3” before the Evaluation stage parses it as an int. public string N { get; set; } Property Value string Term Triggering phrase: “GOTO” for the unconditional form, “IF...GOTO” for the conditional form. public string Term { get; set; } Property Value string" + "summary": "Class FanucGoto Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Fanuc Custom Macro B GOTO record. Stamped on the host block by FanucGotoSyntax after the control-flow decision has been made; produced earlier by FanucGotoParsingSyntax as a parsing-stage sub-section (Parsing.FanucGoto) carrying the raw captured fields. Two source forms map to the same shape: GOTO — unconditional jump. Condition is null. IF [] GOTO — conditional jump. Condition holds the expression text from inside the brackets. At parsing time N is a raw token from the source — it may be a literal (\"100\"), a variable reference (\"#1\"), or a bracketed expression (\"#[#2+5]\"). VariableEvaluatorSyntax substitutes a resolved literal back into the same field in the Evaluation bundle; FanucGotoSyntax then int.TryParses the final string to produce an int target. Lifecycle of the condition fields. Condition is written at Parsing time as the raw expression text and substituted in place by VariableEvaluatorSyntax pass-2 — the original text is preserved at Formula.FanucGoto.Condition when substitution succeeds. ConditionEvaluated is the host-level stamp written by FanucGotoSyntax carrying the tri-state truthy outcome. public class FanucGoto Inheritance object FanucGoto Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties Condition Raw boolean expression text from inside the IF [...] brackets at Parsing time; substituted to a numeric JsonValue in place by VariableEvaluatorSyntax when the expression evaluates successfully. The original text survives at Formula.FanucGoto.Condition. Null for the unconditional form. Note: not written on the host-level stamp; the gate outcome lives at ConditionEvaluated. public string Condition { get; set; } Property Value string ConditionEvaluated Tri-state outcome of evaluating the IF-form's boolean condition, stamped on the host block by FanucGotoSyntax: true — condition met (gate fires). false — condition not met (gate falls through silently). null — evaluator could not produce a finite truth value (vacant variable, parse error, NaN / ±∞), or the host block is the unconditional GOTO form. The original expression text is preserved at Formula.FanucGoto.Condition by VariableEvaluatorSyntax. public bool? ConditionEvaluated { get; set; } Property Value bool? Fired Whether the GOTO actually redirected control flow on this block. False on conditional GOTOs whose condition evaluated to false, on conditional GOTOs whose condition was not evaluable, and on iteration-limit-exceeded blocks. The host block is preserved in either case so diagnostic readers can still see the call. public bool Fired { get; set; } Property Value bool N Target sequence-number expression — kept as a string so the in-place evaluator can substitute \"#1\" → “3” before the Evaluation stage parses it as an int. public string N { get; set; } Property Value string Term Triggering phrase: “GOTO” for the unconditional form, “IF...GOTO” for the conditional form. public string Term { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.FanucIfThen.html": { "href": "api/Hi.NcParsers.Keywords.FanucIfThen.html", "title": "Class FanucIfThen | HiAPI-C# 2025", - "summary": "Class FanucIfThen Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Fanuc Custom Macro B IF [] THEN single-block conditional record. Stamped on the host block by FanucIfThenSyntax after the gate decision; produced earlier by FanucIfThenParsingSyntax as a parsing-stage sub-section (Parsing.FanucIfThen) carrying the raw captured fields plus an internal PendingAssignments sub-object harvested from the body text. Spec: IF [bool-expr] THEN executes only when the condition is truthy. Unlike FanucGoto's conditional form there is no jump — the body affects the current block only, no source splice, no label scan, no iteration watchdog. The most common body shape is a single Custom Macro B assignment (#nnn = ); multiple assignments in one body are also accepted and lifted together. Condition is held as a string at parsing time so VariableEvaluatorSyntax's pass-2 tree walk can substitute it to a numeric JsonValue in place; the FanucIfThenSyntax tail then reads the resolved node polymorphically via the same ReadCondition shape used by FanucGotoSyntax. public class FanucIfThen Inheritance object FanucIfThen Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties Applied Whether the body actually fired on this block. False on conditions that evaluated to zero, on conditions the evaluator could not resolve, and on bodies that did not parse as one or more assignments (a G-code-only body for example, currently unsupported and warned). The host block is preserved in either case so diagnostic readers can still see the IF-THEN call site. public bool Applied { get; set; } Property Value bool BodyText Raw body text after the THEN keyword, retained verbatim for diagnostics and round-trip visibility. The structured sub-section actually lifted on a truthy condition lives at Parsing.FanucIfThen.PendingAssignments, populated by the parsing syntax via NcSyntaxUtil's GrabTagAssignment. public string BodyText { get; set; } Property Value string Condition Raw boolean expression text from inside the IF [...] brackets. String at parsing time; VariableEvaluatorSyntax's pass-2 tree walk substitutes a numeric literal in place when the expression evaluates successfully. FanucIfThenSyntax reads the resulting JSON node polymorphically (number → truthy gate; remaining string → unevaluated warning). public string Condition { get; set; } Property Value string" + "summary": "Class FanucIfThen Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Fanuc Custom Macro B IF [] THEN single-block conditional record. Stamped on the host block by FanucIfThenSyntax after the gate decision; produced earlier by FanucIfThenParsingSyntax as a parsing-stage sub-section (Parsing.FanucIfThen) carrying the raw captured fields plus an internal PendingAssignments sub-object harvested from the body text. Spec: IF [bool-expr] THEN executes only when the condition is truthy. Unlike FanucGoto's conditional form there is no jump — the body affects the current block only, no source splice, no label scan, no iteration watchdog. The most common body shape is a single Custom Macro B assignment (#nnn = ); multiple assignments in one body are also accepted and lifted together. Condition is held as a string at parsing time so VariableEvaluatorSyntax's pass-2 tree walk can substitute it to a numeric JsonValue in place; the FanucIfThenSyntax tail then reads the resolved node polymorphically via the same ReadCondition shape used by FanucGotoSyntax. public class FanucIfThen Inheritance object FanucIfThen Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties Applied Whether the body actually fired on this block. False on conditions that evaluated to zero, on conditions the evaluator could not resolve, and on bodies that did not parse as one or more assignments (a G-code-only body for example, currently unsupported and warned). The host block is preserved in either case so diagnostic readers can still see the IF-THEN call site. public bool Applied { get; set; } Property Value bool BodyText Raw body text after the THEN keyword, retained verbatim for diagnostics and round-trip visibility. The structured sub-section actually lifted on a truthy condition lives at Parsing.FanucIfThen.PendingAssignments, populated by the parsing syntax via NcSyntaxUtil's GrabTagAssignment. public string BodyText { get; set; } Property Value string Condition Raw boolean expression text from inside the IF [...] brackets at Parsing time; substituted to a numeric JsonValue in place by VariableEvaluatorSyntax's pass-2 tree walk when the expression evaluates successfully. The original text survives at Formula.FanucIfThen.Condition. Note: not written on the host-level stamp; the gate outcome lives at ConditionEvaluated. public string Condition { get; set; } Property Value string ConditionEvaluated Tri-state outcome of evaluating the IF-form's boolean condition, stamped on the host block by FanucIfThenSyntax: true — condition met (body fires). false — condition not met (body skipped silently). null — evaluator could not produce a finite truth value (vacant variable, parse error, NaN / ±∞). The original expression text is preserved at Formula.FanucIfThen.Condition by VariableEvaluatorSyntax. public bool? ConditionEvaluated { get; set; } Property Value bool?" }, "api/Hi.NcParsers.Keywords.FanucMacroCall.html": { "href": "api/Hi.NcParsers.Keywords.FanucMacroCall.html", @@ -4084,6 +4059,11 @@ "title": "Class FanucProgramNumber | HiAPI-C# 2025", "summary": "Class FanucProgramNumber Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Fanuc-family program identifier header that follows a TapeBoundary line — e.g. O1234 or . Wrapper records the surface form so a parsed block can be emitted back to the original notation. public class FanucProgramNumber Inheritance object FanucProgramNumber Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Fields WrapperAngle Wrapper value for the angle-bracketed form: . public const string WrapperAngle = \"Angle\" Field Value string Remarks Fanuc 30i / 31i / 32i extended program-name notation. Some CAM post-processors emit this at the head of subprogram files. WrapperNone Wrapper value for the bare form: O1234. public const string WrapperNone = \"None\" Field Value string Properties Number The numeric portion of the program identifier, as written (no leading zero normalization). public string Number { get; set; } Property Value string Wrapper Surface form of the wrapping symbols around the O token — one of WrapperNone or WrapperAngle. New values may be added as additional notations are observed; consumers should treat unknown values as round-trip-only. public string Wrapper { get; set; } Property Value string" }, + "api/Hi.NcParsers.Keywords.FanucWhileDo.html": { + "href": "api/Hi.NcParsers.Keywords.FanucWhileDo.html", + "title": "Class FanucWhileDo | HiAPI-C# 2025", + "summary": "Class FanucWhileDo Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Fanuc Custom Macro B WHILE/END bounded-loop record. Stamped on the host block by FanucWhileDoSyntax after the control-flow decision has been made; produced earlier by FanucWhileDoParsingSyntax as a parsing-stage sub-section (Parsing.FanucWhileDo) carrying the raw captured fields. Two phrases map to the same shape, distinguished by Term: WHILE [] DO — loop entry. Condition holds the expression text from inside the brackets at parsing time; substituted to a numeric JsonValue by VariableEvaluatorSyntax in place. ConditionEvaluated carries the host-level truthy outcome at stamp time. END — loop terminator. Carries no condition; unconditionally reverse-jumps to the matching WHILE block on every execution (re-evaluation of the entry condition is the WHILE block's responsibility). LoopId is the spec-named \"identification number for nesting\" (the m in DO m / END m). Nested loops must use distinct LoopIds; matching is by exact value. Same-LoopId nesting is spec-undefined and not given special handling here. Active loop frames are carried block-to-block via the top-level WhileFrames JSON section (a JsonObject keyed by LoopId-as-string, each entry recording the BeginLineNo of the WHILE block that opened that frame). Carried by ModalCarrySyntax as part of its Logic tracked keys (mutated in Evaluation, must reach Logic-stage consumers and downstream blocks unchanged). public class FanucWhileDo Inheritance object FanucWhileDo Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties Condition Raw boolean expression text from inside the WHILE's [...] brackets at Parsing time; substituted to a numeric JsonValue in place by VariableEvaluatorSyntax when the expression evaluates successfully. The original text survives at Formula.FanucWhileDo.Condition. Null on the END phrase. Note: not written on the host-level stamp; the gate outcome lives at ConditionEvaluated. public string Condition { get; set; } Property Value string ConditionEvaluated Tri-state outcome of evaluating the WHILE's boolean condition, stamped on the host block by FanucWhileDoSyntax: true — condition met (body executes; loop continues). false — condition not met (loop exits; forward-jump past matching END). null — evaluator could not produce a finite truth value (vacant variable, parse error, NaN / ±∞); loop exits defensively and emits FanucWhileDo--ConditionNotEvaluated. Null also on the END phrase (no condition to evaluate). The original expression text is preserved at Formula.FanucWhileDo.Condition by VariableEvaluatorSyntax. public bool? ConditionEvaluated { get; set; } Property Value bool? LoopId The m identifier from DO m / END m — the spec-named “identification number for nesting”. Nested loops use distinct LoopIds (1–3 typical); WHILE and END pair by exact match. public int LoopId { get; set; } Property Value int Term Triggering phrase: “WHILE...DO” for the loop entry form, “END” for the loop terminator. public string Term { get; set; } Property Value string" + }, "api/Hi.NcParsers.Keywords.Feedrate.html": { "href": "api/Hi.NcParsers.Keywords.Feedrate.html", "title": "Class Feedrate | HiAPI-C# 2025", @@ -4117,7 +4097,7 @@ "api/Hi.NcParsers.Keywords.IArcMotionDef.html": { "href": "api/Hi.NcParsers.Keywords.IArcMotionDef.html", "title": "Interface IArcMotionDef | HiAPI-C# 2025", - "summary": "Interface IArcMotionDef Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Arc motion data written by CircularMotionSyntax. Stored under the Hi.Motion JSON section alongside IMotionEventDef properties. public interface IArcMotionDef Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Examples \"Motion\": { \"Mode\": \"G02\", \"Form\": \"McArc\", \"ArcCenter\": { \"X\": 10.0, \"Y\": 5.0, \"Z\": 0.0 }, \"PlaneNormalDir\": 2, \"IsCcw\": false, \"AdditionalCircleNum\": 0 } Properties AdditionalCircleNum Number of additional full circles (for helix with L parameter). int AdditionalCircleNum { get; } Property Value int ArcCenter Arc center in program coordinates (absolute). object ArcCenter { get; } Property Value object IsCcw True for G03 (CCW), false for G02 (CW). bool IsCcw { get; } Property Value bool PlaneNormalDir Perpendicular axis direction (0=X, 1=Y, 2=Z). G17→2, G18→1, G19→0. int PlaneNormalDir { get; } Property Value int" + "summary": "Interface IArcMotionDef Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Arc motion data written by CircularMotionSyntax. Stored under the MotionEvent JSON section alongside IMotionEventDef properties. The arc plane is read from the modal PlaneSelect section via GetPlaneNormalDir(JsonObject) rather than cached on the event — same source of truth as IsoG68RotationSyntax. public interface IArcMotionDef Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Examples \"MotionEvent\": { \"Form\": \"McArc\", \"ArcCenter\": { \"X\": 10.0, \"Y\": 5.0, \"Z\": 0.0 }, \"IsCcw\": false, \"AdditionalCircleNum\": 0 } Properties AdditionalCircleNum Number of additional full circles (for helix with L parameter). int AdditionalCircleNum { get; } Property Value int ArcCenter Arc center in program coordinates (absolute). object ArcCenter { get; } Property Value object IsCcw True for G03 (CCW), false for G02 (CW). bool IsCcw { get; } Property Value bool" }, "api/Hi.NcParsers.Keywords.ICannedCycleDef.html": { "href": "api/Hi.NcParsers.Keywords.ICannedCycleDef.html", @@ -4372,32 +4352,32 @@ "api/Hi.NcParsers.Keywords.html": { "href": "api/Hi.NcParsers.Keywords.html", "title": "Namespace Hi.NcParsers.Keywords | HiAPI-C# 2025", - "summary": "Namespace Hi.NcParsers.Keywords Classes BlockSkip Optional block skip marker extracted from the head of an NC block. ISO 6983 / Fanuc calls this feature Block Delete (BDT switch); Siemens / Syntec / Mazak use the same / prefix with matching behaviour. The section is only present on blocks that carry a / prefix. Whether the block's NC commands are actually skipped at runtime depends on IBlockSkipConfig: Config absent or the Layer bit OFF → the / prefix is consumed, Body is left null, and the rest of the line parses as a regular NC block (comments still take effect). Config present and the Layer bit ON → the rest of the line is moved into Body and cleared from UnparsedText, so downstream parsing syntaxes see nothing and no NC action is emitted. Comment syntaxes run before this one so comments (and any embedded CsScript) still take effect. Not a comment: a comment is static metadata, block skip is a runtime toggle that can change per machine/operator setting. CallFrame One entry in Frames. Holds the caller-side information consumers need to “unwind” or “look back” — currently only the relative file path of the caller, used by SubProgramReturnSyntax on M99 P{seq} to locate the caller's N{seq} block. CallStack JSON-section data shape representing the active call-frame stack on a block — pushed by call-and-inline syntaxes (SubProgramCallSyntax for M98/M198, FanucMacroCallSyntax for G65, and FanucModalMacroSyntax's expansion phase for G66 implicit triggers) and popped by SubProgramReturnSyntax on M99. Every block between push and pop carries the section forward via ModalCarrySyntax; the caller's blocks before push and after pop carry the surrounding stack state (typically empty when running from the main file). The section is wrapped in a JsonObject rather than exposed as a bare JsonArray so it fits ModalCarry's \"deep-clone JsonObject\" carry pattern — the array of frames lives inside Frames. CannedCycle Section key holder + concrete implementation for ICannedCycleDef. Comment Comment extracted from an NC block. Symbol identifies the comment style; Text holds the content without the symbol. Downstream syntaxes (e.g., CsScript) may further trim Text after extracting embedded markers. CompoundMotion Section key holder + concrete implementation for ICompoundMotionDef. Coolant Section key holder + concrete implementation for ICoolantDef. CoordinateOffset Work coordinate offset state written by IsoCoordinateOffsetSyntax. Property names are used as JSON keys via nameof. Managed commands (ISO): G54, G55, G56, G57, G58, G59, G59.1–G59.9. Siemens: G54–G57 + G505–G599 (extended), G500 to cancel. Heidenhain: CYCL DEF 247 (Datum Preset) / CYCL DEF 7 (Datum Shift). CsScript Section-key holder for inline C# scripts attached to an NC block. Carries BeginScript (run before the block's acts) and EndScript (run after). Resolved by CsScriptBeginSemantic and CsScriptEndSemantic. Dwell Section key holder + concrete implementation for IDwellDef. FanucGoto Fanuc Custom Macro B GOTO record. Stamped on the host block by FanucGotoSyntax after the control-flow decision has been made; produced earlier by FanucGotoParsingSyntax as a parsing-stage sub-section (Parsing.FanucGoto) carrying the raw captured fields. Two source forms map to the same shape: GOTO — unconditional jump. Condition is null. IF [] GOTO — conditional jump. Condition holds the expression text from inside the brackets. At parsing time N is a raw token from the source — it may be a literal (\"100\"), a variable reference (\"#1\"), or a bracketed expression (\"#[#2+5]\"). VariableEvaluatorSyntax substitutes a resolved literal back into the same field in the Evaluation bundle; FanucGotoSyntax then int.TryParses the final string to produce an int target. FanucIfThen Fanuc Custom Macro B IF [] THEN single-block conditional record. Stamped on the host block by FanucIfThenSyntax after the gate decision; produced earlier by FanucIfThenParsingSyntax as a parsing-stage sub-section (Parsing.FanucIfThen) carrying the raw captured fields plus an internal PendingAssignments sub-object harvested from the body text. Spec: IF [bool-expr] THEN executes only when the condition is truthy. Unlike FanucGoto's conditional form there is no jump — the body affects the current block only, no source splice, no label scan, no iteration watchdog. The most common body shape is a single Custom Macro B assignment (#nnn = ); multiple assignments in one body are also accepted and lifted together. Condition is held as a string at parsing time so VariableEvaluatorSyntax's pass-2 tree walk can substitute it to a numeric JsonValue in place; the FanucIfThenSyntax tail then reads the resolved node polymorphically via the same ReadCondition shape used by FanucGotoSyntax. FanucMacroCall One-shot custom-macro-call record written by FanucMacroCallSyntax. Lives on both the G65 host block (the caller) and every inlined block of the macro body — so a cache-dump reader can land on any block inside the macro and immediately see “this block belongs to a G65 call of FileName with these argument bindings” without back-walking to find the host. Each inlined block additionally carries the resolved Vars.Local #1-#26 bindings derived from Args (see FanucMacroArgumentMap), so LocalVariableLookup resolves macro args in a single-block lookup. Frame isolation is structural: caller blocks never have Vars.Local written, so after the macro body ends, the next caller block reads null for any #1-#26 without any explicit frame marker. FanucModalMacro Modal-macro-call record left by FanucModalMacroSyntax. Carries Fanuc G66 setup state forward block-to-block until cancelled by G67. The section is also written on the G67 block itself (with Term = “G67”) so cache dumps show the cancel edge; subsequent blocks then carry no section at all. Per-block expansion of the modal call into an actual macro inline at every positioning move is not yet implemented — a FanucModalMacro--NotExpanded warning is emitted on the setup block to flag the simulation gap. The setup state itself is captured faithfully so external tooling can detect \"this block sits inside a G66 modal\" via the carried section. FanucPathSmoothing Section data holder for IFanucPathSmoothingDef. FanucProgramNumber Fanuc-family program identifier header that follows a TapeBoundary line — e.g. O1234 or . Wrapper records the surface form so a parsed block can be emitted back to the original notation. Feedrate Section key holder + concrete implementation for IFeedrateDef. IndexNote JSON-section data shape pairing a single-character address symbol (e.g. ‘O’, ‘N’) with its numeric index, used to annotate program/sequence numbers on an NC block. IsoLocalCoordinateOffset ISO/Fanuc-family local coordinate offset state (G52) written by IsoLocalCoordinateOffsetSyntax. Property names are used as JSON keys via nameof. G52 X Y Z installs a local coordinate-system shift that stacks on top of the active G54-G59 work offset. The cancel mechanism is to write G52 X0 Y0 Z0 (or hit M30 / reset) — there is no separate G code for \"cancel\". The offset vector is therefore always modal: zero is a valid modal value, not a \"disabled\" state, so the section is recorded on every block. Brand-specific kin: Siemens TRANS/ATRANS (which can also carry rotation/scale/mirror) and Heidenhain TRANS DATUM are handled by their own syntaxes and write to their own sections — they do not share this key, because their data shapes are richer. MachineCoordinateState Section key holder for IMachineCoordinateStateDef. MacroFrame Top-level integer marker stamped onto a SyntaxPiece's JSON to identify which call frame the block belongs to. Brand-agnostic by design — written by FanucMacroCallSyntax today, reusable by any future call-inlining syntax (Fanuc G66 modal expansion, Heidenhain LBL CALL, …) that needs local-variable isolation across call boundaries. Semantics: the value is an opaque id; only equality matters. Two blocks with the same MacroFrame id share a call frame (locals visible across them via single-step carry); two blocks with different ids do not. The id 0 is reserved for the main program frame and is returned by Get(JsonObject) when the field is absent — so a plain caller block needs no stamp and yet compares distinct from any inlined frame. Stored as a top-level JSON int (not an object section) so it stays lightweight on every inlined block. Decoupled from FanucMacroCall: that section is a diagnostic record of the call (what file, what args), while MacroFrame is the purely functional marker the local-variable I/O syntaxes consult. MotionEvent Section key holder + concrete implementation for IMotionEventDef. MotionState Section key holder + concrete implementation for IMotionStateDef. PathSmoothing Section key holder for IPathSmoothingDef. PlaneSelect Section key holder for IPlaneSelectDef. Positioning Section key holder + concrete implementation for IPositioningDef. ProgramEnd Section key holder for IProgramEndDef. ProgramStop Section key holder + concrete implementation for IProgramStopDef. RadiusCompensation Section key holder + concrete implementation for IRadiusCompensationDef. SpindleControl Section key holder + concrete implementation for ISpindleControlDef. SpindleOrientation Section key holder + concrete implementation for ISpindleOrientationDef. SpindleSpeed Section key holder + concrete implementation for ISpindleSpeedDef. SubProgramCall Subprogram call record left by SubProgramCallSyntax on the M98 / M198 host block and on every inlined body block. The call itself emits no motion act; this section is bookkeeping so cache dumps and diagnostic readers can see \"this block triggered (or sits inside) an inline of program P\". M98 and M198 share the exact same section shape. The difference between them is purely environmental — which folder the resolver looks in (SubProgramFolderConfig.InternalFolder vs ExternalFolder) — and that lives on the dependency, not in this JSON record. SubProgramReturn Subprogram return record left on the M99 host block by SubProgramReturnSyntax. Return blocks produce no motion acts; this section makes the consumed M99 visible in cache dumps and surfaces the M99 P{seq} jump decision. TapeBoundary Tape leader / trailer line — the literal % that historically marked the start and end of a punched paper-tape program. ISO-style controllers (Fanuc, Mazak, Syntec, Siemens) all preserve it as a file-level boundary marker. Distinct from a comment: the controller uses it as a tape/file delimiter, not as embedded operator text. TiltTransform Concrete class for ITiltTransformDef section serialization. ToolHeightCompensation Section key holder for IToolHeightCompensationDef. Unit Section key holder + concrete implementation for IUnitDef. Vars JSON section schema for per-block variable storage. Each sub-property names a sub-section that holds a { “#nnn”: value } dictionary keyed by Fanuc-style variable id. The sub-sections partition the variable space by lifetime: Local — #1-#33, scope: macro call frame (pushed/popped by G65 / G66 / M99). Volatile — #100-#499, non-retained common; carries block-to-block, cleared by ProgramEndCleanSyntax on M02 / M30. SystemControl — #3000-#3999, controller-side system variables; offline-only round-trip record (real controller effects such as clock reset / alarm trigger / message pause are not simulated). The property types are JsonObject rather than strongly-typed dictionaries because each sub-section's keys are dynamic Fanuc variable ids (#100, #5001, …) discovered at parse time, not a fixed schema. This class exists solely to give the section name and sub-keys stable nameof() targets — instances are never constructed at runtime. Interfaces IArcMotionDef Arc motion data written by CircularMotionSyntax. Stored under the Hi.Motion JSON section alongside IMotionEventDef properties. ICannedCycleDef Canned cycle modal state (Group 09). Captures which cycle is currently active, its return mode (G98/G99), and the resolved absolute parameter set used for modal lookback. Written by CannedCycleResolveSyntax on every block that belongs to the canned-cycle group: cycle code present (G81/G82/G83/G73/G84/G74/G85/G86/G89/G76/G87), modal repeat (cycle still active, only coordinates given), or explicit cancel (G80). Term = \"G80\" is the explicit-cancel sentinel used by FindPreviousActiveCycle(LazyLinkedListNode, string[]) to terminate modal lookback without ambiguity; regular blocks (e.g. G00 X.. Y..) simply omit the section entirely. ICompoundMotionDef Compound motion section definition for commands that produce multiple sub-operations (G28, G53.1, G81, G82, etc.). Contains a ItemsKey array resolved by Hi.NcParsers.Semantics.CompoundMotionSemanticUtil. Item types (discriminated by key presence): Hi.Motion — rapid/feed linear motion (IMotionEventDef + IMachineCoordinateStateDef) Dwell — pause (Time in seconds) SpindleControl — spindle direction change (Direction) SpindleOrientation — oriented spindle stop (OSS) (Angle_deg) ICoolantDef Coolant state (M07 mist / M08 flood / M09 off). Written by CoolantSyntax. Modal — persists until changed. IsOn is the on/off convenience flag (true for M07 and M08, false for M09). Mode carries the abstract kind (Flood / Mist / Off) for consumers that need to distinguish flood vs mist. IDwellDef Dwell/pause section definition for use inside Sequence items. Resolved by Hi.NcParsers.Semantics.CompoundMotionSemanticUtil into ActDelay. IFanucPathSmoothingDef Fanuc-specific path smoothing state written by FanucPathSmoothingSyntax. Extends IPathSmoothingDef with the Fanuc G05.1 R argument (precision / smoothness level number, R1..R10 mapping to controller-internal tuning macro variables). Q is binary in current Fanuc firmware (Q0 disable / Q1 enable), so IsEnabled covers it directly — no raw Q field is stored. JSON section key remains nameof(PathSmoothing) so generic readers (cache dumps, modal carry, UI) can cast to IPathSmoothingDef across all controller brands; brand-specific readers cast to IFanucPathSmoothingDef for the extra fields. IFeedrateDef Feedrate state written by FeedrateSyntax. Property names are used as JSON keys via nameof. ISO standard: F command + G94 (per minute) / G95 (per revolution). Supported by all major CNC brands. IFlagsDef JSON section schema describing the modal/non-modal flags that take effect on an NC block. Each entry in Flags is a brand-specific keyword recognized by the soft-NC runtime. IMachineCoordinateStateDef Modal machine-coordinate state — absolute six-axis machine position after the block has executed. Written on every block by motion-related LogicSyntaxs (McAbcSyntax, McAbcXyzFallbackSyntax, McXyzSyntax, MachineCoordSelectSyntax, G53p1RotaryPositionSyntax, ReferenceReturnSyntax); seeded on the init block by HomeMcInitializer; carried across non-motion blocks by ModalCarrySyntax. Only configured axes appear as keys (X/Y/Z/A/B/C). Non-existent axes (e.g., A/B/C on a 3-axis machine) are omitted rather than written as NaN sentinels. IMotionEventDef One-shot motion event — present on every block whose source programmed a motion command, regardless of whether the resulting displacement is non-zero. A redundant G01 X10 on a block already at X10 still gets a MotionEvent; the motion semantics (McLinearMotionSemantic, McArcMotionSemantic, ClLinearMotionSemantic) then early-return on distance <= 0 and emit no IAct. NOT carried forward across blocks. Reason for the \"programmed, not displaced\" definition: Fanuc G66 modal macro fires once per programmed motion command (per Fanuc spec — no distance gate), so FanucModalMacroSyntax.Expansion uses MotionEvent presence as its trigger. Suppressing the section on zero-distance moves would silently change G66 behaviour. The modal sibling MotionState separately latches the Group-01 mode for readers that only need to know \"what G-code is active\". Property names are used as JSON keys via nameof. IMotionStateDef Modal motion state — Group 01 G-code mode (G00 / G01 / G02 / G03 ...). Written on every block by LinearMotionSyntax / CircularMotionSyntax; carried across non-motion blocks by ModalCarrySyntax. Property names are used as JSON keys via nameof. Unlike sibling modal sections (Unit, PlaneSelect, Positioning) which carry both a brand-specific Term and a brand-neutral conventional field, MotionState intentionally keeps only Term: the brand-neutral semantic (\"what kind of motion happened\") lives on the sibling one-shot MotionEvent (Form = McLinear / McArc / ClLinear / ClArc). State here is purely the modal latch of the last Group-01 G-code so downstream FindPrevious* can resume motion-mode bookkeeping. IParsingDef JSON section schema carrying the raw, brand-specific parsing trace for an NC block. The Parsing node holds intermediate parser output used by downstream syntaxes and diagnostics. IPathSmoothingDef Path smoothing state. The base interface is brand-agnostic; controller brands extend it with their own argument fields (e.g. IFanucPathSmoothingDef for Fanuc G05.1 R precision-level). Fanuc-flavour writes are produced by FanucPathSmoothingSyntax. ISO/Fanuc G05.1 Q1 (enable) / G05.1 Q0 (disable): high-precision contour control / AICC / Nano Smoothing. Controller-internal interpolation black box — simulation records the state but does not alter the tool path. IPlaneSelectDef Active plane selection state written by PlaneSelectSyntax. Property names are used as JSON keys via nameof. ISO: G17/G18/G19. Heidenhain: implicit from L/CC syntax. Term carries the brand-specific G-code; Plane stores the conventional, brand-neutral axis-pair name (XY/ZX/YZ). IPositioningDef Modal positioning state — ISO Group 03 (G90 absolute / G91 incremental). Written by PositioningSyntax, consumed by IncrementalResolveSyntax, canned cycle syntaxes, and MachineCoordSelectSyntax. Property names are used as JSON keys via nameof. Term is the brand-specific G-code (Fanuc/ISO G90/G91); Mode is the conventional, brand-neutral name (Absolute / Incremental). IProgramEndDef Program end marker (M02/M30). Written by ProgramEndSyntax. Other syntaxes (e.g. IsoLocalCoordinateOffsetSyntax) read this section to reset modal state instead of detecting M30 directly. IProgramStopDef Program-stop marker (M00 unconditional / M01 optional). Written by ProgramStopSyntax on each block that carries an M00/M01 flag. Non-modal: the section appears only on the exact block where the stop code is present. Distinct from IProgramEndDef (M02/M30, end of program). M00 halts execution unconditionally; the operator must press Cycle Start to resume. M01 is an optional stop gated by the operator's \"Optional Stop\" panel switch — ignored when the switch is off. This parsing-layer section records the NC intent; runtime / semantic layers decide whether to actually pause. IProgramXyzDef JSON section schema carrying the program-coordinate position commanded on the current block. Written by ProgramXyzSyntax before the ProgramToMcTransform chain composes it into machine coordinates. IRadiusCompensationDef Radius compensation state written by RadiusCompensationSyntax. Property names are used as JSON keys via nameof. Managed commands (ISO): G41 (left), G42 (right), G40 (cancel). Heidenhain Klartext maps RL → G41, RR → G42, R0 → G40. When active, the tool path is offset perpendicular to the programmed path by Radius_mm; Side determines left vs right. The root ProgramXyz retains the user-programmed position; MachineCoordinate is overwritten to reflect the compensated path. ISpindleControlDef Spindle control item for use inside ItemsKey arrays. Resolved by Hi.NcParsers.Semantics.CompoundMotionSemanticUtil into ActSpindleDirection. ISpindleOrientationDef Oriented spindle stop item for use inside ItemsKey arrays. Commands the spindle to stop at a specific angular position (OSS). Resolved by Hi.NcParsers.Semantics.CompoundMotionSemanticUtil into ActSpindleOrientation. ISpindleSpeedDef Spindle speed and direction state written by SpindleSpeedSyntax. Property names are used as JSON keys via nameof. ISO: S command for speed, M03/M04/M05 for direction. Heidenhain: M3/M4/M5. Siemens: M3/M4/M5 or SPOS. Direction is stored as the conventional SpindleDirection enum name (CW/CCW/STOP), not as brand-specific M-codes. ITiltTransformDef Tilt transform state written by tilt transform syntaxes. Property names are used as JSON keys via nameof. Managed commands (ISO/Fanuc): G68 (2D rotation), G68.2 (tilted work plane), G69 (cancel). Siemens equivalent: CYCLE800, ROT/AROT (handled by separate syntax). Heidenhain equivalent: PLANE SPATIAL / PLANE RESET (handled by separate syntax). IToolHeightCompensationDef Tool height compensation state written by ToolHeightOffsetSyntax. Property names are used as JSON keys via nameof. The JSON section can be deserialized to an instance implementing this interface. Managed commands (ISO/Fanuc): G43, G44, G49. Fanuc extension: G43.4 (TCPM — parsed only in Fanuc syntax list). Siemens equivalent: TRAFOOF/TRAORI (handled by separate syntax). Heidenhain equivalent: TOOL CALL / M128/M129 (handled by separate syntax). ITransformationDef Chain of named ProgramXyz → MachineCoordinate transformation entries. Stored as a JsonArray of entries, each with “Source”, “Kind”, and “Mat4d” keys. Each contributing INcSyntax adds or replaces its own entry by source name. GetComposedTransform(JsonObject) composes entries in order: McXyz = ProgramXyz * T[0] * T[1] * ... * T[n]. Kind contour-validity classification. Each entry is either: \"Static\" — the Mat4d is valid for any point along the contour. Tilt, coord-offset, and the kinematic pivot in non-RTCP / rotary-stable blocks are all Static. \"Dynamic\" — the Mat4d is a block-endpoint snapshot of a rotary-state-dependent transform (RTCP rotary-dynamic). Composition still yields a correct endpoint MC, but the matrix is not contour-valid: intermediate CL-point positions cannot be derived by applying it to an interpolated ProgramXyz. The semantic layer (ClLinearMotionSemantic) handles per-step IK separately. Use HasDynamicEntry(JsonObject) to detect the presence of any Dynamic entry on this block. IUnitDef Unit-system state (ISO Group 06: G20 inch / G21 metric). Written by UnitModeSyntax. Modal. HiNC's NC pipeline works exclusively in millimetres. G21 is therefore a no-op confirmation of the default; G20 is reported as an Unsupported Error and callers are expected to pre-convert the NC program to metric before loading. IUnparsedTextDef JSON section schema carrying the residual block text that was not consumed by any registered syntax. Used for diagnostics and round-trip preservation." + "summary": "Namespace Hi.NcParsers.Keywords Classes BlockSkip Optional block skip marker extracted from the head of an NC block. ISO 6983 / Fanuc calls this feature Block Delete (BDT switch); Siemens / Syntec / Mazak use the same / prefix with matching behaviour. The section is only present on blocks that carry a / prefix. Whether the block's NC commands are actually skipped at runtime depends on IBlockSkipConfig: Config absent or the Layer bit OFF → the / prefix is consumed, Body is left null, and the rest of the line parses as a regular NC block (comments still take effect). Config present and the Layer bit ON → the rest of the line is moved into Body and cleared from UnparsedText, so downstream parsing syntaxes see nothing and no NC action is emitted. Comment syntaxes run before this one so comments (and any embedded CsScript) still take effect. Not a comment: a comment is static metadata, block skip is a runtime toggle that can change per machine/operator setting. CallFrame One entry in Frames. Holds the caller-side information consumers need to “unwind” or “look back” — currently only the relative file path of the caller, used by SubProgramReturnSyntax on M99 P{seq} to locate the caller's N{seq} block. CallStack JSON-section data shape representing the active call-frame stack on a block — pushed by call-and-inline syntaxes (SubProgramCallSyntax for M98/M198, FanucMacroCallSyntax for G65, and FanucModalMacroSyntax's expansion phase for G66 implicit triggers) and popped by SubProgramReturnSyntax on M99. Every block between push and pop carries the section forward via ModalCarrySyntax; the caller's blocks before push and after pop carry the surrounding stack state (typically empty when running from the main file). The section is wrapped in a JsonObject rather than exposed as a bare JsonArray so it fits ModalCarry's \"deep-clone JsonObject\" carry pattern — the array of frames lives inside Frames. CannedCycle Section key holder + concrete implementation for ICannedCycleDef. Comment Comment extracted from an NC block. Symbol identifies the comment style; Text holds the content without the symbol. Downstream syntaxes (e.g., CsScript) may further trim Text after extracting embedded markers. CompoundMotion Section key holder + concrete implementation for ICompoundMotionDef. Coolant Section key holder + concrete implementation for ICoolantDef. CoordinateOffset Work coordinate offset state written by IsoCoordinateOffsetSyntax. Property names are used as JSON keys via nameof. Managed commands (ISO): G54, G55, G56, G57, G58, G59, G59.1–G59.9. Siemens: G54–G57 + G505–G599 (extended), G500 to cancel. Heidenhain: CYCL DEF 247 (Datum Preset) / CYCL DEF 7 (Datum Shift). CsScript Section-key holder for inline C# scripts attached to an NC block. Carries BeginScript (run before the block's acts) and EndScript (run after). Resolved by CsScriptBeginSemantic and CsScriptEndSemantic. Dwell Section key holder + concrete implementation for IDwellDef. FanucGoto Fanuc Custom Macro B GOTO record. Stamped on the host block by FanucGotoSyntax after the control-flow decision has been made; produced earlier by FanucGotoParsingSyntax as a parsing-stage sub-section (Parsing.FanucGoto) carrying the raw captured fields. Two source forms map to the same shape: GOTO — unconditional jump. Condition is null. IF [] GOTO — conditional jump. Condition holds the expression text from inside the brackets. At parsing time N is a raw token from the source — it may be a literal (\"100\"), a variable reference (\"#1\"), or a bracketed expression (\"#[#2+5]\"). VariableEvaluatorSyntax substitutes a resolved literal back into the same field in the Evaluation bundle; FanucGotoSyntax then int.TryParses the final string to produce an int target. Lifecycle of the condition fields. Condition is written at Parsing time as the raw expression text and substituted in place by VariableEvaluatorSyntax pass-2 — the original text is preserved at Formula.FanucGoto.Condition when substitution succeeds. ConditionEvaluated is the host-level stamp written by FanucGotoSyntax carrying the tri-state truthy outcome. FanucIfThen Fanuc Custom Macro B IF [] THEN single-block conditional record. Stamped on the host block by FanucIfThenSyntax after the gate decision; produced earlier by FanucIfThenParsingSyntax as a parsing-stage sub-section (Parsing.FanucIfThen) carrying the raw captured fields plus an internal PendingAssignments sub-object harvested from the body text. Spec: IF [bool-expr] THEN executes only when the condition is truthy. Unlike FanucGoto's conditional form there is no jump — the body affects the current block only, no source splice, no label scan, no iteration watchdog. The most common body shape is a single Custom Macro B assignment (#nnn = ); multiple assignments in one body are also accepted and lifted together. Condition is held as a string at parsing time so VariableEvaluatorSyntax's pass-2 tree walk can substitute it to a numeric JsonValue in place; the FanucIfThenSyntax tail then reads the resolved node polymorphically via the same ReadCondition shape used by FanucGotoSyntax. FanucMacroCall One-shot custom-macro-call record written by FanucMacroCallSyntax. Lives on both the G65 host block (the caller) and every inlined block of the macro body — so a cache-dump reader can land on any block inside the macro and immediately see “this block belongs to a G65 call of FileName with these argument bindings” without back-walking to find the host. Each inlined block additionally carries the resolved Vars.Local #1-#26 bindings derived from Args (see FanucMacroArgumentMap), so LocalVariableLookup resolves macro args in a single-block lookup. Frame isolation is structural: caller blocks never have Vars.Local written, so after the macro body ends, the next caller block reads null for any #1-#26 without any explicit frame marker. FanucModalMacro Modal-macro-call record left by FanucModalMacroSyntax. Carries Fanuc G66 setup state forward block-to-block until cancelled by G67. The section is also written on the G67 block itself (with Term = “G67”) so cache dumps show the cancel edge; subsequent blocks then carry no section at all. Per-block expansion of the modal call into an actual macro inline at every positioning move is not yet implemented — a FanucModalMacro--NotExpanded warning is emitted on the setup block to flag the simulation gap. The setup state itself is captured faithfully so external tooling can detect \"this block sits inside a G66 modal\" via the carried section. FanucPathSmoothing Section data holder for IFanucPathSmoothingDef. FanucProgramNumber Fanuc-family program identifier header that follows a TapeBoundary line — e.g. O1234 or . Wrapper records the surface form so a parsed block can be emitted back to the original notation. FanucWhileDo Fanuc Custom Macro B WHILE/END bounded-loop record. Stamped on the host block by FanucWhileDoSyntax after the control-flow decision has been made; produced earlier by FanucWhileDoParsingSyntax as a parsing-stage sub-section (Parsing.FanucWhileDo) carrying the raw captured fields. Two phrases map to the same shape, distinguished by Term: WHILE [] DO — loop entry. Condition holds the expression text from inside the brackets at parsing time; substituted to a numeric JsonValue by VariableEvaluatorSyntax in place. ConditionEvaluated carries the host-level truthy outcome at stamp time. END — loop terminator. Carries no condition; unconditionally reverse-jumps to the matching WHILE block on every execution (re-evaluation of the entry condition is the WHILE block's responsibility). LoopId is the spec-named \"identification number for nesting\" (the m in DO m / END m). Nested loops must use distinct LoopIds; matching is by exact value. Same-LoopId nesting is spec-undefined and not given special handling here. Active loop frames are carried block-to-block via the top-level WhileFrames JSON section (a JsonObject keyed by LoopId-as-string, each entry recording the BeginLineNo of the WHILE block that opened that frame). Carried by ModalCarrySyntax as part of its Logic tracked keys (mutated in Evaluation, must reach Logic-stage consumers and downstream blocks unchanged). Feedrate Section key holder + concrete implementation for IFeedrateDef. IndexNote JSON-section data shape pairing a single-character address symbol (e.g. ‘O’, ‘N’) with its numeric index, used to annotate program/sequence numbers on an NC block. IsoLocalCoordinateOffset ISO/Fanuc-family local coordinate offset state (G52) written by IsoLocalCoordinateOffsetSyntax. Property names are used as JSON keys via nameof. G52 X Y Z installs a local coordinate-system shift that stacks on top of the active G54-G59 work offset. The cancel mechanism is to write G52 X0 Y0 Z0 (or hit M30 / reset) — there is no separate G code for \"cancel\". The offset vector is therefore always modal: zero is a valid modal value, not a \"disabled\" state, so the section is recorded on every block. Brand-specific kin: Siemens TRANS/ATRANS (which can also carry rotation/scale/mirror) and Heidenhain TRANS DATUM are handled by their own syntaxes and write to their own sections — they do not share this key, because their data shapes are richer. MachineCoordinateState Section key holder for IMachineCoordinateStateDef. MacroFrame Top-level integer marker stamped onto a SyntaxPiece's JSON to identify which call frame the block belongs to. Brand-agnostic by design — written by FanucMacroCallSyntax today, reusable by any future call-inlining syntax (Fanuc G66 modal expansion, Heidenhain LBL CALL, …) that needs local-variable isolation across call boundaries. Semantics: the value is an opaque id; only equality matters. Two blocks with the same MacroFrame id share a call frame (locals visible across them via single-step carry); two blocks with different ids do not. The id 0 is reserved for the main program frame and is returned by Get(JsonObject) when the field is absent — so a plain caller block needs no stamp and yet compares distinct from any inlined frame. Stored as a top-level JSON int (not an object section) so it stays lightweight on every inlined block. Decoupled from FanucMacroCall: that section is a diagnostic record of the call (what file, what args), while MacroFrame is the purely functional marker the local-variable I/O syntaxes consult. MotionEvent Section key holder + concrete implementation for IMotionEventDef. MotionState Section key holder + concrete implementation for IMotionStateDef. PathSmoothing Section key holder for IPathSmoothingDef. PlaneSelect Section key holder for IPlaneSelectDef. Positioning Section key holder + concrete implementation for IPositioningDef. ProgramEnd Section key holder for IProgramEndDef. ProgramStop Section key holder + concrete implementation for IProgramStopDef. RadiusCompensation Section key holder + concrete implementation for IRadiusCompensationDef. SpindleControl Section key holder + concrete implementation for ISpindleControlDef. SpindleOrientation Section key holder + concrete implementation for ISpindleOrientationDef. SpindleSpeed Section key holder + concrete implementation for ISpindleSpeedDef. SubProgramCall Subprogram call record left by SubProgramCallSyntax on the M98 / M198 host block and on every inlined body block. The call itself emits no motion act; this section is bookkeeping so cache dumps and diagnostic readers can see \"this block triggered (or sits inside) an inline of program P\". M98 and M198 share the exact same section shape. The difference between them is purely environmental — which folder the resolver looks in (SubProgramFolderConfig.InternalFolder vs ExternalFolder) — and that lives on the dependency, not in this JSON record. SubProgramReturn Subprogram return record left on the M99 host block by SubProgramReturnSyntax. Return blocks produce no motion acts; this section makes the consumed M99 visible in cache dumps and surfaces the M99 P{seq} jump decision. TapeBoundary Tape leader / trailer line — the literal % that historically marked the start and end of a punched paper-tape program. ISO-style controllers (Fanuc, Mazak, Syntec, Siemens) all preserve it as a file-level boundary marker. Distinct from a comment: the controller uses it as a tape/file delimiter, not as embedded operator text. TiltTransform Concrete class for ITiltTransformDef section serialization. ToolHeightCompensation Section key holder for IToolHeightCompensationDef. Unit Section key holder + concrete implementation for IUnitDef. Vars JSON section schema for per-block variable storage. Each sub-property names a sub-section that holds a { “#nnn”: value } dictionary keyed by Fanuc-style variable id. The sub-sections partition the variable space by lifetime: Local — #1-#33, scope: macro call frame (pushed/popped by G65 / G66 / M99). Volatile — #100-#499, non-retained common; carries block-to-block, cleared by ProgramEndCleanSyntax on M02 / M30. SystemControl — #3000-#3999, controller-side system variables; offline-only round-trip record (real controller effects such as clock reset / alarm trigger / message pause are not simulated). The property types are JsonObject rather than strongly-typed dictionaries because each sub-section's keys are dynamic Fanuc variable ids (#100, #5001, …) discovered at parse time, not a fixed schema. This class exists solely to give the section name and sub-keys stable nameof() targets — instances are never constructed at runtime. Interfaces IArcMotionDef Arc motion data written by CircularMotionSyntax. Stored under the MotionEvent JSON section alongside IMotionEventDef properties. The arc plane is read from the modal PlaneSelect section via GetPlaneNormalDir(JsonObject) rather than cached on the event — same source of truth as IsoG68RotationSyntax. ICannedCycleDef Canned cycle modal state (Group 09). Captures which cycle is currently active, its return mode (G98/G99), and the resolved absolute parameter set used for modal lookback. Written by CannedCycleResolveSyntax on every block that belongs to the canned-cycle group: cycle code present (G81/G82/G83/G73/G84/G74/G85/G86/G89/G76/G87), modal repeat (cycle still active, only coordinates given), or explicit cancel (G80). Term = \"G80\" is the explicit-cancel sentinel used by FindPreviousActiveCycle(LazyLinkedListNode, string[]) to terminate modal lookback without ambiguity; regular blocks (e.g. G00 X.. Y..) simply omit the section entirely. ICompoundMotionDef Compound motion section definition for commands that produce multiple sub-operations (G28, G53.1, G81, G82, etc.). Contains a ItemsKey array resolved by Hi.NcParsers.Semantics.CompoundMotionSemanticUtil. Item types (discriminated by key presence): Hi.Motion — rapid/feed linear motion (IMotionEventDef + IMachineCoordinateStateDef) Dwell — pause (Time in seconds) SpindleControl — spindle direction change (Direction) SpindleOrientation — oriented spindle stop (OSS) (Angle_deg) ICoolantDef Coolant state (M07 mist / M08 flood / M09 off). Written by CoolantSyntax. Modal — persists until changed. IsOn is the on/off convenience flag (true for M07 and M08, false for M09). Mode carries the abstract kind (Flood / Mist / Off) for consumers that need to distinguish flood vs mist. IDwellDef Dwell/pause section definition for use inside Sequence items. Resolved by Hi.NcParsers.Semantics.CompoundMotionSemanticUtil into ActDelay. IFanucPathSmoothingDef Fanuc-specific path smoothing state written by FanucPathSmoothingSyntax. Extends IPathSmoothingDef with the Fanuc G05.1 R argument (precision / smoothness level number, R1..R10 mapping to controller-internal tuning macro variables). Q is binary in current Fanuc firmware (Q0 disable / Q1 enable), so IsEnabled covers it directly — no raw Q field is stored. JSON section key remains nameof(PathSmoothing) so generic readers (cache dumps, modal carry, UI) can cast to IPathSmoothingDef across all controller brands; brand-specific readers cast to IFanucPathSmoothingDef for the extra fields. IFeedrateDef Feedrate state written by FeedrateSyntax. Property names are used as JSON keys via nameof. ISO standard: F command + G94 (per minute) / G95 (per revolution). Supported by all major CNC brands. IFlagsDef JSON section schema describing the modal/non-modal flags that take effect on an NC block. Each entry in Flags is a brand-specific keyword recognized by the soft-NC runtime. IMachineCoordinateStateDef Modal machine-coordinate state — absolute six-axis machine position after the block has executed. Written on every block by motion-related LogicSyntaxs (McAbcSyntax, McAbcXyzFallbackSyntax, McXyzSyntax, MachineCoordSelectSyntax, G53p1RotaryPositionSyntax, ReferenceReturnSyntax); seeded on the init block by HomeMcInitializer; carried across non-motion blocks by ModalCarrySyntax. Only configured axes appear as keys (X/Y/Z/A/B/C). Non-existent axes (e.g., A/B/C on a 3-axis machine) are omitted rather than written as NaN sentinels. IMotionEventDef One-shot motion event — present on every block whose source programmed a motion command, regardless of whether the resulting displacement is non-zero. A redundant G01 X10 on a block already at X10 still gets a MotionEvent; the motion semantics (McLinearMotionSemantic, McArcMotionSemantic, ClLinearMotionSemantic) then early-return on distance <= 0 and emit no IAct. NOT carried forward across blocks. Reason for the \"programmed, not displaced\" definition: Fanuc G66 modal macro fires once per programmed motion command (per Fanuc spec — no distance gate), so FanucModalMacroSyntax.Expansion uses MotionEvent presence as its trigger. Suppressing the section on zero-distance moves would silently change G66 behaviour. The modal sibling MotionState separately latches the Group-01 mode for readers that only need to know \"what G-code is active\". Property names are used as JSON keys via nameof. IMotionStateDef Modal motion state — Group 01 G-code mode (G00 / G01 / G02 / G03 ...). Written on every block by LinearMotionSyntax / CircularMotionSyntax; carried across non-motion blocks by ModalCarrySyntax. Property names are used as JSON keys via nameof. Unlike sibling modal sections (Unit, PlaneSelect, Positioning) which carry both a brand-specific Term and a brand-neutral conventional field, MotionState intentionally keeps only Term: the brand-neutral semantic (\"what kind of motion happened\") lives on the sibling one-shot MotionEvent (Form = McLinear / McArc / ClLinear / ClArc). State here is purely the modal latch of the last Group-01 G-code so downstream FindPrevious* can resume motion-mode bookkeeping. IParsingDef JSON section schema carrying the raw, brand-specific parsing trace for an NC block. The Parsing node holds intermediate parser output used by downstream syntaxes and diagnostics. IPathSmoothingDef Path smoothing state. The base interface is brand-agnostic; controller brands extend it with their own argument fields (e.g. IFanucPathSmoothingDef for Fanuc G05.1 R precision-level). Fanuc-flavour writes are produced by FanucPathSmoothingSyntax. ISO/Fanuc G05.1 Q1 (enable) / G05.1 Q0 (disable): high-precision contour control / AICC / Nano Smoothing. Controller-internal interpolation black box — simulation records the state but does not alter the tool path. IPlaneSelectDef Active plane selection state written by PlaneSelectSyntax. Property names are used as JSON keys via nameof. ISO: G17/G18/G19. Heidenhain: implicit from L/CC syntax. Term carries the brand-specific G-code; Plane stores the conventional, brand-neutral axis-pair name (XY/ZX/YZ). IPositioningDef Modal positioning state — ISO Group 03 (G90 absolute / G91 incremental). Written by PositioningSyntax, consumed by IncrementalResolveSyntax, canned cycle syntaxes, and MachineCoordSelectSyntax. Property names are used as JSON keys via nameof. Term is the brand-specific G-code (Fanuc/ISO G90/G91); Mode is the conventional, brand-neutral name (Absolute / Incremental). IProgramEndDef Program end marker (M02/M30). Written by ProgramEndSyntax. Other syntaxes (e.g. IsoLocalCoordinateOffsetSyntax) read this section to reset modal state instead of detecting M30 directly. IProgramStopDef Program-stop marker (M00 unconditional / M01 optional). Written by ProgramStopSyntax on each block that carries an M00/M01 flag. Non-modal: the section appears only on the exact block where the stop code is present. Distinct from IProgramEndDef (M02/M30, end of program). M00 halts execution unconditionally; the operator must press Cycle Start to resume. M01 is an optional stop gated by the operator's \"Optional Stop\" panel switch — ignored when the switch is off. This parsing-layer section records the NC intent; runtime / semantic layers decide whether to actually pause. IProgramXyzDef JSON section schema carrying the program-coordinate position commanded on the current block. Written by ProgramXyzSyntax before the ProgramToMcTransform chain composes it into machine coordinates. IRadiusCompensationDef Radius compensation state written by RadiusCompensationSyntax. Property names are used as JSON keys via nameof. Managed commands (ISO): G41 (left), G42 (right), G40 (cancel). Heidenhain Klartext maps RL → G41, RR → G42, R0 → G40. When active, the tool path is offset perpendicular to the programmed path by Radius_mm; Side determines left vs right. The root ProgramXyz retains the user-programmed position; MachineCoordinate is overwritten to reflect the compensated path. ISpindleControlDef Spindle control item for use inside ItemsKey arrays. Resolved by Hi.NcParsers.Semantics.CompoundMotionSemanticUtil into ActSpindleDirection. ISpindleOrientationDef Oriented spindle stop item for use inside ItemsKey arrays. Commands the spindle to stop at a specific angular position (OSS). Resolved by Hi.NcParsers.Semantics.CompoundMotionSemanticUtil into ActSpindleOrientation. ISpindleSpeedDef Spindle speed and direction state written by SpindleSpeedSyntax. Property names are used as JSON keys via nameof. ISO: S command for speed, M03/M04/M05 for direction. Heidenhain: M3/M4/M5. Siemens: M3/M4/M5 or SPOS. Direction is stored as the conventional SpindleDirection enum name (CW/CCW/STOP), not as brand-specific M-codes. ITiltTransformDef Tilt transform state written by tilt transform syntaxes. Property names are used as JSON keys via nameof. Managed commands (ISO/Fanuc): G68 (2D rotation), G68.2 (tilted work plane), G69 (cancel). Siemens equivalent: CYCLE800, ROT/AROT (handled by separate syntax). Heidenhain equivalent: PLANE SPATIAL / PLANE RESET (handled by separate syntax). IToolHeightCompensationDef Tool height compensation state written by ToolHeightOffsetSyntax. Property names are used as JSON keys via nameof. The JSON section can be deserialized to an instance implementing this interface. Managed commands (ISO/Fanuc): G43, G44, G49. Fanuc extension: G43.4 (TCPM — parsed only in Fanuc syntax list). Siemens equivalent: TRAFOOF/TRAORI (handled by separate syntax). Heidenhain equivalent: TOOL CALL / M128/M129 (handled by separate syntax). ITransformationDef Chain of named ProgramXyz → MachineCoordinate transformation entries. Stored as a JsonArray of entries, each with “Source”, “Kind”, and “Mat4d” keys. Each contributing INcSyntax adds or replaces its own entry by source name. GetComposedTransform(JsonObject) composes entries in order: McXyz = ProgramXyz * T[0] * T[1] * ... * T[n]. Kind contour-validity classification. Each entry is either: \"Static\" — the Mat4d is valid for any point along the contour. Tilt, coord-offset, and the kinematic pivot in non-RTCP / rotary-stable blocks are all Static. \"Dynamic\" — the Mat4d is a block-endpoint snapshot of a rotary-state-dependent transform (RTCP rotary-dynamic). Composition still yields a correct endpoint MC, but the matrix is not contour-valid: intermediate CL-point positions cannot be derived by applying it to an interpolated ProgramXyz. The semantic layer (ClLinearMotionSemantic) handles per-step IK separately. Use HasDynamicEntry(JsonObject) to detect the presence of any Dynamic entry on this block. IUnitDef Unit-system state (ISO Group 06: G20 inch / G21 metric). Written by UnitModeSyntax. Modal. HiNC's NC pipeline works exclusively in millimetres. G21 is therefore a no-op confirmation of the default; G20 is reported as an Unsupported Error and callers are expected to pre-convert the NC program to metric before loading. IUnparsedTextDef JSON section schema carrying the residual block text that was not consumed by any registered syntax. Used for diagnostics and round-trip preservation." }, "api/Hi.NcParsers.LogicSyntaxs.BackBoringSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.BackBoringSyntax.html", "title": "Class BackBoringSyntax | HiAPI-C# 2025", - "summary": "Class BackBoringSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll G87 back boring cycle. Supports modal repetition. Cuts upward from Z to R — used to bore the back side of a workpiece. Cycle sequence: Oriented spindle stop (OSS) at current position Rapid (shifted) to init position, then down to bottom Z — tool enters pre-drilled hole without contacting bore wall Shift back to hole center at bottom Spindle start (CW) Feed upward from Z to R-point (back boring cut) Oriented spindle stop at R Tool shift, rapid retract (shifted) to final Z Shift back to center, spindle restart Q specifies the lateral shift distance (mm). Shift direction defaults to +X (OSS angle 0°). Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax before this syntax runs. public class BackBoringSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object BackBoringSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors BackBoringSyntax() Initializes a new instance with default settings. public BackBoringSyntax() BackBoringSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public BackBoringSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class BackBoringSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll G87 back boring cycle. Supports modal repetition. Cuts upward from Z to R — used to bore the back side of a workpiece. Cycle sequence: Oriented spindle stop (OSS) at current position Rapid (shifted) to init position, then down to bottom Z — tool enters pre-drilled hole without contacting bore wall Shift back to hole center at bottom Spindle start (CW) Feed upward from Z to R-point (back boring cut) Oriented spindle stop at R Tool shift, rapid retract (shifted) to final Z Shift back to center, spindle restart Q specifies the lateral shift distance (mm). Shift direction defaults to +X (OSS angle 0°). Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax before this syntax runs. public class BackBoringSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object BackBoringSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Examples G87 G98 — pre-populated CannedCycle, no #Previous: so initZ = 0, F=600 → 10 mm/s, shift Q=1. Eleven items — the longest canned-cycle item list — split into three phases: enter shifted (OSS, shifted-init, shifted-bottom, back-to- center, spindle-CW); cut upward (feed bottom → R); retract shifted (OSS again, shifted-at-R, shifted-final, back-to-center, spindle- restart). Note that the feed step goes UP (Z=-10 → Z=2), not down, which is the defining feature of back boring: #BeforeBuild: { \"Parsing\": { \"G87\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2, \"Q\": 1, \"F\": 600 } }, \"CannedCycle\": { \"Term\": \"G87\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2, \"Q\": 1 } } } #AfterBuild: { \"CannedCycle\": { \"Term\": \"G87\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2, \"Q\": 1 } }, \"Feedrate\": { \"FeedrateValue\": 600, \"Term\": \"G94\", \"Unit\": \"mm/min\" }, \"CompoundMotion\": { \"Term\": \"G87\", \"Items\": [ { \"SpindleOrientation\": { \"Angle_deg\": 0 } }, { \"ProgramXyz\": { \"X\": 51, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 51, \"Y\": 30, \"Z\": -10 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": -10 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"SpindleControl\": { \"Direction\": \"CW\" } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 2 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"Feedrate_mmds\": 10 } }, { \"SpindleOrientation\": { \"Angle_deg\": 0 } }, { \"ProgramXyz\": { \"X\": 51, \"Y\": 30, \"Z\": 2 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 51, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"SpindleControl\": { \"Direction\": \"CW\" } } ] }, \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 } } Constructors BackBoringSyntax() Initializes a new instance with default settings. public BackBoringSyntax() BackBoringSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public BackBoringSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.LogicSyntaxs.BareG28Behavior.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.BareG28Behavior.html", "title": "Enum BareG28Behavior | HiAPI-C# 2025", - "summary": "Enum BareG28Behavior Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll Writes ICompoundMotionDef section for G28 reference point return. Reads intermediate XYZ from Parsing.G28 (written by G28Syntax) and converts to machine coordinates via ResolveProgramXyz(JsonNode, LazyLinkedListNode, ISentenceCarrier, NcDiagnosticProgress). Must be placed after LinearMotionSyntax in the syntax chain. Removes the IMotionEventDef section written by LinearMotionSyntax (G28 handles its own motion). Overwrites root MachineCoordinateState and ProgramXyz with reference position for subsequent block lookback. public enum BareG28Behavior Extension Methods InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) MaskUtil.GetMaskedValue(T, T, bool) MaskUtil.SetMask(ref T, T, bool) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Fields Alarm = 0 Emit Coord-RefReturn–003 validation error and consume the bare G28 without emitting motion. AllAxesHome = 1 Interpret bare G28 as if every configured axis were listed at its current modal value, so item 0 (intermediate) is a no-op and item 1 sends each configured axis to its home. Requires an IMachineAxisConfig dep; without one the syntax falls back to Alarm. Examples All cases hardcode a TestDeps.HomeMc with X/Y home at 0 and Z home at 100 (typical mill where Z-home is above the table) and leave the ProgramToMcTransform chain at identity so the final ProgramXyz equals MachineCoordinateState. The G28 pattern emits a 2-item CompoundMotion: item 0 is the intermediate point in ProgramXyz, item 1 is the final position in MachineCoordinateState. Axes not present in the G28 block keep the previous-block MC value rather than going home. G91 G28 X0 Y0 Z0 with a #Previous: block carrying MachineCoordinateState=(50,60,70) — all three axes go home, so the final MC is the configured home (0,0,100): #Previous: { \"MachineCoordinateState\": { \"X\": 50, \"Y\": 60, \"Z\": 70 } } #BeforeBuild: { \"Parsing\": { \"G28\": { \"X\": 0, \"Y\": 0, \"Z\": 0 } } } #AfterBuild: { \"CompoundMotion\": { \"Term\": \"G28\", \"Items\": [ { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"ProgramXyz\": { \"X\": 0, \"Y\": 0, \"Z\": 0 } }, { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"MachineCoordinateState\": { \"X\": 0, \"Y\": 0, \"Z\": 100 } } ] }, \"ProgramXyz\": { \"X\": 0, \"Y\": 0, \"Z\": 100 } } G91 G28 Z0 — only Z goes to its home; X/Y inherit from the previous block's MC. Item 0's intermediate ProgramXyz takes X/Y from the inherited program XYZ (= previous MC under identity transform) and Z from the literal 0 in the G28 block: #Previous: { \"MachineCoordinateState\": { \"X\": 50, \"Y\": 60, \"Z\": 70 } } #BeforeBuild: { \"Parsing\": { \"G28\": { \"Z\": 0 } } } #AfterBuild: { \"CompoundMotion\": { \"Term\": \"G28\", \"Items\": [ { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"ProgramXyz\": { \"X\": 50, \"Y\": 60, \"Z\": 0 } }, { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"MachineCoordinateState\": { \"X\": 50, \"Y\": 60, \"Z\": 100 } } ] }, \"ProgramXyz\": { \"X\": 50, \"Y\": 60, \"Z\": 100 } } No IHomeMcConfig dep on the dependency list — the syntax early-returns and the G28 sub-section stays in Parsing for an upstream consumer or downstream syntax to handle: #BeforeBuild: { \"Parsing\": { \"G28\": { \"X\": 0, \"Y\": 0, \"Z\": 0 } } } #AfterBuild: { \"Parsing\": { \"G28\": { \"X\": 0, \"Y\": 0, \"Z\": 0 } } } Rotary cases below add TestDeps.AxisConfig declaring B as rotary and extend HomeMc with the conventional B home at 0°. Each rotary block uses literal B = 45° so item 0's intermediate (45°), item 1's home (0°), and #Previous: modal B (30°) are pairwise distinct — a test that swaps any two values for any other is caught by the assertion. The wrap pass (McAbcCyclicPathSyntax) is a different syntax, so these per-SUT conformance assertions show only the raw literal / canonical-home values written by this syntax, before any cyclic normalization runs. G91 G28 B45. — pure rotary G28. Emits a 2-item CompoundMotion whose items carry only ABC keys in MC; no XYZ ProgramXyz and no XYZ MC because the block doesn't reference X/Y/Z (and the conformance harness doesn't run McXyzSyntax downstream — in the full pipeline that syntax fills root MachineCoordinateState's XYZ from root ProgramXyz, but with no XYZ in the block there's nothing to fill anyway). Root MC.B holds the canonical home for modal carry-forward; root ProgramXyz is not written: #BeforeBuild: { \"Parsing\": { \"G28\": { \"B\": 45 } } } #AfterBuild: { \"MachineCoordinateState\": { \"B\": 0 }, \"CompoundMotion\": { \"Term\": \"G28\", \"Items\": [ { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"MachineCoordinateState\": { \"B\": 45 } }, { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"MachineCoordinateState\": { \"B\": 0 } } ] } } G28 X0. B45. mixed XYZ + rotary. Both axis kinds occupy the same two items: item 0 carries the XYZ intermediate ProgramXyz alongside the rotary literal in MC; item 1 carries the final XYZ MC alongside the rotary home in MC. Root MachineCoordinateState here holds only the rotary modal value (B = 0, the home); the XYZ portion of root MC would be filled by the downstream McXyzSyntax in the full pipeline (out of scope for this per-SUT conformance). Root MachineCoordinateState appears first because the rotary-home write happens before CompoundMotion / ProgramXyz are inserted. #Previous: carries B = 30 so the prev rotary modal is distinct from both the literal (45) and the home (0): #Previous: { \"MachineCoordinateState\": { \"X\": 50, \"Y\": 60, \"Z\": 70, \"B\": 30 } } #BeforeBuild: { \"Parsing\": { \"G28\": { \"X\": 0, \"B\": 45 } } } #AfterBuild: { \"MachineCoordinateState\": { \"B\": 0 }, \"CompoundMotion\": { \"Term\": \"G28\", \"Items\": [ { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"ProgramXyz\": { \"X\": 0, \"Y\": 60, \"Z\": 70 }, \"MachineCoordinateState\": { \"B\": 45 } }, { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"MachineCoordinateState\": { \"X\": 0, \"Y\": 60, \"Z\": 70, \"B\": 0 } } ] }, \"ProgramXyz\": { \"X\": 0, \"Y\": 60, \"Z\": 70 } } Bare G28 — no axis specifiers — exercises the configurable BareG28 policy. Default Alarm emits Coord-RefReturn--003 and consumes the G28 without motion (the diagnostic surfaces through the NcDiagnosticProgress sink, not the block JSON, so the canonical #AfterBuild is just an empty object): #BeforeBuild: { \"Parsing\": { \"G28\": {} } } #AfterBuild: {} Bare G28 with BareG28 set to AllAxesHome: the syntax synthesises a literal at the inherited program position for every configured linear axis and the previous modal angle for every configured rotary axis (here X/Y/Z taken from the #Previous: MC under the identity ProgramToMcTransform, B taken from the prev modal). Item 0's intermediate therefore equals current (no motion in stage 1) and item 1 sends each axis to its home: #Previous: { \"MachineCoordinateState\": { \"X\": 10, \"Y\": 20, \"Z\": 30, \"B\": 45 } } #BeforeBuild: { \"Parsing\": { \"G28\": {} } } #AfterBuild: { \"MachineCoordinateState\": { \"B\": 0 }, \"CompoundMotion\": { \"Term\": \"G28\", \"Items\": [ { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"ProgramXyz\": { \"X\": 10, \"Y\": 20, \"Z\": 30 }, \"MachineCoordinateState\": { \"B\": 45 } }, { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"MachineCoordinateState\": { \"X\": 0, \"Y\": 0, \"Z\": 100, \"B\": 0 } } ] }, \"ProgramXyz\": { \"X\": 0, \"Y\": 0, \"Z\": 100 } }" + "summary": "Enum BareG28Behavior Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll Configurable handling for a G28 block with no axis specifiers (“bare G28”) — value of BareG28. Real Fanuc-class controllers vary: older 0i-M alarms (PS010), some 30i variants send every configured axis to home. Default to Alarm so silent NC bugs surface; opt into AllAxesHome per syntax instance. public enum BareG28Behavior Extension Methods InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) MaskUtil.GetMaskedValue(T, T, bool) MaskUtil.SetMask(ref T, T, bool) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Fields Alarm = 0 Emit Coord-RefReturn–003 validation error and consume the bare G28 without emitting motion. AllAxesHome = 1 Interpret bare G28 as if every configured axis were listed at its current modal value, so item 0 (intermediate) is a no-op and item 1 sends each configured axis to its home. Requires an IMachineAxisConfig dep; without one the syntax falls back to Alarm." }, "api/Hi.NcParsers.LogicSyntaxs.BoringCycleSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.BoringCycleSyntax.html", "title": "Class BoringCycleSyntax | HiAPI-C# 2025", - "summary": "Class BoringCycleSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll G85/G86/G89 boring cycles. Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point Feed from R-point to bottom Z [G86 only] Spindle stop at bottom [G89 only] Dwell P seconds at bottom Retract: G85/G89 → feed retract, G86 → rapid retract [G86 only] Spindle restart (CW) after retract G85: feed to Z, feed retract — smooth bore finish. G86: feed to Z, spindle stop (implicit), rapid retract. G89: feed to Z, dwell P, feed retract — like G85 with bottom dwell. Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. public class BoringCycleSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object BoringCycleSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Remarks G86 emits SpindleControl items for spindle stop (before retract) and spindle restart CW (after retract). The restart assumes the previous direction was CW (M03), which is the typical boring setup. Constructors BoringCycleSyntax() Initializes a new instance with default settings. public BoringCycleSyntax() BoringCycleSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public BoringCycleSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class BoringCycleSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll G85/G86/G89 boring cycles. Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point Feed from R-point to bottom Z [G86 only] Spindle stop at bottom [G89 only] Dwell P seconds at bottom Retract: G85/G89 → feed retract, G86 → rapid retract [G86 only] Spindle restart (CW) after retract G85: feed to Z, feed retract — smooth bore finish. G86: feed to Z, spindle stop (implicit), rapid retract. G89: feed to Z, dwell P, feed retract — like G85 with bottom dwell. Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. public class BoringCycleSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object BoringCycleSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Examples All cases below pre-populate CannedCycle as CannedCycleResolveSyntax would have written it. There is no #Previous:, so GetLastProgramXyz returns Vec3d.Zero → initZ = 0. F is supplied inside the cycle section so ResolveFeedrate(JsonObject, JsonObject, ISentenceCarrier, NcDiagnosticProgress) writes block-level Feedrate (G94 default, 600 mm/min → 10 mm/s) before items are emitted. All cases use G98 return mode so finalZ = initZ = 0. G85 — feed to bottom, feed retract (smooth bore finish). The retract item carries the same Feedrate_mmds as the down-stroke. Four items: #BeforeBuild: { \"Parsing\": { \"G85\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2, \"F\": 600 } }, \"CannedCycle\": { \"Term\": \"G85\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } } } #AfterBuild: { \"CannedCycle\": { \"Term\": \"G85\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } }, \"Feedrate\": { \"FeedrateValue\": 600, \"Term\": \"G94\", \"Unit\": \"mm/min\" }, \"CompoundMotion\": { \"Term\": \"G85\", \"Items\": [ { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 2 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": -10 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"Feedrate_mmds\": 10 } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"Feedrate_mmds\": 10 } } ] }, \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 } } G86 — feed to bottom, spindle stop, rapid retract, spindle restart CW. First marker to spell out { \"SpindleControl\": { \"Direction\": ... } } items. The retract item carries IsRapid: true rather than a feedrate. Six items: #BeforeBuild: { \"Parsing\": { \"G86\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2, \"F\": 600 } }, \"CannedCycle\": { \"Term\": \"G86\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } } } #AfterBuild: { \"CannedCycle\": { \"Term\": \"G86\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } }, \"Feedrate\": { \"FeedrateValue\": 600, \"Term\": \"G94\", \"Unit\": \"mm/min\" }, \"CompoundMotion\": { \"Term\": \"G86\", \"Items\": [ { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 2 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": -10 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"Feedrate_mmds\": 10 } }, { \"SpindleControl\": { \"Direction\": \"STOP\" } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"SpindleControl\": { \"Direction\": \"CW\" } } ] }, \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 } } G89 with P=0.3s dwell — like G85 but inserts a { Dwell: { Time: 0.3 } } item at the bottom before the feed retract. Five items: #BeforeBuild: { \"Parsing\": { \"G89\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2, \"F\": 600, \"P\": 0.3 } }, \"CannedCycle\": { \"Term\": \"G89\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } } } #AfterBuild: { \"CannedCycle\": { \"Term\": \"G89\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } }, \"Feedrate\": { \"FeedrateValue\": 600, \"Term\": \"G94\", \"Unit\": \"mm/min\" }, \"CompoundMotion\": { \"Term\": \"G89\", \"Items\": [ { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 2 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": -10 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"Feedrate_mmds\": 10 } }, { \"Dwell\": { \"Time\": 0.3 } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"Feedrate_mmds\": 10 } } ] }, \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 } } Remarks G86 emits SpindleControl items for spindle stop (before retract) and spindle restart CW (after retract). The restart assumes the previous direction was CW (M03), which is the typical boring setup. Constructors BoringCycleSyntax() Initializes a new instance with default settings. public BoringCycleSyntax() BoringCycleSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public BoringCycleSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.LogicSyntaxs.CannedCycleResolveSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.CannedCycleResolveSyntax.html", "title": "Class CannedCycleResolveSyntax | HiAPI-C# 2025", - "summary": "Class CannedCycleResolveSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll Resolves the canned-cycle Group-09 state for the current block and writes the result to the CannedCycle section. Active cycle (direct G81..G89 or modal repeat): merges Parsing overrides with previous-cycle stored params, applies G91 incremental-to-absolute conversion and missing-axis fallback, writes CannedCycle with Term, ReturnMode, and Params. The resolved cycle sub-section is left in Parsing under the cycle code for downstream cycle syntaxes (DrillingCycleSyntax, etc.) to read. Explicit cancel (G80 flag present on a non-cycle block): consumes the G80 flag and writes CannedCycle = { Term: \"G80\" }, acting as a hard sentinel for Hi.NcParsers.LogicSyntaxs.CannedCycleSyntaxUtil modal lookback. No Group-09 activity: leaves the block untouched. Must be placed after PositioningSyntax and before the individual cycle syntaxes in the chain. public class CannedCycleResolveSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object CannedCycleResolveSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties Default Default instance with standard settings. public static CannedCycleResolveSyntax Default { get; } Property Value CannedCycleResolveSyntax Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class CannedCycleResolveSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll Resolves the canned-cycle Group-09 state for the current block and writes the result to the CannedCycle section. Active cycle (direct G81..G89 or modal repeat): merges Parsing overrides with previous-cycle stored params, applies G91 incremental-to-absolute conversion and missing-axis fallback, writes CannedCycle with Term, ReturnMode, and Params. The resolved cycle sub-section is left in Parsing under the cycle code for downstream cycle syntaxes (DrillingCycleSyntax, etc.) to read. Explicit cancel (G80 flag present on a non-cycle block): consumes the G80 flag and writes CannedCycle = { Term: \"G80\" }, acting as a hard sentinel for Hi.NcParsers.LogicSyntaxs.CannedCycleSyntaxUtil modal lookback. No Group-09 activity: leaves the block untouched. Must be placed after PositioningSyntax and before the individual cycle syntaxes in the chain. public class CannedCycleResolveSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object CannedCycleResolveSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Examples Direct G81 active cycle, no #Previous: (so lastProgramXyz = Vec3d.Zero) and no Positioning mode (so the absolute-coordinate path runs, not G91 incremental). The resolved cycle sub-section is left in Parsing under the cycle code for downstream cycle syntaxes to consume; the CannedCycle section carries the snapshot used for modal lookback. ReturnMode defaults to G98 when neither the current block nor a previous block declares G98/G99: #BeforeBuild: { \"Parsing\": { \"G81\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } } } #AfterBuild: { \"Parsing\": { \"G81\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } }, \"CannedCycle\": { \"Term\": \"G81\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } } } Modal repeat: the current block carries only an X override and no cycle code, but #Previous: has an active G81 with stored params. MergeModalCycleSection(JsonObject, JsonObject, ISentenceCarrier, NcDiagnosticProgress) merges X=60 (override) with Y/Z/R from stored params, removes the consumed X from Parsing root, and writes the merged section back to Parsing.G81. ReturnMode inherits “G98” from the previous block's ReturnMode: #Previous: { \"CannedCycle\": { \"Term\": \"G81\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } }, \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 } } #BeforeBuild: { \"Parsing\": { \"X\": 60 } } #AfterBuild: { \"Parsing\": { \"G81\": { \"X\": 60, \"Y\": 30, \"Z\": -10, \"R\": 2 } }, \"CannedCycle\": { \"Term\": \"G81\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 60, \"Y\": 30, \"Z\": -10, \"R\": 2 } } } Explicit G80 cancel: standalone G80 flag with no cycle data. The G80 flag is consumed and CannedCycle = { Term: G80 } is written as a hard sentinel that FindPreviousActiveCycle(LazyLinkedListNode, string[]) reads to terminate modal lookback. No ReturnMode hint here (no G98/G99 flag on the same block): #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G80\"] } } #AfterBuild: { \"CannedCycle\": { \"Term\": \"G80\" } } Properties Default Default instance with standard settings. public static CannedCycleResolveSyntax Default { get; } Property Value CannedCycleResolveSyntax Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.LogicSyntaxs.CircularMotionSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.CircularMotionSyntax.html", "title": "Class CircularMotionSyntax | HiAPI-C# 2025", - "summary": "Class CircularMotionSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll Writes McArc motion for circular commands (ISO G02/G03). Detects motion mode from Flags, reads I/J/K center offsets or R radius from Parsing, computes arc center in program coordinates, and writes a one-shot MotionEvent (form + arc params) plus a modal MotionState (Term). G02/G03 mode is modal (Group 01) — persists across blocks via Term. Arc parameters (I/J/K/R) are per-block and must be present in every arc block. Must be placed before LinearMotionSyntax in the syntax chain. Both share the Group 01 motion slot; whichever writes a MotionEvent first claims it. public class CircularMotionSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object CircularMotionSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Examples All cases below have the current block's ProgramXyz already set (as a prior ProgramXyzSyntax would have produced) and run with no #Previous:, so GetLastProgramXyz returns Vec3d.Zero. The G17 XY plane is implicit (no PlaneSelect section means PlaneNormalDir = 2). G02 with I/J — quarter arc from (0,0,0) to (10,0,0) around (5,0,0); I=5 J=0 are incremental offsets from start to center. The G02 flag is consumed (Parsing removed once empty); MotionState + MotionEvent are written: #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G02\"], \"I\": 5, \"J\": 0 }, \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 } } #AfterBuild: { \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 }, \"MotionState\": { \"Term\": \"G02\" }, \"MotionEvent\": { \"Form\": \"McArc\", \"ArcCenter\": { \"X\": 5, \"Y\": 0, \"Z\": 0 }, \"PlaneNormalDir\": 2, \"IsCcw\": false, \"AdditionalCircleNum\": 0 } } Modal carry of G02: no motion flag on the current block but a #Previous: MotionState.Term = \"G02\" tells us we are still in circular mode. I/J on the current block describe the arc the same way: #Previous: { \"MotionState\": { \"Term\": \"G02\" } } #BeforeBuild: { \"Parsing\": { \"I\": 5, \"J\": 0 }, \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 } } #AfterBuild: { \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 }, \"MotionState\": { \"Term\": \"G02\" }, \"MotionEvent\": { \"Form\": \"McArc\", \"ArcCenter\": { \"X\": 5, \"Y\": 0, \"Z\": 0 }, \"PlaneNormalDir\": 2, \"IsCcw\": false, \"AdditionalCircleNum\": 0 } } No I/J/K/R on the block — the per-block arc data is missing, so the syntax bails out early; the G02 flag stays in Parsing.Flags for some other syntax to act on (or to surface as residue if no one does): #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G02\"] }, \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 } } #AfterBuild: { \"Parsing\": { \"Flags\": [\"G02\"] }, \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 } } R-format degenerate (chord = 2R, semicircle): start (0,0,0) → end (10,0,0), R=5. perpDistSq resolves to 0 so the computed center collapses to the chord midpoint (5,0,0); no sqrt drift on this branch: #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G02\"], \"R\": 5 }, \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 } } #AfterBuild: { \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 }, \"MotionState\": { \"Term\": \"G02\" }, \"MotionEvent\": { \"Form\": \"McArc\", \"ArcCenter\": { \"X\": 5, \"Y\": 0, \"Z\": 0 }, \"PlaneNormalDir\": 2, \"IsCcw\": false, \"AdditionalCircleNum\": 0 } } R-format non-trivial: G02 90° arc from (0,0,0) to (10,10,0) with R=10. The center comes from the cross-product + sqrt + normalize path inside ResolveCenterFromR(Vec3d, Vec3d, int, bool, double), but for this particular axis-aligned chord the rounding errors cancel and the center lands at exactly (10, 0, 0) — i.e. no ULP drift here, in contrast to e.g. McAbcCyclicPathSyntax's rad/deg round-trip: #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G02\"], \"R\": 10 }, \"ProgramXyz\": { \"X\": 10, \"Y\": 10, \"Z\": 0 } } #AfterBuild: { \"ProgramXyz\": { \"X\": 10, \"Y\": 10, \"Z\": 0 }, \"MotionState\": { \"Term\": \"G02\" }, \"MotionEvent\": { \"Form\": \"McArc\", \"ArcCenter\": { \"X\": 10, \"Y\": 0, \"Z\": 0 }, \"PlaneNormalDir\": 2, \"IsCcw\": false, \"AdditionalCircleNum\": 0 } } G03 CCW with I/J — same geometry as case 0 (start (0,0,0), end (10,0,0), I=5 J=0 → center (5,0,0)) but the G03 flag flips IsCcw to true. Direction is the only differentiating output; arc-center math is unchanged: #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G03\"], \"I\": 5, \"J\": 0 }, \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 } } #AfterBuild: { \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 }, \"MotionState\": { \"Term\": \"G03\" }, \"MotionEvent\": { \"Form\": \"McArc\", \"ArcCenter\": { \"X\": 5, \"Y\": 0, \"Z\": 0 }, \"PlaneNormalDir\": 2, \"IsCcw\": true, \"AdditionalCircleNum\": 0 } } Full circle G02 — start == end (both (0,0,0)), I=5 J=0 places center off-start at (5,0,0). The isFullCircle guard (chord length < 1e-6 and center-to-start > 1e-6) flips AdditionalCircleNum to 1 so a downstream motion semantic knows to draw the closed loop: #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G02\"], \"I\": 5, \"J\": 0 }, \"ProgramXyz\": { \"X\": 0, \"Y\": 0, \"Z\": 0 } } #AfterBuild: { \"ProgramXyz\": { \"X\": 0, \"Y\": 0, \"Z\": 0 }, \"MotionState\": { \"Term\": \"G02\" }, \"MotionEvent\": { \"Form\": \"McArc\", \"ArcCenter\": { \"X\": 5, \"Y\": 0, \"Z\": 0 }, \"PlaneNormalDir\": 2, \"IsCcw\": false, \"AdditionalCircleNum\": 1 } } Constructors CircularMotionSyntax() Initializes a new instance with default settings. public CircularMotionSyntax() CircularMotionSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public CircularMotionSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class CircularMotionSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll Writes McArc motion for circular commands (ISO G02/G03). Detects motion mode from Flags, reads I/J/K center offsets or R radius from Parsing, computes arc center in program coordinates, and writes a one-shot MotionEvent (form + arc params) plus a modal MotionState (Term). G02/G03 mode is modal (Group 01) — persists across blocks via Term. Arc parameters (I/J/K/R) are per-block and must be present in every arc block. Must be placed before LinearMotionSyntax in the syntax chain. Both share the Group 01 motion slot; whichever writes a MotionEvent first claims it. public class CircularMotionSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object CircularMotionSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Examples All cases below have the current block's ProgramXyz already set (as a prior ProgramXyzSyntax would have produced) and run with no #Previous:, so GetLastProgramXyz returns Vec3d.Zero. The G17 XY plane is implicit (no PlaneSelect section means GetPlaneNormalDir(JsonObject) returns 2 — the XY-plane default — so arc math runs with Z as the perpendicular axis). G02 with I/J — quarter arc from (0,0,0) to (10,0,0) around (5,0,0); I=5 J=0 are incremental offsets from start to center. The G02 flag is consumed (Parsing removed once empty); MotionState + MotionEvent are written: #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G02\"], \"I\": 5, \"J\": 0 }, \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 } } #AfterBuild: { \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 }, \"MotionState\": { \"Term\": \"G02\" }, \"MotionEvent\": { \"Form\": \"McArc\", \"ArcCenter\": { \"X\": 5, \"Y\": 0, \"Z\": 0 }, \"IsCcw\": false, \"AdditionalCircleNum\": 0 } } Modal carry of G02: no motion flag on the current block but a #Previous: MotionState.Term = \"G02\" tells us we are still in circular mode. I/J on the current block describe the arc the same way: #Previous: { \"MotionState\": { \"Term\": \"G02\" } } #BeforeBuild: { \"Parsing\": { \"I\": 5, \"J\": 0 }, \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 } } #AfterBuild: { \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 }, \"MotionState\": { \"Term\": \"G02\" }, \"MotionEvent\": { \"Form\": \"McArc\", \"ArcCenter\": { \"X\": 5, \"Y\": 0, \"Z\": 0 }, \"IsCcw\": false, \"AdditionalCircleNum\": 0 } } No I/J/K/R on the block — the per-block arc data is missing, so the syntax bails out early; the G02 flag stays in Parsing.Flags for some other syntax to act on (or to surface as residue if no one does): #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G02\"] }, \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 } } #AfterBuild: { \"Parsing\": { \"Flags\": [\"G02\"] }, \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 } } R-format degenerate (chord = 2R, semicircle): start (0,0,0) → end (10,0,0), R=5. perpDistSq resolves to 0 so the computed center collapses to the chord midpoint (5,0,0); no sqrt drift on this branch: #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G02\"], \"R\": 5 }, \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 } } #AfterBuild: { \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 }, \"MotionState\": { \"Term\": \"G02\" }, \"MotionEvent\": { \"Form\": \"McArc\", \"ArcCenter\": { \"X\": 5, \"Y\": 0, \"Z\": 0 }, \"IsCcw\": false, \"AdditionalCircleNum\": 0 } } R-format non-trivial: G02 90° arc from (0,0,0) to (10,10,0) with R=10. The center comes from the cross-product + sqrt + normalize path inside ResolveCenterFromSignedRadius(Vec3d, Vec3d, int, bool, double), but for this particular axis-aligned chord the rounding errors cancel and the center lands at exactly (10, 0, 0) — i.e. no ULP drift here, in contrast to e.g. McAbcCyclicPathSyntax's rad/deg round-trip: #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G02\"], \"R\": 10 }, \"ProgramXyz\": { \"X\": 10, \"Y\": 10, \"Z\": 0 } } #AfterBuild: { \"ProgramXyz\": { \"X\": 10, \"Y\": 10, \"Z\": 0 }, \"MotionState\": { \"Term\": \"G02\" }, \"MotionEvent\": { \"Form\": \"McArc\", \"ArcCenter\": { \"X\": 10, \"Y\": 0, \"Z\": 0 }, \"IsCcw\": false, \"AdditionalCircleNum\": 0 } } G03 CCW with I/J — same geometry as case 0 (start (0,0,0), end (10,0,0), I=5 J=0 → center (5,0,0)) but the G03 flag flips IsCcw to true. Direction is the only differentiating output; arc-center math is unchanged: #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G03\"], \"I\": 5, \"J\": 0 }, \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 } } #AfterBuild: { \"ProgramXyz\": { \"X\": 10, \"Y\": 0, \"Z\": 0 }, \"MotionState\": { \"Term\": \"G03\" }, \"MotionEvent\": { \"Form\": \"McArc\", \"ArcCenter\": { \"X\": 5, \"Y\": 0, \"Z\": 0 }, \"IsCcw\": true, \"AdditionalCircleNum\": 0 } } Full circle G02 — start == end (both (0,0,0)), I=5 J=0 places center off-start at (5,0,0). Plane-restricted closure (IsClosedOnPlane(Vec3d, Vec3d, int, double)) flips AdditionalCircleNum to 1 so a downstream motion semantic knows to draw the closed loop: #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G02\"], \"I\": 5, \"J\": 0 }, \"ProgramXyz\": { \"X\": 0, \"Y\": 0, \"Z\": 0 } } #AfterBuild: { \"ProgramXyz\": { \"X\": 0, \"Y\": 0, \"Z\": 0 }, \"MotionState\": { \"Term\": \"G02\" }, \"MotionEvent\": { \"Form\": \"McArc\", \"ArcCenter\": { \"X\": 5, \"Y\": 0, \"Z\": 0 }, \"IsCcw\": false, \"AdditionalCircleNum\": 1 } } Fanuc L parameter (helix turn count, 1-based) — L3 on a start==end closed loop means three total turns, so AdditionalCircleNum = L − 1 = 2. Matches legacy NcProc.cs:442; the L parameter is consumed alongside I/J/K/R: #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G02\"], \"I\": 5, \"J\": 0, \"L\": 3 }, \"ProgramXyz\": { \"X\": 0, \"Y\": 0, \"Z\": 0 } } #AfterBuild: { \"ProgramXyz\": { \"X\": 0, \"Y\": 0, \"Z\": 0 }, \"MotionState\": { \"Term\": \"G02\" }, \"MotionEvent\": { \"Form\": \"McArc\", \"ArcCenter\": { \"X\": 5, \"Y\": 0, \"Z\": 0 }, \"IsCcw\": false, \"AdditionalCircleNum\": 2 } } K-as-pitch helix on G17 (XY plane) — when the plane-normal axis letter (K for G17, J for G18, I for G19) is present on an IJK-format arc, it is the per-turn axial pitch, not a center offset. Here K = −3 mm/turn over ΔZ = −9 mm gives AdditionalCircleNum = floor(−9 / −3) = 3. The center stays on the begin-plane (Z = 0) — ResolveCenterFromIjk zeros the plane-normal component before adding to begin. Matches legacy NcProc.cs:458: #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G02\"], \"I\": 5, \"J\": 0, \"K\": -3 }, \"ProgramXyz\": { \"X\": 0, \"Y\": 0, \"Z\": -9 } } #AfterBuild: { \"ProgramXyz\": { \"X\": 0, \"Y\": 0, \"Z\": -9 }, \"MotionState\": { \"Term\": \"G02\" }, \"MotionEvent\": { \"Form\": \"McArc\", \"ArcCenter\": { \"X\": 5, \"Y\": 0, \"Z\": 0 }, \"IsCcw\": false, \"AdditionalCircleNum\": 3 } } Constructors CircularMotionSyntax() Initializes a new instance with default settings. public CircularMotionSyntax() CircularMotionSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public CircularMotionSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.LogicSyntaxs.CoolantSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.CoolantSyntax.html", @@ -4412,7 +4392,7 @@ "api/Hi.NcParsers.LogicSyntaxs.DrillingCycleSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.DrillingCycleSyntax.html", "title": "Class DrillingCycleSyntax | HiAPI-C# 2025", - "summary": "Class DrillingCycleSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll G81/G82 drilling cycle (rapid retract). Supports modal repetition. G82 covers G81 — the only difference is an optional dwell (P) at the bottom. Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point Feed from R-point to bottom Z [G82 only] Dwell P seconds at bottom Rapid from bottom to final (G98 → init Z, G99 → R) Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. public class DrillingCycleSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object DrillingCycleSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Remarks G85 (feed retract) and G86 (spindle-stop retract) have different retract behaviors and require separate syntax classes. Constructors DrillingCycleSyntax() Initializes a new instance with default settings. public DrillingCycleSyntax() DrillingCycleSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public DrillingCycleSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class DrillingCycleSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll G81/G82 drilling cycle (rapid retract). Supports modal repetition. G82 covers G81 — the only difference is an optional dwell (P) at the bottom. Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point Feed from R-point to bottom Z [G82 only] Dwell P seconds at bottom Rapid from bottom to final (G98 → init Z, G99 → R) Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. public class DrillingCycleSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object DrillingCycleSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Examples All cases below pre-populate CannedCycle as CannedCycleResolveSyntax would have written it (term, return mode, snapshot params) and leave the resolved cycle sub-section in Parsing for this syntax to consume. There is no #Previous:, so GetLastProgramXyz returns Vec3d.Zero → initZ = 0. F is supplied inside the cycle section so ResolveFeedrate(JsonObject, JsonObject, ISentenceCarrier, NcDiagnosticProgress) writes the block-level Feedrate (G94 default, mm/min → mm/s) before the items are emitted. G81 G98 — rapid to init (z=0), rapid to R, feed to bottom Z=-10 at F=600 mm/min → 10 mm/s, rapid back to init Z=0. Four items. The resolved cycle sub-section is removed by CleanupParsing(JsonObject, JsonObject, string); the empty Parsing drops off through CleanupParsing(JsonObject): #BeforeBuild: { \"Parsing\": { \"G81\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2, \"F\": 600 } }, \"CannedCycle\": { \"Term\": \"G81\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } } } #AfterBuild: { \"CannedCycle\": { \"Term\": \"G81\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } }, \"Feedrate\": { \"FeedrateValue\": 600, \"Term\": \"G94\", \"Unit\": \"mm/min\" }, \"CompoundMotion\": { \"Term\": \"G81\", \"Items\": [ { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 2 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": -10 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"Feedrate_mmds\": 10 } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } } ] }, \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 } } G82 with dwell P=0.5s — inserts a Dwell item between the feed-to-bottom rapid and the final retract, otherwise identical to G81. Five items total: #BeforeBuild: { \"Parsing\": { \"G82\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2, \"F\": 600, \"P\": 0.5 } }, \"CannedCycle\": { \"Term\": \"G82\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } } } #AfterBuild: { \"CannedCycle\": { \"Term\": \"G82\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } }, \"Feedrate\": { \"FeedrateValue\": 600, \"Term\": \"G94\", \"Unit\": \"mm/min\" }, \"CompoundMotion\": { \"Term\": \"G82\", \"Items\": [ { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 2 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": -10 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"Feedrate_mmds\": 10 } }, { \"Dwell\": { \"Time\": 0.5 } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } } ] }, \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 } } Remarks G85 (feed retract) and G86 (spindle-stop retract) have different retract behaviors and require separate syntax classes. Constructors DrillingCycleSyntax() Initializes a new instance with default settings. public DrillingCycleSyntax() DrillingCycleSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public DrillingCycleSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.LogicSyntaxs.FanucPathSmoothingSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.FanucPathSmoothingSyntax.html", @@ -4427,17 +4407,17 @@ "api/Hi.NcParsers.LogicSyntaxs.FineBoringSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.FineBoringSyntax.html", "title": "Class FineBoringSyntax | HiAPI-C# 2025", - "summary": "Class FineBoringSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll G76 fine boring cycle. Supports modal repetition. Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point Feed from R-point to bottom Z Oriented spindle stop (OSS) Tool shift by Q in +X direction (clear bore wall) Rapid retract (shifted) to final Z Tool shift back to center Spindle restart (CW) Q specifies the lateral shift distance (mm) to avoid dragging the tool across the finished bore surface during retract. Shift direction defaults to +X (OSS angle 0°). Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax before this syntax runs. public class FineBoringSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object FineBoringSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors FineBoringSyntax() Initializes a new instance with default settings. public FineBoringSyntax() FineBoringSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public FineBoringSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class FineBoringSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll G76 fine boring cycle. Supports modal repetition. Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point Feed from R-point to bottom Z Oriented spindle stop (OSS) Tool shift by Q in +X direction (clear bore wall) Rapid retract (shifted) to final Z Tool shift back to center Spindle restart (CW) Q specifies the lateral shift distance (mm) to avoid dragging the tool across the finished bore surface during retract. Shift direction defaults to +X (OSS angle 0°). Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax before this syntax runs. public class FineBoringSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object FineBoringSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Examples G76 G98 — pre-populated CannedCycle (as CannedCycleResolveSyntax would have written), no #Previous: so initZ = 0, F=600 → 10 mm/s, shift Q=1 (lateral +X clearance for retract). First marker to spell out { “SpindleOrientation”: { “Angle_deg”: 0 } } — the OSS item produced by CreateSpindleOrientationItem(double). Eight items: init, R, feed-down, OSS, shifted-at-bottom (X=51), shifted-retract (X=51, Z=0), back-to-center (X=50, Z=0), spindle-restart CW: #BeforeBuild: { \"Parsing\": { \"G76\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2, \"Q\": 1, \"F\": 600 } }, \"CannedCycle\": { \"Term\": \"G76\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2, \"Q\": 1 } } } #AfterBuild: { \"CannedCycle\": { \"Term\": \"G76\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2, \"Q\": 1 } }, \"Feedrate\": { \"FeedrateValue\": 600, \"Term\": \"G94\", \"Unit\": \"mm/min\" }, \"CompoundMotion\": { \"Term\": \"G76\", \"Items\": [ { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 2 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": -10 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"Feedrate_mmds\": 10 } }, { \"SpindleOrientation\": { \"Angle_deg\": 0 } }, { \"ProgramXyz\": { \"X\": 51, \"Y\": 30, \"Z\": -10 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 51, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"SpindleControl\": { \"Direction\": \"CW\" } } ] }, \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 } } Constructors FineBoringSyntax() Initializes a new instance with default settings. public FineBoringSyntax() FineBoringSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public FineBoringSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.LogicSyntaxs.G43p4RtcpSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.G43p4RtcpSyntax.html", "title": "Class G43p4RtcpSyntax | HiAPI-C# 2025", - "summary": "Class G43p4RtcpSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll Handles G43.4 RTCP (Rotary Tool Center Point) activation. Writes the IToolHeightCompensationDef section and the ToolHeightCompensationSource entry in ProgramToMcTransform — a tool-normal · offset_mm translation at the block endpoint ABC. The chain entry is tagged KindDynamic when RTCP is active and ABC changes across the block, and KindStatic otherwise. The RTCP kinematic rotary part (Pn→MC rigid transform) is orthogonal to this syntax and is written by PivotTransformationSyntax on every block, because rotary state remains in effect beyond the RTCP modal (e.g. a non-RTCP G01 after G49 still inherits the last ABC from the program). The \"rotary dynamic\" distinction lives on the chain entry's KindKey alone and is read via HasDynamicEntry(JsonObject) by LinearMotionSyntax to pick ClLinear vs McLinear. G43.4 is used by Fanuc, Mazak, Syntec, and Okuma. Siemens (TRAORI) and Heidenhain (M128) are handled by separate syntaxes. Must be placed after ToolHeightOffsetSyntax (to override the ToolHeightCompensation entry when RTCP is active) and before PivotTransformationSyntax (which runs last in the chain). public class G43p4RtcpSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object G43p4RtcpSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors G43p4RtcpSyntax() Initializes a new instance with default settings. public G43p4RtcpSyntax() G43p4RtcpSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public G43p4RtcpSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class G43p4RtcpSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll Handles G43.4 RTCP (Rotary Tool Center Point) activation. Writes the IToolHeightCompensationDef section and the ToolHeightCompensationSource entry in ProgramToMcTransform — a tool-normal · offset_mm translation at the block endpoint ABC. The chain entry is tagged KindDynamic when RTCP is active and ABC changes across the block, and KindStatic otherwise. The RTCP kinematic rotary part (Pn→MC rigid transform) is orthogonal to this syntax and is written by PivotTransformationSyntax on every block, because rotary state remains in effect beyond the RTCP modal (e.g. a non-RTCP G01 after G49 still inherits the last ABC from the program). The \"rotary dynamic\" distinction lives on the chain entry's KindKey alone and is read via HasDynamicEntry(JsonObject) by LinearMotionSyntax to pick ClLinear vs McLinear. G43.4 is used by Fanuc, Mazak, Syntec, and Okuma. Siemens (TRAORI) and Heidenhain (M128) are handled by separate syntaxes. Must be placed after ToolHeightOffsetSyntax (to override the ToolHeightCompensation entry when RTCP is active) and before PivotTransformationSyntax (which runs last in the chain). public class G43p4RtcpSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object G43p4RtcpSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Examples Explicit G43.4 H1 activation with no IMachineKinematics and no IToolOffsetConfig in the dependency list — exercises the activate path on its identity-matrix corner. The section is written with Offset_mm = 0 (no offset table → rawHeight = 0); the height-mat falls back to the no-kinematics branch new Mat4d { Trans = UnitZ * 0 } which collapses to identity; abcChanged is false (no current MC, no previous block) so the entry is tagged KindStatic. #BeforeBuild: { \"Parsing\": { \"G43.4\": { \"H\": \"1\" } } } #AfterBuild: { \"ToolHeightCompensation\": { \"Offset_mm\": 0, \"Term\": \"G43.4\", \"OffsetId\": 1 }, \"ProgramToMcTransform\": [ { \"Source\": \"ToolHeightCompensation\", \"Kind\": \"Static\", \"Mat4d\": [1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1] } ] } G43.4 H1 with ToolOffset(1 → 10 mm), a real XyzabcSolver (table-A / head-B 5-axis), and current block already carrying all three rotary axes in MachineCoordinateState (A=0, B=30, C=0 — as a prior McAbcSyntax in the chain would have written). The height-mat goes through MakeToolHeightMat(IMachineKinematics, Vec3d, double) which probes kinematics.McToPn(Zero, abc).Normal at abc = (0, π/6, 0) to get the tool orientation, then scales by 10 mm. With no previous block, abcChanged is false → entry stays Static. Note: all three ABC must be present (or fall back to the per-axis modal lookback path); a partial section with only B set leaves A/C as NaN and the resulting Mat4d.Trans would serialise as non-finite numbers. #BeforeBuild: { \"Parsing\": { \"G43.4\": { \"H\": \"1\" } }, \"MachineCoordinateState\": { \"A\": 0, \"B\": 30, \"C\": 0 } } #AfterBuild: { \"MachineCoordinateState\": { \"A\": 0, \"B\": 30, \"C\": 0 }, \"ToolHeightCompensation\": { \"Offset_mm\": 10, \"Term\": \"G43.4\", \"OffsetId\": 1 }, \"ProgramToMcTransform\": [ { \"Source\": \"ToolHeightCompensation\", \"Kind\": \"Static\", \"Mat4d\": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.999999999999999, 0, 8.660254037844387, 1 ] } ] } Same setup plus a #Previous: block with MachineCoordinateState.B = 0 + XYZ origin — DidAbcChange(LazyLinkedListNode, IMachineAxisConfig) compares the rotary deltas and finds B changed across the block, so the entry is tagged KindDynamic (signalling that the tool orientation varies along the contour): #Previous: { \"MachineCoordinateState\": { \"X\": 0, \"Y\": 0, \"Z\": 0, \"A\": 0, \"B\": 0, \"C\": 0 } } #BeforeBuild: { \"Parsing\": { \"G43.4\": { \"H\": \"1\" } }, \"MachineCoordinateState\": { \"A\": 0, \"B\": 30, \"C\": 0 } } #AfterBuild: { \"MachineCoordinateState\": { \"A\": 0, \"B\": 30, \"C\": 0 }, \"ToolHeightCompensation\": { \"Offset_mm\": 10, \"Term\": \"G43.4\", \"OffsetId\": 1 }, \"ProgramToMcTransform\": [ { \"Source\": \"ToolHeightCompensation\", \"Kind\": \"Dynamic\", \"Mat4d\": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.999999999999999, 0, 8.660254037844387, 1 ] } ] } Constructors G43p4RtcpSyntax() Initializes a new instance with default settings. public G43p4RtcpSyntax() G43p4RtcpSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public G43p4RtcpSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.LogicSyntaxs.G53p1RotaryPositionSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.G53p1RotaryPositionSyntax.html", "title": "Class G53p1RotaryPositionSyntax | HiAPI-C# 2025", - "summary": "Class G53p1RotaryPositionSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll G53.1 — non-modal, one-shot rotary axis positioning. Positions the rotary axes (A/B/C) to align the physical tool axis with the active tilted work plane defined by G68.2. XYZ position is unchanged; only rotary axes move via rapid traverse. Requires IsoG68p2TiltSyntax (or equivalent) to have written the tilt transform. Uses IMachineKinematics to solve for the target A/B/C via inverse kinematics. Must be placed after IsoG68p2TiltSyntax (needs tilt data) and before ProgramXyzSyntax in the syntax chain. Writes A/B/C into MachineCoordinateState. Motion is handled by LinearMotionSyntax via modal G00/G01. public class G53p1RotaryPositionSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object G53p1RotaryPositionSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Remarks When IMachineKinematics is not available (3-axis config), G53.1 is silently consumed with no positional effect. When G68.2 is not active, a validation error is reported. Optional explicit A/B/C on the G53.1 line (post-processor hints) override the IK result. These are read from Parsing via ConsumeAxis(JsonObject, string, ISentenceCarrier, NcDiagnosticProgress) and consumed to prevent McAbcSyntax from double-processing. Constructors G53p1RotaryPositionSyntax() Initializes a new instance with default settings. public G53p1RotaryPositionSyntax() G53p1RotaryPositionSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public G53p1RotaryPositionSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class G53p1RotaryPositionSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll G53.1 — non-modal, one-shot rotary axis positioning. Positions the rotary axes (A/B/C) to align the physical tool axis with the active tilted work plane defined by G68.2. XYZ position is unchanged; only rotary axes move via rapid traverse. Requires IsoG68p2TiltSyntax (or equivalent) to have written the tilt transform. Uses IMachineKinematics to solve for the target A/B/C via inverse kinematics. Must be placed after IsoG68p2TiltSyntax (needs tilt data) and before ProgramXyzSyntax in the syntax chain. Writes A/B/C into MachineCoordinateState. Motion is handled by LinearMotionSyntax via modal G00/G01. public class G53p1RotaryPositionSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object G53p1RotaryPositionSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Examples No-kinematics dep-guard early-return: standalone G53.1 with no IMachineKinematics dep in the list — the syntax detects the flag, finds no kinematics, and silently consumes the flag via ConsumeFlag. Empty Parsing is then removed by CleanupParsing(JsonObject), so the post-Build block is empty: #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G53.1\"] } } #AfterBuild: {} IK happy path — G53.1 with active G68.2 tilt on #Previous:, real XyzabcSolver (table-A / head-B 5-axis), and a TestDeps.AxisConfig(A=Rotary, B=Rotary) dep. The syntax reads the previous block's tilt Mat4d, solves OrientationToMcAbc(tiltMat.AxialNormal) for the rotary ABC, converts radians → degrees, writes MachineCoordinateState with both rotary axes (XYZ inherited from prevMc = Vec3d.Zero when no previous MC exists), and stamps ProgramXyz: #Previous: { \"TiltTransform\": { \"Term\": \"G68.2\", \"X\": 0, \"Y\": 0, \"Z\": 0, \"I\": 0, \"J\": 30, \"K\": 0 }, \"ProgramToMcTransform\": [ { \"Source\": \"TiltTransform\", \"Kind\": \"Static\", \"Mat4d\": [ 1, 0, 0, 0, 0, 0.8660254037844388, 0.5, 0, 0, -0.5, 0.8660254037844388, 0, 0, 0, 0, 1 ] } ] } #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G53.1\"] } } #AfterBuild: { \"MachineCoordinateState\": { \"X\": 0, \"Y\": 0, \"Z\": 0, \"A\": 29.942194198514308, \"B\": 0 }, \"ProgramXyz\": { \"X\": 0, \"Y\": 0, \"Z\": 0 } } Explicit ABC override — G53.1 A0 B45 on top of the same G68.2 tilt + kinematics + axis-config set up. The IK still solves, but the explicit A=0 and B=45 overrides what IK returned for those axes; C stays at the IK-solved value (C-axis is not present in the table-A/head-B layout, so the rotaryAxes loop only writes A and B): #Previous: { \"TiltTransform\": { \"Term\": \"G68.2\", \"X\": 0, \"Y\": 0, \"Z\": 0, \"I\": 0, \"J\": 30, \"K\": 0 }, \"ProgramToMcTransform\": [ { \"Source\": \"TiltTransform\", \"Kind\": \"Static\", \"Mat4d\": [ 1, 0, 0, 0, 0, 0.8660254037844388, 0.5, 0, 0, -0.5, 0.8660254037844388, 0, 0, 0, 0, 1 ] } ] } #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G53.1\"], \"A\": 0, \"B\": 45 } } #AfterBuild: { \"MachineCoordinateState\": { \"X\": 0, \"Y\": 0, \"Z\": 0, \"A\": 0, \"B\": 45 }, \"ProgramXyz\": { \"X\": 0, \"Y\": 0, \"Z\": 0 } } Remarks When IMachineKinematics is not available (3-axis config), G53.1 is silently consumed with no positional effect. When G68.2 is not active, a validation error is reported. Optional explicit A/B/C on the G53.1 line (post-processor hints) override the IK result. These are read from Parsing via ConsumeAxis(JsonObject, string, ISentenceCarrier, NcDiagnosticProgress) and consumed to prevent McAbcSyntax from double-processing. Constructors G53p1RotaryPositionSyntax() Initializes a new instance with default settings. public G53p1RotaryPositionSyntax() G53p1RotaryPositionSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public G53p1RotaryPositionSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCoordinateOffsetSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCoordinateOffsetSyntax.html", @@ -4452,7 +4432,7 @@ "api/Hi.NcParsers.LogicSyntaxs.HighSpeedPeckCycleSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.HighSpeedPeckCycleSyntax.html", "title": "Class HighSpeedPeckCycleSyntax | HiAPI-C# 2025", - "summary": "Class HighSpeedPeckCycleSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll G73 high-speed peck drilling cycle (chip breaking). Supports modal repetition. Drills in increments of depth Q, partially retracting by PeckRetractionDistance_mm between strokes (instead of fully back to R like PeckDrillingCycleSyntax). Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point For each stroke: feed Q deeper, rapid retract by d If remainder exists: feed to bottom Z, rapid retract by d Rapid to final (G98 → init Z, G99 → R) Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. public class HighSpeedPeckCycleSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object HighSpeedPeckCycleSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors HighSpeedPeckCycleSyntax() Initializes a new instance with default settings. public HighSpeedPeckCycleSyntax() HighSpeedPeckCycleSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public HighSpeedPeckCycleSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class HighSpeedPeckCycleSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll G73 high-speed peck drilling cycle (chip breaking). Supports modal repetition. Drills in increments of depth Q, partially retracting by PeckRetractionDistance_mm between strokes (instead of fully back to R like PeckDrillingCycleSyntax). Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point For each stroke: feed Q deeper, rapid retract by d If remainder exists: feed to bottom Z, rapid retract by d Rapid to final (G98 → init Z, G99 → R) Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. public class HighSpeedPeckCycleSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object HighSpeedPeckCycleSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Examples G73 G98 two-stroke chip-break — pre-populated CannedCycle (as CannedCycleResolveSyntax would have written), no #Previous: so initZ = 0, F=600 in the cycle section translated to 10 mm/s. Geometry: R=2, Z=-18, Q=10 → totalFeedLength = 20 → strokeCount = 2, no remainder. FallbackConfig default PeckRetractionDistance_mm = 5 sets the partial retract amount d. Per stroke, the chip-break rapid retracts to strokeZ + d (a small jump, in contrast to PeckDrillingCycleSyntax which rapids fully back to R). G98 final rapid is always emitted (no finalZ != rPoint guard here, unlike the G83 path). Seven items: init, R, feed-stroke1 (z=-8), rapid-to-strokeZ+d (z=-3), feed-stroke2 (z=-18), rapid-to-strokeZ+d (z=-13), final-init (z=0): #BeforeBuild: { \"Parsing\": { \"G73\": { \"X\": 50, \"Y\": 30, \"Z\": -18, \"R\": 2, \"Q\": 10, \"F\": 600 } }, \"CannedCycle\": { \"Term\": \"G73\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -18, \"R\": 2, \"Q\": 10 } } } #AfterBuild: { \"CannedCycle\": { \"Term\": \"G73\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -18, \"R\": 2, \"Q\": 10 } }, \"Feedrate\": { \"FeedrateValue\": 600, \"Term\": \"G94\", \"Unit\": \"mm/min\" }, \"CompoundMotion\": { \"Term\": \"G73\", \"Items\": [ { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 2 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": -8 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"Feedrate_mmds\": 10 } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": -3 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": -18 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"Feedrate_mmds\": 10 } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": -13 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } } ] }, \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 } } Constructors HighSpeedPeckCycleSyntax() Initializes a new instance with default settings. public HighSpeedPeckCycleSyntax() HighSpeedPeckCycleSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public HighSpeedPeckCycleSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.LogicSyntaxs.IncrementalResolveSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.IncrementalResolveSyntax.html", @@ -4472,7 +4452,7 @@ "api/Hi.NcParsers.LogicSyntaxs.IsoG68p2TiltSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.IsoG68p2TiltSyntax.html", "title": "Class IsoG68p2TiltSyntax | HiAPI-C# 2025", - "summary": "Class IsoG68p2TiltSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll ISO/Fanuc: resolves G68.2 (tilted work plane) and G69 (cancel). Computes a tilt Mat4d from I/J/K euler angles (Fanuc ZXZ convention) and composes it into ProgramToMcTransform. Managed commands: G68.2, G69 (idempotent with IsoG68RotationSyntax). Siemens equivalent: CYCLE800 (separate syntax). Heidenhain equivalent: PLANE SPATIAL (separate syntax). public class IsoG68p2TiltSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object IsoG68p2TiltSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Remarks G68.2 optionally uses IMachineKinematics dependency for IK refinement. The ZXZ euler convention is Fanuc-specific: Rz(K) * Rx(J) * Rz(I) * Translate(origin). Optional A/B/C parameters are post-processor rotary axis hints. When present and IMachineKinematics is available, the tilt is computed as: kinematicRotation(postAbc) * orientationDelta * Translate(origin) where orientationDelta = kinematicRotation(ijkAbc).Inverse * ijkRotation preserves the exact IJK orientation while aligning with the post-processor's solution. Constructors IsoG68p2TiltSyntax() Initializes a new instance with default settings. public IsoG68p2TiltSyntax() IsoG68p2TiltSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public IsoG68p2TiltSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class IsoG68p2TiltSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll ISO/Fanuc: resolves G68.2 (tilted work plane) and G69 (cancel). Computes a tilt Mat4d from I/J/K euler angles (Fanuc ZXZ convention) and composes it into ProgramToMcTransform. Managed commands: G68.2, G69 (idempotent with IsoG68RotationSyntax). Siemens equivalent: CYCLE800 (separate syntax). Heidenhain equivalent: PLANE SPATIAL (separate syntax). public class IsoG68p2TiltSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object IsoG68p2TiltSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Examples G69 cancel via TryHandleG69(JsonObject, JsonObject) — the kinematics-free short-circuit path that writes the identity tilt. Standalone G69 — the flag is consumed, TiltTransform is written with Term: \"G69\", and an identity Mat4d entry is added to ProgramToMcTransform so any previously composed tilt rotation is reset: #BeforeBuild: { \"Parsing\": { \"Flags\": [\"G69\"] } } #AfterBuild: { \"TiltTransform\": { \"Term\": \"G69\" }, \"ProgramToMcTransform\": [ { \"Source\": \"TiltTransform\", \"Kind\": \"Static\", \"Mat4d\": [1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1] } ] } G68.2 with IJK = (0, 30, 0) and no kinematics dep — exercises the pure ZXZ Fanuc euler math (Rz(K=0) * Rx(J=30°) * Rz(I=0) * Translate(0) = Rx(30°)) without any IK refinement. The TiltTransform section retains the G68.2 ctor params for debug; the chain entry's Mat4d is the rotation matrix: #BeforeBuild: { \"Parsing\": { \"G68.2\": { \"X\": 0, \"Y\": 0, \"Z\": 0, \"I\": 0, \"J\": 30, \"K\": 0 } } } #AfterBuild: { \"TiltTransform\": { \"Term\": \"G68.2\", \"X\": 0, \"Y\": 0, \"Z\": 0, \"I\": 0, \"J\": 30, \"K\": 0 }, \"ProgramToMcTransform\": [ { \"Source\": \"TiltTransform\", \"Kind\": \"Static\", \"Mat4d\": [ 1, 0, 0, 0, 0, 0.8660254037844387, 0.49999999999999994, 0, 0, -0.49999999999999994, 0.8660254037844387, 0, 0, 0, 0, 1 ] } ] } Same G68.2 IJK with a real XyzabcSolver (table-A / head-B 5-axis layout) — hasPostAbc is false but the kinematics solves OrientationToMcAbc(tiltByIjk) successfully, so the refinement path ijkAbcOrientation * orientationDelta * Translate(origin) runs. The resulting Mat4d preserves the IJK orientation but aligns it with the kinematic ABC solution: #BeforeBuild: { \"Parsing\": { \"G68.2\": { \"X\": 0, \"Y\": 0, \"Z\": 0, \"I\": 0, \"J\": 30, \"K\": 0 } } } #AfterBuild: { \"TiltTransform\": { \"Term\": \"G68.2\", \"X\": 0, \"Y\": 0, \"Z\": 0, \"I\": 0, \"J\": 30, \"K\": 0 }, \"ProgramToMcTransform\": [ { \"Source\": \"TiltTransform\", \"Kind\": \"Static\", \"Mat4d\": [ 1, 0, 0, 0, 0, 0.8660254037844388, 0.5, 0, 0, -0.5, 0.8660254037844388, 0, 0, 0, 0, 1 ] } ] } G68.2 IJK with explicit post-processor rotary hints A=0, B=30 — hasPostAbc is true, kinematics first solves tiltByIjk → ijkMcAbc, then overrides A/B with the explicit values to form postMcAbc; the final Mat4d combines postAbcOrient * orientationDeltaIjkToPost * Translate(origin). The TiltTransform section gains the consumed A and B entries: #BeforeBuild: { \"Parsing\": { \"G68.2\": { \"X\": 0, \"Y\": 0, \"Z\": 0, \"I\": 0, \"J\": 30, \"K\": 0 }, \"A\": 0, \"B\": 30 } } #AfterBuild: { \"TiltTransform\": { \"Term\": \"G68.2\", \"X\": 0, \"Y\": 0, \"Z\": 0, \"I\": 0, \"J\": 30, \"K\": 0, \"A\": 0, \"B\": 30 }, \"ProgramToMcTransform\": [ { \"Source\": \"TiltTransform\", \"Kind\": \"Static\", \"Mat4d\": [ 0.8660254037844387, 0.0002477343364339079, -0.4999999386276948, 0, 0, 0.9999998772553897, 0.0004954686728678159, 0, 0.49999999999999994, -0.00042908845748289027, 0.8660252974844881, 0, 0, 0, 0, 1 ] } ] } Remarks G68.2 optionally uses IMachineKinematics dependency for IK refinement. The ZXZ euler convention is Fanuc-specific: Rz(K) * Rx(J) * Rz(I) * Translate(origin). Optional A/B/C parameters are post-processor rotary axis hints. When present and IMachineKinematics is available, the tilt is computed as: kinematicRotation(postAbc) * orientationDelta * Translate(origin) where orientationDelta = kinematicRotation(ijkAbc).Inverse * ijkRotation preserves the exact IJK orientation while aligning with the post-processor's solution. Constructors IsoG68p2TiltSyntax() Initializes a new instance with default settings. public IsoG68p2TiltSyntax() IsoG68p2TiltSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public IsoG68p2TiltSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.LogicSyntaxs.IsoLocalCoordinateOffsetSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.IsoLocalCoordinateOffsetSyntax.html", @@ -4512,12 +4492,12 @@ "api/Hi.NcParsers.LogicSyntaxs.PeckDrillingCycleSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.PeckDrillingCycleSyntax.html", "title": "Class PeckDrillingCycleSyntax | HiAPI-C# 2025", - "summary": "Class PeckDrillingCycleSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll G83 peck drilling cycle. Supports modal repetition. Drills in increments of depth Q, fully retracting to R between strokes. Cycle sequence (per stroke): Rapid to init position (target XY, previous Z) Rapid from init to R-point For each stroke: rapid to clearance above previous depth, feed Q deeper, rapid back to R If remainder exists: feed to bottom Z, rapid to R Rapid from R/bottom to final (G98 → init Z, G99 → R) Retraction distance is read from ICannedCycleConfig (Fanuc #4002 / Syntec Pr4002, or FallbackConfig fallback). Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. public class PeckDrillingCycleSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object PeckDrillingCycleSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Remarks G73 (high-speed peck) retracts only a small distance instead of fully back to R — see HighSpeedPeckCycleSyntax. Constructors PeckDrillingCycleSyntax() Initializes a new instance with default settings. public PeckDrillingCycleSyntax() PeckDrillingCycleSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public PeckDrillingCycleSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class PeckDrillingCycleSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll G83 peck drilling cycle. Supports modal repetition. Drills in increments of depth Q, fully retracting to R between strokes. Cycle sequence (per stroke): Rapid to init position (target XY, previous Z) Rapid from init to R-point For each stroke: rapid to clearance above previous depth, feed Q deeper, rapid back to R If remainder exists: feed to bottom Z, rapid to R Rapid from R/bottom to final (G98 → init Z, G99 → R) Retraction distance is read from ICannedCycleConfig (Fanuc #4002 / Syntec Pr4002, or FallbackConfig fallback). Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. public class PeckDrillingCycleSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object PeckDrillingCycleSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Examples Both cases below pre-populate CannedCycle as CannedCycleResolveSyntax would have written it. There is no #Previous:, so GetLastProgramXyz returns Vec3d.Zero → initZ = 0. A FallbackConfig dep with the default PeckRetractionDistance_mm = 5 is injected via BuildAndDump(..., deps:). Cycle parameters are chosen so totalFeedLength = R − bottomZ = 10 and Q = 10 → exactly one stroke, no remainder; the items list stays minimal. G83 G98 — rapid to init (z=0), rapid to R=2, feed to bottom Z=-8 at F=600 mm/min → 10 mm/s, rapid back to R=2, then a final rapid to init Z=0 (G98). Five items: #BeforeBuild: { \"Parsing\": { \"G83\": { \"X\": 50, \"Y\": 30, \"Z\": -8, \"R\": 2, \"Q\": 10, \"F\": 600 } }, \"CannedCycle\": { \"Term\": \"G83\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -8, \"R\": 2, \"Q\": 10 } } } #AfterBuild: { \"CannedCycle\": { \"Term\": \"G83\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -8, \"R\": 2, \"Q\": 10 } }, \"Feedrate\": { \"FeedrateValue\": 600, \"Term\": \"G94\", \"Unit\": \"mm/min\" }, \"CompoundMotion\": { \"Term\": \"G83\", \"Items\": [ { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 2 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": -8 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"Feedrate_mmds\": 10 } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 2 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } } ] }, \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 } } G83 G99 — same cycle but the return mode is R-point. Since the retract-to-R rapid already lands at z = R, the finalZ != rPoint guard skips the extra final-rapid item. Four items, and the block's ProgramXyz lookback anchor lands at R-point: #BeforeBuild: { \"Parsing\": { \"G83\": { \"X\": 50, \"Y\": 30, \"Z\": -8, \"R\": 2, \"Q\": 10, \"F\": 600 } }, \"CannedCycle\": { \"Term\": \"G83\", \"ReturnMode\": \"G99\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -8, \"R\": 2, \"Q\": 10 } } } #AfterBuild: { \"CannedCycle\": { \"Term\": \"G83\", \"ReturnMode\": \"G99\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -8, \"R\": 2, \"Q\": 10 } }, \"Feedrate\": { \"FeedrateValue\": 600, \"Term\": \"G94\", \"Unit\": \"mm/min\" }, \"CompoundMotion\": { \"Term\": \"G83\", \"Items\": [ { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 2 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": -8 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"Feedrate_mmds\": 10 } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 2 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } } ] }, \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 2 } } Remarks G73 (high-speed peck) retracts only a small distance instead of fully back to R — see HighSpeedPeckCycleSyntax. Constructors PeckDrillingCycleSyntax() Initializes a new instance with default settings. public PeckDrillingCycleSyntax() PeckDrillingCycleSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public PeckDrillingCycleSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.LogicSyntaxs.PivotTransformationSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.PivotTransformationSyntax.html", "title": "Class PivotTransformationSyntax | HiAPI-C# 2025", - "summary": "Class PivotTransformationSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll Writes the PivotTransformSource entry into ProgramToMcTransform on every block, capturing the Pn→MC kinematic rigid transform for the block's endpoint rotary state. Mirrors legacy HardNcLine.GetProgramXyz's use of McToPn(DVec3d) — without this entry, the transform chain would miss the rotary rotation on any block whose MachineCoordinate.ABC is non-zero, and McXyzSyntax (and ProgramXyzSyntax's inverse lookback) would silently drift. Scope is not limited to RTCP modal: as long as rotary axes are physically at a non-zero position (e.g. after a non-RTCP G00 B90 plus any subsequent motion), the kinematic chain still contributes a non-identity rigid transform that must appear in the endpoint chain. G43p4RtcpSyntax is orthogonal and only governs the dynamic-rotary KindKey tagging used by LinearMotionSyntax to pick the motion form. Chain position: must run after all Pn-frame writers (IsoG68p2TiltSyntax, ToolHeightOffsetSyntax, G43p4RtcpSyntax, IsoCoordinateOffsetSyntax, brand-specific coord offset syntaxes) so the PivotTransform entry naturally lands as the last chain element. Must run before McXyzSyntax / ProgramXyzSyntax so they see the completed chain. Silently no-ops when IMachineKinematics is absent (3-axis configurations without rotary kinematics). public class PivotTransformationSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object PivotTransformationSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors PivotTransformationSyntax() Initializes a new instance with default settings. public PivotTransformationSyntax() PivotTransformationSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public PivotTransformationSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class PivotTransformationSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll Writes the PivotTransformSource entry into ProgramToMcTransform on every block, capturing the Pn→MC kinematic rigid transform for the block's endpoint rotary state. Mirrors legacy HardNcLine.GetProgramXyz's use of McToPn(DVec3d) — without this entry, the transform chain would miss the rotary rotation on any block whose MachineCoordinate.ABC is non-zero, and McXyzSyntax (and ProgramXyzSyntax's inverse lookback) would silently drift. Scope is not limited to RTCP modal: as long as rotary axes are physically at a non-zero position (e.g. after a non-RTCP G00 B90 plus any subsequent motion), the kinematic chain still contributes a non-identity rigid transform that must appear in the endpoint chain. G43p4RtcpSyntax is orthogonal and only governs the dynamic-rotary KindKey tagging used by LinearMotionSyntax to pick the motion form. Chain position: must run after all Pn-frame writers (IsoG68p2TiltSyntax, ToolHeightOffsetSyntax, G43p4RtcpSyntax, IsoCoordinateOffsetSyntax, brand-specific coord offset syntaxes) so the PivotTransform entry naturally lands as the last chain element. Must run before McXyzSyntax / ProgramXyzSyntax so they see the completed chain. Silently no-ops when IMachineKinematics is absent (3-axis configurations without rotary kinematics). public class PivotTransformationSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object PivotTransformationSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Examples Identity probe — a TestDeps.Kinematics stub that makes McToPn pass through XYZ and return a fixed UnitZ normal, so MakePivotTransformMat(IMachineKinematics, Vec3d)'s four-basis probing returns identity K(0) and K(abc), and the product K(0) * K(abc).GetInverse() collapses to identity. With no current or previous MachineCoordinateState, endpoint ABC defaults to (0,0,0); no dynamic entries exist yet so the entry is tagged KindStatic. Case for the dep-guard contract only; the real kinematics paths are covered by the cases below. #BeforeBuild: {} #AfterBuild: { \"ProgramToMcTransform\": [ { \"Source\": \"PivotTransform\", \"Kind\": \"Static\", \"Mat4d\": [1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1] } ] } Real XyzabcSolver (table-A / head-B 5-axis layout [O][Z][A][w];[O][Y][X][B][S][t]) with current block declaring MachineCoordinateState.A = 45 — endpoint ABC = (π/4, 0, 0) radians. Table-side A rotation moves the tool position in the workpiece frame, so MakePivotTransformMat's four-basis probe returns a non-identity rigid matrix. The exact Mat4d below was captured from BuildAndDump's actual output (per gotcha #2: rad/deg trig drift, always dump first): #BeforeBuild: { \"MachineCoordinateState\": { \"A\": 45 } } #AfterBuild: { \"MachineCoordinateState\": { \"A\": 45 }, \"ProgramToMcTransform\": [ { \"Source\": \"PivotTransform\", \"Kind\": \"Static\", \"Mat4d\": [ 1, 0, 0, 0, 0, 0.7071067811865475, -0.7071067811865475, 0, 0, 0.7071067811865475, 0.7071067811865475, 0, 0, 0, 0, 1 ] } ] } Stub TestDeps.Kinematics with a pre-existing Dynamic chain entry on the current block (as G43p4RtcpSyntax would have written when RTCP is dynamic). HasDynamicEntry(JsonObject) returns true so the PivotTransform entry is tagged KindDynamic even though the math itself collapses to identity: #BeforeBuild: { \"ProgramToMcTransform\": [ { \"Source\": \"ToolHeightCompensation\", \"Kind\": \"Dynamic\", \"Mat4d\": [1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1] } ] } #AfterBuild: { \"ProgramToMcTransform\": [ { \"Source\": \"ToolHeightCompensation\", \"Kind\": \"Dynamic\", \"Mat4d\": [1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1] }, { \"Source\": \"PivotTransform\", \"Kind\": \"Dynamic\", \"Mat4d\": [1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1] } ] } Constructors PivotTransformationSyntax() Initializes a new instance with default settings. public PivotTransformationSyntax() PivotTransformationSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public PivotTransformationSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.LogicSyntaxs.PlaneSelectSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.PlaneSelectSyntax.html", @@ -4557,7 +4537,7 @@ "api/Hi.NcParsers.LogicSyntaxs.ReferenceReturnSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.ReferenceReturnSyntax.html", "title": "Class ReferenceReturnSyntax | HiAPI-C# 2025", - "summary": "Class ReferenceReturnSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll G28 reference point return syntax. Behaviour is documented in detail on the example attached to BareG28Behavior; this class is the ISituNcSyntax implementation that the BareG28 property configures. public class ReferenceReturnSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object ReferenceReturnSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors ReferenceReturnSyntax() Initializes a new instance with default settings (BareG28 = Alarm). public ReferenceReturnSyntax() ReferenceReturnSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public ReferenceReturnSyntax(XElement src) Parameters src XElement Source XML element. Properties BareG28 Behaviour for a G28 block with no axis specifiers. Defaults to Alarm. public BareG28Behavior BareG28 { get; set; } Property Value BareG28Behavior Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class ReferenceReturnSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll Writes ICompoundMotionDef section for G28 reference point return. Reads intermediate XYZ from Parsing.G28 (written by G28Syntax) and converts to machine coordinates via ResolveProgramXyz(JsonNode, LazyLinkedListNode, ISentenceCarrier, NcDiagnosticProgress). Must be placed after LinearMotionSyntax in the syntax chain. Removes the IMotionEventDef section written by LinearMotionSyntax (G28 handles its own motion). Overwrites root MachineCoordinateState and ProgramXyz with reference position for subsequent block lookback. public class ReferenceReturnSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object ReferenceReturnSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Examples All cases hardcode a TestDeps.HomeMc with X/Y home at 0 and Z home at 100 (typical mill where Z-home is above the table) and leave the ProgramToMcTransform chain at identity so the final ProgramXyz equals MachineCoordinateState. The G28 pattern emits a 2-item CompoundMotion: item 0 is the intermediate point in ProgramXyz, item 1 is the final position in MachineCoordinateState. Axes not present in the G28 block keep the previous-block MC value rather than going home. G91 G28 X0 Y0 Z0 with a #Previous: block carrying MachineCoordinateState=(50,60,70) — all three axes go home, so the final MC is the configured home (0,0,100): #Previous: { \"MachineCoordinateState\": { \"X\": 50, \"Y\": 60, \"Z\": 70 } } #BeforeBuild: { \"Parsing\": { \"G28\": { \"X\": 0, \"Y\": 0, \"Z\": 0 } } } #AfterBuild: { \"CompoundMotion\": { \"Term\": \"G28\", \"Items\": [ { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"ProgramXyz\": { \"X\": 0, \"Y\": 0, \"Z\": 0 } }, { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"MachineCoordinateState\": { \"X\": 0, \"Y\": 0, \"Z\": 100 } } ] }, \"ProgramXyz\": { \"X\": 0, \"Y\": 0, \"Z\": 100 } } G91 G28 Z0 — only Z goes to its home; X/Y inherit from the previous block's MC. Item 0's intermediate ProgramXyz takes X/Y from the inherited program XYZ (= previous MC under identity transform) and Z from the literal 0 in the G28 block: #Previous: { \"MachineCoordinateState\": { \"X\": 50, \"Y\": 60, \"Z\": 70 } } #BeforeBuild: { \"Parsing\": { \"G28\": { \"Z\": 0 } } } #AfterBuild: { \"CompoundMotion\": { \"Term\": \"G28\", \"Items\": [ { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"ProgramXyz\": { \"X\": 50, \"Y\": 60, \"Z\": 0 } }, { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"MachineCoordinateState\": { \"X\": 50, \"Y\": 60, \"Z\": 100 } } ] }, \"ProgramXyz\": { \"X\": 50, \"Y\": 60, \"Z\": 100 } } No IHomeMcConfig dep on the dependency list — the syntax early-returns and the G28 sub-section stays in Parsing for an upstream consumer or downstream syntax to handle: #BeforeBuild: { \"Parsing\": { \"G28\": { \"X\": 0, \"Y\": 0, \"Z\": 0 } } } #AfterBuild: { \"Parsing\": { \"G28\": { \"X\": 0, \"Y\": 0, \"Z\": 0 } } } Rotary cases below add TestDeps.AxisConfig declaring B as rotary and extend HomeMc with the conventional B home at 0°. Each rotary block uses literal B = 45° so item 0's intermediate (45°), item 1's home (0°), and #Previous: modal B (30°) are pairwise distinct — a test that swaps any two values for any other is caught by the assertion. The wrap pass (McAbcCyclicPathSyntax) is a different syntax, so these per-SUT conformance assertions show only the raw literal / canonical-home values written by this syntax, before any cyclic normalization runs. G91 G28 B45. — pure rotary G28. Emits a 2-item CompoundMotion whose items carry only ABC keys in MC; no XYZ ProgramXyz and no XYZ MC because the block doesn't reference X/Y/Z (and the conformance harness doesn't run McXyzSyntax downstream — in the full pipeline that syntax fills root MachineCoordinateState's XYZ from root ProgramXyz, but with no XYZ in the block there's nothing to fill anyway). Root MC.B holds the canonical home for modal carry-forward; root ProgramXyz is not written: #BeforeBuild: { \"Parsing\": { \"G28\": { \"B\": 45 } } } #AfterBuild: { \"MachineCoordinateState\": { \"B\": 0 }, \"CompoundMotion\": { \"Term\": \"G28\", \"Items\": [ { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"MachineCoordinateState\": { \"B\": 45 } }, { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"MachineCoordinateState\": { \"B\": 0 } } ] } } G28 X0. B45. mixed XYZ + rotary. Both axis kinds occupy the same two items: item 0 carries the XYZ intermediate ProgramXyz alongside the rotary literal in MC; item 1 carries the final XYZ MC alongside the rotary home in MC. Root MachineCoordinateState here holds only the rotary modal value (B = 0, the home); the XYZ portion of root MC would be filled by the downstream McXyzSyntax in the full pipeline (out of scope for this per-SUT conformance). Root MachineCoordinateState appears first because the rotary-home write happens before CompoundMotion / ProgramXyz are inserted. #Previous: carries B = 30 so the prev rotary modal is distinct from both the literal (45) and the home (0): #Previous: { \"MachineCoordinateState\": { \"X\": 50, \"Y\": 60, \"Z\": 70, \"B\": 30 } } #BeforeBuild: { \"Parsing\": { \"G28\": { \"X\": 0, \"B\": 45 } } } #AfterBuild: { \"MachineCoordinateState\": { \"B\": 0 }, \"CompoundMotion\": { \"Term\": \"G28\", \"Items\": [ { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"ProgramXyz\": { \"X\": 0, \"Y\": 60, \"Z\": 70 }, \"MachineCoordinateState\": { \"B\": 45 } }, { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"MachineCoordinateState\": { \"X\": 0, \"Y\": 60, \"Z\": 70, \"B\": 0 } } ] }, \"ProgramXyz\": { \"X\": 0, \"Y\": 60, \"Z\": 70 } } Bare G28 — no axis specifiers — exercises the configurable BareG28 policy. Default Alarm emits Coord-RefReturn--003 and consumes the G28 without motion (the diagnostic surfaces through the NcDiagnosticProgress sink, not the block JSON, so the canonical #AfterBuild is just an empty object): #BeforeBuild: { \"Parsing\": { \"G28\": {} } } #AfterBuild: {} Bare G28 with BareG28 set to AllAxesHome: the syntax synthesises a literal at the inherited program position for every configured linear axis and the previous modal angle for every configured rotary axis (here X/Y/Z taken from the #Previous: MC under the identity ProgramToMcTransform, B taken from the prev modal). Item 0's intermediate therefore equals current (no motion in stage 1) and item 1 sends each axis to its home: #Previous: { \"MachineCoordinateState\": { \"X\": 10, \"Y\": 20, \"Z\": 30, \"B\": 45 } } #BeforeBuild: { \"Parsing\": { \"G28\": {} } } #AfterBuild: { \"MachineCoordinateState\": { \"B\": 0 }, \"CompoundMotion\": { \"Term\": \"G28\", \"Items\": [ { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"ProgramXyz\": { \"X\": 10, \"Y\": 20, \"Z\": 30 }, \"MachineCoordinateState\": { \"B\": 45 } }, { \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true }, \"MachineCoordinateState\": { \"X\": 0, \"Y\": 0, \"Z\": 100, \"B\": 0 } } ] }, \"ProgramXyz\": { \"X\": 0, \"Y\": 0, \"Z\": 100 } } Constructors ReferenceReturnSyntax() Initializes a new instance with default settings (BareG28 = Alarm). public ReferenceReturnSyntax() ReferenceReturnSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public ReferenceReturnSyntax(XElement src) Parameters src XElement Source XML element. Properties BareG28 Behaviour for a G28 block with no axis specifiers. Defaults to Alarm. public BareG28Behavior BareG28 { get; set; } Property Value BareG28Behavior Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.LogicSyntaxs.RotaryAxisUtil.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.RotaryAxisUtil.html", @@ -4582,7 +4562,7 @@ "api/Hi.NcParsers.LogicSyntaxs.TappingCycleSyntax.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.TappingCycleSyntax.html", "title": "Class TappingCycleSyntax | HiAPI-C# 2025", - "summary": "Class TappingCycleSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll G84 (right-hand) / G74 (left-hand) tapping cycles. Supports modal repetition. Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point Feed from R-point to bottom Z Spindle reverse at bottom Feed retract to final Z (G98 → init Z, G99 → R) Spindle restore to forward direction G84: forward = CW (M03), reverse = CCW (M04). G74: forward = CCW (M04), reverse = CW (M03). Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. public class TappingCycleSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object TappingCycleSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors TappingCycleSyntax() Initializes a new instance with default settings. public TappingCycleSyntax() TappingCycleSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public TappingCycleSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + "summary": "Class TappingCycleSyntax Namespace Hi.NcParsers.LogicSyntaxs Assembly HiMech.dll G84 (right-hand) / G74 (left-hand) tapping cycles. Supports modal repetition. Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point Feed from R-point to bottom Z Spindle reverse at bottom Feed retract to final Z (G98 → init Z, G99 → R) Spindle restore to forward direction G84: forward = CW (M03), reverse = CCW (M04). G74: forward = CCW (M04), reverse = CW (M03). Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. public class TappingCycleSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object TappingCycleSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Examples Both cases G98 — pre-populated CannedCycle, no #Previous: so initZ = 0, F=600 → 10 mm/s. Six items each: init, R, feed-down, spindle reverse, feed retract, spindle restore. The retract is a feed (not a rapid) because the tap is physically threaded into the workpiece and a rapid would strip the threads. G84 right-hand — forward CW (M03), reverse CCW (M04) at the bottom to back out, then restore CW after retract: #BeforeBuild: { \"Parsing\": { \"G84\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2, \"F\": 600 } }, \"CannedCycle\": { \"Term\": \"G84\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } } } #AfterBuild: { \"CannedCycle\": { \"Term\": \"G84\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } }, \"Feedrate\": { \"FeedrateValue\": 600, \"Term\": \"G94\", \"Unit\": \"mm/min\" }, \"CompoundMotion\": { \"Term\": \"G84\", \"Items\": [ { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 2 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": -10 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"Feedrate_mmds\": 10 } }, { \"SpindleControl\": { \"Direction\": \"CCW\" } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"Feedrate_mmds\": 10 } }, { \"SpindleControl\": { \"Direction\": \"CW\" } } ] }, \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 } } G74 left-hand — same shape but the two spindle items are flipped: forward CCW (M04), reverse CW (M03) at the bottom, restore CCW after retract. Tests that the syntax dispatches on cycleCode == G84 to pick the right pair: #BeforeBuild: { \"Parsing\": { \"G74\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2, \"F\": 600 } }, \"CannedCycle\": { \"Term\": \"G74\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } } } #AfterBuild: { \"CannedCycle\": { \"Term\": \"G74\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 50, \"Y\": 30, \"Z\": -10, \"R\": 2 } }, \"Feedrate\": { \"FeedrateValue\": 600, \"Term\": \"G94\", \"Unit\": \"mm/min\" }, \"CompoundMotion\": { \"Term\": \"G74\", \"Items\": [ { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 2 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": true } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": -10 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"Feedrate_mmds\": 10 } }, { \"SpindleControl\": { \"Direction\": \"CW\" } }, { \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 }, \"MotionEvent\": { \"Form\": \"McLinear\", \"Feedrate_mmds\": 10 } }, { \"SpindleControl\": { \"Direction\": \"CCW\" } } ] }, \"ProgramXyz\": { \"X\": 50, \"Y\": 30, \"Z\": 0 } } Constructors TappingCycleSyntax() Initializes a new instance with default settings. public TappingCycleSyntax() TappingCycleSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public TappingCycleSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.LogicSyntaxs.TiltTransformUtil.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.TiltTransformUtil.html", @@ -4607,7 +4587,7 @@ "api/Hi.NcParsers.LogicSyntaxs.html": { "href": "api/Hi.NcParsers.LogicSyntaxs.html", "title": "Namespace Hi.NcParsers.LogicSyntaxs | HiAPI-C# 2025", - "summary": "Namespace Hi.NcParsers.LogicSyntaxs Classes BackBoringSyntax G87 back boring cycle. Supports modal repetition. Cuts upward from Z to R — used to bore the back side of a workpiece. Cycle sequence: Oriented spindle stop (OSS) at current position Rapid (shifted) to init position, then down to bottom Z — tool enters pre-drilled hole without contacting bore wall Shift back to hole center at bottom Spindle start (CW) Feed upward from Z to R-point (back boring cut) Oriented spindle stop at R Tool shift, rapid retract (shifted) to final Z Shift back to center, spindle restart Q specifies the lateral shift distance (mm). Shift direction defaults to +X (OSS angle 0°). Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax before this syntax runs. BoringCycleSyntax G85/G86/G89 boring cycles. Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point Feed from R-point to bottom Z [G86 only] Spindle stop at bottom [G89 only] Dwell P seconds at bottom Retract: G85/G89 → feed retract, G86 → rapid retract [G86 only] Spindle restart (CW) after retract G85: feed to Z, feed retract — smooth bore finish. G86: feed to Z, spindle stop (implicit), rapid retract. G89: feed to Z, dwell P, feed retract — like G85 with bottom dwell. Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. CannedCycleResolveSyntax Resolves the canned-cycle Group-09 state for the current block and writes the result to the CannedCycle section. Active cycle (direct G81..G89 or modal repeat): merges Parsing overrides with previous-cycle stored params, applies G91 incremental-to-absolute conversion and missing-axis fallback, writes CannedCycle with Term, ReturnMode, and Params. The resolved cycle sub-section is left in Parsing under the cycle code for downstream cycle syntaxes (DrillingCycleSyntax, etc.) to read. Explicit cancel (G80 flag present on a non-cycle block): consumes the G80 flag and writes CannedCycle = { Term: \"G80\" }, acting as a hard sentinel for Hi.NcParsers.LogicSyntaxs.CannedCycleSyntaxUtil modal lookback. No Group-09 activity: leaves the block untouched. Must be placed after PositioningSyntax and before the individual cycle syntaxes in the chain. CircularMotionSyntax Writes McArc motion for circular commands (ISO G02/G03). Detects motion mode from Flags, reads I/J/K center offsets or R radius from Parsing, computes arc center in program coordinates, and writes a one-shot MotionEvent (form + arc params) plus a modal MotionState (Term). G02/G03 mode is modal (Group 01) — persists across blocks via Term. Arc parameters (I/J/K/R) are per-block and must be present in every arc block. Must be placed before LinearMotionSyntax in the syntax chain. Both share the Group 01 motion slot; whichever writes a MotionEvent first claims it. CoolantSyntax Consumes M07 (mist ON), M08 (flood ON), and M09 (coolant OFF) from Flags and writes the ICoolantDef section with both IsOn (convenience flag) and Mode (abstract mode name: Flood / Mist / Off). Modal — persists via backward lookback. CoordinateOffsetUtil Shared utilities for all coordinate offset syntaxes (ISO, Siemens, Heidenhain). Handles section IO, backward lookback, and ProgramToMcTransform composition. DrillingCycleSyntax G81/G82 drilling cycle (rapid retract). Supports modal repetition. G82 covers G81 — the only difference is an optional dwell (P) at the bottom. Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point Feed from R-point to bottom Z [G82 only] Dwell P seconds at bottom Rapid from bottom to final (G98 → init Z, G99 → R) Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. FanucPathSmoothingSyntax Consumes Fanuc G05.1 (high-precision contour / AICC II / Nano Smoothing) and records the modal state in the PathSmoothing JSON section using the FanucPathSmoothing schema. Q1 enables, Q0 disables; the optional R{n} precision-level is preserved as Level. The simulation does not alter the tool path — this is a controller-internal interpolation black box; the captured state exists for bidirectional NC-text reconstruction. Modal carry to subsequent blocks is handled by ModalCarrySyntax, which already tracks the PathSmoothing section key and deep-clones it forward. FeedrateSyntax Consumes F (feedrate) from Parsing and G94/G95 mode from Flags. Both are modal — persist across blocks via backward node lookback. Writes resolved state to a IFeedrateDef section. FineBoringSyntax G76 fine boring cycle. Supports modal repetition. Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point Feed from R-point to bottom Z Oriented spindle stop (OSS) Tool shift by Q in +X direction (clear bore wall) Rapid retract (shifted) to final Z Tool shift back to center Spindle restart (CW) Q specifies the lateral shift distance (mm) to avoid dragging the tool across the finished bore surface during retract. Shift direction defaults to +X (OSS angle 0°). Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax before this syntax runs. G43p4RtcpSyntax Handles G43.4 RTCP (Rotary Tool Center Point) activation. Writes the IToolHeightCompensationDef section and the ToolHeightCompensationSource entry in ProgramToMcTransform — a tool-normal · offset_mm translation at the block endpoint ABC. The chain entry is tagged KindDynamic when RTCP is active and ABC changes across the block, and KindStatic otherwise. The RTCP kinematic rotary part (Pn→MC rigid transform) is orthogonal to this syntax and is written by PivotTransformationSyntax on every block, because rotary state remains in effect beyond the RTCP modal (e.g. a non-RTCP G01 after G49 still inherits the last ABC from the program). The \"rotary dynamic\" distinction lives on the chain entry's KindKey alone and is read via HasDynamicEntry(JsonObject) by LinearMotionSyntax to pick ClLinear vs McLinear. G43.4 is used by Fanuc, Mazak, Syntec, and Okuma. Siemens (TRAORI) and Heidenhain (M128) are handled by separate syntaxes. Must be placed after ToolHeightOffsetSyntax (to override the ToolHeightCompensation entry when RTCP is active) and before PivotTransformationSyntax (which runs last in the chain). G53p1RotaryPositionSyntax G53.1 — non-modal, one-shot rotary axis positioning. Positions the rotary axes (A/B/C) to align the physical tool axis with the active tilted work plane defined by G68.2. XYZ position is unchanged; only rotary axes move via rapid traverse. Requires IsoG68p2TiltSyntax (or equivalent) to have written the tilt transform. Uses IMachineKinematics to solve for the target A/B/C via inverse kinematics. Must be placed after IsoG68p2TiltSyntax (needs tilt data) and before ProgramXyzSyntax in the syntax chain. Writes A/B/C into MachineCoordinateState. Motion is handled by LinearMotionSyntax via modal G00/G01. HighSpeedPeckCycleSyntax G73 high-speed peck drilling cycle (chip breaking). Supports modal repetition. Drills in increments of depth Q, partially retracting by PeckRetractionDistance_mm between strokes (instead of fully back to R like PeckDrillingCycleSyntax). Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point For each stroke: feed Q deeper, rapid retract by d If remainder exists: feed to bottom Z, rapid retract by d Rapid to final (G98 → init Z, G99 → R) Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. IncrementalResolveSyntax Resolves G91 incremental axis values to absolute in-place within Parsing and its sub-sections. Reads Term written by PositioningSyntax. WorkingPathList specifies which JSON paths contain axis values that need incremental-to-absolute conversion. Default: [[\"Parsing\"], [\"Parsing\", \"G28\"]]. All matching paths are converted. Canned cycle paths (Parsing.G81, G82, G83, …) are intentionally excluded — their Z/R incremental semantics differ from normal axes (R is relative to init level, Z is relative to R-point). Resolution is handled by ResolveCycleCoordinates(JsonObject, Vec3d, double?, double?, double, double) inside each cycle syntax class, which runs before this syntax. Uses AxisNames to determine which tags are motion axes. Traces backward nodes for last known ProgramXyz to resolve incremental values. After this syntax, all axis values in the working paths are absolute — ProgramXyzSyntax can consume them without incremental logic. IsoCoordinateOffsetSyntax ISO/Fanuc/Mazak/Okuma/Syntec: resolves G54–G59.9 work coordinate offset. Reads G54/G55/.../G59.9 from Flags, looks up offset Vec3d via IIsoCoordinateConfig dependencies (e.g. brand parameter table or IsoCoordinateTable), composes into ProgramToMcTransform. Modal — active coordinate persists via backward lookback. Default coordinate ID is set by StaticInitializer. IsoG68RotationSyntax ISO/Fanuc: resolves G68 (2D coordinate rotation) and G69 (cancel). Computes a rotation Mat4d around the active plane normal and composes it into ProgramToMcTransform. No IMachineKinematics dependency needed — G68 is pure geometric rotation. Managed commands: G68, G69 (idempotent with IsoG68p2TiltSyntax). IsoG68p2TiltSyntax ISO/Fanuc: resolves G68.2 (tilted work plane) and G69 (cancel). Computes a tilt Mat4d from I/J/K euler angles (Fanuc ZXZ convention) and composes it into ProgramToMcTransform. Managed commands: G68.2, G69 (idempotent with IsoG68RotationSyntax). Siemens equivalent: CYCLE800 (separate syntax). Heidenhain equivalent: PLANE SPATIAL (separate syntax). IsoLocalCoordinateOffsetSyntax ISO G52: Local coordinate system offset (additive to G54-series). G52 X10 Y20 Z5 → sets local offset. G52 X0 Y0 Z0 → cancels (resets to zero). M30 (program end) → also cancels. Reads Parsing.G52 (from G52Syntax), writes IsoLocalCoordinateOffset section, and adds an \"IsoLocalCoordinateOffset\" entry to the transformation chain. Modal — persists via backward lookback until changed or cancelled. LinearMotionSyntax Writes McLinear motion for linear commands (ISO G00/G01, Heidenhain L/LN). Detects motion mode from Flags, writes a one-shot MotionEvent section (form + isRapid) plus a modal MotionState section (Term) when MachineCoordinateState exists on the block. McLinearMotionSemantic discriminates between XYZ-only and XYZABC motion by checking whether rotary axis values are present in MachineCoordinateState. Must be placed after McAbcSyntax in the syntax chain. MachineCoordSelectSyntax Handles G53 (machine coordinate selection) — non-modal, one-shot. The axis values (X/Y/Z) in the block are interpreted as machine coordinates, bypassing all work offsets, local coordinates, tool height compensation, and coordinate rotations. If G91 (incremental) is active, G53 is ignored per ISO standard. Must be placed before ProgramXyzSyntax in the syntax chain. When G53 is active, this syntax consumes X/Y/Z from Parsing and writes MachineCoordinateState directly, preventing ProgramXyzSyntax from processing them as program coordinates. McAbcCyclicPathSyntax Resolve modular rotary axes to the shortest cyclic path relative to the previous node. Uses IsModularRotary(string) to determine which axes within MachineCoordinateState need cyclic resolution. Falls back to hardcoded A/B/C if no IMachineAxisConfig is available. Must be placed after ProgramXyzSyntax in NcSyntaxList. Two stages, mirroring McXyzSyntax: Root MachineCoordinateState — anchored at the previous block's modal rotary state. CompoundMotion.ItemsKey[*] — sequential walk through items, anchoring item 0 at the previous block's modal state and item i > 0 at item i-1's post-cycle value (per-axis chain). Items without a rotary MachineCoordinateState are skipped. The items pass enables rotary motion (e.g. G28 ABC intermediate / home stages) to surface as motion IAct segments rather than a single root-MC stamp. McAbcSyntax Writes rotary axis values (A/B/C) into MachineCoordinateState from Parsing and modal lookback. Only active when IMachineAxisConfig declares rotary axes. Works for both 3+2-axis (no IMachineKinematics) and simultaneous 5-axis configurations. This syntax is intentionally ABC-only. When the block is rotary-only (no ProgramXyz, e.g. G00 A30.) the section is created with ABC but without X/Y/Z. McAbcXyzFallbackSyntax — placed after McXyzSyntax — copies X/Y/Z from the previous block's MachineCoordinateState to finish the section. Splitting the XYZ fill out lets this syntax run before McXyzSyntax (and before G43p4RtcpSyntax) without accidentally filling X/Y/Z from prev and thereby short-circuiting DeriveMcXyz(JsonObject, Mat4d). Missing rotary axes are filled from previous MachineCoordinateState lookback, unless the current section already has the value (e.g., from HomeMcInitializer). Values are stored in degrees (matching McAbcCyclicPathSyntax). Must be placed before McXyzSyntax so syntaxes that need the current-block ABC to compute transforms (e.g. G43p4RtcpSyntax) can see it; and before McAbcCyclicPathSyntax and LinearMotionSyntax. McAbcXyzFallbackSyntax Fills missing X/Y/Z on an ABC-only MachineCoordinateState section. Behaviour depends on whether the block is under RTCP with rotary motion, as indicated by HasDynamicEntry(JsonObject): Non-dynamic (no RTCP or RTCP with ABC stable) — the programmed tool tip stays put in MC while rotary axes (if any) are unchanged, so we simply copy X/Y/Z from the previous block's MachineCoordinateState. This matches NC modal XYZ carry-forward for rotary-only blocks such as G00 A30. (non-RTCP pivoting). Dynamic (RTCP active + ABC changing) — the programmed tool tip must stay fixed in program coordinates while MC XYZ shifts to compensate the new rotary state. Looks up the last ProgramXyz and re-derives MC = inheritedProgramXyz × composedTransform, where the composed transform is the block's endpoint chain (now including PivotTransformSource as a full rotation+translation Mat4d, so the chain already encodes the kinematic IK). The carried ProgramXyz is also stamped onto the current block so downstream consumers see a consistent ProgramXyz + MC pair. Pair with McAbcSyntax, which runs early to write ABC but deliberately leaves X/Y/Z empty so McXyzSyntax can still derive MC XYZ from ProgramXyz via the transform chain when the block carries linear motion. If McXyzSyntax has nothing to derive (no ProgramXyz), this syntax completes the MC section as described above. Does nothing when the section already carries all three of X/Y/Z (normal linear-motion blocks), or when there is no section at all (pure parse-only block that introduces no MC). Must be placed after McXyzSyntax and before McAbcCyclicPathSyntax / LinearMotionSyntax. McXyzSyntax Derives MachineCoordinateState from ProgramXyz by applying the composed ProgramToMcTransform. Processes two stages: Root ProgramXyz → root MachineCoordinate CompoundMotion.ItemsKey[*] — derives MachineCoordinate from ProgramXyz for items that have ProgramXyz but no MachineCoordinate Must be placed after syntaxes that write ProgramXyz (e.g., ReferenceReturnSyntax) and before syntaxes that read MachineCoordinate (e.g., LinearMotionSyntax). PeckDrillingCycleSyntax G83 peck drilling cycle. Supports modal repetition. Drills in increments of depth Q, fully retracting to R between strokes. Cycle sequence (per stroke): Rapid to init position (target XY, previous Z) Rapid from init to R-point For each stroke: rapid to clearance above previous depth, feed Q deeper, rapid back to R If remainder exists: feed to bottom Z, rapid to R Rapid from R/bottom to final (G98 → init Z, G99 → R) Retraction distance is read from ICannedCycleConfig (Fanuc #4002 / Syntec Pr4002, or FallbackConfig fallback). Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. PivotTransformationSyntax Writes the PivotTransformSource entry into ProgramToMcTransform on every block, capturing the Pn→MC kinematic rigid transform for the block's endpoint rotary state. Mirrors legacy HardNcLine.GetProgramXyz's use of McToPn(DVec3d) — without this entry, the transform chain would miss the rotary rotation on any block whose MachineCoordinate.ABC is non-zero, and McXyzSyntax (and ProgramXyzSyntax's inverse lookback) would silently drift. Scope is not limited to RTCP modal: as long as rotary axes are physically at a non-zero position (e.g. after a non-RTCP G00 B90 plus any subsequent motion), the kinematic chain still contributes a non-identity rigid transform that must appear in the endpoint chain. G43p4RtcpSyntax is orthogonal and only governs the dynamic-rotary KindKey tagging used by LinearMotionSyntax to pick the motion form. Chain position: must run after all Pn-frame writers (IsoG68p2TiltSyntax, ToolHeightOffsetSyntax, G43p4RtcpSyntax, IsoCoordinateOffsetSyntax, brand-specific coord offset syntaxes) so the PivotTransform entry naturally lands as the last chain element. Must run before McXyzSyntax / ProgramXyzSyntax so they see the completed chain. Silently no-ops when IMachineKinematics is absent (3-axis configurations without rotary kinematics). PlaneSelectSyntax Consumes G17/G18/G19 plane selection from Flags and writes IPlaneSelectDef section using conventional axis-pair names (XY/ZX/YZ). Modal — persists via backward lookback. Default is XY (G17). Downstream consumers (CircularMotionSyntax, IsoG68RotationSyntax) call GetPlaneNormalDir(JsonObject) to read the resolved plane. PositioningSyntax Detects G90/G91 positioning mode from Flags (or by modal lookback) and writes a Positioning section (Term, Mode) to the block JSON. Fanuc/ISO: reads G90/G91 from Flags (global modal). Heidenhain: would need a separate implementation reading I-prefix per axis. Siemens: would extend with AC()/IC() per-axis override. Does NOT convert incremental values — that is handled by IncrementalResolveSyntax which can be placed later in the syntax chain, after canned cycle syntaxes have consumed their parameters with cycle-specific G91 semantics. ProgramEndCleanSyntax Clears the per-block Vars.Volatile dictionary on blocks that triggered program end (M02 / M30, identified by the ProgramEnd section written by ProgramEndSyntax). Real Fanuc clears non-retained common variables (#100-#499) on program end + reset; this syntax models that behaviour at the simulator level. The clear happens on the same block that carried M02/M30 — the next block's VolatileVariableReadingSyntax carry then sees an empty dictionary on the predecessor and starts fresh. Pipeline placement: must run after both ProgramEndSyntax (which writes the ProgramEnd section this syntax checks) and VolatileVariableReadingSyntax (so the carry has already happened on this block; this syntax overwrites the result). Retained common variables (#500-#999, owned by RetainedCommonVariableTable) are untouched — they survive program end on real hardware (NV-RAM). Local variables (#1-#33, scope: macro call frame) are also untouched here; their lifecycle belongs to G65/G66/M99 push/pop, not program end. Also clears any active FanucModalMacro on the same edge: a G66 modal that was still active when M02/M30 hit is implicitly cancelled, matching real Fanuc reset behaviour. The section is overwritten with a G67-shaped cancel marker so the carry mechanism in FanucModalMacroSyntax sees the boundary and does not propagate the modal past the program-end edge. ProgramEndSyntax Consumes M02/M30 (program end) from Flags and writes IProgramEndDef section. Downstream syntaxes that need to reset modal state on program end (e.g. IsoLocalCoordinateOffsetSyntax for G52 reset) should read the ProgramEnd section rather than scanning for M30 in Flags directly. Must be placed before syntaxes that depend on the ProgramEnd section. ProgramStopSyntax Consumes M00 (unconditional stop) and M01 (optional stop) from Flags and writes a IProgramStopDef section on the block that carried the flag. Non-modal: the section is written only on the exact block where the stop code appears. Siblings with ProgramEndSyntax (M02/M30) which handles end-of-program, not in-program stops. The parsing layer only records NC intent. Whether M01 actually pauses the run is a runtime/semantic decision gated by the operator's \"Optional Stop\" switch (analogous to IBlockSkipConfig for block skip). ProgramXyzSyntax Resolves ProgramXyz (leaf coordinate) from syntax XYZ tags. Writes ProgramXyz sub-object to SyntaxPiece.JsonObject. Must be placed after BundleSyntax since it uses cross-node lookback for last position. McXyzSyntax (placed after this in the chain) reads ProgramXyz and writes MachineCoordinateState. ProgramXyzUtil Shared utilities for ProgramXyz and MachineCoordinateState lookback and resolution. Used by ProgramXyzSyntax, ReferenceReturnSyntax, and semantic resolvers that need position lookback. Two strategies for \"what's the program coordinate at a block's endpoint?\" — both invert an MC value through an ProgramToMcTransform chain, but they pick the chain from different nodes: By current-state transform (ComputeProgramXyzByCurrentTransform(LazyLinkedListNode, Vec3d)) — modal anchor is MachineCoordinateState. Re-expresses an MC value (typically a predecessor's modal MC) into the current block's program frame using the current block's chain. Suitable for chain-change blocks where the spindle physically stays put while the chain (G54 swap, G68.2 activation, G43.4 toggle, tool-height change, ...) re-anchors the program frame; mirrors legacy HardNcLine.RebuildProgramXyzByMc. By corresponding-state transform (ComputeProgramXyzByCorrespondingTransform(LazyLinkedListNode)) — modal anchor is ProgramXyz. Recovers the program coordinate that nodeCarryingMc was originally commanded at, by inverting that same node's own transform on its own MC. Suitable for RTCP rotary-dynamic inheritance, where the modal invariant is \"tool tip in workpiece frame stays put while rotary axes turn\" — the recovered Vec3d carries forward as the next rotary block's modal ProgramXyz unchanged, regardless of how its PivotTransform differs. Both strategies yield the same Vec3d when prev and current share the same chain modal state; they only diverge across chain boundaries (RTCP toggle, coord-system swap, tilt activation) and at rotary motion (PivotTransform difference). Pick the wrong one and the result lands in a stale frame: Non-RTCP using \"corresponding\" — leaves the pre-chain-change values, so a block emitted right after G43.4 H03 would inherit ProgramXyz still in the G49 frame and the next motion's MC.Z drifts by the introduced tool-height offset. (This was the 2026-04-25 SoftNc / HardNc divergence on DemoPmcAirPlane/NC/02-ED6L20.NC.) RTCP using \"current\" — double-counts the rotary PivotTransform difference, so the inherited workpiece anchor rotates by the C delta on every rotary block. Direct callers of the two strategy helpers are rare — typically you call the dispatcher ResolveBlockProgramXyz(LazyLinkedListNode, Vec3d) (block's own MC vs predecessor lookback, picks strategy from HasDynamicEntry(JsonObject)) or GetLastProgramXyz(LazyLinkedListNode) (pure predecessor lookback). ReferenceReturnSyntax G28 reference point return syntax. Behaviour is documented in detail on the example attached to BareG28Behavior; this class is the ISituNcSyntax implementation that the BareG28 property configures. RotaryAxisUtil Shared utilities for rotary axis (A/B/C) resolution. Used by G53p1RotaryPositionSyntax, McAbcSyntax, IsoG68p2TiltSyntax, and other syntaxes that read or write rotary axis values. SpindleSpeedSyntax Consumes S (spindle speed) and M03/M04/M05 (spindle direction) from Parsing. Both are modal — persist across blocks via backward node lookback. Writes resolved state to a ISpindleSpeedDef section. Direction is converted from ISO M-codes to the conventional SpindleDirection enum at this layer. TappingCycleSyntax G84 (right-hand) / G74 (left-hand) tapping cycles. Supports modal repetition. Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point Feed from R-point to bottom Z Spindle reverse at bottom Feed retract to final Z (G98 → init Z, G99 → R) Spindle restore to forward direction G84: forward = CW (M03), reverse = CCW (M04). G74: forward = CCW (M04), reverse = CW (M03). Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. TiltTransformUtil Shared utilities for all tilt transform syntaxes (ISO, Siemens, Heidenhain). Handles section IO, backward lookback, and ProgramToMcTransform composition. ToolChangeSyntax Consumes T (tool number) and M06 (tool change) from Parsing. T is modal — persists across blocks. M06 triggers the change. Writes resolved state to a ToolChange section: { “ToolId”: 1, “IsChange”: true, “Term”: “M06” }. TermKey records the trigger command and is only written when IsChangeKey is true (i.e. the block actually carried the tool-change M code); modal-only blocks omit it. ToolHeightOffsetSyntax Resolves ISO tool height offset (G43/G44/G49) to the effective offset value (mm) and composes the offset as a translation into the accumulated ProgramToMcTransform matrix. RTCP modes (G43.4, TRAORI, M128) are handled by separate brand-specific syntaxes (e.g., G43p4RtcpSyntax). UnitModeSyntax Detects the unit-system code (ISO Group 06: G20 inch / G21 metric) from Flags and writes a Unit section (Term, System). Modal — absence of an explicit flag inherits the previous block's unit, defaulting to Metric at program start. The HiNC pipeline works exclusively in millimetres. When G20 is detected this syntax emits an Unit--InchNotSupported Unsupported Error so upstream callers are forced to pre-convert the NC program to metric. G21 is accepted as a no-op confirmation of the default. Enums BareG28Behavior Writes ICompoundMotionDef section for G28 reference point return. Reads intermediate XYZ from Parsing.G28 (written by G28Syntax) and converts to machine coordinates via ResolveProgramXyz(JsonNode, LazyLinkedListNode, ISentenceCarrier, NcDiagnosticProgress). Must be placed after LinearMotionSyntax in the syntax chain. Removes the IMotionEventDef section written by LinearMotionSyntax (G28 handles its own motion). Overwrites root MachineCoordinateState and ProgramXyz with reference position for subsequent block lookback." + "summary": "Namespace Hi.NcParsers.LogicSyntaxs Classes BackBoringSyntax G87 back boring cycle. Supports modal repetition. Cuts upward from Z to R — used to bore the back side of a workpiece. Cycle sequence: Oriented spindle stop (OSS) at current position Rapid (shifted) to init position, then down to bottom Z — tool enters pre-drilled hole without contacting bore wall Shift back to hole center at bottom Spindle start (CW) Feed upward from Z to R-point (back boring cut) Oriented spindle stop at R Tool shift, rapid retract (shifted) to final Z Shift back to center, spindle restart Q specifies the lateral shift distance (mm). Shift direction defaults to +X (OSS angle 0°). Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax before this syntax runs. BoringCycleSyntax G85/G86/G89 boring cycles. Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point Feed from R-point to bottom Z [G86 only] Spindle stop at bottom [G89 only] Dwell P seconds at bottom Retract: G85/G89 → feed retract, G86 → rapid retract [G86 only] Spindle restart (CW) after retract G85: feed to Z, feed retract — smooth bore finish. G86: feed to Z, spindle stop (implicit), rapid retract. G89: feed to Z, dwell P, feed retract — like G85 with bottom dwell. Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. CannedCycleResolveSyntax Resolves the canned-cycle Group-09 state for the current block and writes the result to the CannedCycle section. Active cycle (direct G81..G89 or modal repeat): merges Parsing overrides with previous-cycle stored params, applies G91 incremental-to-absolute conversion and missing-axis fallback, writes CannedCycle with Term, ReturnMode, and Params. The resolved cycle sub-section is left in Parsing under the cycle code for downstream cycle syntaxes (DrillingCycleSyntax, etc.) to read. Explicit cancel (G80 flag present on a non-cycle block): consumes the G80 flag and writes CannedCycle = { Term: \"G80\" }, acting as a hard sentinel for Hi.NcParsers.LogicSyntaxs.CannedCycleSyntaxUtil modal lookback. No Group-09 activity: leaves the block untouched. Must be placed after PositioningSyntax and before the individual cycle syntaxes in the chain. CircularMotionSyntax Writes McArc motion for circular commands (ISO G02/G03). Detects motion mode from Flags, reads I/J/K center offsets or R radius from Parsing, computes arc center in program coordinates, and writes a one-shot MotionEvent (form + arc params) plus a modal MotionState (Term). G02/G03 mode is modal (Group 01) — persists across blocks via Term. Arc parameters (I/J/K/R) are per-block and must be present in every arc block. Must be placed before LinearMotionSyntax in the syntax chain. Both share the Group 01 motion slot; whichever writes a MotionEvent first claims it. CoolantSyntax Consumes M07 (mist ON), M08 (flood ON), and M09 (coolant OFF) from Flags and writes the ICoolantDef section with both IsOn (convenience flag) and Mode (abstract mode name: Flood / Mist / Off). Modal — persists via backward lookback. CoordinateOffsetUtil Shared utilities for all coordinate offset syntaxes (ISO, Siemens, Heidenhain). Handles section IO, backward lookback, and ProgramToMcTransform composition. DrillingCycleSyntax G81/G82 drilling cycle (rapid retract). Supports modal repetition. G82 covers G81 — the only difference is an optional dwell (P) at the bottom. Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point Feed from R-point to bottom Z [G82 only] Dwell P seconds at bottom Rapid from bottom to final (G98 → init Z, G99 → R) Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. FanucPathSmoothingSyntax Consumes Fanuc G05.1 (high-precision contour / AICC II / Nano Smoothing) and records the modal state in the PathSmoothing JSON section using the FanucPathSmoothing schema. Q1 enables, Q0 disables; the optional R{n} precision-level is preserved as Level. The simulation does not alter the tool path — this is a controller-internal interpolation black box; the captured state exists for bidirectional NC-text reconstruction. Modal carry to subsequent blocks is handled by ModalCarrySyntax, which already tracks the PathSmoothing section key and deep-clones it forward. FeedrateSyntax Consumes F (feedrate) from Parsing and G94/G95 mode from Flags. Both are modal — persist across blocks via backward node lookback. Writes resolved state to a IFeedrateDef section. FineBoringSyntax G76 fine boring cycle. Supports modal repetition. Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point Feed from R-point to bottom Z Oriented spindle stop (OSS) Tool shift by Q in +X direction (clear bore wall) Rapid retract (shifted) to final Z Tool shift back to center Spindle restart (CW) Q specifies the lateral shift distance (mm) to avoid dragging the tool across the finished bore surface during retract. Shift direction defaults to +X (OSS angle 0°). Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax before this syntax runs. G43p4RtcpSyntax Handles G43.4 RTCP (Rotary Tool Center Point) activation. Writes the IToolHeightCompensationDef section and the ToolHeightCompensationSource entry in ProgramToMcTransform — a tool-normal · offset_mm translation at the block endpoint ABC. The chain entry is tagged KindDynamic when RTCP is active and ABC changes across the block, and KindStatic otherwise. The RTCP kinematic rotary part (Pn→MC rigid transform) is orthogonal to this syntax and is written by PivotTransformationSyntax on every block, because rotary state remains in effect beyond the RTCP modal (e.g. a non-RTCP G01 after G49 still inherits the last ABC from the program). The \"rotary dynamic\" distinction lives on the chain entry's KindKey alone and is read via HasDynamicEntry(JsonObject) by LinearMotionSyntax to pick ClLinear vs McLinear. G43.4 is used by Fanuc, Mazak, Syntec, and Okuma. Siemens (TRAORI) and Heidenhain (M128) are handled by separate syntaxes. Must be placed after ToolHeightOffsetSyntax (to override the ToolHeightCompensation entry when RTCP is active) and before PivotTransformationSyntax (which runs last in the chain). G53p1RotaryPositionSyntax G53.1 — non-modal, one-shot rotary axis positioning. Positions the rotary axes (A/B/C) to align the physical tool axis with the active tilted work plane defined by G68.2. XYZ position is unchanged; only rotary axes move via rapid traverse. Requires IsoG68p2TiltSyntax (or equivalent) to have written the tilt transform. Uses IMachineKinematics to solve for the target A/B/C via inverse kinematics. Must be placed after IsoG68p2TiltSyntax (needs tilt data) and before ProgramXyzSyntax in the syntax chain. Writes A/B/C into MachineCoordinateState. Motion is handled by LinearMotionSyntax via modal G00/G01. HighSpeedPeckCycleSyntax G73 high-speed peck drilling cycle (chip breaking). Supports modal repetition. Drills in increments of depth Q, partially retracting by PeckRetractionDistance_mm between strokes (instead of fully back to R like PeckDrillingCycleSyntax). Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point For each stroke: feed Q deeper, rapid retract by d If remainder exists: feed to bottom Z, rapid retract by d Rapid to final (G98 → init Z, G99 → R) Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. IncrementalResolveSyntax Resolves G91 incremental axis values to absolute in-place within Parsing and its sub-sections. Reads Term written by PositioningSyntax. WorkingPathList specifies which JSON paths contain axis values that need incremental-to-absolute conversion. Default: [[\"Parsing\"], [\"Parsing\", \"G28\"]]. All matching paths are converted. Canned cycle paths (Parsing.G81, G82, G83, …) are intentionally excluded — their Z/R incremental semantics differ from normal axes (R is relative to init level, Z is relative to R-point). Resolution is handled by ResolveCycleCoordinates(JsonObject, Vec3d, double?, double?, double, double) inside each cycle syntax class, which runs before this syntax. Uses AxisNames to determine which tags are motion axes. Traces backward nodes for last known ProgramXyz to resolve incremental values. After this syntax, all axis values in the working paths are absolute — ProgramXyzSyntax can consume them without incremental logic. IsoCoordinateOffsetSyntax ISO/Fanuc/Mazak/Okuma/Syntec: resolves G54–G59.9 work coordinate offset. Reads G54/G55/.../G59.9 from Flags, looks up offset Vec3d via IIsoCoordinateConfig dependencies (e.g. brand parameter table or IsoCoordinateTable), composes into ProgramToMcTransform. Modal — active coordinate persists via backward lookback. Default coordinate ID is set by StaticInitializer. IsoG68RotationSyntax ISO/Fanuc: resolves G68 (2D coordinate rotation) and G69 (cancel). Computes a rotation Mat4d around the active plane normal and composes it into ProgramToMcTransform. No IMachineKinematics dependency needed — G68 is pure geometric rotation. Managed commands: G68, G69 (idempotent with IsoG68p2TiltSyntax). IsoG68p2TiltSyntax ISO/Fanuc: resolves G68.2 (tilted work plane) and G69 (cancel). Computes a tilt Mat4d from I/J/K euler angles (Fanuc ZXZ convention) and composes it into ProgramToMcTransform. Managed commands: G68.2, G69 (idempotent with IsoG68RotationSyntax). Siemens equivalent: CYCLE800 (separate syntax). Heidenhain equivalent: PLANE SPATIAL (separate syntax). IsoLocalCoordinateOffsetSyntax ISO G52: Local coordinate system offset (additive to G54-series). G52 X10 Y20 Z5 → sets local offset. G52 X0 Y0 Z0 → cancels (resets to zero). M30 (program end) → also cancels. Reads Parsing.G52 (from G52Syntax), writes IsoLocalCoordinateOffset section, and adds an \"IsoLocalCoordinateOffset\" entry to the transformation chain. Modal — persists via backward lookback until changed or cancelled. LinearMotionSyntax Writes McLinear motion for linear commands (ISO G00/G01, Heidenhain L/LN). Detects motion mode from Flags, writes a one-shot MotionEvent section (form + isRapid) plus a modal MotionState section (Term) when MachineCoordinateState exists on the block. McLinearMotionSemantic discriminates between XYZ-only and XYZABC motion by checking whether rotary axis values are present in MachineCoordinateState. Must be placed after McAbcSyntax in the syntax chain. MachineCoordSelectSyntax Handles G53 (machine coordinate selection) — non-modal, one-shot. The axis values (X/Y/Z) in the block are interpreted as machine coordinates, bypassing all work offsets, local coordinates, tool height compensation, and coordinate rotations. If G91 (incremental) is active, G53 is ignored per ISO standard. Must be placed before ProgramXyzSyntax in the syntax chain. When G53 is active, this syntax consumes X/Y/Z from Parsing and writes MachineCoordinateState directly, preventing ProgramXyzSyntax from processing them as program coordinates. McAbcCyclicPathSyntax Resolve modular rotary axes to the shortest cyclic path relative to the previous node. Uses IsModularRotary(string) to determine which axes within MachineCoordinateState need cyclic resolution. Falls back to hardcoded A/B/C if no IMachineAxisConfig is available. Must be placed after ProgramXyzSyntax in NcSyntaxList. Two stages, mirroring McXyzSyntax: Root MachineCoordinateState — anchored at the previous block's modal rotary state. CompoundMotion.ItemsKey[*] — sequential walk through items, anchoring item 0 at the previous block's modal state and item i > 0 at item i-1's post-cycle value (per-axis chain). Items without a rotary MachineCoordinateState are skipped. The items pass enables rotary motion (e.g. G28 ABC intermediate / home stages) to surface as motion IAct segments rather than a single root-MC stamp. McAbcSyntax Writes rotary axis values (A/B/C) into MachineCoordinateState from Parsing and modal lookback. Only active when IMachineAxisConfig declares rotary axes. Works for both 3+2-axis (no IMachineKinematics) and simultaneous 5-axis configurations. This syntax is intentionally ABC-only. When the block is rotary-only (no ProgramXyz, e.g. G00 A30.) the section is created with ABC but without X/Y/Z. McAbcXyzFallbackSyntax — placed after McXyzSyntax — copies X/Y/Z from the previous block's MachineCoordinateState to finish the section. Splitting the XYZ fill out lets this syntax run before McXyzSyntax (and before G43p4RtcpSyntax) without accidentally filling X/Y/Z from prev and thereby short-circuiting DeriveMcXyz(JsonObject, Mat4d). Missing rotary axes are filled from previous MachineCoordinateState lookback, unless the current section already has the value (e.g., from HomeMcInitializer). Values are stored in degrees (matching McAbcCyclicPathSyntax). Must be placed before McXyzSyntax so syntaxes that need the current-block ABC to compute transforms (e.g. G43p4RtcpSyntax) can see it; and before McAbcCyclicPathSyntax and LinearMotionSyntax. McAbcXyzFallbackSyntax Fills missing X/Y/Z on an ABC-only MachineCoordinateState section. Behaviour depends on whether the block is under RTCP with rotary motion, as indicated by HasDynamicEntry(JsonObject): Non-dynamic (no RTCP or RTCP with ABC stable) — the programmed tool tip stays put in MC while rotary axes (if any) are unchanged, so we simply copy X/Y/Z from the previous block's MachineCoordinateState. This matches NC modal XYZ carry-forward for rotary-only blocks such as G00 A30. (non-RTCP pivoting). Dynamic (RTCP active + ABC changing) — the programmed tool tip must stay fixed in program coordinates while MC XYZ shifts to compensate the new rotary state. Looks up the last ProgramXyz and re-derives MC = inheritedProgramXyz × composedTransform, where the composed transform is the block's endpoint chain (now including PivotTransformSource as a full rotation+translation Mat4d, so the chain already encodes the kinematic IK). The carried ProgramXyz is also stamped onto the current block so downstream consumers see a consistent ProgramXyz + MC pair. Pair with McAbcSyntax, which runs early to write ABC but deliberately leaves X/Y/Z empty so McXyzSyntax can still derive MC XYZ from ProgramXyz via the transform chain when the block carries linear motion. If McXyzSyntax has nothing to derive (no ProgramXyz), this syntax completes the MC section as described above. Does nothing when the section already carries all three of X/Y/Z (normal linear-motion blocks), or when there is no section at all (pure parse-only block that introduces no MC). Must be placed after McXyzSyntax and before McAbcCyclicPathSyntax / LinearMotionSyntax. McXyzSyntax Derives MachineCoordinateState from ProgramXyz by applying the composed ProgramToMcTransform. Processes two stages: Root ProgramXyz → root MachineCoordinate CompoundMotion.ItemsKey[*] — derives MachineCoordinate from ProgramXyz for items that have ProgramXyz but no MachineCoordinate Must be placed after syntaxes that write ProgramXyz (e.g., ReferenceReturnSyntax) and before syntaxes that read MachineCoordinate (e.g., LinearMotionSyntax). PeckDrillingCycleSyntax G83 peck drilling cycle. Supports modal repetition. Drills in increments of depth Q, fully retracting to R between strokes. Cycle sequence (per stroke): Rapid to init position (target XY, previous Z) Rapid from init to R-point For each stroke: rapid to clearance above previous depth, feed Q deeper, rapid back to R If remainder exists: feed to bottom Z, rapid to R Rapid from R/bottom to final (G98 → init Z, G99 → R) Retraction distance is read from ICannedCycleConfig (Fanuc #4002 / Syntec Pr4002, or FallbackConfig fallback). Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. PivotTransformationSyntax Writes the PivotTransformSource entry into ProgramToMcTransform on every block, capturing the Pn→MC kinematic rigid transform for the block's endpoint rotary state. Mirrors legacy HardNcLine.GetProgramXyz's use of McToPn(DVec3d) — without this entry, the transform chain would miss the rotary rotation on any block whose MachineCoordinate.ABC is non-zero, and McXyzSyntax (and ProgramXyzSyntax's inverse lookback) would silently drift. Scope is not limited to RTCP modal: as long as rotary axes are physically at a non-zero position (e.g. after a non-RTCP G00 B90 plus any subsequent motion), the kinematic chain still contributes a non-identity rigid transform that must appear in the endpoint chain. G43p4RtcpSyntax is orthogonal and only governs the dynamic-rotary KindKey tagging used by LinearMotionSyntax to pick the motion form. Chain position: must run after all Pn-frame writers (IsoG68p2TiltSyntax, ToolHeightOffsetSyntax, G43p4RtcpSyntax, IsoCoordinateOffsetSyntax, brand-specific coord offset syntaxes) so the PivotTransform entry naturally lands as the last chain element. Must run before McXyzSyntax / ProgramXyzSyntax so they see the completed chain. Silently no-ops when IMachineKinematics is absent (3-axis configurations without rotary kinematics). PlaneSelectSyntax Consumes G17/G18/G19 plane selection from Flags and writes IPlaneSelectDef section using conventional axis-pair names (XY/ZX/YZ). Modal — persists via backward lookback. Default is XY (G17). Downstream consumers (CircularMotionSyntax, IsoG68RotationSyntax) call GetPlaneNormalDir(JsonObject) to read the resolved plane. PositioningSyntax Detects G90/G91 positioning mode from Flags (or by modal lookback) and writes a Positioning section (Term, Mode) to the block JSON. Fanuc/ISO: reads G90/G91 from Flags (global modal). Heidenhain: would need a separate implementation reading I-prefix per axis. Siemens: would extend with AC()/IC() per-axis override. Does NOT convert incremental values — that is handled by IncrementalResolveSyntax which can be placed later in the syntax chain, after canned cycle syntaxes have consumed their parameters with cycle-specific G91 semantics. ProgramEndCleanSyntax Clears the per-block Vars.Volatile dictionary on blocks that triggered program end (M02 / M30, identified by the ProgramEnd section written by ProgramEndSyntax). Real Fanuc clears non-retained common variables (#100-#499) on program end + reset; this syntax models that behaviour at the simulator level. The clear happens on the same block that carried M02/M30 — the next block's VolatileVariableReadingSyntax carry then sees an empty dictionary on the predecessor and starts fresh. Pipeline placement: must run after both ProgramEndSyntax (which writes the ProgramEnd section this syntax checks) and VolatileVariableReadingSyntax (so the carry has already happened on this block; this syntax overwrites the result). Retained common variables (#500-#999, owned by RetainedCommonVariableTable) are untouched — they survive program end on real hardware (NV-RAM). Local variables (#1-#33, scope: macro call frame) are also untouched here; their lifecycle belongs to G65/G66/M99 push/pop, not program end. Also clears any active FanucModalMacro on the same edge: a G66 modal that was still active when M02/M30 hit is implicitly cancelled, matching real Fanuc reset behaviour. The section is overwritten with a G67-shaped cancel marker so the carry mechanism in FanucModalMacroSyntax sees the boundary and does not propagate the modal past the program-end edge. ProgramEndSyntax Consumes M02/M30 (program end) from Flags and writes IProgramEndDef section. Downstream syntaxes that need to reset modal state on program end (e.g. IsoLocalCoordinateOffsetSyntax for G52 reset) should read the ProgramEnd section rather than scanning for M30 in Flags directly. Must be placed before syntaxes that depend on the ProgramEnd section. ProgramStopSyntax Consumes M00 (unconditional stop) and M01 (optional stop) from Flags and writes a IProgramStopDef section on the block that carried the flag. Non-modal: the section is written only on the exact block where the stop code appears. Siblings with ProgramEndSyntax (M02/M30) which handles end-of-program, not in-program stops. The parsing layer only records NC intent. Whether M01 actually pauses the run is a runtime/semantic decision gated by the operator's \"Optional Stop\" switch (analogous to IBlockSkipConfig for block skip). ProgramXyzSyntax Resolves ProgramXyz (leaf coordinate) from syntax XYZ tags. Writes ProgramXyz sub-object to SyntaxPiece.JsonObject. Must be placed after BundleSyntax since it uses cross-node lookback for last position. McXyzSyntax (placed after this in the chain) reads ProgramXyz and writes MachineCoordinateState. ProgramXyzUtil Shared utilities for ProgramXyz and MachineCoordinateState lookback and resolution. Used by ProgramXyzSyntax, ReferenceReturnSyntax, and semantic resolvers that need position lookback. Two strategies for \"what's the program coordinate at a block's endpoint?\" — both invert an MC value through an ProgramToMcTransform chain, but they pick the chain from different nodes: By current-state transform (ComputeProgramXyzByCurrentTransform(LazyLinkedListNode, Vec3d)) — modal anchor is MachineCoordinateState. Re-expresses an MC value (typically a predecessor's modal MC) into the current block's program frame using the current block's chain. Suitable for chain-change blocks where the spindle physically stays put while the chain (G54 swap, G68.2 activation, G43.4 toggle, tool-height change, ...) re-anchors the program frame; mirrors legacy HardNcLine.RebuildProgramXyzByMc. By corresponding-state transform (ComputeProgramXyzByCorrespondingTransform(LazyLinkedListNode)) — modal anchor is ProgramXyz. Recovers the program coordinate that nodeCarryingMc was originally commanded at, by inverting that same node's own transform on its own MC. Suitable for RTCP rotary-dynamic inheritance, where the modal invariant is \"tool tip in workpiece frame stays put while rotary axes turn\" — the recovered Vec3d carries forward as the next rotary block's modal ProgramXyz unchanged, regardless of how its PivotTransform differs. Both strategies yield the same Vec3d when prev and current share the same chain modal state; they only diverge across chain boundaries (RTCP toggle, coord-system swap, tilt activation) and at rotary motion (PivotTransform difference). Pick the wrong one and the result lands in a stale frame: Non-RTCP using \"corresponding\" — leaves the pre-chain-change values, so a block emitted right after G43.4 H03 would inherit ProgramXyz still in the G49 frame and the next motion's MC.Z drifts by the introduced tool-height offset. (This was the 2026-04-25 SoftNc / HardNc divergence on DemoPmcAirPlane/NC/02-ED6L20.NC.) RTCP using \"current\" — double-counts the rotary PivotTransform difference, so the inherited workpiece anchor rotates by the C delta on every rotary block. Direct callers of the two strategy helpers are rare — typically you call the dispatcher ResolveBlockProgramXyz(LazyLinkedListNode, Vec3d) (block's own MC vs predecessor lookback, picks strategy from HasDynamicEntry(JsonObject)) or GetLastProgramXyz(LazyLinkedListNode) (pure predecessor lookback). ReferenceReturnSyntax Writes ICompoundMotionDef section for G28 reference point return. Reads intermediate XYZ from Parsing.G28 (written by G28Syntax) and converts to machine coordinates via ResolveProgramXyz(JsonNode, LazyLinkedListNode, ISentenceCarrier, NcDiagnosticProgress). Must be placed after LinearMotionSyntax in the syntax chain. Removes the IMotionEventDef section written by LinearMotionSyntax (G28 handles its own motion). Overwrites root MachineCoordinateState and ProgramXyz with reference position for subsequent block lookback. RotaryAxisUtil Shared utilities for rotary axis (A/B/C) resolution. Used by G53p1RotaryPositionSyntax, McAbcSyntax, IsoG68p2TiltSyntax, and other syntaxes that read or write rotary axis values. SpindleSpeedSyntax Consumes S (spindle speed) and M03/M04/M05 (spindle direction) from Parsing. Both are modal — persist across blocks via backward node lookback. Writes resolved state to a ISpindleSpeedDef section. Direction is converted from ISO M-codes to the conventional SpindleDirection enum at this layer. TappingCycleSyntax G84 (right-hand) / G74 (left-hand) tapping cycles. Supports modal repetition. Cycle sequence: Rapid to init position (target XY, previous Z) Rapid from init to R-point Feed from R-point to bottom Z Spindle reverse at bottom Feed retract to final Z (G98 → init Z, G99 → R) Spindle restore to forward direction G84: forward = CW (M03), reverse = CCW (M04). G74: forward = CCW (M04), reverse = CW (M03). Reads absolute coordinates from the cycle section, which is resolved by CannedCycleResolveSyntax (modal repetition, G91 conversion, missing-axis fallback) before this syntax runs. Must be placed after CannedCycleResolveSyntax and before IncrementalResolveSyntax in the syntax chain. TiltTransformUtil Shared utilities for all tilt transform syntaxes (ISO, Siemens, Heidenhain). Handles section IO, backward lookback, and ProgramToMcTransform composition. ToolChangeSyntax Consumes T (tool number) and M06 (tool change) from Parsing. T is modal — persists across blocks. M06 triggers the change. Writes resolved state to a ToolChange section: { “ToolId”: 1, “IsChange”: true, “Term”: “M06” }. TermKey records the trigger command and is only written when IsChangeKey is true (i.e. the block actually carried the tool-change M code); modal-only blocks omit it. ToolHeightOffsetSyntax Resolves ISO tool height offset (G43/G44/G49) to the effective offset value (mm) and composes the offset as a translation into the accumulated ProgramToMcTransform matrix. RTCP modes (G43.4, TRAORI, M128) are handled by separate brand-specific syntaxes (e.g., G43p4RtcpSyntax). UnitModeSyntax Detects the unit-system code (ISO Group 06: G20 inch / G21 metric) from Flags and writes a Unit section (Term, System). Modal — absence of an explicit flag inherits the previous block's unit, defaulting to Metric at program start. The HiNC pipeline works exclusively in millimetres. When G20 is detected this syntax emits an Unit--InchNotSupported Unsupported Error so upstream callers are forced to pre-convert the NC program to metric. G21 is accepted as a no-op confirmation of the default. Enums BareG28Behavior Configurable handling for a G28 block with no axis specifiers (“bare G28”) — value of BareG28. Real Fanuc-class controllers vary: older 0i-M alarms (PS010), some 30i variants send every configured axis to home. Default to Alarm so silent NC bugs surface; opt into AllAxesHome per syntax instance." }, "api/Hi.NcParsers.NcDiagnostic.html": { "href": "api/Hi.NcParsers.NcDiagnostic.html", @@ -4669,10 +4649,15 @@ "title": "Class FanucProgramNumberSyntax | HiAPI-C# 2025", "summary": "Class FanucProgramNumberSyntax Namespace Hi.NcParsers.ParsingSyntaxs.Fanuc Assembly HiMech.dll Detects a Fanuc-family program identifier header — O1234 or — that follows a TapeBoundary line, and records it under FanucProgramNumber on the block JSON. The wrapping form (bare vs angle-bracketed) is preserved in Wrapper so the block can be emitted back to its original notation. public class FanucProgramNumberSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object FanucProgramNumberSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Examples Bare O1234 on the first block of the stream (no #Previous:) — start-of-stream is itself a tape boundary per IsPreviousNodeTapeBoundary(LazyLinkedListNode), so the syntax fires; the consumed text leaves nothing behind: #BeforeBuild.UnparsedText: O1234 #AfterBuild: { \"FanucProgramNumber\": { \"Number\": \"1234\", \"Wrapper\": \"None\" } } Angle-bracketed after an explicit TapeBoundary block (% on the prior line) — Wrapper records the surface form: #Previous: { \"TapeBoundary\": { \"Text\": \"\" } } #BeforeBuild.UnparsedText: #AfterBuild: { \"FanucProgramNumber\": { \"Number\": \"5678\", \"Wrapper\": \"Angle\" } } O1234 followed by trailing text (e.g. an inline comment) — only the program-number header is consumed; the rest stays on UnparsedText for downstream syntaxes to handle: #Previous: { \"TapeBoundary\": { \"Text\": \"\" } } #BeforeBuild.UnparsedText: O1234 (PART-A) #AfterBuild: { \"UnparsedText\": \"(PART-A)\", \"FanucProgramNumber\": { \"Number\": \"1234\", \"Wrapper\": \"None\" } } Previous block is not a tape boundary (e.g. ordinary FanucProgramNumber already in the stream) — the guard rejects the block, leaving UnparsedText intact: #Previous: { \"FanucProgramNumber\": { \"Number\": \"1000\", \"Wrapper\": \"None\" } } #BeforeBuild.UnparsedText: O9999 #AfterBuild: { \"UnparsedText\": \"O9999\" } Constructors FanucProgramNumberSyntax() Parameterless instance for bundle composition (no XML state). public FanucProgramNumberSyntax() FanucProgramNumberSyntax(XElement) XML ctor (no child elements; reserved for forward compatibility). public FanucProgramNumberSyntax(XElement src) Parameters src XElement Root element named XName. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, + "api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html": { + "href": "api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html", + "title": "Class FanucWhileDoParsingSyntax | HiAPI-C# 2025", + "summary": "Class FanucWhileDoParsingSyntax Namespace Hi.NcParsers.ParsingSyntaxs.Fanuc Assembly HiMech.dll Parses the two Fanuc Custom Macro B WHILE/END phrases out of UnparsedText into a Parsing.FanucWhileDo sub-object: WHILE [] DO — loop entry, writes { Term: \"WHILE...DO\", LoopId, Condition }. END — loop terminator, writes { Term: \"END\", LoopId }. Pipeline placement. This syntax must run before TagAssignmentSyntax in the Parsing bundle — same lesson as FanucIfThenParsingSyntax: although the WHILE / END phrases per Fanuc spec do not coexist with assignments on the same block, the defensive ordering prevents a body fragment from being half-eaten as a stand-alone assignment if a non-spec NC file appears. LoopId is captured as an int directly (Fanuc spec restricts the m identifier to small literal integers 1–3 typical, no expression form). The WHILE's Condition is captured as a string and substituted in place by VariableEvaluatorSyntax's pass-2 tree walk; FanucWhileDoSyntax then reads it via the shared FanucConditionReader. public class FanucWhileDoParsingSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object FanucWhileDoParsingSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Examples #Input: WHILE [#100 LT 3] DO 1 #Output: { \"Parsing\": { \"FanucWhileDo\": { \"Term\": \"WHILE...DO\", \"LoopId\": 1, \"Condition\": \"#100 LT 3\" } } } #Input: END 1 #Output: { \"Parsing\": { \"FanucWhileDo\": { \"Term\": \"END\", \"LoopId\": 1 } } } Constructors FanucWhileDoParsingSyntax() Parameterless instance for bundle composition (no XML state). public FanucWhileDoParsingSyntax() FanucWhileDoParsingSyntax(XElement) XML ctor (no child elements; reserved for forward compatibility). public FanucWhileDoParsingSyntax(XElement src) Parameters src XElement Root element named XName. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + }, "api/Hi.NcParsers.ParsingSyntaxs.Fanuc.html": { "href": "api/Hi.NcParsers.ParsingSyntaxs.Fanuc.html", "title": "Namespace Hi.NcParsers.ParsingSyntaxs.Fanuc | HiAPI-C# 2025", - "summary": "Namespace Hi.NcParsers.ParsingSyntaxs.Fanuc Classes FanucGotoParsingSyntax Parses Fanuc Custom Macro B GOTO phrases out of the remaining UnparsedText into a Parsing.FanucGoto sub-object. Two forms are recognised: GOTO — unconditional jump. IF [] GOTO — conditional jump. IF [...] GOTO is matched as a single phrase, not as an IF syntax composed with a GOTO syntax — Fanuc only permits the two fixed forms (the other being IF [...] THEN , out of scope here), so a phrase-level parser is more faithful and avoids parsing-ambiguity rabbit holes. is captured as a raw token (literal like \"100\", variable like \"#1\", or bracketed expression like \"#[#2+5]\"). VariableEvaluatorSyntax substitutes the resolved literal back into the same field downstream; FanucGotoSyntax then parses the final string as an int. Storing as a string at parsing time mirrors how axis tags and canned-cycle params accept #N references and the evaluator rewrites them in place. Pipeline placement: after HeadIndexSyntax (so the leading N{seq} on a block like N50 GOTO 100 has already been consumed) and after QuoteCommentSyntax (so a parenthesised (GOTO 100) inside a comment never matches). The phrase consumes the entire remaining text on the block — Fanuc allows only the GOTO / IF-GOTO phrase after any preceding head index, no other instructions on the same block. FanucIfThenParsingSyntax Parses the Fanuc Custom Macro B IF [] THEN single-block conditional phrase out of UnparsedText into a Parsing.FanucIfThen sub-object. Sibling to FanucGotoParsingSyntax — Fanuc spec only permits two IF-led control phrases (IF [...] GOTO handled there, IF [...] THEN handled here) so each form is matched phrase-level rather than composed from a generic IF combinator. Body shape. The body after THEN is conceptually a single statement that affects the current block only — no jump, no label scan. Almost always a Custom Macro B assignment (#nnn = ); multiple assignments in the same body (#100 = 5. #101 = #100 + 1) are also accepted. The parsing syntax pre-extracts these via GrabTagAssignment(ref string, IEnumerable, string, IEnumerable) into Parsing.FanucIfThen.PendingAssignments as {tag: rhs-string} entries — that shape lets VariableEvaluatorSyntax's pass-2 tree walk substitute each RHS to a numeric in place, and lets FanucIfThenSyntax lift the resolved entries into Parsing.Assignments only when the gate condition fires (so unfired bodies leave no trace in the readers). Pipeline placement. This syntax must run before FanucGotoParsingSyntax — the bare IF-GOTO regex over there (^IF[..]GOTO n$) is anchored, but consuming IF-THEN here first keeps the two phrases textually disjoint and avoids any future regression if either regex is loosened. Also placed before TagAssignmentSyntax so a bare IF [...] THEN #100 = 5. is not first half-eaten as a plain assignment. Raw BodyText is retained verbatim on the parsing section regardless of whether the body parsed as assignments — it carries the round-trip view and lets the evaluation syntax warn (FanucIfThen--UnsupportedBody) if no PendingAssignments were produced on a truthy condition. FanucProgramNumberSyntax Detects a Fanuc-family program identifier header — O1234 or — that follows a TapeBoundary line, and records it under FanucProgramNumber on the block JSON. The wrapping form (bare vs angle-bracketed) is preserved in Wrapper so the block can be emitted back to its original notation." + "summary": "Namespace Hi.NcParsers.ParsingSyntaxs.Fanuc Classes FanucGotoParsingSyntax Parses Fanuc Custom Macro B GOTO phrases out of the remaining UnparsedText into a Parsing.FanucGoto sub-object. Two forms are recognised: GOTO — unconditional jump. IF [] GOTO — conditional jump. IF [...] GOTO is matched as a single phrase, not as an IF syntax composed with a GOTO syntax — Fanuc only permits the two fixed forms (the other being IF [...] THEN , out of scope here), so a phrase-level parser is more faithful and avoids parsing-ambiguity rabbit holes. is captured as a raw token (literal like \"100\", variable like \"#1\", or bracketed expression like \"#[#2+5]\"). VariableEvaluatorSyntax substitutes the resolved literal back into the same field downstream; FanucGotoSyntax then parses the final string as an int. Storing as a string at parsing time mirrors how axis tags and canned-cycle params accept #N references and the evaluator rewrites them in place. Pipeline placement: after HeadIndexSyntax (so the leading N{seq} on a block like N50 GOTO 100 has already been consumed) and after QuoteCommentSyntax (so a parenthesised (GOTO 100) inside a comment never matches). The phrase consumes the entire remaining text on the block — Fanuc allows only the GOTO / IF-GOTO phrase after any preceding head index, no other instructions on the same block. FanucIfThenParsingSyntax Parses the Fanuc Custom Macro B IF [] THEN single-block conditional phrase out of UnparsedText into a Parsing.FanucIfThen sub-object. Sibling to FanucGotoParsingSyntax — Fanuc spec only permits two IF-led control phrases (IF [...] GOTO handled there, IF [...] THEN handled here) so each form is matched phrase-level rather than composed from a generic IF combinator. Body shape. The body after THEN is conceptually a single statement that affects the current block only — no jump, no label scan. Almost always a Custom Macro B assignment (#nnn = ); multiple assignments in the same body (#100 = 5. #101 = #100 + 1) are also accepted. The parsing syntax pre-extracts these via GrabTagAssignment(ref string, IEnumerable, string, IEnumerable) into Parsing.FanucIfThen.PendingAssignments as {tag: rhs-string} entries — that shape lets VariableEvaluatorSyntax's pass-2 tree walk substitute each RHS to a numeric in place, and lets FanucIfThenSyntax lift the resolved entries into Parsing.Assignments only when the gate condition fires (so unfired bodies leave no trace in the readers). Pipeline placement. This syntax must run before FanucGotoParsingSyntax — the bare IF-GOTO regex over there (^IF[..]GOTO n$) is anchored, but consuming IF-THEN here first keeps the two phrases textually disjoint and avoids any future regression if either regex is loosened. Also placed before TagAssignmentSyntax so a bare IF [...] THEN #100 = 5. is not first half-eaten as a plain assignment. Raw BodyText is retained verbatim on the parsing section regardless of whether the body parsed as assignments — it carries the round-trip view and lets the evaluation syntax warn (FanucIfThen--UnsupportedBody) if no PendingAssignments were produced on a truthy condition. FanucProgramNumberSyntax Detects a Fanuc-family program identifier header — O1234 or — that follows a TapeBoundary line, and records it under FanucProgramNumber on the block JSON. The wrapping form (bare vs angle-bracketed) is preserved in Wrapper so the block can be emitted back to its original notation. FanucWhileDoParsingSyntax Parses the two Fanuc Custom Macro B WHILE/END phrases out of UnparsedText into a Parsing.FanucWhileDo sub-object: WHILE [] DO — loop entry, writes { Term: \"WHILE...DO\", LoopId, Condition }. END — loop terminator, writes { Term: \"END\", LoopId }. Pipeline placement. This syntax must run before TagAssignmentSyntax in the Parsing bundle — same lesson as FanucIfThenParsingSyntax: although the WHILE / END phrases per Fanuc spec do not coexist with assignments on the same block, the defensive ordering prevents a body fragment from being half-eaten as a stand-alone assignment if a non-spec NC file appears. LoopId is captured as an int directly (Fanuc spec restricts the m identifier to small literal integers 1–3 typical, no expression form). The WHILE's Condition is captured as a string and substituted in place by VariableEvaluatorSyntax's pass-2 tree walk; FanucWhileDoSyntax then reads it via the shared FanucConditionReader." }, "api/Hi.NcParsers.ParsingSyntaxs.FlagSyntax.html": { "href": "api/Hi.NcParsers.ParsingSyntaxs.FlagSyntax.html", @@ -4817,22 +4802,22 @@ "api/Hi.NcParsers.Segmenters.HeidenhainSegmenter.html": { "href": "api/Hi.NcParsers.Segmenters.HeidenhainSegmenter.html", "title": "Class HeidenhainSegmenter | HiAPI-C# 2025", - "summary": "Class HeidenhainSegmenter Namespace Hi.NcParsers.Segmenters Assembly HiMech.dll Heidenhain NC block builder. Also support single line NC block. public class HeidenhainSegmenter : ISegmenter, IToXElement Inheritance object HeidenhainSegmenter Implements ISegmenter IToXElement Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors HeidenhainSegmenter() Creates a HeidenhainSegmenter with the default block-keyword list. public HeidenhainSegmenter() Properties Name Display name of this segmenter. public string Name { get; } Property Value string XName XML element name used to register and serialize this segmenter. public static string XName { get; } Property Value string Methods GetSentences(LazyLinkedList, NcDiagnosticProgress) Segments the indexed file lines into Sentences. public IEnumerable GetSentences(LazyLinkedList indexedFileLines, NcDiagnosticProgress ncDiagnosticProgress) Parameters indexedFileLines LazyLinkedList The lazy linked list of indexed file lines. ncDiagnosticProgress NcDiagnosticProgress Diagnostic progress reporter. Returns IEnumerable A sequence of Sentences. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToXElement() Get the XElement to represent the object. public XElement ToXElement() Returns XElement XElement to represent the object." + "summary": "Class HeidenhainSegmenter Namespace Hi.NcParsers.Segmenters Assembly HiMech.dll Heidenhain NC block builder. Also support single line NC block. public class HeidenhainSegmenter : ISegmenter, IToXElement Inheritance object HeidenhainSegmenter Implements ISegmenter IToXElement Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors HeidenhainSegmenter() Creates a HeidenhainSegmenter with the default block-keyword list. public HeidenhainSegmenter() Properties Name Display name of this segmenter. public string Name { get; } Property Value string XName XML element name used to register and serialize this segmenter. public static string XName { get; } Property Value string Methods GetSentences(LazyLinkedList, List, NcDiagnosticProgress) Segments the indexed file lines into Sentences. public IEnumerable GetSentences(LazyLinkedList indexedFileLines, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters indexedFileLines LazyLinkedList The lazy linked list of indexed file lines. ncDependencyList List Dependency list of the owning runner; segmenters that consume header rows (e.g. CsvSegmenter) read host-wired dependencies from here. May be null in lightweight test fixtures — implementations that need a dependency must null-check. ncDiagnosticProgress NcDiagnosticProgress Diagnostic progress reporter. Returns IEnumerable A sequence of Sentences. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToXElement() Get the XElement to represent the object. public XElement ToXElement() Returns XElement XElement to represent the object." }, "api/Hi.NcParsers.Segmenters.ISegmenter.html": { "href": "api/Hi.NcParsers.Segmenters.ISegmenter.html", "title": "Interface ISegmenter | HiAPI-C# 2025", - "summary": "Interface ISegmenter Namespace Hi.NcParsers.Segmenters Assembly HiMech.dll Interface to segment IndexedFileLines into Sentences. public interface ISegmenter : IToXElement Inherited Members IToXElement.ToXElement() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties Name Display name of this segmenter. string Name { get; } Property Value string Methods GetSentences(LazyLinkedList, NcDiagnosticProgress) Segments the indexed file lines into Sentences. IEnumerable GetSentences(LazyLinkedList indexedFileLines, NcDiagnosticProgress ncDiagnosticProgress) Parameters indexedFileLines LazyLinkedList The lazy linked list of indexed file lines. ncDiagnosticProgress NcDiagnosticProgress Diagnostic progress reporter. Returns IEnumerable A sequence of Sentences." + "summary": "Interface ISegmenter Namespace Hi.NcParsers.Segmenters Assembly HiMech.dll Interface to segment IndexedFileLines into Sentences. public interface ISegmenter : IToXElement Inherited Members IToXElement.ToXElement() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties Name Display name of this segmenter. string Name { get; } Property Value string Methods GetSentences(LazyLinkedList, List, NcDiagnosticProgress) Segments the indexed file lines into Sentences. IEnumerable GetSentences(LazyLinkedList indexedFileLines, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters indexedFileLines LazyLinkedList The lazy linked list of indexed file lines. ncDependencyList List Dependency list of the owning runner; segmenters that consume header rows (e.g. CsvSegmenter) read host-wired dependencies from here. May be null in lightweight test fixtures — implementations that need a dependency must null-check. ncDiagnosticProgress NcDiagnosticProgress Diagnostic progress reporter. Returns IEnumerable A sequence of Sentences." }, "api/Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.html": { "href": "api/Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.html", "title": "Class InlineDelimiterSegmenter | HiAPI-C# 2025", - "summary": "Class InlineDelimiterSegmenter Namespace Hi.NcParsers.Segmenters Assembly HiMech.dll Segments NC lines by an inline delimiter (e.g. ';'). A line containing the delimiter produces multiple Sentences, each with a precise FileLineCharIndexSegment. Lines without the delimiter produce a single Sentence. public class InlineDelimiterSegmenter : ISegmenter, IToXElement Inheritance object InlineDelimiterSegmenter Implements ISegmenter IToXElement Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors InlineDelimiterSegmenter() Creates an InlineDelimiterSegmenter using DefaultDelimiter. public InlineDelimiterSegmenter() InlineDelimiterSegmenter(char) Creates an InlineDelimiterSegmenter with a custom delimiter character. public InlineDelimiterSegmenter(char delimiter) Parameters delimiter char Fields DefaultDelimiter Default delimiter: ';'. public static readonly char DefaultDelimiter Field Value char Properties Delimiter The inline delimiter character. public char Delimiter { get; } Property Value char Name Display name of this segmenter. public string Name { get; } Property Value string XName XML element name used to register and serialize this segmenter. public static string XName { get; } Property Value string Methods GetSentences(LazyLinkedList, NcDiagnosticProgress) Segments the indexed file lines into Sentences. public IEnumerable GetSentences(LazyLinkedList indexedFileLines, NcDiagnosticProgress ncDiagnosticProgress) Parameters indexedFileLines LazyLinkedList The lazy linked list of indexed file lines. ncDiagnosticProgress NcDiagnosticProgress Diagnostic progress reporter. Returns IEnumerable A sequence of Sentences. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToXElement() Get the XElement to represent the object. public XElement ToXElement() Returns XElement XElement to represent the object." + "summary": "Class InlineDelimiterSegmenter Namespace Hi.NcParsers.Segmenters Assembly HiMech.dll Segments NC lines by an inline delimiter (e.g. ';'). A line containing the delimiter produces multiple Sentences, each with a precise FileLineCharIndexSegment. Lines without the delimiter produce a single Sentence. public class InlineDelimiterSegmenter : ISegmenter, IToXElement Inheritance object InlineDelimiterSegmenter Implements ISegmenter IToXElement Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors InlineDelimiterSegmenter() Creates an InlineDelimiterSegmenter using DefaultDelimiter. public InlineDelimiterSegmenter() InlineDelimiterSegmenter(char) Creates an InlineDelimiterSegmenter with a custom delimiter character. public InlineDelimiterSegmenter(char delimiter) Parameters delimiter char Fields DefaultDelimiter Default delimiter: ';'. public static readonly char DefaultDelimiter Field Value char Properties Delimiter The inline delimiter character. public char Delimiter { get; } Property Value char Name Display name of this segmenter. public string Name { get; } Property Value string XName XML element name used to register and serialize this segmenter. public static string XName { get; } Property Value string Methods GetSentences(LazyLinkedList, List, NcDiagnosticProgress) Segments the indexed file lines into Sentences. public IEnumerable GetSentences(LazyLinkedList indexedFileLines, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters indexedFileLines LazyLinkedList The lazy linked list of indexed file lines. ncDependencyList List Dependency list of the owning runner; segmenters that consume header rows (e.g. CsvSegmenter) read host-wired dependencies from here. May be null in lightweight test fixtures — implementations that need a dependency must null-check. ncDiagnosticProgress NcDiagnosticProgress Diagnostic progress reporter. Returns IEnumerable A sequence of Sentences. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToXElement() Get the XElement to represent the object. public XElement ToXElement() Returns XElement XElement to represent the object." }, "api/Hi.NcParsers.Segmenters.SingleLineSegmenter.html": { "href": "api/Hi.NcParsers.Segmenters.SingleLineSegmenter.html", "title": "Class SingleLineSegmenter | HiAPI-C# 2025", - "summary": "Class SingleLineSegmenter Namespace Hi.NcParsers.Segmenters Assembly HiMech.dll Maps each physical source line to one Sentence (no multi-line merging). public class SingleLineSegmenter : ISegmenter, IToXElement Inheritance object SingleLineSegmenter Implements ISegmenter IToXElement Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties Name Display name of this segmenter. public string Name { get; } Property Value string XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods GetSentences(LazyLinkedList, NcDiagnosticProgress) Segments the indexed file lines into Sentences. public IEnumerable GetSentences(LazyLinkedList indexedFileLines, NcDiagnosticProgress ncDiagnosticProgress) Parameters indexedFileLines LazyLinkedList The lazy linked list of indexed file lines. ncDiagnosticProgress NcDiagnosticProgress Diagnostic progress reporter. Returns IEnumerable A sequence of Sentences. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToXElement() Get the XElement to represent the object. public XElement ToXElement() Returns XElement XElement to represent the object." + "summary": "Class SingleLineSegmenter Namespace Hi.NcParsers.Segmenters Assembly HiMech.dll Maps each physical source line to one Sentence (no multi-line merging). public class SingleLineSegmenter : ISegmenter, IToXElement Inheritance object SingleLineSegmenter Implements ISegmenter IToXElement Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties Name Display name of this segmenter. public string Name { get; } Property Value string XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods GetSentences(LazyLinkedList, List, NcDiagnosticProgress) Segments the indexed file lines into Sentences. public IEnumerable GetSentences(LazyLinkedList indexedFileLines, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters indexedFileLines LazyLinkedList The lazy linked list of indexed file lines. ncDependencyList List Dependency list of the owning runner; segmenters that consume header rows (e.g. CsvSegmenter) read host-wired dependencies from here. May be null in lightweight test fixtures — implementations that need a dependency must null-check. ncDiagnosticProgress NcDiagnosticProgress Diagnostic progress reporter. Returns IEnumerable A sequence of Sentences. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToXElement() Get the XElement to represent the object. public XElement ToXElement() Returns XElement XElement to represent the object." }, "api/Hi.NcParsers.Segmenters.html": { "href": "api/Hi.NcParsers.Segmenters.html", @@ -4977,7 +4962,7 @@ "api/Hi.NcParsers.Syntaxs.SyntaxPiece.html": { "href": "api/Hi.NcParsers.Syntaxs.SyntaxPiece.html", "title": "Class SyntaxPiece | HiAPI-C# 2025", - "summary": "Class SyntaxPiece Namespace Hi.NcParsers.Syntaxs Assembly HiMech.dll One NC block's source line paired with its parsed JSON payload during soft-NC processing. public class SyntaxPiece : ISentenceCarrier, IGetSentence, ISentenceIndexed Inheritance object SyntaxPiece Implements ISentenceCarrier IGetSentence ISentenceIndexed Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Remarks The design pattern of Sentence and JsonObject are one-one mapping. JSON value type convention: Prefer base types (double, int) over string for numeric values in JsonObject. This applies to both parsing syntaxes and logic syntaxes. Strings should only be used when the value is genuinely textual (e.g., macro variable references like \"#1\", \"Q2\", coordinate IDs like \"G54\") or when the value cannot be parsed to a number. Use FloatTagValueSyntax, IntegerTagValueSyntax, or FloatParamPrefixes / IntParamPrefixes to store typed values at parse time. Constructors SyntaxPiece(Sentence, JsonObject, int) Creates a piece binding sentence to jsonObject with its execution-order sentenceIndex. public SyntaxPiece(Sentence sentence, JsonObject jsonObject, int sentenceIndex) Parameters sentence Sentence jsonObject JsonObject sentenceIndex int Properties JsonObject Structured parse result built by syntax passes. public JsonObject JsonObject { get; set; } Property Value JsonObject Sentence Indexed source line and block text for this piece. public Sentence Sentence { get; set; } Property Value Sentence SentenceIndex 0-based ordinal in NC execution order. Stamped at piece construction time by GetSyntaxPieces(ISegmenter, IEnumerable, int, NcDiagnosticProgress, CancellationToken) from the destination layers[0]'s running count, so subprogram pieces inlined by SubProgramCallSyntax get sequential indices that interleave correctly between host blocks. Useful as a cross-process alignment key (messages, ClStripPos, MachiningStep) — unlike FileLineUtil.MixedIndex(), it reflects execution order rather than (FileIndex, LineIndex) source order. Required at construction: the index is identity, not optional metadata. Read-only after construction; the pipeline guarantees one stamping per piece at the wrapping chokepoint. public int SentenceIndex { get; } Property Value int Methods GetSentence() Returns the source Sentence carried by this object. public Sentence GetSentence() Returns Sentence ToString() Serialize with Hi.NcParsers.Syntaxs.NcSyntaxUtil.Options to support NaN/Infinity. public override string ToString() Returns string" + "summary": "Class SyntaxPiece Namespace Hi.NcParsers.Syntaxs Assembly HiMech.dll One NC block's source line paired with its parsed JSON payload during soft-NC processing. public class SyntaxPiece : ISentenceCarrier, IGetSentence, ISentenceIndexed Inheritance object SyntaxPiece Implements ISentenceCarrier IGetSentence ISentenceIndexed Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Remarks The design pattern of Sentence and JsonObject are one-one mapping. JSON value type convention: Prefer base types (double, int) over string for numeric values in JsonObject. This applies to both parsing syntaxes and logic syntaxes. Strings should only be used when the value is genuinely textual (e.g., macro variable references like \"#1\", \"Q2\", coordinate IDs like \"G54\") or when the value cannot be parsed to a number. Use FloatTagValueSyntax, IntegerTagValueSyntax, or FloatParamPrefixes / IntParamPrefixes to store typed values at parse time. Constructors SyntaxPiece(Sentence, JsonObject, int) Creates a piece binding sentence to jsonObject with its execution-order sentenceIndex. public SyntaxPiece(Sentence sentence, JsonObject jsonObject, int sentenceIndex) Parameters sentence Sentence jsonObject JsonObject sentenceIndex int Properties JsonObject Structured parse result built by syntax passes. public JsonObject JsonObject { get; set; } Property Value JsonObject Sentence Indexed source line and block text for this piece. public Sentence Sentence { get; set; } Property Value Sentence SentenceIndex 0-based ordinal in NC execution order. Stamped at piece construction time by GetSyntaxPieces(ISegmenter, List, IEnumerable, int, NcDiagnosticProgress, CancellationToken) from the destination layers[0]'s running count, so subprogram pieces inlined by SubProgramCallSyntax get sequential indices that interleave correctly between host blocks. Useful as a cross-process alignment key (messages, ClStripPos, MachiningStep) — unlike FileLineUtil.MixedIndex(), it reflects execution order rather than (FileIndex, LineIndex) source order. Required at construction: the index is identity, not optional metadata. Read-only after construction; the pipeline guarantees one stamping per piece at the wrapping chokepoint. public int SentenceIndex { get; } Property Value int Methods GetSentence() Returns the source Sentence carried by this object. public Sentence GetSentence() Returns Sentence ToString() Serialize with Hi.NcParsers.Syntaxs.NcSyntaxUtil.Options to support NaN/Infinity. public override string ToString() Returns string" }, "api/Hi.NcParsers.Syntaxs.SyntaxStageKeys.html": { "href": "api/Hi.NcParsers.Syntaxs.SyntaxStageKeys.html", @@ -5007,7 +4992,7 @@ "api/Hi.NcParsers.html": { "href": "api/Hi.NcParsers.html", "title": "Namespace Hi.NcParsers | HiAPI-C# 2025", - "summary": "Namespace Hi.NcParsers Classes IndexedSentence Minimal ISentenceCarrier pairing a Sentence with its execution-order SentenceIndex. Use when there is no richer host object that already carries the sentence — e.g. CSV-driven runs that go straight from an input line to a Sentence without a SyntaxPiece wrapper. NcDiagnostic A structured diagnostic from the SoftNcRunner pipeline, designed for IProgress consumption. Id is composed as {Primary}-{Secondary}--{Abbrev} (e.g., Cycle-Peck--BadPeckQ, Syntax-Build--Exception). For irregular cases that don't fit the pattern, use a custom string. NcDiagnosticProgress Helper that emits NcDiagnostic records via an IProgress sink. Provides one method per (NcDiagnosticCategory, NcDiagnosticSeverity) pair, each with an optional Sentence overload locating the issue in the NC source. Sentence A small NC block for one or several lines. SoftNcRunner Configurable NC Runner. SoftNcUtil JSON helpers for soft-NC blocks: vectors under Parsing, motion-term queries, flag grab/remove on raw text, and unparsed-line trimming. Interfaces IGetSentence Abstraction for a source that carries a Sentence. ISentenceCarrier Carries a reference to a source Sentence together with its execution-order SentenceIndex. Used as the cross-process alignment carrier for diagnostics, messages, ClStripPos, MachiningStep, etc. — both the source content (via GetSentence()) and the execution-order position (via SentenceIndex) are available without needing two separate references. ISentenceIndexed Abstraction for an object that carries a SentenceIndex — a 0-based ordinal of its source Sentence in NC execution order. Use as a cross-process alignment key (messages, ClStripPos, MachiningStep, etc.) when source order (MixedIndex(IFileLineIndex)) is not enough because SubProgram inline reorders blocks relative to (FileIndex, LineIndex). Enums NcDiagnosticCategory Diagnostic category of an NC diagnostic. System + Error → exception/bug, unconsidered case Unsupported + Warning → known unsupported, likely harmless Unsupported + Error → known unsupported, likely matters Validation + Warning → manufacturing/physics may be unfeasible Validation + Error → manufacturing/physics is unfeasible Configuration + Message → dependency/config applied, informational event (e.g. a block skipped by an enabled IBlockSkipConfig layer) Configuration + Warning → dependency/config missing, using fallback Configuration + Error → dependency/config missing, cannot proceed NcDiagnosticSeverity Importance level of an NC diagnostic. Combined with NcDiagnosticCategory to form the full diagnostic meaning (e.g., Unsupported + Warning)." + "summary": "Namespace Hi.NcParsers Classes IndexedSentence Minimal ISentenceCarrier pairing a Sentence with its execution-order SentenceIndex. Use when there is no richer host object that already carries the sentence — e.g. CSV-driven runs that go straight from an input line to a Sentence without a SyntaxPiece wrapper. NcDiagnostic A structured diagnostic from the SoftNcRunner pipeline, designed for IProgress consumption. Id is composed as {Primary}-{Secondary}--{Abbrev} (e.g., Cycle-Peck--BadPeckQ, Syntax-Build--Exception). For irregular cases that don't fit the pattern, use a custom string. NcDiagnosticProgress Helper that emits NcDiagnostic records via an IProgress sink. Provides one method per (NcDiagnosticCategory, NcDiagnosticSeverity) pair, each with an optional Sentence overload locating the issue in the NC source. Sentence A small NC block for one or several lines. SoftNcRunner Configurable NC Runner. SoftNcUtil JSON helpers for soft-NC blocks: vectors under Parsing, motion-term queries, flag grab/remove on raw text, and unparsed-line trimming. Interfaces IGetSentence Abstraction for a source that carries a Sentence. ISentenceCarrier Carries a reference to a source Sentence together with its execution-order SentenceIndex. Used as the cross-process alignment carrier for diagnostics, messages, ClStripPos, MachiningStep, etc. — both the source content (via GetSentence()) and the execution-order position (via SentenceIndex) are available without needing two separate references. ISentenceIndexed Abstraction for an object that carries a SentenceIndex — a 0-based ordinal of its source Sentence in NC execution order. Use as a cross-process alignment key (messages, ClStripPos, MachiningStep, etc.) when source order (MixedIndex(IFileLineIndex)) is not enough because SubProgram inline reorders blocks relative to (FileIndex, LineIndex). ISessionResettable Marker for objects that hold session-scoped runtime state which must be cleared when RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) initializes a new session pipeline (the state.IsInitialized == false edge). Implementers may live on either chain: INcDependency or INcSyntax. SoftNcRunner scans NcDependencyList and NcSyntaxList on the session-init edge and calls OnSessionReset() on every match. Distinct from IPowerResettable: power-reset clears retained-but-volatile state on a controller power cycle (e.g., Fanuc #100-#499), an edge that survives ordinary session boundaries. Session-reset clears state whose lifetime is one pipeline pass (iteration counters, file-index allocators, etc.). Enums NcDiagnosticCategory Diagnostic category of an NC diagnostic. System + Error → exception/bug, unconsidered case Unsupported + Warning → known unsupported, likely harmless Unsupported + Error → known unsupported, likely matters Validation + Warning → manufacturing/physics may be unfeasible Validation + Error → manufacturing/physics is unfeasible Configuration + Message → dependency/config applied, informational event (e.g. a block skipped by an enabled IBlockSkipConfig layer) Configuration + Warning → dependency/config missing, using fallback Configuration + Error → dependency/config missing, cannot proceed NcDiagnosticSeverity Importance level of an NC diagnostic. Combined with NcDiagnosticCategory to form the full diagnostic meaning (e.g., Unsupported + Warning)." }, "api/Hi.Numerical.Acts.ActActualTime.html": { "href": "api/Hi.Numerical.Acts.ActActualTime.html", @@ -5254,25 +5239,50 @@ "title": "Enum CoordinateInterpolationMode | HiAPI-C# 2025", "summary": "Enum CoordinateInterpolationMode Namespace Hi.Numerical Assembly HiUniNc.dll Defines the coordinate interpolation mode for NC operations. public enum CoordinateInterpolationMode Extension Methods InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) MaskUtil.GetMaskedValue(T, T, bool) MaskUtil.SetMask(ref T, T, bool) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Fields Cartesian = 1 Standard Cartesian coordinate system interpolation. Polar = 2 Polar coordinate system interpolation." }, + "api/Hi.Numerical.CsvParsers.CsvRowSemantic.html": { + "href": "api/Hi.Numerical.CsvParsers.CsvRowSemantic.html", + "title": "Class CsvRowSemantic | HiAPI-C# 2025", + "summary": "Class CsvRowSemantic Namespace Hi.Numerical.CsvParsers Assembly HiMech.dll Final-stage semantic that turns each row JSON stamped by CsvRowSyntax into the same IAct sequence the legacy CsvRunner produced: optional ActLineCsScript (begin), ActActualTime, ActToolingTeleport, ActFeedrate, ActSpindleDirection, ActSpindleSpeed, ActMcXyzabcStep / ActMcXyzabcLinearContour, ActData, and optional ActLineCsScript (end). Stateless — the previous machine coordinate is recovered by walking back through the SyntaxPiece chain and reading the typed double cells CsvRowSyntax already stamped, so no carry-state lives on the semantic instance or in extra JSON sections. The previous actual time is recovered the same way; that cell stays as a string (the source format may be TimeSpan or DateTime) and is re-parsed on demand — at most once per row. public class CsvRowSemantic : INcSemantic, IMakeXmlSource Inheritance object CsvRowSemantic Implements INcSemantic IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties DisplayName The process name shown on UI. public string DisplayName { get; } Property Value string XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory Resolve(LazyLinkedListNode, List, NcDiagnosticProgress) Resolve the syntaxPieceNode into a sequence of IAct. May also mutate SyntaxPiece.JsonObject for downstream semantics. public IEnumerable Resolve(LazyLinkedListNode syntaxPieceNode, List dependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode dependencyList List ncDiagnosticProgress NcDiagnosticProgress Returns IEnumerable" + }, + "api/Hi.Numerical.CsvParsers.CsvRowSyntax.html": { + "href": "api/Hi.Numerical.CsvParsers.CsvRowSyntax.html", + "title": "Class CsvRowSyntax | HiAPI-C# 2025", + "summary": "Class CsvRowSyntax Namespace Hi.Numerical.CsvParsers Assembly HiMech.dll Per-row CSV parsing syntax for the soft NC runner. Reads the active TitleList via SegmenterDependency, splits the row text using GetCsvDictionary(IList, string), and stamps the resulting column→value map into JsonObject under the CsvRowKey property for CsvRowSemantic to consume. Numeric cells are pre-typed to double (or bool) at this stage so downstream readers — including CsvRowSemantic's backwards walk for the previous machine coordinate — touch native JSON numbers instead of re-parsing strings on every visit. Columns kept as strings: the script / time / spindle-direction tags whose semantic interpretation is non-numeric, plus any column whose key appears in ParsingDictionary (the caller-supplied parsing function expects the raw cell text). public class CsvRowSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object CsvRowSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Fields CsvRowKey JSON property name under which the parsed row dictionary is stored. public const string CsvRowKey = \"CsvRow\" Field Value string Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + }, + "api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html": { + "href": "api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html", + "title": "Class CsvRunnerConfig | HiAPI-C# 2025", + "summary": "Class CsvRunnerConfig Namespace Hi.Numerical.CsvParsers Assembly HiMech.dll Configuration class for CSV Runner. Lives in NcDependencyList when wired with CsvSoftRunner; consumed by CsvRowSyntax and CsvRowSemantic for tag-name lookup and custom-field parsing. public class CsvRunnerConfig : INcDependency, IMakeXmlSource Inheritance object CsvRunnerConfig Implements INcDependency IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors CsvRunnerConfig() Default constructor. public CsvRunnerConfig() CsvRunnerConfig(XElement) Constructor from XML. public CsvRunnerConfig(XElement src) Parameters src XElement XML element Properties ActualTimeTag Actual time tag for CSV parsing. public string ActualTimeTag { get; set; } Property Value string CutterLocationPrefix Cutter Location Prefix Tag for CSV Parsing. public string CutterLocationPrefix { get; set; } Property Value string DurationTag Duration tag for CSV parsing. public string DurationTag { get; set; } Property Value string FeedrateTag_mmdmin Feedrate for Simulator Tag for CSV Parsing. public string FeedrateTag_mmdmin { get; set; } Property Value string LineBeginCsScriptTag LineBeginCsScript Tag for CSV Parsing. public string LineBeginCsScriptTag { get; set; } Property Value string LineEndCsScriptTag LineEndCsScript Tag for CSV Parsing. public string LineEndCsScriptTag { get; set; } Property Value string MachineCoordinatePrefix Machine Coordinate Prefix Tag for CSV Parsing. public string MachineCoordinatePrefix { get; set; } Property Value string ParsingDictionary Parsing dictionary for custom field parsing. Note: This dictionary cannot be serialized to XML as it contains functions. public Dictionary> ParsingDictionary { get; set; } Property Value Dictionary> SpindleDirectionTag Spindle direction Tag for CSV Parsing. public string SpindleDirectionTag { get; set; } Property Value string SpindleSpeedTag_rpm Spindle speed for Simulator Tag for CSV Parsing. public string SpindleSpeedTag_rpm { get; set; } Property Value string ToolIdTag Tool ID Tag for CSV Parsing. public string ToolIdTag { get; set; } Property Value string XName Name for XML IO. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" + }, + "api/Hi.Numerical.CsvParsers.CsvSegmenter.html": { + "href": "api/Hi.Numerical.CsvParsers.CsvSegmenter.html", + "title": "Class CsvSegmenter | HiAPI-C# 2025", + "summary": "Class CsvSegmenter Namespace Hi.Numerical.CsvParsers Assembly HiMech.dll Segments a CSV stream for the SoftNcRunner pipeline. Consumes the first IndexedFileLine as the title row (populating TitleList and registering any new columns as step variables via StepPropertyAccessDictionaryDependency), then yields each subsequent line as a one-line Sentence for CsvRowSyntax to parse. public class CsvSegmenter : ISegmenter, IToXElement Inheritance object CsvSegmenter Implements ISegmenter IToXElement Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties Name Display name of this segmenter. public string Name { get; } Property Value string TitleList Column titles parsed from the first row of the most recent GetSentences(LazyLinkedList, List, NcDiagnosticProgress) invocation. Quote- and whitespace-trimmed to match the convention established in the legacy CsvRunner. Reset on each new call so per-file headers stay accurate across multi-file sessions. public List TitleList { get; } Property Value List XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods GetSentences(LazyLinkedList, List, NcDiagnosticProgress) Segments the indexed file lines into Sentences. public IEnumerable GetSentences(LazyLinkedList indexedFileLines, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters indexedFileLines LazyLinkedList The lazy linked list of indexed file lines. ncDependencyList List Dependency list of the owning runner; segmenters that consume header rows (e.g. CsvSegmenter) read host-wired dependencies from here. May be null in lightweight test fixtures — implementations that need a dependency must null-check. ncDiagnosticProgress NcDiagnosticProgress Diagnostic progress reporter. Returns IEnumerable A sequence of Sentences. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToXElement() Get the XElement to represent the object. public XElement ToXElement() Returns XElement XElement to represent the object." + }, + "api/Hi.Numerical.CsvParsers.CsvSoftRunner.html": { + "href": "api/Hi.Numerical.CsvParsers.CsvSoftRunner.html", + "title": "Class CsvSoftRunner | HiAPI-C# 2025", + "summary": "Class CsvSoftRunner Namespace Hi.Numerical.CsvParsers Assembly HiMech.dll Factory for a SoftNcRunner wired to replay CSV files (deprecates the legacy CsvRunner). The returned runner has a single-syntax pipeline: CsvSegmenter → CsvRowSyntax → CsvRowSemantic. Default NcDependencyList: CsvRunnerConfig — tag names + custom field parsers. NcKinematicsDependency — provider left null; host wires it the same way it does for brand presets (see BuildCoordinateConverter). StepPropertyAccessDictionaryDependency — wired by the host so CSV title columns auto-register as step variables. FileIndexCounterDependency, SegmenterDependency, SyntaxPieceLayerDependency — runtime plumbing required by RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken). MachiningServiceDependency is intentionally not included by default; clients that build custom syntaxes around CsvSoftRunner can append it themselves. public static class CsvSoftRunner Inheritance object CsvSoftRunner Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods Create(CsvRunnerConfig) Builds a fresh SoftNcRunner pre-configured to consume CSV input. Call once per machining session so the runner's per-session state starts clean (mirrors the legacy CsvRunner's reset on project change). public static SoftNcRunner Create(CsvRunnerConfig config = null) Parameters config CsvRunnerConfig Optional CSV column-tag configuration; a default CsvRunnerConfig is created when null. Returns SoftNcRunner" + }, + "api/Hi.Numerical.CsvParsers.html": { + "href": "api/Hi.Numerical.CsvParsers.html", + "title": "Namespace Hi.Numerical.CsvParsers | HiAPI-C# 2025", + "summary": "Namespace Hi.Numerical.CsvParsers Classes CsvRowSemantic Final-stage semantic that turns each row JSON stamped by CsvRowSyntax into the same IAct sequence the legacy CsvRunner produced: optional ActLineCsScript (begin), ActActualTime, ActToolingTeleport, ActFeedrate, ActSpindleDirection, ActSpindleSpeed, ActMcXyzabcStep / ActMcXyzabcLinearContour, ActData, and optional ActLineCsScript (end). Stateless — the previous machine coordinate is recovered by walking back through the SyntaxPiece chain and reading the typed double cells CsvRowSyntax already stamped, so no carry-state lives on the semantic instance or in extra JSON sections. The previous actual time is recovered the same way; that cell stays as a string (the source format may be TimeSpan or DateTime) and is re-parsed on demand — at most once per row. CsvRowSyntax Per-row CSV parsing syntax for the soft NC runner. Reads the active TitleList via SegmenterDependency, splits the row text using GetCsvDictionary(IList, string), and stamps the resulting column→value map into JsonObject under the CsvRowKey property for CsvRowSemantic to consume. Numeric cells are pre-typed to double (or bool) at this stage so downstream readers — including CsvRowSemantic's backwards walk for the previous machine coordinate — touch native JSON numbers instead of re-parsing strings on every visit. Columns kept as strings: the script / time / spindle-direction tags whose semantic interpretation is non-numeric, plus any column whose key appears in ParsingDictionary (the caller-supplied parsing function expects the raw cell text). CsvRunnerConfig Configuration class for CSV Runner. Lives in NcDependencyList when wired with CsvSoftRunner; consumed by CsvRowSyntax and CsvRowSemantic for tag-name lookup and custom-field parsing. CsvSegmenter Segments a CSV stream for the SoftNcRunner pipeline. Consumes the first IndexedFileLine as the title row (populating TitleList and registering any new columns as step variables via StepPropertyAccessDictionaryDependency), then yields each subsequent line as a one-line Sentence for CsvRowSyntax to parse. CsvSoftRunner Factory for a SoftNcRunner wired to replay CSV files (deprecates the legacy CsvRunner). The returned runner has a single-syntax pipeline: CsvSegmenter → CsvRowSyntax → CsvRowSemantic. Default NcDependencyList: CsvRunnerConfig — tag names + custom field parsers. NcKinematicsDependency — provider left null; host wires it the same way it does for brand presets (see BuildCoordinateConverter). StepPropertyAccessDictionaryDependency — wired by the host so CSV title columns auto-register as step variables. FileIndexCounterDependency, SegmenterDependency, SyntaxPieceLayerDependency — runtime plumbing required by RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken). MachiningServiceDependency is intentionally not included by default; clients that build custom syntaxes around CsvSoftRunner can append it themselves." + }, "api/Hi.Numerical.FilePlayers.CsvRunner.html": { "href": "api/Hi.Numerical.FilePlayers.CsvRunner.html", "title": "Class CsvRunner | HiAPI-C# 2025", "summary": "Class CsvRunner Namespace Hi.Numerical.FilePlayers Assembly HiNc.dll Provides functionality for running and processing csv lines. public class CsvRunner : IControlRunner Inheritance object CsvRunner Implements IControlRunner Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors CsvRunner(LocalProjectService) Initializes a new instance. public CsvRunner(LocalProjectService localProjectService) Parameters localProjectService LocalProjectService The local project service. Properties Config Configuration for CSV Runner. public CsvRunnerConfig Config { get; set; } Property Value CsvRunnerConfig Methods Reset() Reset runtime data, including the execution-order Hi.Numerical.FilePlayers.CsvRunner.sentenceIndex counter. Called from LocalProjectService.ResetRuntime only — session stop (EndSession) deliberately does not reset the runner. public void Reset() RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) Runs raw Control lines and yields source sentence and Act pairs. public IEnumerable RunControlLines(string relFilePath, IEnumerable lines, MachiningSession machiningSession, SessionProgress sessionMessageHost, CancellationToken cancellationToken) Parameters relFilePath string The relative path of the control file lines IEnumerable The enumerable collection of command (control code) lines machiningSession MachiningSession Session-scoped state shared across multiple RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) calls (e.g. lazy-initialized pipeline state, file-index counter). sessionMessageHost SessionProgress cancellationToken CancellationToken Cancellation token to cancel the operation Returns IEnumerable Enumerable of source sentence and Act pairs" }, - "api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html": { - "href": "api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html", - "title": "Class CsvRunnerConfig | HiAPI-C# 2025", - "summary": "Class CsvRunnerConfig Namespace Hi.Numerical.FilePlayers Assembly HiNc.dll Configuration class for CSV Runner. public class CsvRunnerConfig : IMakeXmlSource Inheritance object CsvRunnerConfig Implements IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors CsvRunnerConfig() Default constructor. public CsvRunnerConfig() CsvRunnerConfig(XElement) Constructor from XML. public CsvRunnerConfig(XElement src) Parameters src XElement XML element Properties ActualTimeTag Actual time tag for CSV parsing. public string ActualTimeTag { get; set; } Property Value string CutterLocationPrefix Cutter Location Prefix Tag for CSV Parsing. public string CutterLocationPrefix { get; set; } Property Value string DurationTag Duration tag for CSV parsing. public string DurationTag { get; set; } Property Value string FeedrateTag_mmdmin Feedrate for Simulator Tag for CSV Parsing. public string FeedrateTag_mmdmin { get; set; } Property Value string LineBeginCsScriptTag LineBeginCsScript Tag for CSV Parsing. public string LineBeginCsScriptTag { get; set; } Property Value string LineEndCsScriptTag LineEndCsScript Tag for CSV Parsing. public string LineEndCsScriptTag { get; set; } Property Value string MachineCoordinatePrefix Machine Coordinate Prefix Tag for CSV Parsing. public string MachineCoordinatePrefix { get; set; } Property Value string ParsingDictionary Parsing dictionary for custom field parsing. Note: This dictionary cannot be serialized to XML as it contains functions. public Dictionary> ParsingDictionary { get; set; } Property Value Dictionary> SpindleDirectionTag Spindle direction Tag for CSV Parsing. public string SpindleDirectionTag { get; set; } Property Value string SpindleSpeedTag_rpm Spindle speed for Simulator Tag for CSV Parsing. public string SpindleSpeedTag_rpm { get; set; } Property Value string ToolIdTag Tool ID Tag for CSV Parsing. public string ToolIdTag { get; set; } Property Value string XName Name for XML IO. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" - }, "api/Hi.Numerical.FilePlayers.HardNcRunner.html": { "href": "api/Hi.Numerical.FilePlayers.HardNcRunner.html", "title": "Class HardNcRunner | HiAPI-C# 2025", - "summary": "Class HardNcRunner Namespace Hi.Numerical.FilePlayers Assembly HiNc.dll Provides functionality for running and processing NC code lines. public class HardNcRunner : IControlRunner Inheritance object HardNcRunner Implements IControlRunner Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties NcLines Gets the linked list of NC lines. public LinkedList NcLines { get; } Property Value LinkedList Methods RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) Runs raw NC lines and yields NcLine and Act pairs. public IEnumerable RunControlLines(string relNcFilePath, IEnumerable lines, MachiningSession machiningSession, SessionProgress sessionProgress, CancellationToken cancellationToken) Parameters relNcFilePath string The relative path of the NC file lines IEnumerable The enumerable collection of NC code lines machiningSession MachiningSession sessionProgress SessionProgress The session message host for logging. cancellationToken CancellationToken Cancellation token to cancel the operation Returns IEnumerable Enumerable of NcLine and Act pairs" + "summary": "Class HardNcRunner Namespace Hi.Numerical.FilePlayers Assembly HiNc.dll Provides functionality for running and processing NC code lines. public class HardNcRunner : IControlRunner Inheritance object HardNcRunner Implements IControlRunner Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties NcLines Gets the linked list of NC lines. public LinkedList NcLines { get; } Property Value LinkedList Methods RunControlLines(string, IEnumerable, MachiningSession, SessionProgress, CancellationToken) Runs raw NC lines and yields NcLine and Act pairs. public IEnumerable RunControlLines(string relNcFilePath, IEnumerable lines, MachiningSession machiningSession, SessionProgress sessionProgress, CancellationToken cancellationToken) Parameters relNcFilePath string The relative path of the NC file lines IEnumerable The enumerable collection of NC code lines machiningSession MachiningSession The machining session that owns runtime state for this run. sessionProgress SessionProgress The session message host for logging. cancellationToken CancellationToken Cancellation token to cancel the operation Returns IEnumerable Enumerable of NcLine and Act pairs" }, "api/Hi.Numerical.FilePlayers.html": { "href": "api/Hi.Numerical.FilePlayers.html", "title": "Namespace Hi.Numerical.FilePlayers | HiAPI-C# 2025", - "summary": "Namespace Hi.Numerical.FilePlayers Classes CsvRunner Provides functionality for running and processing csv lines. CsvRunnerConfig Configuration class for CSV Runner. HardNcRunner Provides functionality for running and processing NC code lines." + "summary": "Namespace Hi.Numerical.FilePlayers Classes CsvRunner Provides functionality for running and processing csv lines. HardNcRunner Provides functionality for running and processing NC code lines." }, "api/Hi.Numerical.FlexDictionaryUtil.html": { "href": "api/Hi.Numerical.FlexDictionaryUtil.html", @@ -6274,76 +6284,6 @@ "title": "Namespace HiMachining.Milling | HiAPI-C# 2025", "summary": "Namespace HiMachining.Milling Classes ClMillingDevice A milling device driven by CL(Cutter Location)." }, - "api/HiNc.Grpcs.MachiningProjectGrpcServer.html": { - "href": "api/HiNc.Grpcs.MachiningProjectGrpcServer.html", - "title": "Class MachiningProjectGrpcServer | HiAPI-C# 2025", - "summary": "Class MachiningProjectGrpcServer Namespace HiNc.Grpcs Assembly HiNc.dll Server for exposing machining project functionality via gRPC. public class MachiningProjectGrpcServer : IDisposable, IMakeXmlSource Inheritance object MachiningProjectGrpcServer Implements IDisposable IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningProjectGrpcServer(LocalProjectService) Initializes a new instance of the MachiningProjectGrpcServer class. public MachiningProjectGrpcServer(LocalProjectService localProjectService) Parameters localProjectService LocalProjectService MachiningProjectGrpcServer(XElement, LocalProjectService) Initializes a new instance of the MachiningProjectGrpcServer class from XML. public MachiningProjectGrpcServer(XElement src, LocalProjectService localProjectService) Parameters src XElement XML source element localProjectService LocalProjectService The local project service. Properties IsServiceRunning Gets whether the service is currently running. public bool IsServiceRunning { get; } Property Value bool ServicePort Gets or sets the port used by the gRPC service. public int ServicePort { get; set; } Property Value int WebApplication Gets the web application instance for the gRPC server. public WebApplication WebApplication { get; } Property Value WebApplication XName Name for XML IO. public static string XName { get; } Property Value string Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() Dispose(bool) protected virtual void Dispose(bool disposing) Parameters disposing bool MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer (and its legacy alias) with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory StartAsync() Starts the gRPC server asynchronously. public Task StartAsync() Returns Task A task representing the asynchronous operation StopAsync() Stops the gRPC server asynchronously. public Task StopAsync() Returns Task A task representing the asynchronous operation" - }, - "api/HiNc.Grpcs.html": { - "href": "api/HiNc.Grpcs.html", - "title": "Namespace HiNc.Grpcs | HiAPI-C# 2025", - "summary": "Namespace HiNc.Grpcs Classes MachiningProjectGrpcServer Server for exposing machining project functionality via gRPC." - }, - "api/numerical.Empty.html": { - "href": "api/numerical.Empty.html", - "title": "Class Empty | HiAPI-C# 2025", - "summary": "Class Empty Namespace numerical Assembly HiGeom.dll public sealed class Empty : IMessage, IEquatable, IDeepCloneable, IBufferMessage, IMessage Inheritance object Empty Implements IMessage IEquatable IDeepCloneable IBufferMessage IMessage Inherited Members object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Extension Methods ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) Constructors Empty() public Empty() Empty(Empty) public Empty(Empty other) Parameters other Empty Properties Descriptor public static MessageDescriptor Descriptor { get; } Property Value MessageDescriptor Parser public static MessageParser Parser { get; } Property Value MessageParser Methods CalculateSize() Calculates the size of this message in Protocol Buffer wire format, in bytes. public int CalculateSize() Returns int The number of bytes required to write this message to a coded output stream. Clone() Creates a deep clone of this object. public Empty Clone() Returns Empty A deep clone of this object. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object other) Parameters other object Returns bool true if the specified object is equal to the current object; otherwise, false. Equals(Empty) Indicates whether the current object is equal to another object of the same type. public bool Equals(Empty other) Parameters other Empty An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. MergeFrom(CodedInputStream) Merges the data from the specified coded input stream with the current message. public void MergeFrom(CodedInputStream input) Parameters input CodedInputStream Remarks See the user guide for precise merge semantics. MergeFrom(Empty) Merges the given message into this one. public void MergeFrom(Empty other) Parameters other Empty Remarks See the user guide for precise merge semantics. ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. WriteTo(CodedOutputStream) Writes the data to the given coded output stream. public void WriteTo(CodedOutputStream output) Parameters output CodedOutputStream Coded output stream to write the data to. Must not be null." - }, - "api/numerical.GrpcCsvRowDictionary.html": { - "href": "api/numerical.GrpcCsvRowDictionary.html", - "title": "Class GrpcCsvRowDictionary | HiAPI-C# 2025", - "summary": "Class GrpcCsvRowDictionary Namespace numerical Assembly HiGeom.dll public sealed class GrpcCsvRowDictionary : IMessage, IEquatable, IDeepCloneable, IBufferMessage, IMessage Inheritance object GrpcCsvRowDictionary Implements IMessage IEquatable IDeepCloneable IBufferMessage IMessage Inherited Members object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Extension Methods ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) Constructors GrpcCsvRowDictionary() public GrpcCsvRowDictionary() GrpcCsvRowDictionary(GrpcCsvRowDictionary) public GrpcCsvRowDictionary(GrpcCsvRowDictionary other) Parameters other GrpcCsvRowDictionary Fields CsvRowDictionaryFieldNumber Field number for the “CsvRowDictionary” field. public const int CsvRowDictionaryFieldNumber = 2 Field Value int StatusFieldNumber Field number for the “Status” field. public const int StatusFieldNumber = 1 Field Value int Properties CsvRowDictionary public MapField CsvRowDictionary { get; } Property Value MapField Descriptor public static MessageDescriptor Descriptor { get; } Property Value MessageDescriptor Parser public static MessageParser Parser { get; } Property Value MessageParser Status Status: 0:ok; 1: failed. public int Status { get; set; } Property Value int Methods CalculateSize() Calculates the size of this message in Protocol Buffer wire format, in bytes. public int CalculateSize() Returns int The number of bytes required to write this message to a coded output stream. Clone() Creates a deep clone of this object. public GrpcCsvRowDictionary Clone() Returns GrpcCsvRowDictionary A deep clone of this object. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object other) Parameters other object Returns bool true if the specified object is equal to the current object; otherwise, false. Equals(GrpcCsvRowDictionary) Indicates whether the current object is equal to another object of the same type. public bool Equals(GrpcCsvRowDictionary other) Parameters other GrpcCsvRowDictionary An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. MergeFrom(CodedInputStream) Merges the data from the specified coded input stream with the current message. public void MergeFrom(CodedInputStream input) Parameters input CodedInputStream Remarks See the user guide for precise merge semantics. MergeFrom(GrpcCsvRowDictionary) Merges the given message into this one. public void MergeFrom(GrpcCsvRowDictionary other) Parameters other GrpcCsvRowDictionary Remarks See the user guide for precise merge semantics. ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. WriteTo(CodedOutputStream) Writes the data to the given coded output stream. public void WriteTo(CodedOutputStream output) Parameters output CodedOutputStream Coded output stream to write the data to. Must not be null." - }, - "api/numerical.GrpcNcStep.html": { - "href": "api/numerical.GrpcNcStep.html", - "title": "Class GrpcNcStep | HiAPI-C# 2025", - "summary": "Class GrpcNcStep Namespace numerical Assembly HiGeom.dll public sealed class GrpcNcStep : IMessage, IEquatable, IDeepCloneable, IBufferMessage, IMessage Inheritance object GrpcNcStep Implements IMessage IEquatable IDeepCloneable IBufferMessage IMessage Inherited Members object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Extension Methods ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) Constructors GrpcNcStep() public GrpcNcStep() GrpcNcStep(GrpcNcStep) public GrpcNcStep(GrpcNcStep other) Parameters other GrpcNcStep Fields CsvRowDictionaryFieldNumber Field number for the “CsvRowDictionary” field. public const int CsvRowDictionaryFieldNumber = 11 Field Value int FeedrateMmdminFieldNumber Field number for the “Feedrate_mmdmin” field. public const int FeedrateMmdminFieldNumber = 8 Field Value int FileIndexFieldNumber Field number for the “FileIndex” field. public const int FileIndexFieldNumber = 4 Field Value int FilePathFieldNumber Field number for the “FilePath” field. public const int FilePathFieldNumber = 2 Field Value int LineFieldNumber Field number for the “Line” field. public const int LineFieldNumber = 3 Field Value int LineIndexFieldNumber Field number for the “LineIndex” field. public const int LineIndexFieldNumber = 5 Field Value int SpindleDirectionFieldNumber Field number for the “SpindleDirection” field. public const int SpindleDirectionFieldNumber = 10 Field Value int SpindleSpeedRpmFieldNumber Field number for the “SpindleSpeed_rpm” field. public const int SpindleSpeedRpmFieldNumber = 9 Field Value int StepIndexFieldNumber Field number for the “StepIndex” field. public const int StepIndexFieldNumber = 1 Field Value int ToolIdFieldNumber Field number for the “ToolId” field. public const int ToolIdFieldNumber = 7 Field Value int WorkTimeFieldNumber Field number for the “WorkTime” field. public const int WorkTimeFieldNumber = 6 Field Value int Properties CsvRowDictionary public MapField CsvRowDictionary { get; } Property Value MapField Descriptor public static MessageDescriptor Descriptor { get; } Property Value MessageDescriptor FeedrateMmdmin public double FeedrateMmdmin { get; set; } Property Value double FileIndex public int FileIndex { get; set; } Property Value int FilePath public string FilePath { get; set; } Property Value string Line public string Line { get; set; } Property Value string LineIndex public int LineIndex { get; set; } Property Value int Parser public static MessageParser Parser { get; } Property Value MessageParser SpindleDirection public int SpindleDirection { get; set; } Property Value int SpindleSpeedRpm public double SpindleSpeedRpm { get; set; } Property Value double StepIndex public int StepIndex { get; set; } Property Value int ToolId public int ToolId { get; set; } Property Value int WorkTime public double WorkTime { get; set; } Property Value double Methods CalculateSize() Calculates the size of this message in Protocol Buffer wire format, in bytes. public int CalculateSize() Returns int The number of bytes required to write this message to a coded output stream. Clone() Creates a deep clone of this object. public GrpcNcStep Clone() Returns GrpcNcStep A deep clone of this object. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object other) Parameters other object Returns bool true if the specified object is equal to the current object; otherwise, false. Equals(GrpcNcStep) Indicates whether the current object is equal to another object of the same type. public bool Equals(GrpcNcStep other) Parameters other GrpcNcStep An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. MergeFrom(CodedInputStream) Merges the data from the specified coded input stream with the current message. public void MergeFrom(CodedInputStream input) Parameters input CodedInputStream Remarks See the user guide for precise merge semantics. MergeFrom(GrpcNcStep) Merges the given message into this one. public void MergeFrom(GrpcNcStep other) Parameters other GrpcNcStep Remarks See the user guide for precise merge semantics. ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. WriteTo(CodedOutputStream) Writes the data to the given coded output stream. public void WriteTo(CodedOutputStream output) Parameters output CodedOutputStream Coded output stream to write the data to. Must not be null." - }, - "api/numerical.NumericalReflection.html": { - "href": "api/numerical.NumericalReflection.html", - "title": "Class NumericalReflection | HiAPI-C# 2025", - "summary": "Class NumericalReflection Namespace numerical Assembly HiGeom.dll Holder for reflection information generated from UniversalNcs/numerical.proto public static class NumericalReflection Inheritance object NumericalReflection Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties Descriptor File descriptor for UniversalNcs/numerical.proto public static FileDescriptor Descriptor { get; } Property Value FileDescriptor" - }, - "api/numerical.NumericalService.NumericalServiceBase.html": { - "href": "api/numerical.NumericalService.NumericalServiceBase.html", - "title": "Class NumericalService.NumericalServiceBase | HiAPI-C# 2025", - "summary": "Class NumericalService.NumericalServiceBase Namespace numerical Assembly HiGeom.dll Base class for server-side implementations of NumericalService [BindServiceMethod(typeof(NumericalService), \"BindService\")] public abstract class NumericalService.NumericalServiceBase Inheritance object NumericalService.NumericalServiceBase Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) Methods GetNcStepGrpcCsvRowDictionary(Empty, ServerCallContext) public virtual Task GetNcStepGrpcCsvRowDictionary(Empty request, ServerCallContext context) Parameters request Empty context ServerCallContext Returns Task" - }, - "api/numerical.NumericalService.NumericalServiceClient.html": { - "href": "api/numerical.NumericalService.NumericalServiceClient.html", - "title": "Class NumericalService.NumericalServiceClient | HiAPI-C# 2025", - "summary": "Class NumericalService.NumericalServiceClient Namespace numerical Assembly HiGeom.dll Client for NumericalService public class NumericalService.NumericalServiceClient : ClientBase Inheritance object ClientBase ClientBase NumericalService.NumericalServiceClient Inherited Members ClientBase.WithHost(string) ClientBase.CallInvoker object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) Constructors NumericalServiceClient() Protected parameterless constructor to allow creation of test doubles. protected NumericalServiceClient() NumericalServiceClient(CallInvoker) Creates a new client for NumericalService that uses a custom CallInvoker. public NumericalServiceClient(CallInvoker callInvoker) Parameters callInvoker CallInvoker The callInvoker to use to make remote calls. NumericalServiceClient(ChannelBase) Creates a new client for NumericalService public NumericalServiceClient(ChannelBase channel) Parameters channel ChannelBase The channel to use to make remote calls. NumericalServiceClient(ClientBaseConfiguration) Protected constructor to allow creation of configured clients. protected NumericalServiceClient(ClientBase.ClientBaseConfiguration configuration) Parameters configuration ClientBase.ClientBaseConfiguration The client configuration. Methods GetNcStepGrpcCsvRowDictionary(Empty, CallOptions) public virtual GrpcCsvRowDictionary GetNcStepGrpcCsvRowDictionary(Empty request, CallOptions options) Parameters request Empty options CallOptions Returns GrpcCsvRowDictionary GetNcStepGrpcCsvRowDictionary(Empty, Metadata, DateTime?, CancellationToken) public virtual GrpcCsvRowDictionary GetNcStepGrpcCsvRowDictionary(Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default) Parameters request Empty headers Metadata deadline DateTime? cancellationToken CancellationToken Returns GrpcCsvRowDictionary GetNcStepGrpcCsvRowDictionaryAsync(Empty, CallOptions) public virtual AsyncUnaryCall GetNcStepGrpcCsvRowDictionaryAsync(Empty request, CallOptions options) Parameters request Empty options CallOptions Returns AsyncUnaryCall GetNcStepGrpcCsvRowDictionaryAsync(Empty, Metadata, DateTime?, CancellationToken) public virtual AsyncUnaryCall GetNcStepGrpcCsvRowDictionaryAsync(Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default) Parameters request Empty headers Metadata deadline DateTime? cancellationToken CancellationToken Returns AsyncUnaryCall NewInstance(ClientBaseConfiguration) Creates a new instance of client from given ClientBaseConfiguration. protected override NumericalService.NumericalServiceClient NewInstance(ClientBase.ClientBaseConfiguration configuration) Parameters configuration ClientBase.ClientBaseConfiguration Returns NumericalService.NumericalServiceClient" - }, - "api/numerical.NumericalService.html": { - "href": "api/numerical.NumericalService.html", - "title": "Class NumericalService | HiAPI-C# 2025", - "summary": "Class NumericalService Namespace numerical Assembly HiGeom.dll public static class NumericalService Inheritance object NumericalService Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties Descriptor Service descriptor public static ServiceDescriptor Descriptor { get; } Property Value ServiceDescriptor Methods BindService(ServiceBinderBase, NumericalServiceBase) Register service method with a service binder with or without implementation. Useful when customizing the service binding logic. Note: this method is part of an experimental API that can change or be removed without any prior notice. public static void BindService(ServiceBinderBase serviceBinder, NumericalService.NumericalServiceBase serviceImpl) Parameters serviceBinder ServiceBinderBase Service methods will be bound by calling AddMethod on this object. serviceImpl NumericalService.NumericalServiceBase An object implementing the server-side handling logic. BindService(NumericalServiceBase) Creates service definition that can be registered with a server public static ServerServiceDefinition BindService(NumericalService.NumericalServiceBase serviceImpl) Parameters serviceImpl NumericalService.NumericalServiceBase An object implementing the server-side handling logic. Returns ServerServiceDefinition" - }, - "api/numerical.UniversalNcReflection.html": { - "href": "api/numerical.UniversalNcReflection.html", - "title": "Class UniversalNcReflection | HiAPI-C# 2025", - "summary": "Class UniversalNcReflection Namespace numerical Assembly HiGeom.dll Holder for reflection information generated from UniversalNcs/universal_nc.proto public static class UniversalNcReflection Inheritance object UniversalNcReflection Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties Descriptor File descriptor for UniversalNcs/universal_nc.proto public static FileDescriptor Descriptor { get; } Property Value FileDescriptor" - }, - "api/numerical.UniversalNcService.UniversalNcServiceBase.html": { - "href": "api/numerical.UniversalNcService.UniversalNcServiceBase.html", - "title": "Class UniversalNcService.UniversalNcServiceBase | HiAPI-C# 2025", - "summary": "Class UniversalNcService.UniversalNcServiceBase Namespace numerical Assembly HiGeom.dll Base class for server-side implementations of UniversalNcService [BindServiceMethod(typeof(UniversalNcService), \"BindService\")] public abstract class UniversalNcService.UniversalNcServiceBase Inheritance object UniversalNcService.UniversalNcServiceBase Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) Methods GetNcStepGrpcCsvRowDictionary(GrpcNcStep, ServerCallContext) public virtual Task GetNcStepGrpcCsvRowDictionary(GrpcNcStep request, ServerCallContext context) Parameters request GrpcNcStep context ServerCallContext Returns Task" - }, - "api/numerical.UniversalNcService.UniversalNcServiceClient.html": { - "href": "api/numerical.UniversalNcService.UniversalNcServiceClient.html", - "title": "Class UniversalNcService.UniversalNcServiceClient | HiAPI-C# 2025", - "summary": "Class UniversalNcService.UniversalNcServiceClient Namespace numerical Assembly HiGeom.dll Client for UniversalNcService public class UniversalNcService.UniversalNcServiceClient : ClientBase Inheritance object ClientBase ClientBase UniversalNcService.UniversalNcServiceClient Inherited Members ClientBase.WithHost(string) ClientBase.CallInvoker object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) Constructors UniversalNcServiceClient() Protected parameterless constructor to allow creation of test doubles. protected UniversalNcServiceClient() UniversalNcServiceClient(CallInvoker) Creates a new client for UniversalNcService that uses a custom CallInvoker. public UniversalNcServiceClient(CallInvoker callInvoker) Parameters callInvoker CallInvoker The callInvoker to use to make remote calls. UniversalNcServiceClient(ChannelBase) Creates a new client for UniversalNcService public UniversalNcServiceClient(ChannelBase channel) Parameters channel ChannelBase The channel to use to make remote calls. UniversalNcServiceClient(ClientBaseConfiguration) Protected constructor to allow creation of configured clients. protected UniversalNcServiceClient(ClientBase.ClientBaseConfiguration configuration) Parameters configuration ClientBase.ClientBaseConfiguration The client configuration. Methods GetNcStepGrpcCsvRowDictionary(GrpcNcStep, CallOptions) public virtual GrpcNcStep GetNcStepGrpcCsvRowDictionary(GrpcNcStep request, CallOptions options) Parameters request GrpcNcStep options CallOptions Returns GrpcNcStep GetNcStepGrpcCsvRowDictionary(GrpcNcStep, Metadata, DateTime?, CancellationToken) public virtual GrpcNcStep GetNcStepGrpcCsvRowDictionary(GrpcNcStep request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default) Parameters request GrpcNcStep headers Metadata deadline DateTime? cancellationToken CancellationToken Returns GrpcNcStep GetNcStepGrpcCsvRowDictionaryAsync(GrpcNcStep, CallOptions) public virtual AsyncUnaryCall GetNcStepGrpcCsvRowDictionaryAsync(GrpcNcStep request, CallOptions options) Parameters request GrpcNcStep options CallOptions Returns AsyncUnaryCall GetNcStepGrpcCsvRowDictionaryAsync(GrpcNcStep, Metadata, DateTime?, CancellationToken) public virtual AsyncUnaryCall GetNcStepGrpcCsvRowDictionaryAsync(GrpcNcStep request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default) Parameters request GrpcNcStep headers Metadata deadline DateTime? cancellationToken CancellationToken Returns AsyncUnaryCall NewInstance(ClientBaseConfiguration) Creates a new instance of client from given ClientBaseConfiguration. protected override UniversalNcService.UniversalNcServiceClient NewInstance(ClientBase.ClientBaseConfiguration configuration) Parameters configuration ClientBase.ClientBaseConfiguration Returns UniversalNcService.UniversalNcServiceClient" - }, - "api/numerical.UniversalNcService.html": { - "href": "api/numerical.UniversalNcService.html", - "title": "Class UniversalNcService | HiAPI-C# 2025", - "summary": "Class UniversalNcService Namespace numerical Assembly HiGeom.dll public static class UniversalNcService Inheritance object UniversalNcService Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties Descriptor Service descriptor public static ServiceDescriptor Descriptor { get; } Property Value ServiceDescriptor Methods BindService(ServiceBinderBase, UniversalNcServiceBase) Register service method with a service binder with or without implementation. Useful when customizing the service binding logic. Note: this method is part of an experimental API that can change or be removed without any prior notice. public static void BindService(ServiceBinderBase serviceBinder, UniversalNcService.UniversalNcServiceBase serviceImpl) Parameters serviceBinder ServiceBinderBase Service methods will be bound by calling AddMethod on this object. serviceImpl UniversalNcService.UniversalNcServiceBase An object implementing the server-side handling logic. BindService(UniversalNcServiceBase) Creates service definition that can be registered with a server public static ServerServiceDefinition BindService(UniversalNcService.UniversalNcServiceBase serviceImpl) Parameters serviceImpl UniversalNcService.UniversalNcServiceBase An object implementing the server-side handling logic. Returns ServerServiceDefinition" - }, - "api/numerical.html": { - "href": "api/numerical.html", - "title": "Namespace numerical | HiAPI-C# 2025", - "summary": "Namespace numerical Classes Empty GrpcCsvRowDictionary GrpcNcStep NumericalReflection Holder for reflection information generated from UniversalNcs/numerical.proto NumericalService NumericalService.NumericalServiceBase Base class for server-side implementations of NumericalService NumericalService.NumericalServiceClient Client for NumericalService UniversalNcReflection Holder for reflection information generated from UniversalNcs/universal_nc.proto UniversalNcService UniversalNcService.UniversalNcServiceBase Base class for server-side implementations of UniversalNcService UniversalNcService.UniversalNcServiceClient Client for UniversalNcService" - }, "app-anatomy/common/dictionary-service-pattern.html": { "href": "app-anatomy/common/dictionary-service-pattern.html", "title": "DictionaryService and DictionaryHub Pattern | HiAPI-C# 2025", @@ -6377,7 +6317,7 @@ "app-anatomy/geom/cylindroid-control.html": { "href": "app-anatomy/geom/cylindroid-control.html", "title": "CylindroidControl | HiAPI-C# 2025", - "summary": "CylindroidControl The CylindroidControl provides a user interface for editing a cylindroid, which is a generalized cylinder defined by a series of radius values along the Z-axis. Features Edit the Z-radius pairs that define the cylindroid's profile Set the longitude number (resolution) for the cylindroid Add and remove Z-radius pairs UI Layout The CylindroidControl includes the following UI elements: Longitude Number - A numeric input for setting the resolution of the cylindroid Z-Radius Pairs - A DataGrid showing the Z-coordinate and radius pairs Add Button - Adds a new Z-radius pair Remove Button - Removes the selected Z-radius pair Source Code Path See this page for git repository. WPF Application Source Code Path Geom/CylindroidControl Web Service Application Source Code Path wwwroot/geom/cylindroid-control.js Geom/CylindroidHub.cs" + "summary": "CylindroidControl The CylindroidControl provides a user interface for editing a cylindroid, which is a generalized cylinder defined by a series of radius values along the Z-axis. Features Edit the Z-radius pairs that define the cylindroid's profile Set the longitude number (resolution) for the cylindroid Add and remove Z-radius pairs UI Layout The CylindroidControl includes the following UI elements: Longitude Number - A numeric input for setting the resolution of the cylindroid Z-Radius Pairs - A DataGrid showing the Z-coordinate and radius pairs Add Button - Adds a new Z-radius pair Remove Button - Removes the selected Z-radius pair Source Code Path See this page for git repository. WPF Application Source Code Path Geom/CylindroidControl Web Service Application Source Code Path HiNC-2025-webservice (Quasar CLI SPA): wwwroot-src/src/components/geom/CylindroidEditor.vue — reusable Z-R pair editor (add / remove / edit); edits the cylindroid by IndexService key and emits changed so the owner can resync. wwwroot-src/src/api/geometry.ts — Cylindroid API wrappers. Geom/CylindroidController.cs — REST endpoints at /api/Cylindroid/* (Get / GetPairCount / GetPairAt / UpdatePairAt / UpdateAllPairs / AddPair / RemovePairAt / SortByZ)." }, "app-anatomy/geom/extended-cylinder-panel.html": { "href": "app-anatomy/geom/extended-cylinder-panel.html", @@ -6467,17 +6407,17 @@ "app-anatomy/mech/holder/cylindroid-holder-panel.html": { "href": "app-anatomy/mech/holder/cylindroid-holder-panel.html", "title": "Cylindroid Holder Panel | HiAPI-C# 2025", - "summary": "Cylindroid Holder Panel The key model is CylindroidHolder. Layout Cylindroid Holder Panel Head Line Title Label Tabs Geometry Tab Cylindroid Panel Resolution Tab Model: PolarResolution2d Polar Resolution 2d Info Tab Name TextField (editable) AbstractNote TextField (readonly) Note TextField (editable) Remember to call UpdateByCylindroid() after geometry reference or content changed. Source Code Path See this page for git repository. WPF Application Source Code Path Mech/ToolHouse/CylindroidHolderPanel Web Page Application Source Code Path wwwroot/mech/holder/cylindroid-holder-panel.js Controller/Mech/MechController.cs" + "summary": "Cylindroid Holder Panel The key model is CylindroidHolder. Layout Cylindroid Holder Panel Head Line Title Label Tabs Geometry Tab Cylindroid Panel Resolution Tab Model: PolarResolution2d Polar Resolution 2d Info Tab Name TextField (editable) AbstractNote TextField (readonly) Note TextField (editable) Remember to call UpdateByCylindroid() after geometry reference or content changed. Source Code Path See this page for git repository. WPF Application Source Code Path Mech/ToolHouse/CylindroidHolderPanel Web Page Application Source Code Path HiNC-2025-webservice (Quasar CLI SPA): wwwroot-src/src/components/toolhouse/CylindroidHolderEditor.vue — holder-aware editor with Geometry / Resolution / Info tabs; wraps the reusable CylindroidEditor.vue and triggers the holder resync after geometry / resolution edits. wwwroot-src/src/api/cylindroidHolder.ts — typed wrapper over CylindroidHolderController. Mech/CylindroidHolderController.cs — REST endpoints at /api/CylindroidHolder/*: GET Get (+ indexes the holder's Cylindroid for the generic Cylindroid editor), POST UpdateGeometryContent | SetName | SetNote | SetPolarResolution. UpdateGeometryContent performs the resync (UpdateByCylindroid() + ClearCache())." }, "app-anatomy/mech/holder/freeform-holder-panel.html": { "href": "app-anatomy/mech/holder/freeform-holder-panel.html", "title": "Freeform Holder Panel | HiAPI-C# 2025", - "summary": "Freeform Holder Panel The key model is FreeformHolder. Layout Freeform Holder Panel Head Line Title Label Tabs Geometry Tab Geometry Management Panel Anchor Tab (Apply Transformer Manage Panel to set the following tabs) Geom To Spindle Tab Geom To Cutter Tab Resolution Tab Model: PolarResolution2d Polar Resolution 2d Info Tab Name TextField (editable) AbstractNote TextField (readonly) Note TextField (editable) Remember to call UpdateByGeom() after geometry reference or content changed. Source Code Path See this page for git repository. WPF Application Source Code Path Mech/ToolHouse/FreeformHolderPanel Web Page Application Source Code Path wwwroot/mech/holder/freeform-holder-panel.js Controller/Mech/MechController.cs" + "summary": "Freeform Holder Panel The key model is FreeformHolder. Layout Freeform Holder Panel Head Line Title Label Tabs Geometry Tab Geometry Management Panel Anchor Tab (Apply Transformer Manage Panel to set the following tabs) Geom To Spindle Tab Geom To Cutter Tab Resolution Tab Model: PolarResolution2d Polar Resolution 2d Info Tab Name TextField (editable) AbstractNote TextField (readonly) Note TextField (editable) Remember to call UpdateByGeom() after geometry reference or content changed. Source Code Path See this page for git repository. WPF Application Source Code Path Mech/ToolHouse/FreeformHolderPanel Web Page Application Source Code Path HiNC-2025-webservice (Quasar CLI SPA): not yet ported — FreeformHolder geometry / transformer editing is deferred (see Tool House Page). Existing FreeformHolder objects are preserved; edit via the WPF client or HiNcRcl in the meantime. When ported, it should follow CylindroidHolderEditor.vue + a FreeformHolderController (calling UpdateByGeom() for the resync)." }, "app-anatomy/mech/holder/index.html": { "href": "app-anatomy/mech/holder/index.html", "title": "Holder Panel | HiAPI-C# 2025", - "summary": "Holder Panel This section describes the user interface and behavior for managing different types of tool holders in the application. Tool holders are crucial components in defining a complete tool assembly. Note While tool holders are essential components in real-world machining operations, some users may choose not to define them in simulation environments for convenience, particularly when collision detection is not a primary concern. The system allows for this flexibility, though it's recommended to include holders for accurate representation and comprehensive collision analysis. The primary models involved are subclasses of IHolder. Two common types are: Cylindroid Holder: Represents holders with a cylindrical geometry. See CylindroidHolder. Freeform Holder: Represents holders with more complex, freeform geometry, often defined by STL files. See FreeformHolder. Each holder type will have its own specific user interface elements for defining its geometry and properties. Layout Holder Panel Head Line Object Management Menu Button file extension is Holder The pointed Editor Panel is Holder Management Panel. Title Label Holder Management Panel Holder Type Selection Bar Holder Sub Management Panel The content varied by the Holder Type. Source Code Path See this page for git repository. WPF Application Source Code Path Mech/ToolHouse/HolderPanel Web Page Application Source Code Path wwwroot/mech/holder/holder-panel.js Controller/Mech/MechController.cs" + "summary": "Holder Panel This section describes the user interface and behavior for managing different types of tool holders in the application. Tool holders are crucial components in defining a complete tool assembly. Note While tool holders are essential components in real-world machining operations, some users may choose not to define them in simulation environments for convenience, particularly when collision detection is not a primary concern. The system allows for this flexibility, though it's recommended to include holders for accurate representation and comprehensive collision analysis. The primary models involved are subclasses of IHolder. Two common types are: Cylindroid Holder: Represents holders with a cylindrical geometry. See CylindroidHolder. Freeform Holder: Represents holders with more complex, freeform geometry, often defined by STL files. See FreeformHolder. Each holder type will have its own specific user interface elements for defining its geometry and properties. Layout Holder Panel Head Line Object Management Menu Button file extension is Holder The pointed Editor Panel is Holder Management Panel. Title Label Holder Management Panel Holder Type Selection Bar Holder Sub Management Panel The content varied by the Holder Type. Source Code Path See this page for git repository. WPF Application Source Code Path Mech/ToolHouse/HolderPanel Web Page Application Source Code Path HiNC-2025-webservice (Quasar CLI SPA): wwwroot-src/src/components/toolhouse/HolderPanel.vue — Holder Type selector that dispatches to a per-type editor component (e.g. CylindroidHolderEditor.vue); Freeform editing is not yet ported. Mech/ToolHouseController.cs — POST SetHolderType, GET GetHolder (returns holder type + abstract note). Per-holder-type editing lives in the dedicated holder controllers." }, "app-anatomy/mech/machining-chain-page.html": { "href": "app-anatomy/mech/machining-chain-page.html", @@ -6502,7 +6442,7 @@ "app-anatomy/mech/tool-house-page.html": { "href": "app-anatomy/mech/tool-house-page.html", "title": "Tool House Page | HiAPI-C# 2025", - "summary": "Tool House Page The page triggers by Main Panel. The key model is MachiningToolHouse. The model UserService is delivered by the host GUI. Layout Tool House Page Tool List Panel The panel has CRUD (and Duplicate) of the tools. Read and Update the selected tool by the Selected Tool Editor Panel. Head Line Object Management Menu Button file extension is MachiningToolHouse The pointed Editor Panel is Tool List Title Label Batch Action Menu Select All Button De-Select All Button (splition bar) Duplication Button Remove Button Create Tool Button Tool List Selection Checkbox (for batch action) Editable Tool ID TextField Editable Note/Abstract TextField Selected Tool Editor Panel Stick Tool Panel Viewer Panel Viewer ToolBar Title Label RenderingCanvas Tool Bar EditorDisplayee Options ToolBar EditorDisplayee Options Menu Dropdown Head Label: Cutter Show Cutter CheckBox (Options of MillingCutterEditorDisplayee) Shape Mode SubMenu Set ShapeMode to Solid Bounding Shape if EnablePhysics is false on GUI initialization. Solid Bounding Shape Ratio Button Detail Physics Shape Ratio Button Visible if EnablePhysics is true. (spliter) Head Label: Holder Show Holder CheckBox (Options of HolderEditorDisplayee) Show Geometry Anchor CheckBox Show Spindle Buckle CheckBox Show Cutter Buckle CheckBox Rendering Mode SubMenu Solid CheckBox Edge CheckBox Hide CheckBox RenderingCanvas The DispEngine.Displayee is MillingToolEditorDisplayee. Tip Do not apply new window for tool creation. Assume the workflow is user create a default content tool and then user setup it in by the edit panel. Add a resizable splition bar between Tool List Panel, Selected Tool Editor Panel and Viewer Panel. The options of MillingCutterEditorDisplayee and HolderEditorDisplayee is enabled only if the upper level options are enabled, i.e. ShowCutter and ShowHolder. Use less layer of EditorDisplayee Options ToolBar for user convenient. Flatten the options of the children displayee except the ratio button group. The Tool ID can not be repeated. When create new tool, assign a new tool ID (maybe the largest ID plus 1). When a tool is entered, call the renderingCanvas.DispEngine.SetViewToHomeView(). Duplication Button Use Duplicate(params object[]) to duplicate the tool. Note/Abstract TextField The Note/Abstract TextField shows note if note existed and is not empty string; otherwise it shows the AbstractNote. The tooltip is the abstract note. Source Code Path See this page for git repository. WPF Application Source Code Path Mech/ToolHouse/ToolHousePage Mech/ToolHouse/ToolHouseWindow Web Page Application Source Code Path HiNC-2025-webservice (Quasar CLI SPA): wwwroot-src/src/pages/ToolHousePage.vue — routed page: left Tool List (with inline double-click Tool ID rename) + middle Selected Tool Editor + right Viewer, three panes with Display Options dropdown (Show Cutter / Show Holder + 3 anchor flags + Holder Rendering Mode). wwwroot-src/src/components/toolhouse/StickToolEditor.vue — Cutter / Holder / Clamping / Int. Holder / Info tabs. wwwroot-src/src/components/toolhouse/IntelligentHolderDiv.vue — Intelligent Holder (Observation Location) editor: ObservationAnchorReference enum dropdown + relative Z + ring radius. wwwroot-src/src/components/toolhouse/CutterManagementPanel.vue — cutter-type select + inner tabs (General / Flute Profile / Flute Contours / Optimization). wwwroot-src/src/components/toolhouse/contourTray/ContourTrayDiv.vue — Uniform / Free tray switch + FreeContourTray child CRUD. wwwroot-src/src/components/toolhouse/contourTray/FluteContourDiv.vue — SetupAngle + SideContour selector + BottomContour selector. wwwroot-src/src/components/toolhouse/contourTray/ConstHelixSideContourDiv.vue — Helix / Radial Rake / Radial Relief angles. wwwroot-src/src/components/toolhouse/contourTray/SlideBottomContourDiv.vue — OuterRadius / CutterLength / Eccentric / Disk / AxialRake. wwwroot-src/src/components/toolhouse/MillingCutterOptLimitDiv.vue — EnableOpt + MinFeed / MaxFeed / YieldingUtilizationFactor. wwwroot-src/src/components/toolhouse/HolderPanel.vue — None / CylindroidHolder / FreeformHolder switch; CylindroidHolder edits its backing Cylindroid via the reusable CylindroidEditor.vue. wwwroot-src/src/api/toolHouse.ts — typed wrapper over ToolHouseController (CRUD + Initialize / SelectTool / EnsureCutter / shaper profile / contour tray / holder / FreeContour CRUD / opt-limit / general) and ToolHouseDisplayController (Show flags + Holder rendering mode + Cutter shape mode). Mech/ToolHouseController.cs — REST endpoints: GET /, GET /{id}, GET/PUT /{id}/observation, PUT /{id}/note | exposed-height | preserved-distance | shaper-profile | contour-tray | general | opt-limit, POST /Initialize | SelectTool | CreateTool | DuplicateTool | RenameTool | EnsureCutter | ClearCutter | SetHolderType | GetHolder | ClearToolCache, DELETE /DeleteTool, and FreeContourTray child CRUD at /{id}/contour-tray/contours[/{index}]. Mech/ToolHouseDisplayController.cs — REST endpoints at /api/mech/tool-house-display/* for display options (initialize, select-tool, show-cutter / show-holder / show-geom-anchor / show-spindle-buckle / show-cutter-buckle, holder-rendering-mode, cutter-shape-mode, clear-cache). Not yet ported to the Quasar page (deferred; edit via the WPF client in the meantime): FreeformRemover cutter type. FreeformHolder geometry / transformer editing. FreeformSideContour per-flute CSV position list editing. Existing FreeformSideContour values are preserved on save but read-only in the web UI. Physics-only cutter sub-tabs (Material, InsertCutter, FluteInnerBeam, UpperBeam). CustomSpinningProfile shaper profile type." + "summary": "Tool House Page The page triggers by Main Panel. The key model is MachiningToolHouse. The model UserService is delivered by the host GUI. Layout Tool House Page Tool List Panel The panel has CRUD (and Duplicate) of the tools. Read and Update the selected tool by the Selected Tool Editor Panel. Head Line Object Management Menu Button file extension is MachiningToolHouse The pointed Editor Panel is Tool List Title Label Batch Action Menu Select All Button De-Select All Button (splition bar) Duplication Button Remove Button Create Tool Button Tool List Selection Checkbox (for batch action) Editable Tool ID TextField Editable Note/Abstract TextField Selected Tool Editor Panel Stick Tool Panel Viewer Panel Viewer ToolBar Title Label RenderingCanvas Tool Bar EditorDisplayee Options ToolBar EditorDisplayee Options Menu Dropdown Head Label: Cutter Show Cutter CheckBox (Options of MillingCutterEditorDisplayee) Shape Mode SubMenu Set ShapeMode to Solid Bounding Shape if EnablePhysics is false on GUI initialization. Solid Bounding Shape Ratio Button Detail Physics Shape Ratio Button Visible if EnablePhysics is true. (spliter) Head Label: Holder Show Holder CheckBox (Options of HolderEditorDisplayee) Show Geometry Anchor CheckBox Show Spindle Buckle CheckBox Show Cutter Buckle CheckBox Rendering Mode SubMenu Solid CheckBox Edge CheckBox Hide CheckBox RenderingCanvas The DispEngine.Displayee is MillingToolEditorDisplayee. Tip Do not apply new window for tool creation. Assume the workflow is user create a default content tool and then user setup it in by the edit panel. Add a resizable splition bar between Tool List Panel, Selected Tool Editor Panel and Viewer Panel. The options of MillingCutterEditorDisplayee and HolderEditorDisplayee is enabled only if the upper level options are enabled, i.e. ShowCutter and ShowHolder. Use less layer of EditorDisplayee Options ToolBar for user convenient. Flatten the options of the children displayee except the ratio button group. The Tool ID can not be repeated. When create new tool, assign a new tool ID (maybe the largest ID plus 1). When a tool is entered, call the renderingCanvas.DispEngine.SetViewToHomeView(). Duplication Button Use Duplicate(params object[]) to duplicate the tool. Note/Abstract TextField The Note/Abstract TextField shows note if note existed and is not empty string; otherwise it shows the AbstractNote. The tooltip is the abstract note. Source Code Path See this page for git repository. WPF Application Source Code Path Mech/ToolHouse/ToolHousePage Mech/ToolHouse/ToolHouseWindow Web Page Application Source Code Path HiNC-2025-webservice (Quasar CLI SPA): wwwroot-src/src/pages/ToolHousePage.vue — routed page: left Tool List (with inline double-click Tool ID rename) + middle Selected Tool Editor + right Viewer, three panes with Display Options dropdown (Show Cutter / Show Holder + 3 anchor flags + Holder Rendering Mode). wwwroot-src/src/components/toolhouse/StickToolEditor.vue — Cutter / Holder / Clamping / Int. Holder / Info tabs. wwwroot-src/src/components/toolhouse/IntelligentHolderDiv.vue — Intelligent Holder (Observation Location) editor: ObservationAnchorReference enum dropdown + relative Z + ring radius. wwwroot-src/src/components/toolhouse/CutterManagementPanel.vue — cutter-type select + inner tabs (General / Flute Profile / Flute Contours / Optimization). wwwroot-src/src/components/toolhouse/contourTray/ContourTrayDiv.vue — Uniform / Free tray switch + FreeContourTray child CRUD. wwwroot-src/src/components/toolhouse/contourTray/FluteContourDiv.vue — SetupAngle + SideContour selector + BottomContour selector. wwwroot-src/src/components/toolhouse/contourTray/ConstHelixSideContourDiv.vue — Helix / Radial Rake / Radial Relief angles. wwwroot-src/src/components/toolhouse/contourTray/SlideBottomContourDiv.vue — OuterRadius / CutterLength / Eccentric / Disk / AxialRake. wwwroot-src/src/components/toolhouse/MillingCutterOptLimitDiv.vue — EnableOpt + MinFeed / MaxFeed / YieldingUtilizationFactor. wwwroot-src/src/components/toolhouse/HolderPanel.vue — None / CylindroidHolder / FreeformHolder switch; dispatches to a per-type holder editor component. wwwroot-src/src/components/toolhouse/CylindroidHolderEditor.vue — dedicated CylindroidHolder editor (Geometry / Resolution / Info tabs); wraps the reusable CylindroidEditor.vue and resyncs the holder (UpdateByCylindroid()) after geometry / resolution edits. wwwroot-src/src/api/cylindroidHolder.ts — typed wrapper over CylindroidHolderController. wwwroot-src/src/api/toolHouse.ts — typed wrapper over ToolHouseController (CRUD + Initialize / SelectTool / EnsureCutter / shaper profile / contour tray / holder / FreeContour CRUD / opt-limit / general) and ToolHouseDisplayController (Show flags + Holder rendering mode + Cutter shape mode). Mech/ToolHouseController.cs — REST endpoints: GET /, GET /{id}, GET/PUT /{id}/observation, PUT /{id}/note | exposed-height | preserved-distance | shaper-profile | contour-tray | general | opt-limit, POST /Initialize | SelectTool | CreateTool | DuplicateTool | RenameTool | EnsureCutter | ClearCutter | SetHolderType | GetHolder | ClearToolCache, DELETE /DeleteTool, and FreeContourTray child CRUD at /{id}/contour-tray/contours[/{index}]. Mech/ToolHouseDisplayController.cs — REST endpoints at /api/mech/tool-house-display/* for display options (initialize, select-tool, show-cutter / show-holder / show-geom-anchor / show-spindle-buckle / show-cutter-buckle, holder-rendering-mode, cutter-shape-mode, clear-cache). Mech/CylindroidHolderController.cs — holder-aware layer over a tool's CylindroidHolder. REST endpoints at /api/CylindroidHolder/*: GET Get (returns name / note / abstract note / resolution + indexes the holder's Cylindroid), POST UpdateGeometryContent | SetName | SetNote | SetPolarResolution. UpdateGeometryContent is the post-edit resync (UpdateByCylindroid() + ClearCache()) that the generic CylindroidController cannot perform. Not yet ported to the Quasar page (deferred; edit via the WPF client in the meantime): FreeformRemover cutter type. FreeformHolder geometry / transformer editing. FreeformSideContour per-flute CSV position list editing. Existing FreeformSideContour values are preserved on save but read-only in the web UI. Physics-only cutter sub-tabs (Material, InsertCutter, FluteInnerBeam, UpperBeam). CustomSpinningProfile shaper profile type." }, "app-anatomy/mech/topo/transformers.html": { "href": "app-anatomy/mech/topo/transformers.html", @@ -6667,7 +6607,7 @@ "app-anatomy/widget/polar-resolution-2d-panel.html": { "href": "app-anatomy/widget/polar-resolution-2d-panel.html", "title": "Polar Resolution 2D Panel | HiAPI-C# 2025", - "summary": "Polar Resolution 2D Panel The model is PolarResolution2d. Layout Polar Resolution 2D Panel Enable Custom Resolution CheckBox enabled if host.model is not null. set host.model to null if not enabled. Linear Resolution (mm) Input Field enabled if model not null Angle Resolution (deg) Input Field enabled if model not null Feature There is a code-behind property to set visibility of Enable CheckBox. If the host.model is null, it may mean the resolution applied the default value. Source Code Path See this page for git repository. WPF Application Source Code Path Geom/PolarResolution2dPanel Web Service Application Source Code Path wwwroot/widget/polar-resolution-2d-panel.js" + "summary": "Polar Resolution 2D Panel The model is PolarResolution2d. Layout Polar Resolution 2D Panel Enable Custom Resolution CheckBox enabled if host.model is not null. set host.model to null if not enabled. Linear Resolution (mm) Input Field enabled if model not null Angle Resolution (deg) Input Field enabled if model not null Feature There is a code-behind property to set visibility of Enable CheckBox. If the host.model is null, it may mean the resolution applied the default value. Source Code Path See this page for git repository. WPF Application Source Code Path Geom/PolarResolution2dPanel Web Service Application Source Code Path HiNC-2025-webservice (Quasar CLI SPA): no standalone widget yet — the resolution is edited inline in the owning holder editor's Resolution tab (e.g. wwwroot-src/src/components/toolhouse/CylindroidHolderEditor.vue) and persisted through that holder's controller (e.g. CylindroidHolderController.SetPolarResolution)." }, "app-anatomy/widget/resizable-bar.html": { "href": "app-anatomy/widget/resizable-bar.html", @@ -6822,7 +6762,7 @@ "manual/analysis/spindle-capability.html": { "href": "manual/analysis/spindle-capability.html", "title": "Spindle Capability | HiAPI-C# 2025", - "summary": "Spindle Capability SpindleCapability (API) describes the energy, torque, power, and thermal envelope of a machine spindle. It is loaded as XML (.SpindleCapability files under Resource/SpindleCapability/) and lives on SpindleCapability (API) as part of the project equipment. This page explains what the model represents physically and how the per-step ratios on a machining step are derived. For editing values interactively, see Spindle Capability Page. For empirical validation of the resulting power numbers against Fanuc ServoGuide, see Spindle Power Evaluation. Boundary curves: continuous vs instantaneous The capability stores two dictionaries keyed by workable duration (in minutes), mapping spindle speed to the maximum power or torque the spindle can deliver for that duration: WorkableDurationToSpindleSpeedPowerContoursDictionary_min_cycleDs_kW (API) WorkableDurationToSpindleSpeedTorqueContoursDictionary_min_cycleDs_Nm (API) Two duration keys are special: PositiveInfinity — the continuous boundary. The spindle can run at any (speed, value) point on this curve forever without overheating. Industry usage often calls this the S1 rating. The smallest finite key (e.g. 15) — the instantaneous boundary. The spindle can run at any (speed, value) point on this curve only for that workable duration before the temperature ceiling is reached. A capability typically also has intermediate keys (e.g. 60 minutes) which document the spindle's published rating curve. Note Why duration-keyed and not just two curves? The duration key serves two roles. The contour values give peak load capability (used by the ratio computation, see below). The duration values implicitly encode the thermal time constants (used by the thermal envelope, see further below). One family of curves drives both. If GearShiftSpindleSpeed_rpm (API) is set, each contour is treated as two segments split at that speed; only the segment for the current spindle speed is used for interpolation. Outside the segment, interpolation uses nearest-neighbour clamping rather than extrapolation. How the four ratios are computed For every machining step where the spindle speed changes, SpindleSpeedCache (API) interpolates each of the four contour-based curves at the current spindle speed and stores four scalar boundaries: Boundary (denominator) Source contour MinInsistentRatioSpindleTorqueBoundary_Nm smallest-key entry of the torque dictionary, interpolated at current rpm InfInsistentRatioSpindleTorqueBoundary_Nm ∞-key entry of the torque dictionary, interpolated at current rpm MinInsistentRatioSpindlePowerBoundary_W smallest-key entry of the power dictionary, interpolated at current rpm InfInsistentRatioSpindlePowerBoundary_W ∞-key entry of the power dictionary, interpolated at current rpm The four MachiningStep ratios are then divisions: \\[ \\begin{aligned} \\text{MaxSpindleTorqueRatio} &= \\frac{\\text{MaxAxialTorque\\_Nm}}{\\text{MinInsistentRatioSpindleTorqueBoundary\\_Nm}} \\\\[6pt] \\text{ContinueSpindleTorqueRatio} &= \\frac{\\text{MaxAxialTorque\\_Nm}}{\\text{InfInsistentRatioSpindleTorqueBoundary\\_Nm}} \\\\[6pt] \\text{MaxSpindlePowerRatio} &= \\frac{\\text{inputPower\\_W}}{\\text{MinInsistentRatioSpindlePowerBoundary\\_W}} \\\\[6pt] \\text{ContinueSpindlePowerRatio} &= \\frac{\\text{inputPower\\_W}}{\\text{InfInsistentRatioSpindlePowerBoundary\\_W}} \\end{aligned} \\] Because the continuous boundary is always lower than (or equal to) the short-duration boundary, the corresponding Continue- ratio is always greater than (or equal to) its Max- counterpart for the same load: A Max- ratio above 100% means the spindle is overdriven instantaneously and will trip thermal protection within the rated short duration. This is the criterion MaxSpindleTorqueRatio (API) and MaxSpindlePowerRatio (API) use to flag tool breakage on Process Machinability. A Continue- ratio above 100% means the spindle cannot sustain this load forever — short bursts may still be safe. Useful for pacing long operations rather than predicting immediate failure. Input power vs output power The power numerator above is input power (energy entering the spindle), not output power (energy reaching the cutting end). They are related by the spindle's energy efficiency: \\(\\text{inputPower\\_W} = \\frac{\\text{AbsAxialPower\\_W}}{\\text{EnergyEfficiency}}\\) — where EnergyEfficiency is EnergyEfficiency (API) and AbsAxialPower_W is what the cutting actually demands. The lost fraction \\((1 - \\text{EnergyEfficiency})\\) becomes heat that the thermal envelope has to dissipate. Spindle Power Evaluation documents the empirical justification for this conversion against measured Fanuc ServoGuide TCMD data. Dry-run idle power Even when the cutter is in air, a rotating spindle dissipates power as bearing friction and aerodynamic windage. HiNC models this as a sum of a linear-in-rpm term (bearing friction) and a higher-order term (windage), parameterised by: DryRunFrictionPowerCoefficient_mWdrpm (API) — friction term coefficient DryRunWindagePowerCoefficient_pWdrpm3 (API) — windage term coefficient The friction term dominates at low rpm; the windage term takes over at high rpm. The thermal envelope (next section) uses the larger of the dry-run idle power and the cutting-induced heat, so the spindle keeps warming up even during air moves. Thermal envelope The same SpindleCapability also drives a thermal model of the spindle body. You do not set heat capacity or convection directly — the thermal model is auto-calibrated from your existing inputs. The continuous (∞-key) curve plus WorkingTemperatureUpperBoundary_C (API) together determine how fast the spindle dumps heat at steady state. Physically: the continuous rating is, by definition, the load the spindle can hold forever without exceeding the working-temperature ceiling — so HiNC infers the steady-state heat-loss capacity from this constraint. The shortest-duration curve plus its duration key together determine how much heat the spindle can absorb before reaching the ceiling. Physically: the short-duration rating is, by definition, the load that brings the spindle to the ceiling exactly within that workable time — so HiNC infers the body's effective thermal mass from this constraint. What this means for you: refining the contour data (more accurate (speed, power/torque) points, better matched duration keys) automatically improves both load-capacity prediction and thermal-response speed. There is no separate thermal parameter to tune. Per-step temperature outputs At each step the body temperature evolves under whatever heat input is currently applied (cutting losses or dry-run, whichever is larger), approaching the steady-state temperature implied by that heat input. The two outputs published per step are: SpindleTemperature_C (API) — current body temperature SpindleWorkingTemperatureRatio (API) — body temperature normalised so that ambient is 0 and the working-temperature ceiling is 1. A value approaching 1.0 means the spindle is near its thermal limit. Note SpindleWorkingTemperatureRatio describes the spindle housing as a whole. It is not the same as the cutter-edge thermal failure tracked by ThermalYieldRatio in Process Machinability, which is a localized cutting-edge phenomenon. Editing and file IO Capabilities are persisted as XML (.SpindleCapability files). Three pre-built spindles ship in Resource/SpindleCapability/: FANUC-aT12-12000i.SpindleCapability TMV-720A-STD-8000RPM.SpindleCapability VP-8--Fanuc-10000RPM.SpindleCapability To edit values interactively, see Spindle Capability Page in the Quasar webservice. The desktop WPF app does not yet have a dedicated editor; load capabilities through the equipment's ObjectManagementMenuButton instead. Related pages Process Machinability — uses MaxSpindleTorqueRatio / MaxSpindlePowerRatio for tool-breakage prediction Spindle Power Evaluation — empirical validation of HiNC spindle power against Fanuc ServoGuide measurements Step Output — full list of per-step physics outputs Spindle Capability Page — UI editor walkthrough" + "summary": "Spindle Capability SpindleCapability (API) describes the energy, torque, power, and thermal envelope of a machine spindle. It is loaded as XML (.SpindleCapability files under Resource/SpindleCapability/) and lives on SpindleCapability (API) as part of the project equipment. This page explains what the model represents physically and how the per-step ratios on a machining step are derived. For editing values interactively, see Spindle Capability Page. For empirical validation of the resulting power numbers against Fanuc ServoGuide, see Spindle Power Evaluation. Boundary curves: continuous vs instantaneous The capability stores two dictionaries keyed by workable duration (in minutes), mapping spindle speed to the maximum power or torque the spindle can deliver for that duration: WorkableDurationToSpindleSpeedPowerContoursDictionary_min_cycleDs_kW (API) WorkableDurationToSpindleSpeedTorqueContoursDictionary_min_cycleDs_Nm (API) Two duration keys are special: PositiveInfinity — the continuous boundary. The spindle can run at any (speed, value) point on this curve forever without overheating. Industry usage often calls this the S1 rating. The smallest finite key (e.g. 15) — the instantaneous boundary. The spindle can run at any (speed, value) point on this curve only for that workable duration before the temperature ceiling is reached. A capability typically also has intermediate keys (e.g. 60 minutes) which document the spindle's published rating curve. Note Why duration-keyed and not just two curves? The duration key serves two roles. The contour values give peak load capability (used by the ratio computation, see below). The duration values implicitly encode the thermal time constants (used by the thermal envelope, see further below). One family of curves drives both. If GearShiftSpindleSpeed_rpm (API) is set, each contour is treated as two segments split at that speed; only the segment for the current spindle speed is used for interpolation. Outside the segment, interpolation uses nearest-neighbour clamping rather than extrapolation. How the four ratios are computed For every machining step where the spindle speed changes, SpindleSpeedCache (API) interpolates each of the four contour-based curves at the current spindle speed and stores four scalar boundaries: Boundary (denominator) Source contour MinInsistentRatioSpindleTorqueBoundary_Nm smallest-key entry of the torque dictionary, interpolated at current rpm InfInsistentRatioSpindleTorqueBoundary_Nm ∞-key entry of the torque dictionary, interpolated at current rpm MinInsistentRatioSpindlePowerBoundary_W smallest-key entry of the power dictionary, interpolated at current rpm InfInsistentRatioSpindlePowerBoundary_W ∞-key entry of the power dictionary, interpolated at current rpm The four MachiningStep ratios are then divisions: \\[ \\begin{aligned} \\text{MaxSpindleTorqueRatio} &= \\frac{\\text{MaxAxialTorque\\_Nm}}{\\text{MinInsistentRatioSpindleTorqueBoundary\\_Nm}} \\\\[6pt] \\text{ContinueSpindleTorqueRatio} &= \\frac{\\text{MaxAxialTorque\\_Nm}}{\\text{InfInsistentRatioSpindleTorqueBoundary\\_Nm}} \\\\[6pt] \\text{MaxSpindlePowerRatio} &= \\frac{\\text{inputPower\\_W}}{\\text{MinInsistentRatioSpindlePowerBoundary\\_W}} \\\\[6pt] \\text{ContinueSpindlePowerRatio} &= \\frac{\\text{inputPower\\_W}}{\\text{InfInsistentRatioSpindlePowerBoundary\\_W}} \\end{aligned} \\] Because the continuous boundary is always lower than (or equal to) the short-duration boundary, the corresponding Continue- ratio is always greater than (or equal to) its Max- counterpart for the same load: A Max- ratio above 100% means the spindle is overdriven instantaneously and will trip thermal protection within the rated short duration. This is the criterion MaxSpindleTorqueRatio (API) and MaxSpindlePowerRatio (API) use to flag tool breakage on Process Machinability. A Continue- ratio above 100% means the spindle cannot sustain this load forever — short bursts may still be safe. Useful for pacing long operations rather than predicting immediate failure. Input power vs output power The power numerator above is input power (energy entering the spindle), not output power (energy reaching the cutting end). They are related by the spindle's energy efficiency: \\(\\text{inputPower\\_W} = \\frac{\\text{AbsAxialPower\\_W}}{\\text{EnergyEfficiency}}\\) — where EnergyEfficiency is EnergyEfficiency (API) and AbsAxialPower_W is what the cutting actually demands. The lost fraction \\((1 - \\text{EnergyEfficiency})\\) becomes heat that the thermal envelope has to dissipate. Spindle Power Evaluation documents the empirical justification for this conversion against measured Fanuc ServoGuide TCMD data. Dry-run idle power Even when the cutter is in air, a rotating spindle dissipates power as bearing friction and aerodynamic windage. HiNC models this as a sum of a linear-in-rpm term (bearing friction) and a higher-order term (windage), parameterised by: DryRunFrictionPowerCoefficient_mWdrpm (API) — friction term coefficient DryRunWindagePowerCoefficient_pWdrpm3 (API) — windage term coefficient The friction term dominates at low rpm; the windage term takes over at high rpm. The thermal envelope (next section) uses the larger of the dry-run idle power and the cutting-induced heat, so the spindle keeps warming up even during air moves. Thermal envelope The same SpindleCapability also drives a thermal model of the spindle body. You do not set heat capacity or convection directly — the thermal model is auto-calibrated from your existing inputs. The continuous (∞-key) curve plus WorkingTemperatureUpperBoundary_C (API) together determine how fast the spindle dumps heat at steady state. Physically: the continuous rating is, by definition, the load the spindle can hold forever without exceeding the working-temperature ceiling — so HiNC infers the steady-state heat-loss capacity from this constraint. The shortest-duration curve plus its duration key together determine how much heat the spindle can absorb before reaching the ceiling. Physically: the short-duration rating is, by definition, the load that brings the spindle to the ceiling exactly within that workable time — so HiNC infers the body's effective thermal mass from this constraint. What this means for you: refining the contour data (more accurate (speed, power/torque) points, better matched duration keys) automatically improves both load-capacity prediction and thermal-response speed. There is no separate thermal parameter to tune. Per-step temperature outputs At each step the body temperature evolves under whatever heat input is currently applied (cutting losses or dry-run, whichever is larger), approaching the steady-state temperature implied by that heat input. The two outputs published per step are: SpindleTemperature_C (API) — current body temperature SpindleWorkingTemperatureRatio (API) — body temperature normalised so that ambient is 0 and the working-temperature ceiling is 1. A value approaching 1.0 means the spindle is near its thermal limit. Note SpindleWorkingTemperatureRatio describes the spindle housing as a whole. It is not the same as the cutter-edge thermal failure tracked by ThermalYieldRatio in Process Machinability, which is a localized cutting-edge phenomenon. Editing and file IO Capabilities are persisted as XML (.SpindleCapability files). Three pre-built spindles ship in Resource/SpindleCapability/: FANUC-aT12-12000i.SpindleCapability TMV-720A-STD-8000RPM.SpindleCapability VP-8--Fanuc-10000RPM.SpindleCapability To edit values interactively, see Spindle Capability Page in the Quasar webservice. The desktop WPF app does not yet have a dedicated editor; load capabilities through the equipment's ObjectManagementMenuButton instead. Related pages Process Machinability — uses MaxSpindleTorqueRatio / MaxSpindlePowerRatio for tool-breakage prediction Spindle Power Evaluation — empirical validation of HiNC spindle power against Fanuc ServoGuide measurements Step Field Reference — full list of per-step physics outputs Spindle Capability Page — UI editor walkthrough" }, "manual/analysis/spindle-power-evaluation.html": { "href": "manual/analysis/spindle-power-evaluation.html", @@ -6837,17 +6777,12 @@ "manual/runtime/index.html": { "href": "manual/runtime/index.html", "title": "Runtime | HiAPI-C# 2025", - "summary": "Runtime Objects, concepts, and APIs that exist during simulation execution. These describe how the simulation progresses and how scripts or the GUI interact with it. Core Concepts Script Command — C# scripting syntax, execution model, warnings MachiningStep — The simulation computation unit Step (Concept) — Short introduction to a step Step Output — CSV field reference for step-level output SessionProgress — Message and progress reporting system API Reference SessionShell Reference — Categorized quick-reference table of all script commands" - }, - "manual/runtime/machining-step.html": { - "href": "manual/runtime/machining-step.html", - "title": "Glossary: Machining Step | HiAPI-C# 2025", - "summary": "Glossary: Machining Step What Is a Machining Step? A MachiningStep (MachiningStep) is a single computation unit in the HiNC simulation. By default, one step corresponds to one spindle revolution, but this interval is configurable via the Basic Simulation workflow. Each step contains data for the time interval between two consecutive steps (from the previous step to the current step). Since this represents a period rather than an instant, many fields are simplified representations using prefixes like Average (Avg), Extremes (Min, Max), Range (Delta), and Maximum Absolute Value (MaxAbs). Key Properties The table below summarizes the primary step output fields. For the complete reference, see MachiningStep. Basic Source Information Property Description FileNo / LineNo / FilePath / LineText Source NC file and line information StepIndex Step sequence index ToolId Active tool ID FlagsText Active G-code modal flags Time and Motion Property Description AccumulatedTime Accumulated simulation time StepDuration Duration of this step BeginSpindleAngle_deg Spindle angle at step start Cl (X, Y, Z, I, J, K) Cutter location point and tool axis vector MC (X, Y, Z, A, B, C) Machine coordinates Feedrate_mmdmin Feed rate (mm/min) SpindleSpeed_rpm Spindle speed (RPM) FeedPerTooth_mm / FeedPerCycle_mm Feed per tooth / per cycle MovingLength_mm Displacement length Cutting Engagement Property Description IsTouched Whether cutting engagement occurred CuttingWidth_mm (ae) Cutting width CuttingDepth_mm (ap) Cutting depth Mrr_mm3ds Material removal rate ChipThickness_mm Chip thickness ChipVolume_mm3 Chip volume Force and Torque Property Description AvgForceToToolOnToolRunningCoordinate_N Average force on tool (X, Y, Z) MaxAbsForce_N Maximum absolute force AvgAbsTorque_Nm Average absolute torque Power and Energy Property Description SpindleInputPower_W Spindle input power SpindleOutputPower_W Spindle output power (after efficiency losses) MaxSpindlePowerRatio Input power / max spindle power capability AccumulatedSpindleEnergyConsumption_kWh Accumulated energy consumption Thermal Property Description CutterDermisTemperature_C Cutter surface temperature WorkpieceDermisTemperature_C Workpiece surface temperature ChipTemperature_C Chip temperature ThermalStress_MPa / ThermalYieldRatio Thermal stress and yield ratio Wear and Deflection Property Description AccumulatedCraterWear_um Accumulated crater wear AccumulatedFlankWearDepth_um / Width_um Accumulated flank wear ReCutDepth_um Re-cut depth from tool deflection Registering Custom Step Variables Beyond default properties, you can register custom step variables using RegisterStepVariable: RegisterStepVariable( \"ChipVolume\", // key \"Chip Volume\", // display name \"mm3\", // unit \"F2\", // format string (step) => step.ChipVolume_mm3 // value function ); PlayNcFile(\"NC/file1.nc\"); Parameters: key: Unique identifier name: Display name (shown in UI) unit: Physical unit (can be null) formatString: .NET numeric format string (can be null) variableFunction: Lambda that computes the value from a step (can be null) Registered variables appear in the UI and in output files from WriteStepFiles. Indexer Access Use the this[string] indexer to read/write custom data on a step: SessionStepBuilt += (preStep, curStep) => { if (curStep != null) curStep[\"MyCustomField\"] = someCalculation(); }; Accessing Step Data GetMillingStep GetMillingStep retrieves a step by index: var step = GetMillingStep(100); if (step != null) { Message($\"ToolId={step.ToolId}, Force={step.MaxAbsForce_N} N\"); } StepCount StepCount returns the total number of steps: Message($\"Total steps: {StepCount}\"); Iterating All Steps for (int i = 0; i < StepCount; i++) { var step = GetMillingStep(i); // process step... } Step Output Files Steps can be exported to CSV using WriteStepFiles: WriteStepFiles(\"Output/[NcName].step.csv\"); The CSV contains all default properties plus any registered custom variables. The file can be read back with PlayCsvFile. For waveform-level data (sub-step time resolution), use WriteShotFiles: WriteShotFiles(\"Output/[NcName].shot.csv\", 1); // 1 ms time resolution Dynamically Registered Variables (Training) After executing TrainMillingPara or ReTrainMillingPara, two additional step variables are automatically registered for steps within the training region: Variable Description TrainingErrRatio Error metric between simulation and measurement for each step AngleOffset Cutter rotation phase difference between measured and simulated data See Also Simulation Step — concept definition Simulation Step Output — complete field reference Glossary: SessionShell Quick-Reference — SessionShell quick-reference Workflow: Basic Machining Simulation — simulation workflow producing steps Workflow: Milling Force Parameter Training — training workflow that adds step variables" + "summary": "Runtime Objects, concepts, and APIs that exist during simulation execution. These describe how the simulation progresses and how scripts or the GUI interact with it. Core Concepts Script Command — C# scripting syntax, execution model, warnings Step — The simulation computation unit: concept, accessing, custom variables, output APIs Step Field Reference — CSV field reference for step-level output SessionProgress — Message and progress reporting system API Reference SessionShell Reference — Categorized quick-reference table of all script commands" }, "manual/runtime/script-command.html": { "href": "manual/runtime/script-command.html", "title": "Glossary: Script Commands | HiAPI-C# 2025", - "summary": "Glossary: Script Commands What Is a Script Command? A script command is a C# statement executed by the HiNC scripting engine. Scripts directly reference members and methods of SessionShell, which serves as the global scope — no explicit object reference is needed. // These are all SessionShell members used directly as globals EnablePhysics = true; MachiningResolution_mm = 0.125; PlayNcFile(\"NC/file1.nc\"); Message(\"Done\"); Script Syntax Basics Scripts use native C# syntax: Feature Syntax Statement terminator ; End-of-line comment // comment String interpolation $\"Value is {variable}\" Positive infinity double.PositiveInfinity Negative infinity double.NegativeInfinity Bitwise OR (for flags) Fx|Fy|Fz All standard C# language features (variables, loops, conditionals, LINQ, etc.) are available. Script Task Page In the HiNC GUI, the Task page contains one or more script panels. Each panel has: Order: Execution order (left to right, top to bottom) Enabled: Whether the script runs (unchecked = skipped) Title: A label for human reference only — has no functional effect Execution Model Session Lifecycle Scripts execute in order on the Task page A PacePlayer(API) controls playback — script commands like PlayNcFile(API) block until the NC program completes Player control commands (Pace()(API), Pause()(API), Reset()(API)) interact with the PacePlayer(API) ResetRuntime(API) clears event handlers, buffers, and runtime state Event-Driven Execution Events like SessionStepBuilt(API) fire during simulation and allow per-step logic: SessionStepBuilt += (preStep, curStep) => { if (curStep != null) Message($\"Step: ToolId={curStep.ToolId}\"); }; PlayNcFile(\"NC/file1.nc\"); Events are cleared by ResetRuntime. Script Commands in NC Code Script commands can be embedded inside NC code comments. Lines starting with ;@ execute before that NC line runs: T01 M06 (;@MachiningResolution_mm=0.03125;) S1270 M03 G43 Z10. H01 For controllers that do not support ; as a comment character (e.g., FANUC), wrap in a comment block: T01 M06 (;@MachiningResolution_mm=0.03125;) File Path Templates Commands that output files support the [NcName] token, which is replaced with each NC file name: PlayNcFile(\"NC/file1.nc\"); PlayNcFile(\"NC/file2.nc\"); WriteShotFiles(\"Output/[NcName].shot.csv\", 1); // Produces: Output/file1.nc.shot.csv, Output/file2.nc.shot.csv All file paths are relative to the project directory unless an absolute path is given. Important Warnings The following operations can corrupt simulation state or produce incorrect results: Do not save the project during simulation. System-internal configuration (e.g., training-specific resolution overrides) may overwrite your settings. Do not reset the player during milling coefficient training. Close the project instead of pressing the reset button to avoid unexpected errors. Do not modify resolution, tool, or controller settings during training. Changing these mid-training invalidates the results. Do not combine UpdateNcOptOption in SessionStepBuilt(API) with NC-embedded optimization commands. Parallel computation may cause undefined behavior. Global Variables Global provides a key-value dictionary for sharing data across scripts: Global[\"material\"] = \"Steel\"; var material = Global[\"material\"]; Full API Reference For the complete list of available commands, properties, and events, see: SessionShell — full API documentation Glossary: SessionShell Quick-Reference — categorized quick-reference table See Also Glossary: SessionShell Quick-Reference — SessionShell quick-reference Glossary: Machining Step — machining step data model Workflow: Basic Machining Simulation — using scripts in a simulation workflow" + "summary": "Glossary: Script Commands What Is a Script Command? A script command is a C# statement executed by the HiNC scripting engine. Scripts directly reference members and methods of SessionShell, which serves as the global scope — no explicit object reference is needed. // These are all SessionShell members used directly as globals EnablePhysics = true; MachiningResolution_mm = 0.125; PlayNcFile(\"NC/file1.nc\"); Message(\"Done\"); Script Syntax Basics Scripts use native C# syntax: Feature Syntax Statement terminator ; End-of-line comment // comment String interpolation $\"Value is {variable}\" Positive infinity double.PositiveInfinity Negative infinity double.NegativeInfinity Bitwise OR (for flags) Fx|Fy|Fz All standard C# language features (variables, loops, conditionals, LINQ, etc.) are available. Script Task Page In the HiNC GUI, the Task page contains one or more script panels. Each panel has: Order: Execution order (left to right, top to bottom) Enabled: Whether the script runs (unchecked = skipped) Title: A label for human reference only — has no functional effect Execution Model Session Lifecycle Scripts execute in order on the Task page A PacePlayer(API) controls playback — script commands like PlayNcFile(API) block until the NC program completes Player control commands (Pace()(API), Pause()(API), Reset()(API)) interact with the PacePlayer(API) ResetRuntime(API) clears event handlers, buffers, and runtime state Event-Driven Execution Events like SessionStepBuilt(API) fire during simulation and allow per-step logic: SessionStepBuilt += (preStep, curStep) => { if (curStep != null) Message($\"Step: ToolId={curStep.ToolId}\"); }; PlayNcFile(\"NC/file1.nc\"); Events are cleared by ResetRuntime. Script Commands in NC Code Script commands can be embedded inside NC code comments. Lines starting with ;@ execute before that NC line runs: T01 M06 (;@MachiningResolution_mm=0.03125;) S1270 M03 G43 Z10. H01 For controllers that do not support ; as a comment character (e.g., FANUC), wrap in a comment block: T01 M06 (;@MachiningResolution_mm=0.03125;) File Path Templates Commands that output files support the [NcName] token, which is replaced with each NC file name: PlayNcFile(\"NC/file1.nc\"); PlayNcFile(\"NC/file2.nc\"); WriteShotFiles(\"Output/[NcName].shot.csv\", 1); // Produces: Output/file1.nc.shot.csv, Output/file2.nc.shot.csv All file paths are relative to the project directory unless an absolute path is given. Important Warnings The following operations can corrupt simulation state or produce incorrect results: Do not save the project during simulation. System-internal configuration (e.g., training-specific resolution overrides) may overwrite your settings. Do not reset the player during milling coefficient training. Close the project instead of pressing the reset button to avoid unexpected errors. Do not modify resolution, tool, or controller settings during training. Changing these mid-training invalidates the results. Do not combine UpdateNcOptOption in SessionStepBuilt(API) with NC-embedded optimization commands. Parallel computation may cause undefined behavior. Global Variables Global provides a key-value dictionary for sharing data across scripts: Global[\"material\"] = \"Steel\"; var material = Global[\"material\"]; Full API Reference For the complete list of available commands, properties, and events, see: SessionShell — full API documentation Glossary: SessionShell Quick-Reference — categorized quick-reference table See Also Glossary: SessionShell Quick-Reference — SessionShell quick-reference Step — machining step data model Workflow: Basic Machining Simulation — using scripts in a simulation workflow" }, "manual/runtime/session-progress.html": { "href": "manual/runtime/session-progress.html", @@ -6857,17 +6792,17 @@ "manual/runtime/session-shell.html": { "href": "manual/runtime/session-shell.html", "title": "Glossary: SessionShell Quick-Reference | HiAPI-C# 2025", - "summary": "Glossary: SessionShell Quick-Reference SessionShell is the global scope for all HiNC script commands. This page organizes every command by category with a one-line description and links to the workflow where each is typically used. Simulation Control Command Description Used In PlayNcFile Execute an NC file Workflow: Basic Machining Simulation PlayNc Execute NC code from a string Workflow: Basic Machining Simulation PlayCsvFile Drive simulation from a CSV file Workflow: Basic Machining Simulation, Workflow: Sensor Data Mapping RunNcFile Parse NC file and return action sequence (no auto-pacing) — RunNc Parse NC string and return action sequence (no auto-pacing) — Pace Insert a pausable checkpoint during playback Workflow: Basic Machining Simulation Pause Pause player execution Workflow: Basic Machining Simulation Reset Reset player state Workflow: Basic Machining Simulation PlayAct Execute a custom action object — PlayToolingTeleport Teleport a tool to a new position — PlayClTeleport Teleport tool to a specified CL position and orientation — Configuration — Resolution Command Description Used In MachiningResolution_mm Set workpiece entity resolution (power-of-2 cube width in mm) Workflow: Basic Machining Simulation DispCache_Mb Set display cache size (Mb) Workflow: Basic Machining Simulation MachiningMotionResolution Set machining motion resolution mode Workflow: Basic Machining Simulation Configuration — Physics Command Description Used In EnablePhysics Enable/disable milling force evaluation Workflow: Milling Force Parameter Training, Workflow: NC Optimization EnableWearEffect Enable/disable tool wear effects — MillingForceCycleDivisionNum Divisions per revolution for force calculation Workflow: Milling Force Parameter Training InitSpindleTemperature_C Initial spindle temperature (°C) — EnablePauseOnFailure Pause execution on failure Workflow: Geometry Validation EnableCollisionDetection Enable collision detection Workflow: Geometry Validation EnablePauseOnCollision Pause on collision Workflow: Geometry Validation Data Export Command Description Used In WriteShotFiles Export waveform (shot) data CSV at given time resolution Workflow: Milling Force Parameter Training WriteStepFiles Export step-level data CSV Workflow: Basic Machining Simulation, Workflow: Milling Force Parameter Training Data Mapping Command Description Used In MapSingleByCsvFile One-to-one time-interpolation mapping from CSV Workflow: Sensor Data Mapping MapSeriesByCsvFile One-to-many series mapping from CSV (via ActualTime) Workflow: Sensor Data Mapping AddTimeDataByFile Specify input data with time range for local mapping Workflow: Sensor Data Mapping, Workflow: Milling Force Parameter Training ClearTimeMappingData Clear all mapping data Workflow: Sensor Data Mapping BeginSelection Set range mapping start point (in NC comments) Workflow: Sensor Data Mapping EndSelection Set range mapping end point (in NC comments) Workflow: Sensor Data Mapping LineSelection Single-line data mapping (in NC comments) Workflow: Sensor Data Mapping EnableMapOnSelectionEnd Auto-trigger mapping when selection ends (default: true) Workflow: Sensor Data Mapping Training Command Description Used In TrainMillingPara Train new milling coefficients from mapped data Workflow: Milling Force Parameter Training ReTrainMillingPara Calibrate existing milling coefficients (10% original / 90% new) Workflow: Milling Force Parameter Training LoadCuttingParaByFile Load cutting parameters from file into workpiece Workflow: Milling Force Parameter Training MillingCycleDivisionNum Number of angular divisions per revolution Workflow: Milling Force Parameter Training Optimization Command Description Used In OptimizeToFiles Output optimized NC files Workflow: NC Optimization OptEnableFeedrate Enable sequential feed rate optimization Workflow: NC Optimization OptEnableInterpolation Enable re-interpolation Workflow: NC Optimization OptFeedrateAssignmentRatio Feed rate assignment ratio for re-interpolation Workflow: NC Optimization OptRapidFeed_mmdmin Non-cutting region feed rate (mm/min) Workflow: NC Optimization OptMinFeedrate_mmdmin Minimum cutting feed rate (mm/min) Workflow: NC Optimization OptMaxFeedrate_mmdmin Maximum cutting feed rate (mm/min) Workflow: NC Optimization OptMaxAcceleration_mmds2 Acceleration/deceleration limit (mm/s²) Workflow: NC Optimization OptExtendedPreDistance_mm Pre-distance for cutting region calculation (mm) Workflow: NC Optimization OptExtendedPostDistance_mm Post-distance for cutting region calculation (mm) Workflow: NC Optimization OptSpindlePowerSafetyFactor Spindle power safety factor Workflow: NC Optimization OptSpindleTorqueSafetyFactor Spindle torque safety factor Workflow: NC Optimization OptThermalYieldSafetyFactor Thermal yield safety factor Workflow: NC Optimization OptPreferedForce_N Target cutting force (N) Workflow: NC Optimization Preserve Disable optimization for a single NC line Workflow: NC Optimization BeginPreserve Begin optimization-disabled range Workflow: NC Optimization EndPreserve End optimization-disabled range Workflow: NC Optimization EnableIndividualStepAdjustmentLog Enable per-step optimization log file Workflow: NC Optimization EmbeddedLogMode Set embedded log verbosity (None / SimpleLog / FullLog) Workflow: NC Optimization Geometry Command Description Used In WriteRuntimeGeom Save runtime geometry to file Workflow: Basic Machining Simulation ReadRuntimeGeom Load runtime geometry from file Workflow: Basic Machining Simulation WriteRuntimeGeomToStl Export runtime geometry to STL Workflow: Basic Machining Simulation WriteRuntimeGeomToObj Export runtime geometry to Wavefront OBJ (per-vertex RGB) Workflow: Basic Machining Simulation WriteRuntimeGeomToPly Export runtime geometry to binary PLY (per-vertex RGB) Workflow: Basic Machining Simulation Diff Compare simulated geometry against target Workflow: Geometry Validation RemoveFlyPiece Remove disconnected residual material Workflow: Geometry Validation ScanRuntimeGeomInfDefect Scan for infinite edge cut defects Workflow: Geometry Validation ClearDefectDisplayee Clear defect visualization markers Workflow: Geometry Validation Events Command Description Used In SessionStepBuilt Fired when a machining step is built Workflow: NC Optimization SessionStepSelected Fired when a machining step is selected — Messages Command Description Used In Message Display a general message All workflows ProgressMessage Display a progress message All workflows WarningMessage Display a warning message All workflows ErrorMessage Display an error message All workflows AppendMessagesToFile Export messages to file (optional tag filter) All workflows SessionProgress Session message host object Glossary: Session Progress (Messages) Step Data Access Command Description Used In GetMillingStep Get step by index Workflow: Basic Machining Simulation StepCount Total step count Workflow: Basic Machining Simulation RegisterStepVariable Register a custom step variable Glossary: Machining Step Runtime Management Command Description Used In ResetRuntime Clear event handlers, buffers, and runtime state Workflow: Basic Machining Simulation MachiningSession Get the current machining session object — Properties — Workpiece and Fixture Command Description Used In Workpiece Get/set the workpiece object Workflow: Basic Machining Simulation Fixture Get/set the fixture object Workflow: Basic Machining Simulation Global Global variable dictionary for cross-script data sharing Glossary: Script Commands Tool Setup Command Description Used In GetUniformContourTrayShiftAngle_deg Get tool contour shift angle (deg) — SetUniformContourTrayShiftAngle_deg Set tool contour shift angle (deg) — GetStickMachiningToolObservationHeight_mm Get smart tool holder observation height (mm) — SetStickMachiningToolObservationHeight_mm Set smart tool holder observation height (mm) — Note Tool setup commands are for dynamic adjustment when actual installation conditions differ from defaults. Typically, configure these in the tool configuration file instead. See Also SessionShell — full API documentation Glossary: Script Commands — what is a script command Glossary: Machining Step — step data model Glossary: Session Progress (Messages) — message system" + "summary": "Glossary: SessionShell Quick-Reference SessionShell is the global scope for all HiNC script commands. This page organizes every command by category with a one-line description and links to the workflow where each is typically used. Simulation Control Command Description Used In PlayNcFile Execute an NC file Workflow: Basic Machining Simulation PlayNc Execute NC code from a string Workflow: Basic Machining Simulation PlayCsvFile Drive simulation from a CSV file Workflow: Basic Machining Simulation, Workflow: Sensor Data Mapping RunNcFile Parse NC file and return action sequence (no auto-pacing) — RunNc Parse NC string and return action sequence (no auto-pacing) — Pace Insert a pausable checkpoint during playback Workflow: Basic Machining Simulation Pause Pause player execution Workflow: Basic Machining Simulation Reset Reset player state Workflow: Basic Machining Simulation PlayAct Execute a custom action object — PlayToolingTeleport Teleport a tool to a new position — PlayClTeleport Teleport tool to a specified CL position and orientation — Configuration — Resolution Command Description Used In MachiningResolution_mm Set workpiece entity resolution (power-of-2 cube width in mm) Workflow: Basic Machining Simulation DispCache_Mb Set display cache size (Mb) Workflow: Basic Machining Simulation MachiningMotionResolution Set machining motion resolution mode Workflow: Basic Machining Simulation Configuration — Physics Command Description Used In EnablePhysics Enable/disable milling force evaluation Workflow: Milling Force Parameter Training, Workflow: NC Optimization EnableWearEffect Enable/disable tool wear effects — MillingForceCycleDivisionNum Divisions per revolution for force calculation Workflow: Milling Force Parameter Training InitSpindleTemperature_C Initial spindle temperature (°C) — EnablePauseOnFailure Pause execution on failure Workflow: Geometry Validation EnableCollisionDetection Enable collision detection Workflow: Geometry Validation EnablePauseOnCollision Pause on collision Workflow: Geometry Validation Data Export Command Description Used In WriteShotFiles Export waveform (shot) data CSV at given time resolution Workflow: Milling Force Parameter Training WriteStepFiles Export step-level data CSV Workflow: Basic Machining Simulation, Workflow: Milling Force Parameter Training Data Mapping Command Description Used In MapSingleByCsvFile One-to-one time-interpolation mapping from CSV Workflow: Sensor Data Mapping MapSeriesByCsvFile One-to-many series mapping from CSV (via ActualTime) Workflow: Sensor Data Mapping AddTimeDataByFile Specify input data with time range for local mapping Workflow: Sensor Data Mapping, Workflow: Milling Force Parameter Training ClearTimeMappingData Clear all mapping data Workflow: Sensor Data Mapping BeginSelection Set range mapping start point (in NC comments) Workflow: Sensor Data Mapping EndSelection Set range mapping end point (in NC comments) Workflow: Sensor Data Mapping LineSelection Single-line data mapping (in NC comments) Workflow: Sensor Data Mapping EnableMapOnSelectionEnd Auto-trigger mapping when selection ends (default: true) Workflow: Sensor Data Mapping Training Command Description Used In TrainMillingPara Train new milling coefficients from mapped data Workflow: Milling Force Parameter Training ReTrainMillingPara Calibrate existing milling coefficients (10% original / 90% new) Workflow: Milling Force Parameter Training LoadCuttingParaByFile Load cutting parameters from file into workpiece Workflow: Milling Force Parameter Training MillingCycleDivisionNum Number of angular divisions per revolution Workflow: Milling Force Parameter Training Optimization Command Description Used In OptimizeToFiles Output optimized NC files Workflow: NC Optimization OptEnableFeedrate Enable sequential feed rate optimization Workflow: NC Optimization OptEnableInterpolation Enable re-interpolation Workflow: NC Optimization OptFeedrateAssignmentRatio Feed rate assignment ratio for re-interpolation Workflow: NC Optimization OptRapidFeed_mmdmin Non-cutting region feed rate (mm/min) Workflow: NC Optimization OptMinFeedrate_mmdmin Minimum cutting feed rate (mm/min) Workflow: NC Optimization OptMaxFeedrate_mmdmin Maximum cutting feed rate (mm/min) Workflow: NC Optimization OptMaxAcceleration_mmds2 Acceleration/deceleration limit (mm/s²) Workflow: NC Optimization OptExtendedPreDistance_mm Pre-distance for cutting region calculation (mm) Workflow: NC Optimization OptExtendedPostDistance_mm Post-distance for cutting region calculation (mm) Workflow: NC Optimization OptSpindlePowerSafetyFactor Spindle power safety factor Workflow: NC Optimization OptSpindleTorqueSafetyFactor Spindle torque safety factor Workflow: NC Optimization OptThermalYieldSafetyFactor Thermal yield safety factor Workflow: NC Optimization OptPreferedForce_N Target cutting force (N) Workflow: NC Optimization Preserve Disable optimization for a single NC line Workflow: NC Optimization BeginPreserve Begin optimization-disabled range Workflow: NC Optimization EndPreserve End optimization-disabled range Workflow: NC Optimization EnableIndividualStepAdjustmentLog Enable per-step optimization log file Workflow: NC Optimization EmbeddedLogMode Set embedded log verbosity (None / SimpleLog / FullLog) Workflow: NC Optimization Geometry Command Description Used In WriteRuntimeGeom Save runtime geometry to file Workflow: Basic Machining Simulation ReadRuntimeGeom Load runtime geometry from file Workflow: Basic Machining Simulation WriteRuntimeGeomToStl Export runtime geometry to STL Workflow: Basic Machining Simulation WriteRuntimeGeomToObj Export runtime geometry to Wavefront OBJ (per-vertex RGB) Workflow: Basic Machining Simulation WriteRuntimeGeomToPly Export runtime geometry to binary PLY (per-vertex RGB) Workflow: Basic Machining Simulation Diff Compare simulated geometry against target Workflow: Geometry Validation RemoveFlyPiece Remove disconnected residual material Workflow: Geometry Validation ScanRuntimeGeomInfDefect Scan for infinite edge cut defects Workflow: Geometry Validation ClearDefectDisplayee Clear defect visualization markers Workflow: Geometry Validation Events Command Description Used In SessionStepBuilt Fired when a machining step is built Workflow: NC Optimization SessionStepSelected Fired when a machining step is selected — Messages Command Description Used In Message Display a general message All workflows ProgressMessage Display a progress message All workflows WarningMessage Display a warning message All workflows ErrorMessage Display an error message All workflows AppendMessagesToFile Export messages to file (optional tag filter) All workflows SessionProgress Session message host object Glossary: Session Progress (Messages) Step Data Access Command Description Used In GetMillingStep Get step by index Workflow: Basic Machining Simulation StepCount Total step count Workflow: Basic Machining Simulation RegisterStepVariable Register a custom step variable Step Runtime Management Command Description Used In ResetRuntime Clear event handlers, buffers, and runtime state Workflow: Basic Machining Simulation MachiningSession Get the current machining session object — Properties — Workpiece and Fixture Command Description Used In Workpiece Get/set the workpiece object Workflow: Basic Machining Simulation Fixture Get/set the fixture object Workflow: Basic Machining Simulation Global Global variable dictionary for cross-script data sharing Glossary: Script Commands Tool Setup Command Description Used In GetUniformContourTrayShiftAngle_deg Get tool contour shift angle (deg) — SetUniformContourTrayShiftAngle_deg Set tool contour shift angle (deg) — GetStickMachiningToolObservationHeight_mm Get smart tool holder observation height (mm) — SetStickMachiningToolObservationHeight_mm Set smart tool holder observation height (mm) — Note Tool setup commands are for dynamic adjustment when actual installation conditions differ from defaults. Typically, configure these in the tool configuration file instead. See Also SessionShell — full API documentation Glossary: Script Commands — what is a script command Step — step data model Glossary: Session Progress (Messages) — message system" }, - "manual/runtime/step-intro.html": { - "href": "manual/runtime/step-intro.html", - "title": "Simulation Step | HiAPI-C# 2025", - "summary": "Simulation Step Definition A Step is a single computation unit in the simulation. During cutting, the default is one spindle revolution per step, which can be modified via Workflow: Basic Machining Simulation. Time Significance of Step Data Step data contains information for the time interval between two consecutive steps (i.e., from the previous step to the current step). Since this represents a time interval rather than an instant, many fields are simplified representations of data over that period. Related Pages Simulation Step Output: Complete description of step output fields Glossary: Machining Step: Machining step properties and accessing step data in scripts Workflow: Basic Machining Simulation: Adjusting the computation resolution of steps" + "manual/runtime/step-fields.html": { + "href": "manual/runtime/step-fields.html", + "title": "Step Field Reference | HiAPI-C# 2025", + "summary": "Step Field Reference For the complete and up-to-date field reference, see MachiningStep. To assess the risk of tool breakage, also refer to \"Evaluating Process Machinability\". This page summarizes the main output data for each simulation step, covering source line, kinematics, load, force/torque, power, thermal, and wear information to help quickly understand the machining state at each step. Step data contains information for the time interval between two consecutive steps (i.e., from the previous step to the current step). Many fields are therefore simplified representations over that period. Common prefixes based on the simplification method include Average (Avg), Extremes (Min, Max), Range (Delta), and Maximum Absolute Value (MaxAbs). Basic Source Information FileNo / LineNo / FilePath / LineText / FlagsText: File/line information and flags of the corresponding source NC command. StepIndex: Step sequence index. ToolId: ID of the currently active tool. Time and Motion AccumulatedTime: Accumulated simulation time. StepDuration: Duration of this step (default per-revolution mode: one step equals one spindle revolution). BeginSpindleAngle_deg: Spindle angular displacement at the start of this step. Cl (Cutter Location): Cutter location point (including IJK normal). MC (X, Y, Z, A, B, C): Machine coordinates. MoveOnProgramCoordinate, MovingLength_mm: Displacement vector and length in the program coordinate system. Feedrate_mmdmin / SpindleSpeed_rpm / CuttingSpeed_mmds: Feed rate, spindle speed, and cutting speed. FeedPerTooth_mm / FeedPerCycle_mm / ToothArcDuration_s / SpindleCyclePeriod_s: Feed per tooth/per cycle, tooth arc duration, and spindle cycle period. Cutting Engagement and Material Removal Rate IsTouched: Whether cutting engagement occurred. CuttingWidth_mm (ae) / CuttingDepth_mm (ap): Cutting width / cutting depth. Mrr_mm3ds: Material removal rate. ProgramSideCusp_um, SideCuspList_um: Side cusp height and distribution estimated from program feed and radius. Chip ChipThickness_mm (/um): Chip thickness. ChipVolume_mm3: Chip volume. ChipMass_mg: Chip mass. Force and Torque (Including Mapping Comparison) Coordinate system note: Most fields in this section indicate their coordinate system (e.g., [W] workpiece, [TR] tool running, [SR] spindle rotation). For coordinate system definitions and diagrams, see \"Milling Physics Coordinate Systems\". AvgForceToToolOnToolRunningCoordinate_N, MaxAbsForce_N: Average/maximum force. Various average/maximum torques (about tool tip, about sensor point; in tool running / spindle rotation / workpiece program coordinate systems). AvgAbsTorque_Nm: Average absolute torque. Mapping comparison: AvgMomentXyByMapping_Nm, AvgAbsTorqueByMapping_Nm, error ratios, and symbolic error correlation metrics. Power, Torque, and Energy Consumption SpindleInputPower_W (input power): Energy entering the spindle. SpindleOutputPower_W (output power): Energy acting on the cutting end after spindle energy losses — i.e., the energy causing workpiece and chip deformation and temperature change. Output power is typically proportional to input power, with the ratio being the energy efficiency set in the spindle configuration EnergyEfficiency(API). MaxSpindlePowerRatio (maximum spindle power ratio): Input power / instantaneous maximum power based on spindle capability. ContinueSpindlePowerRatio (continuous spindle power ratio): Input power / unlimited-duration maximum power based on spindle capability. AccumulatedSpindleEnergyConsumption_kWh: Accumulated spindle energy consumption. Max/Continue Spindle Torque Ratio: Instantaneous/continuous spindle torque ratios. Thermal and Temperature CutterBodyTemperature_C / CutterDermisTemperature_C / WorkpieceDermisTemperature_C / ChipTemperature_C: Cutter body, cutter surface, workpiece surface, and chip temperatures. GetCutterDermisTemperature_C(depth_mm) / GetCutterDermisAvgTemperature_C(depth_mm): Cutter subsurface temperature / average temperature at a given depth. ThermalStress_MPa / ThermalYieldRatio: Thermal stress and thermal yield ratio. For tool breakage risk assessment based on thermal yield ratio, see \"Evaluating Process Machinability\". Wear and Deflection For wear models, evaluation metrics, and applicable scenarios, see \"Tool Life and Wear\". InstantCraterWear_um / AccumulatedCraterWear_um: Instantaneous/accumulated crater wear. AccumulatedFlankWearDepth_um / AccumulatedFlankWearWidth_um: Accumulated flank wear depth/width. Tip/Edge Deflection (um): Tool tip and bottom edge deflection (including maximum and delta values), as well as ReCutDepth_um (re-cut depth)." }, - "manual/runtime/step-output.html": { - "href": "manual/runtime/step-output.html", - "title": "Simulation Step Output | HiAPI-C# 2025", - "summary": "Simulation Step Output For the complete and up-to-date field reference, see MachiningStep. To assess the risk of tool breakage, also refer to \"Evaluating Process Machinability\". This page summarizes the main output data for each simulation step, covering source line, kinematics, load, force/torque, power, thermal, and wear information to help quickly understand the machining state at each step. Step data contains information for the time interval between two consecutive steps (i.e., from the previous step to the current step). Many fields are therefore simplified representations over that period. Common prefixes based on the simplification method include Average (Avg), Extremes (Min, Max), Range (Delta), and Maximum Absolute Value (MaxAbs). Basic Source Information FileNo / LineNo / FilePath / LineText / FlagsText: File/line information and flags of the corresponding source NC command. StepIndex: Step sequence index. ToolId: ID of the currently active tool. Time and Motion AccumulatedTime: Accumulated simulation time. StepDuration: Duration of this step (default per-revolution mode: one step equals one spindle revolution). BeginSpindleAngle_deg: Spindle angular displacement at the start of this step. Cl (Cutter Location): Cutter location point (including IJK normal). MoveOnProgramCoordinate, MovingLength_mm: Displacement vector and length in the program coordinate system. Feedrate_mmdmin / SpindleSpeed_rpm / CuttingSpeed_mmds: Feed rate, spindle speed, and cutting speed. FeedPerTooth_mm / FeedPerCycle_mm / ToothArcDuration_s / SpindleCyclePeriod_s: Feed per tooth/per cycle, tooth arc duration, and spindle cycle period. Cutting Engagement and Material Removal Rate IsTouched: Whether cutting engagement occurred. CuttingWidth_mm (ae) / CuttingDepth_mm (ap): Cutting width / cutting depth. Mrr_mm3ds: Material removal rate. ProgramSideCusp_um, SideCuspList_um: Side cusp height and distribution estimated from program feed and radius. Chip ChipThickness_mm (/um): Chip thickness. ChipVolume_mm3: Chip volume. ChipMass_mg: Chip mass. Force and Torque (Including Mapping Comparison) Coordinate system note: Most fields in this section indicate their coordinate system (e.g., [W] workpiece, [TR] tool running, [SR] spindle rotation). For coordinate system definitions and diagrams, see \"Milling Physics Coordinate Systems\". AvgForceToToolOnToolRunningCoordinate_N, MaxAbsForce_N: Average/maximum force. Various average/maximum torques (about tool tip, about sensor point; in tool running / spindle rotation / workpiece program coordinate systems). AvgAbsTorque_Nm: Average absolute torque. Mapping comparison: AvgMomentXyByMapping_Nm, AvgAbsTorqueByMapping_Nm, error ratios, and symbolic error correlation metrics. Power, Torque, and Energy Consumption SpindleInputPower_W (input power): Energy entering the spindle. SpindleOutputPower_W (output power): Energy acting on the cutting end after spindle energy losses — i.e., the energy causing workpiece and chip deformation and temperature change. Output power is typically proportional to input power, with the ratio being the energy efficiency set in the spindle configuration EnergyEfficiency(API). MaxSpindlePowerRatio (maximum spindle power ratio): Input power / instantaneous maximum power based on spindle capability. ContinueSpindlePowerRatio (continuous spindle power ratio): Input power / unlimited-duration maximum power based on spindle capability. AccumulatedSpindleEnergyConsumption_kWh: Accumulated spindle energy consumption. Max/Continue Spindle Torque Ratio: Instantaneous/continuous spindle torque ratios. Thermal and Temperature CutterBodyTemperature_C / CutterDermisTemperature_C / WorkpieceDermisTemperature_C / ChipTemperature_C: Cutter body, cutter surface, workpiece surface, and chip temperatures. GetCutterDermisTemperature_C(depth_mm) / GetCutterDermisAvgTemperature_C(depth_mm): Cutter subsurface temperature / average temperature at a given depth. ThermalStress_MPa / ThermalYieldRatio: Thermal stress and thermal yield ratio. For tool breakage risk assessment based on thermal yield ratio, see \"Evaluating Process Machinability\". Wear and Deflection For wear models, evaluation metrics, and applicable scenarios, see \"Tool Life and Wear\". InstantCraterWear_um / AccumulatedCraterWear_um: Instantaneous/accumulated crater wear. AccumulatedFlankWearDepth_um / AccumulatedFlankWearWidth_um: Accumulated flank wear depth/width. Tip/Edge Deflection (um): Tool tip and bottom edge deflection (including maximum and delta values), as well as ReCutDepth_um (re-cut depth)." + "manual/runtime/step.html": { + "href": "manual/runtime/step.html", + "title": "Step | HiAPI-C# 2025", + "summary": "Step What Is a Step? A MachiningStep (MachiningStep) is a single computation unit in the HiNC simulation. By default, one step corresponds to one spindle revolution, but this interval is configurable via the Basic Simulation workflow. Each step contains data for the time interval between two consecutive steps (from the previous step to the current step). Since this represents a period rather than an instant, many fields are simplified representations using prefixes like Average (Avg), Extremes (Min, Max), Range (Delta), and Maximum Absolute Value (MaxAbs). Registering Custom Step Variables Beyond default properties, you can register custom step variables using RegisterStepVariable: RegisterStepVariable( \"ChipVolume\", // key \"Chip Volume\", // display name \"mm3\", // unit \"F2\", // format string (step) => step.ChipVolume_mm3 // value function ); PlayNcFile(\"NC/file1.nc\"); Parameters: key: Unique identifier name: Display name (shown in UI) unit: Physical unit (can be null) formatString: .NET numeric format string (can be null) variableFunction: Lambda that computes the value from a step (can be null) Registered variables appear in the UI and in output files from WriteStepFiles. Indexer Access Use the this[string] indexer to read/write custom data on a step: SessionStepBuilt += (preStep, curStep) => { if (curStep != null) curStep[\"MyCustomField\"] = someCalculation(); }; Accessing Step Data GetMillingStep GetMillingStep retrieves a step by index: var step = GetMillingStep(100); if (step != null) { Message($\"ToolId={step.ToolId}, Force={step.MaxAbsForce_N} N\"); } StepCount StepCount returns the total number of steps: Message($\"Total steps: {StepCount}\"); Iterating All Steps for (int i = 0; i < StepCount; i++) { var step = GetMillingStep(i); // process step... } Step Output Files Steps can be exported to CSV using WriteStepFiles: WriteStepFiles(\"Output/[NcName].step.csv\"); The CSV contains all default properties plus any registered custom variables. The file can be read back with PlayCsvFile. For waveform-level data (sub-step time resolution), use WriteShotFiles: WriteShotFiles(\"Output/[NcName].shot.csv\", 1); // 1 ms time resolution Dynamically Registered Variables (Training) After executing TrainMillingPara or ReTrainMillingPara, two additional step variables are automatically registered for steps within the training region: Variable Description TrainingErrRatio Error metric between simulation and measurement for each step AngleOffset Cutter rotation phase difference between measured and simulated data See Also Step Field Reference — complete field reference Glossary: SessionShell Quick-Reference — SessionShell quick-reference Workflow: Basic Machining Simulation — simulation workflow producing steps Workflow: Milling Force Parameter Training — training workflow that adds step variables" }, "manual/setup/anchor.html": { "href": "manual/setup/anchor.html", @@ -6962,7 +6897,7 @@ "release-note/index.html": { "href": "release-note/index.html", "title": "Release Note | HiAPI-C# 2025", - "summary": "Release Note HiNc Packages Version 3.1.172 Replace implicit XFactory registration (private static () constructors + _ = X.XName wake-up touches) with explicit public static void Reg(XFactory factory = null) methods across ~270 classes. XFactory becomes an instance class with a process-wide Default singleton; Generators is renamed from Regs and now an instance property; the delegate type is renamed XGeneratorDelegate from GenByXElementDelegate. Composite types chain X.Reg(factory) on dependents in place of the old wake-up touches; multi-name (legacy alias) registrations keep the current XName first and group aliases under a //legacy aliases comment. Entry points (web service, win-desktop, test fixtures) must call Reg once at startup before any project XML is deserialized — registration no longer happens by accident when the type is first touched. See XML IO. HiNc Packages Version 3.1.171 Rename RuntimeApi → SessionShell (the runtime entry point exposed to scripting); IShellCommand → ISessionCommand and RuntimeController → SessionShellController; the Hi.ShellCommands namespace moves to Hi.SessionCommands, and every command implementer's Run() parameter renames scriptApi → sessionShell Tri-state milling-physics contract: MachiningStep physics getters converge on a tri-state result, non-null MillingPhysicsBrief on no-cut steps under EnablePhysics; silently skip thermal physics on null FluteMaterial / WorkpieceMaterial; lazy first-equip warning; align relief-face null-sentinel across NoCut + producer (in NcOpt and forces) Rename IMachiningStepHost → IMachiningService (drops the ICsScriptApi seam) Fixes: rotary IK round-trip anchored to pre-FK interpolated angle; ForceAccelShot.ReadRows skips blank lines HiNc Packages Version 3.1.167 Introduce SoftNcRunner as a pluggable NC parser/runner replacing the legacy HardNcRunner; opt in via EnableSoftNcRunner. see HardNc → SoftNc Rewrite — Progress Report for the in-flight rewrite scope and remaining work Extend coolant model to CoolantMode Flood/Mist/Off and refactor CoolantHeatCondition / MillingTemperatureUtil for multi-mode coolant Bind session events to MachiningSession lifetime: SessionStepBuilt, SessionStepSelected, SessionSyntaxPieceRan, SessionSourcedActEntry (legacy aliases kept as [Obsolete]); add RegisterWriteSyntaxPieces / RegisterWriteSyntaxPiecesWithActs for syntax-piece debug tracing Add ProjectApiVersion carrier through XFactory deserialization for project-XML version negotiation; resolve Workpiece through a lazy Func getter in WorkpieceService HiNc Packages Version 3.1.162 Refactor message management into three independent categories: Diagnostic (IProgress), UI Notification (MessageBoardUtil), App Log (ILogger); remove MessageUtil class entirely and remove ExceptionUtil.ShowException / ExceptionUtil.OnShown (see Message Management) Thread IProgress through XFactory deserialization chain and MachiningProject loading; remove GenMode enum entirely (see XML IO) Add ActionProgress.FromLogger to bridge IProgress APIs to ILogger Rename ShowIfCatched → CatchExceptions with explicit Action handler; remove RoutineBlocker0 Extract WorkpieceService from Workpiece for runtime geometry operations Update ISO coordinate rendering for 3+2 axis machines: coordinate position now uses IsoCoordinateEntryDisplayee with full machining chain anchor instead of table-buckle-only anchor Rename SessionMessageHost → SessionProgress on both SessionProgress and SessionProgress (SessionShell.SessionMessageHost is kept as [Obsolete]) Remove obsolete HiLog logging utility and DynamicMachiningProjectDisplayee0 HiNc Packages Version 3.1.160 Fix NC optimization R-format arc interpolation with negative R values (follow-up to v158 R-format arc fix) Fix cubetree construction defect when a triangle edge passes through a wire corner Mech Builder: geometry (STL) file picker for anchored transformation now offers Project directory in addition to Resource directory. Rename XML IO utilities: XmlSourceAndFile → FileRefSource, CombineAsSubDirectory → GetResourceDirectory, MakeXmlSourceWithRebaseFile → MakeXmlSourceToFileRef HiNc Packages Version 3.1.158 Fix G53.1 tool height compensation behavior: replace NcEnv.SetToolHeightCompensationOnFeatureNormal configuration with automatic detection via NC flag state Make EnableIntegerShrinkOnPositionCommand configurable via project settings (previously hard-coded by CNC brand, now defaults to false with XML IO support) Fix NC optimization splitting R-format arcs (G02/G03 with R parameter) by converting to IJK format, since R sign meaning does not apply correctly to individual fragments Fix step.csv reading crash on null or malformed values Fix XML IO sub-base directory not applied in some project file operations Improve CSV actual time parsing to support DateTime format in addition to TimeSpan (see Workflow: Basic Machining Simulation) Fix CSV title parsing to trim surrounding quotes HiNc Packages Version 3.1.156 Fix G68 coordinate rotation transformation for non-origin rotation centers Fix NC optimization arc/circle offset when splitting arc fragments across multiple lines Fix optimization rotation code jumping at ±180° cycle boundary by applying cyclic angle comparison Fix RTCP on unmatched tool offset Fix blocking issue when time-mapping file not found Fix FlagsText always null after NC parser refactoring HiNc Packages Version 3.1.150 Add cubetree geometry defect scanning (ScanRuntimeGeomInfDefect) and clearing (ClearDefectDisplayee) for detecting and visualizing geometry anomalies in workpieces (see Workflow: Geometry Validation) Upgrade internal fraction representation to float128 precision for improved cubetree geometry accuracy and numerical stability Refactor messaging system from IMessageHost to standard IProgress pattern; SessionProgress (formerly SessionMessageHost) now implements IProgress, and all messaging methods renamed from Add* to Report* (e.g., AddProgress → ReportProgress) Fix cubetree initialization crash Improve postprocess precision by applying sin–cos parameterization instead of direct angle-based formulation for rotary axis numerical solving in XyzabcSolver Add asynchronous anchor solid preparation on project load for improved startup performance HiNc Packages Version 3.1.144 Enhance Siemens Sinumerik support: Siemens CYCLE800 coordinate transform and reset Siemens MCALL CYCLE81() drilling cycle parsing Siemens TRAORI/TRAFOOF/SUPA flag parsing Fix Siemens TRAFOOF plain rotation coordinate transform issue Fix Siemens coordinate transform for successive file running Fix relief face collision floating-point precision issue Replace MongoDB with SQLite for local step data storage (significant package size reduction) Add machining and motion resolution dynamic adjustment functions HiNc Packages Version 3.1.106 Rename mapping API for clearer naming: ReadCsvByTimeInterpolation → MapSingleByCsvFile (one-to-one mapping) MapByActualTime → MapSeriesByCsvFile (one-to-many mapping) Rename CSV column prefix Spindle to Holder for sensor data mapping Unify CSV column tags to MappingUtil for consistent data mapping Fix ChartRange manipulation to be time-based instead of step-based for more accurate time chart display Tune thread priority for machining parallel processing to improve UI responsiveness during simulation Various code cleanup and improvements HiNc Packages Version 3.1.102 Separate resource files (Resource, wwwroot, Doc) to HiNc-Resource nuget package for smaller package size Add ScaledFeedPerCycle function for scaled feed-per-cycle machining motion resolution Upgrade target framework to .NET 10.0 Various code cleanup and improvements HiNc Packages Version 3.1.100 Refactor project architecture: split runtime functions from MachiningProject to LocalProjectService for better separation of concerns Improve MillingTraining module with separate lead and result parameter templates for more accurate cutting parameter training Separate C++ library for code protection Add UTF-8 file path support for runtime geometry IO operations Improve CsvRunner with enhanced time mapping pattern Various architecture improvements and bug fixes HiNc Packages Version 3.1.91 Add NcOptimizationEmbeddedLogMode to control embedded log detail level (None/SimpleLog/FullLog) (see Embedded Log Comments). Fix bug of NcOptProc duplicated feedrate assignment HiNc Packages Version 3.1.90 Rename optimization log API EnableIndividualStepAdjustmentLog Fix crash from workpiece displaying with specific mechanical topology setting Improve .flatproc.log output to maintain step order during parallel computation Various stability improvements and bug fixes HiNc Packages Version 3.1.86 Re-build NcOptProc with stricter optimization logics Add optimization logging features (see Optimization Logs): .flatproc.log file output for optimization process analysis Embedded log comments in optimized NC file marking source lines with (src) suffix Fix cutting depth and width accuracy by bounding-box method with workpiece surface Fix collision check error during concurrent changing collidable object Various stability improvements and bug fixes HiNc Packages Version 3.1.84 Optimize memory usage by shrinking map-size of clStripPos Fix design pattern of cutting parameter training module (MillingTraining) Add LoadCuttingParaByFile function to load cutting parameters from file Improve CsvRunner actual time parsing: automatically calculate step duration from actual time when duration is not provided Enhance message handling in SessionShell by unifying SessionProgress usage Improve optimization performance with better task scheduling Various performance improvements and bug fixes HiNc Packages Version 3.1.75 Add actual time tracking functionality (ActualTime) Various stability improvements and bug fixes HiNc Packages Version 3.1.74 Rename class MillingCutterOptLimit to MillingCutterOptOption Add physics simulation function for relief face collision detection (ReliefFaceCollidingSpeed_mmds, IsReliefFaceCollided) and optimization (EnableLimitByReliefAngle) Add UpdateNcOptOption function to step processing Fix step ordering bug from concurrent processing Fix ClStrip shrinking to zero issue" + "summary": "Release Note HiNc Packages Version 3.1.173 Improve Mrr_mm3ds precision: the material-removal-rate now sums each cut contour's signed area-vector (fan triangulation, skipping non-finite triangles) projected on the feed direction, replacing the per-contour bounding-box area that over-estimated the cut cross-section Add AlignWorkpieceProgramZeroToIso script command: resolves a G54/G55/… entry from the project ISO coordinate table and places workpiece + fixture so the program zero coincides with that machine coordinate (topology math delegated to the new AlignWorkpieceProgramZeroToIso extension) Drop gRPC plumbing from the HiNc package: remove Hi.Grpcs.* ClStrip/Player service runners and protos, MachiningProjectGrpcServer, MonitoringPlayer, and UniversalNcMonitorClient; fold CsvRunnerConfig back into CsvRunner (gRPC services now ship in HiNcRcl / UJoinRcl) HiNc Packages Version 3.1.172 Replace implicit XFactory registration (private static () constructors + _ = X.XName wake-up touches) with explicit public static void Reg(XFactory factory = null) methods across ~270 classes. XFactory becomes an instance class with a process-wide Default singleton; Generators is renamed from Regs and now an instance property; the delegate type is renamed XGeneratorDelegate from GenByXElementDelegate. Composite types chain X.Reg(factory) on dependents in place of the old wake-up touches; multi-name (legacy alias) registrations keep the current XName first and group aliases under a //legacy aliases comment. Entry points (web service, win-desktop, test fixtures) must call Reg once at startup before any project XML is deserialized — registration no longer happens by accident when the type is first touched. See XML IO. HiNc Packages Version 3.1.171 Rename RuntimeApi → SessionShell (the runtime entry point exposed to scripting); IShellCommand → ISessionCommand and RuntimeController → SessionShellController; the Hi.ShellCommands namespace moves to Hi.SessionCommands, and every command implementer's Run() parameter renames scriptApi → sessionShell Tri-state milling-physics contract: MachiningStep physics getters converge on a tri-state result, non-null MillingPhysicsBrief on no-cut steps under EnablePhysics; silently skip thermal physics on null FluteMaterial / WorkpieceMaterial; lazy first-equip warning; align relief-face null-sentinel across NoCut + producer (in NcOpt and forces) Rename IMachiningStepHost → IMachiningService (drops the ICsScriptApi seam) Fixes: rotary IK round-trip anchored to pre-FK interpolated angle; ForceAccelShot.ReadRows skips blank lines HiNc Packages Version 3.1.167 Introduce SoftNcRunner as a pluggable NC parser/runner replacing the legacy HardNcRunner; opt in via EnableSoftNcRunner. see HardNc → SoftNc Rewrite — Progress Report for the in-flight rewrite scope and remaining work Extend coolant model to CoolantMode Flood/Mist/Off and refactor CoolantHeatCondition / MillingTemperatureUtil for multi-mode coolant Bind session events to MachiningSession lifetime: SessionStepBuilt, SessionStepSelected, SessionSyntaxPieceRan, SessionSourcedActEntry (legacy aliases kept as [Obsolete]); add RegisterWriteSyntaxPieces / RegisterWriteSyntaxPiecesWithActs for syntax-piece debug tracing Add ProjectApiVersion carrier through XFactory deserialization for project-XML version negotiation; resolve Workpiece through a lazy Func getter in WorkpieceService HiNc Packages Version 3.1.162 Refactor message management into three independent categories: Diagnostic (IProgress), UI Notification (MessageBoardUtil), App Log (ILogger); remove MessageUtil class entirely and remove ExceptionUtil.ShowException / ExceptionUtil.OnShown (see Message Management) Thread IProgress through XFactory deserialization chain and MachiningProject loading; remove GenMode enum entirely (see XML IO) Add ActionProgress.FromLogger to bridge IProgress APIs to ILogger Rename ShowIfCatched → CatchExceptions with explicit Action handler; remove RoutineBlocker0 Extract WorkpieceService from Workpiece for runtime geometry operations Update ISO coordinate rendering for 3+2 axis machines: coordinate position now uses IsoCoordinateEntryDisplayee with full machining chain anchor instead of table-buckle-only anchor Rename SessionMessageHost → SessionProgress on both SessionProgress and SessionProgress (SessionShell.SessionMessageHost is kept as [Obsolete]) Remove obsolete HiLog logging utility and DynamicMachiningProjectDisplayee0 HiNc Packages Version 3.1.160 Fix NC optimization R-format arc interpolation with negative R values (follow-up to v158 R-format arc fix) Fix cubetree construction defect when a triangle edge passes through a wire corner Mech Builder: geometry (STL) file picker for anchored transformation now offers Project directory in addition to Resource directory. Rename XML IO utilities: XmlSourceAndFile → FileRefSource, CombineAsSubDirectory → GetResourceDirectory, MakeXmlSourceWithRebaseFile → MakeXmlSourceToFileRef HiNc Packages Version 3.1.158 Fix G53.1 tool height compensation behavior: replace NcEnv.SetToolHeightCompensationOnFeatureNormal configuration with automatic detection via NC flag state Make EnableIntegerShrinkOnPositionCommand configurable via project settings (previously hard-coded by CNC brand, now defaults to false with XML IO support) Fix NC optimization splitting R-format arcs (G02/G03 with R parameter) by converting to IJK format, since R sign meaning does not apply correctly to individual fragments Fix step.csv reading crash on null or malformed values Fix XML IO sub-base directory not applied in some project file operations Improve CSV actual time parsing to support DateTime format in addition to TimeSpan (see Workflow: Basic Machining Simulation) Fix CSV title parsing to trim surrounding quotes HiNc Packages Version 3.1.156 Fix G68 coordinate rotation transformation for non-origin rotation centers Fix NC optimization arc/circle offset when splitting arc fragments across multiple lines Fix optimization rotation code jumping at ±180° cycle boundary by applying cyclic angle comparison Fix RTCP on unmatched tool offset Fix blocking issue when time-mapping file not found Fix FlagsText always null after NC parser refactoring HiNc Packages Version 3.1.150 Add cubetree geometry defect scanning (ScanRuntimeGeomInfDefect) and clearing (ClearDefectDisplayee) for detecting and visualizing geometry anomalies in workpieces (see Workflow: Geometry Validation) Upgrade internal fraction representation to float128 precision for improved cubetree geometry accuracy and numerical stability Refactor messaging system from IMessageHost to standard IProgress pattern; SessionProgress (formerly SessionMessageHost) now implements IProgress, and all messaging methods renamed from Add* to Report* (e.g., AddProgress → ReportProgress) Fix cubetree initialization crash Improve postprocess precision by applying sin–cos parameterization instead of direct angle-based formulation for rotary axis numerical solving in XyzabcSolver Add asynchronous anchor solid preparation on project load for improved startup performance HiNc Packages Version 3.1.144 Enhance Siemens Sinumerik support: Siemens CYCLE800 coordinate transform and reset Siemens MCALL CYCLE81() drilling cycle parsing Siemens TRAORI/TRAFOOF/SUPA flag parsing Fix Siemens TRAFOOF plain rotation coordinate transform issue Fix Siemens coordinate transform for successive file running Fix relief face collision floating-point precision issue Replace MongoDB with SQLite for local step data storage (significant package size reduction) Add machining and motion resolution dynamic adjustment functions HiNc Packages Version 3.1.106 Rename mapping API for clearer naming: ReadCsvByTimeInterpolation → MapSingleByCsvFile (one-to-one mapping) MapByActualTime → MapSeriesByCsvFile (one-to-many mapping) Rename CSV column prefix Spindle to Holder for sensor data mapping Unify CSV column tags to MappingUtil for consistent data mapping Fix ChartRange manipulation to be time-based instead of step-based for more accurate time chart display Tune thread priority for machining parallel processing to improve UI responsiveness during simulation Various code cleanup and improvements HiNc Packages Version 3.1.102 Separate resource files (Resource, wwwroot, Doc) to HiNc-Resource nuget package for smaller package size Add ScaledFeedPerCycle function for scaled feed-per-cycle machining motion resolution Upgrade target framework to .NET 10.0 Various code cleanup and improvements HiNc Packages Version 3.1.100 Refactor project architecture: split runtime functions from MachiningProject to LocalProjectService for better separation of concerns Improve MillingTraining module with separate lead and result parameter templates for more accurate cutting parameter training Separate C++ library for code protection Add UTF-8 file path support for runtime geometry IO operations Improve CsvRunner with enhanced time mapping pattern Various architecture improvements and bug fixes HiNc Packages Version 3.1.91 Add NcOptimizationEmbeddedLogMode to control embedded log detail level (None/SimpleLog/FullLog) (see Embedded Log Comments). Fix bug of NcOptProc duplicated feedrate assignment HiNc Packages Version 3.1.90 Rename optimization log API EnableIndividualStepAdjustmentLog Fix crash from workpiece displaying with specific mechanical topology setting Improve .flatproc.log output to maintain step order during parallel computation Various stability improvements and bug fixes HiNc Packages Version 3.1.86 Re-build NcOptProc with stricter optimization logics Add optimization logging features (see Optimization Logs): .flatproc.log file output for optimization process analysis Embedded log comments in optimized NC file marking source lines with (src) suffix Fix cutting depth and width accuracy by bounding-box method with workpiece surface Fix collision check error during concurrent changing collidable object Various stability improvements and bug fixes HiNc Packages Version 3.1.84 Optimize memory usage by shrinking map-size of clStripPos Fix design pattern of cutting parameter training module (MillingTraining) Add LoadCuttingParaByFile function to load cutting parameters from file Improve CsvRunner actual time parsing: automatically calculate step duration from actual time when duration is not provided Enhance message handling in SessionShell by unifying SessionProgress usage Improve optimization performance with better task scheduling Various performance improvements and bug fixes HiNc Packages Version 3.1.75 Add actual time tracking functionality (ActualTime) Various stability improvements and bug fixes HiNc Packages Version 3.1.74 Rename class MillingCutterOptLimit to MillingCutterOptOption Add physics simulation function for relief face collision detection (ReliefFaceCollidingSpeed_mmds, IsReliefFaceCollided) and optimization (EnableLimitByReliefAngle) Add UpdateNcOptOption function to step processing Fix step ordering bug from concurrent processing Fix ClStrip shrinking to zero issue" }, "release-note/softnc-rewrite-report.html": { "href": "release-note/softnc-rewrite-report.html", @@ -7112,7 +7047,7 @@ "workflows/basic-simulation.html": { "href": "workflows/basic-simulation.html", "title": "Workflow: Basic Machining Simulation | HiAPI-C# 2025", - "summary": "Workflow: Basic Machining Simulation This workflow walks through setting up and running a machining simulation from scratch, including project configuration, option tuning, NC execution, and result inspection. flowchart TD Equipment[\"Set machine tool &
    controller brand/type\"] Job[\"Set workpiece, fixture,
    tool house, NC files,
    controller offsets\"] Option[\"Tune simulation options
    (resolution, physics, etc.)\"] Run[\"Run simulation\"] View[\"View results\"] Equipment --> Job --> Option --> Run --> View 1. Set Machine Tool and Controller The machine tool and controller are fixed equipment that define the physical simulation environment. Machine Tool The machine tool (.mt file) provides the kinematic model and STL bodies. Once selected it rarely changes between simulations. Controller Select the controller brand and type (e.g., Fanuc, Heidenhain, Siemens). This determines how NC code is interpreted. See Heidenhain Support and General NC Code Support for details. GUI Operation Open or create a project in the HiNC application and configure machine tool and controller through the corresponding panels before setting up the job. 2. Set Job Components With equipment fixed, configure the job-specific components that change between simulations. Job Components Component Description Workpiece Geometry (STL or parametric), material, and coordinate frame Fixture (optional) Fixture geometry that participates in collision detection Tool House One or more cutting tools with geometry and flute definitions NC Files The NC programs to simulate Controller Offsets Tool offset tables, work offset tables, and other controller-specific presets Tip All file paths used in script commands are relative to the project directory unless an absolute path is given. Script Access The workpiece and fixture objects are available through Workpiece(API) and Fixture(API). var workpiece = Workpiece; var fixture = Fixture; GUI Operation Configure each component through the corresponding panels (Workpiece, Fixture, Tool House windows). 3. Tune Simulation Options Simulation options control the trade-off between accuracy and speed. 3.1 Workpiece Entity Resolution MachiningResolution_mm(API) sets the smallest cube width of the workpiece mesh. MachiningResolution_mm = 0.125; Valid values are powers of 2 (e.g., 4, 2, 1, 0.5, 0.25, 0.125). If you supply a non-power-of-2 value the system rounds to the nearest power of 2. Warning Each halving of mesh width can increase computation time and RAM by up to 8x. Start with a coarser resolution and refine only when needed. 3.2 Display Cache DispCache_Mb = 260; The display resolution depends on the cache size. Recommended value should not exceed 1000 Mb. 3.3 Machining Motion Resolution Machining motion resolution determines the interval of each simulation step. Options: Mode Command Description Feed Per Cycle MachiningMotionResolution = FeedPerCycle; One step per spindle revolution Scaled Feed Per Cycle MachiningMotionResolution = ScaledFeedPerCycle(0.5); One step per revolution × scale factor Feed Per Tooth MachiningMotionResolution = FeedPerTooth; One step per tooth revolution (default) Fixed Pace MachiningMotionResolution = FixedPace(1, 15); Fixed linear (mm) and rotary (deg) resolution Warning Do not use scaled model dimensions as a substitute for adjusting mesh width. Scaling model dimensions causes internal algorithm thresholds (minimum cuttable amount, floating-point-to-fraction range) to become invalid, producing irregular geometry artifacts. Adjust resolution settings instead. 3.4 XML Configuration Resolution can also be set in the .hincproj file or changed mid-simulation via NC code comments: T01 M06 (;@MachiningResolution_mm=0.03125;) 4. Run Simulation There are three ways to drive the simulation. 4.1 PlayNcFile — Execute from a File PlayNcFile(API) reads and executes an NC file. PlayNcFile(\"NC/file1.nc\"); 4.2 PlayNc — Execute from a String PlayNc(API) executes NC code directly from a string, useful for programmatic or dynamically generated commands. double x = 10.0; PlayNc($\"G01 X{x} Y20 F100\", \"Generated Command\"); 4.3 PlayCsvFile — Drive from CSV Data PlayCsvFile(API) drives the simulation from a CSV file containing axis positions, spindle speed, and feed rate. PlayCsvFile(\"Data/file1.csv\"); Required CSV columns (default headers): MC.X, MC.Y, MC.Z, ToolId, SpindleSpeed_rpm, Feedrate_mmdmin. Optional: MC.A, MC.B, MC.C, ActualTime, StepDuration. Tip CSV files exported by WriteStepFiles(API) can be directly read back with PlayCsvFile(API). 4.4 Player Control Command Purpose Pace()(API) Insert a pausable checkpoint Pause()(API) Pause execution Reset()(API) Reset player state PlayNcFile(\"NC/file1.nc\"); if (someCondition) Pause(); 5. View Results 5.1 Runtime Geometry After simulation the workpiece geometry is a Runtime Geometry (cubic mesh). You can save and reload it to avoid re-computing the initial shape: WriteRuntimeGeom(\"Cache/file1.wct\"); WriteRuntimeGeomToStl(\"Output/file1.stl\"); To reload a saved geometry for a subsequent run: ReadRuntimeGeom(\"Cache/init.wct\"); PlayNcFile(\"NC/file1.nc\"); 5.2 Step Data Inspection Each simulation step carries rich data (force, torque, power, thermal, wear). Access individual steps: var step = GetMillingStep(100); Message($\"ToolId={step.ToolId}, Force={step.MaxAbsForce_N} N\"); Total step count: var total = StepCount; Message($\"Total steps: {total}\"); 5.3 Export Data Export step-level CSV: WriteStepFiles(\"Output/[NcName].step.csv\"); Export waveform (shot) CSV: WriteShotFiles(\"Output/[NcName].shot.csv\", 1); 5.4 Messages Use messages to log and track simulation progress: Message(\"Simulation complete\"); AppendMessagesToFile(\"Output/messages.txt\"); Troubleshooting Symptom Likely Cause Fix Very slow simulation Resolution too fine Increase MachiningResolution_mm Irregular bumps on geometry Scaled model dimensions instead of resolution Use resolution settings only; see warning above Display lag DispCache_Mb too large Reduce display cache (< 1000 Mb recommended) Empty step data Simulation not run or tool not engaging workpiece Verify tool path intersects the workpiece See Also Heidenhain Support — controller configuration General NC Code Support — ISO NC support Simulation Step — what a step is Simulation Step Output — step field reference Glossary: Script Commands — script command basics Glossary: SessionShell Quick-Reference — SessionShell quick-reference" + "summary": "Workflow: Basic Machining Simulation This workflow walks through setting up and running a machining simulation from scratch, including project configuration, option tuning, NC execution, and result inspection. flowchart TD Equipment[\"Set machine tool &
    controller brand/type\"] Job[\"Set workpiece, fixture,
    tool house, NC files,
    controller offsets\"] Option[\"Tune simulation options
    (resolution, physics, etc.)\"] Run[\"Run simulation\"] View[\"View results\"] Equipment --> Job --> Option --> Run --> View 1. Set Machine Tool and Controller The machine tool and controller are fixed equipment that define the physical simulation environment. Machine Tool The machine tool (.mt file) provides the kinematic model and STL bodies. Once selected it rarely changes between simulations. Controller Select the controller brand and type (e.g., Fanuc, Heidenhain, Siemens). This determines how NC code is interpreted. See Heidenhain Support and General NC Code Support for details. GUI Operation Open or create a project in the HiNC application and configure machine tool and controller through the corresponding panels before setting up the job. 2. Set Job Components With equipment fixed, configure the job-specific components that change between simulations. Job Components Component Description Workpiece Geometry (STL or parametric), material, and coordinate frame Fixture (optional) Fixture geometry that participates in collision detection Tool House One or more cutting tools with geometry and flute definitions NC Files The NC programs to simulate Controller Offsets Tool offset tables, work offset tables, and other controller-specific presets Tip All file paths used in script commands are relative to the project directory unless an absolute path is given. Script Access The workpiece and fixture objects are available through Workpiece(API) and Fixture(API). var workpiece = Workpiece; var fixture = Fixture; GUI Operation Configure each component through the corresponding panels (Workpiece, Fixture, Tool House windows). 3. Tune Simulation Options Simulation options control the trade-off between accuracy and speed. 3.1 Workpiece Entity Resolution MachiningResolution_mm(API) sets the smallest cube width of the workpiece mesh. MachiningResolution_mm = 0.125; Valid values are powers of 2 (e.g., 4, 2, 1, 0.5, 0.25, 0.125). If you supply a non-power-of-2 value the system rounds to the nearest power of 2. Warning Each halving of mesh width can increase computation time and RAM by up to 8x. Start with a coarser resolution and refine only when needed. 3.2 Display Cache DispCache_Mb = 260; The display resolution depends on the cache size. Recommended value should not exceed 1000 Mb. 3.3 Machining Motion Resolution Machining motion resolution determines the interval of each simulation step. Options: Mode Command Description Feed Per Cycle MachiningMotionResolution = FeedPerCycle; One step per spindle revolution Scaled Feed Per Cycle MachiningMotionResolution = ScaledFeedPerCycle(0.5); One step per revolution × scale factor Feed Per Tooth MachiningMotionResolution = FeedPerTooth; One step per tooth revolution (default) Fixed Pace MachiningMotionResolution = FixedPace(1, 15); Fixed linear (mm) and rotary (deg) resolution Warning Do not use scaled model dimensions as a substitute for adjusting mesh width. Scaling model dimensions causes internal algorithm thresholds (minimum cuttable amount, floating-point-to-fraction range) to become invalid, producing irregular geometry artifacts. Adjust resolution settings instead. 3.4 XML Configuration Resolution can also be set in the .hincproj file or changed mid-simulation via NC code comments: T01 M06 (;@MachiningResolution_mm=0.03125;) 4. Run Simulation There are three ways to drive the simulation. 4.1 PlayNcFile — Execute from a File PlayNcFile(API) reads and executes an NC file. PlayNcFile(\"NC/file1.nc\"); 4.2 PlayNc — Execute from a String PlayNc(API) executes NC code directly from a string, useful for programmatic or dynamically generated commands. double x = 10.0; PlayNc($\"G01 X{x} Y20 F100\", \"Generated Command\"); 4.3 PlayCsvFile — Drive from CSV Data PlayCsvFile(API) drives the simulation from a CSV file containing axis positions, spindle speed, and feed rate. PlayCsvFile(\"Data/file1.csv\"); Required CSV columns (default headers): MC.X, MC.Y, MC.Z, ToolId, SpindleSpeed_rpm, Feedrate_mmdmin. Optional: MC.A, MC.B, MC.C, ActualTime, StepDuration. Headers and timestamp values may be wrapped in double quotes; the parser strips them. ActualTime accepts either HH:mm:ss.fff or an absolute yyyy-MM-dd HH:mm:ss.ffffff form (the absolute form is required when chaining with MapSeriesByCsvFile(API), which matches by TimeTag): \"ActualTime\",\"Feedrate_mmdmin\",\"MC.X\",\"MC.Y\",\"MC.Z\",\"SpindleSpeed_rpm\",\"ToolId\" \"2026-03-16 15:57:45.559000\",10000.0,-351.745,-244.799,-215.799,1270,1 \"2026-03-16 15:57:45.705000\",10000.0,-351.745,-244.799,-215.799,1270,1 When a real-world controller log includes extra columns (e.g., t_receive, cnc_delay_s, status) or uses alternative column names (X/Y/Z, feedrate, spindle_speed), preprocess the file to drop or rename columns before passing it to PlayCsvFile(API). Tip CSV files exported by WriteStepFiles(API) can be directly read back with PlayCsvFile(API). 4.4 Player Control Command Purpose Pace()(API) Insert a pausable checkpoint Pause()(API) Pause execution Reset()(API) Reset player state PlayNcFile(\"NC/file1.nc\"); if (someCondition) Pause(); 5. View Results 5.1 Runtime Geometry After simulation the workpiece geometry is a Runtime Geometry (cubic mesh). You can save and reload it to avoid re-computing the initial shape: WriteRuntimeGeom(\"Cache/file1.wct\"); WriteRuntimeGeomToStl(\"Output/file1.stl\"); To reload a saved geometry for a subsequent run: ReadRuntimeGeom(\"Cache/init.wct\"); PlayNcFile(\"NC/file1.nc\"); 5.2 Step Data Inspection Each simulation step carries rich data (force, torque, power, thermal, wear). Access individual steps: var step = GetMillingStep(100); Message($\"ToolId={step.ToolId}, Force={step.MaxAbsForce_N} N\"); Total step count: var total = StepCount; Message($\"Total steps: {total}\"); 5.3 Export Data Export step-level CSV: WriteStepFiles(\"Output/[NcName].step.csv\"); Export waveform (shot) CSV: WriteShotFiles(\"Output/[NcName].shot.csv\", 1); 5.4 Messages Use messages to log and track simulation progress: Message(\"Simulation complete\"); AppendMessagesToFile(\"Output/messages.txt\"); Troubleshooting Symptom Likely Cause Fix Very slow simulation Resolution too fine Increase MachiningResolution_mm Irregular bumps on geometry Scaled model dimensions instead of resolution Use resolution settings only; see warning above Display lag DispCache_Mb too large Reduce display cache (< 1000 Mb recommended) Empty step data Simulation not run or tool not engaging workpiece Verify tool path intersects the workpiece See Also Heidenhain Support — controller configuration General NC Code Support — ISO NC support Step — what a step is, accessing and outputting step data Step Field Reference — step field reference Glossary: Script Commands — script command basics Glossary: SessionShell Quick-Reference — SessionShell quick-reference" }, "workflows/dynamometer-experiment-sop.html": { "href": "workflows/dynamometer-experiment-sop.html", @@ -7137,7 +7072,7 @@ "workflows/force-training.html": { "href": "workflows/force-training.html", "title": "Workflow: Milling Force Parameter Training | HiAPI-C# 2025", - "summary": "Workflow: Milling Force Parameter Training This workflow covers the end-to-end process of training milling force coefficients from sensor data, including data mapping, coefficient training, quality evaluation, and application of the trained parameters. Milling coefficients are essential parameters for calculating milling forces. Training derives these coefficients from experimental sensor data (dynamometer or smart tool holder) mapped to simulated toolpaths. flowchart TD Prereq[\"Prerequisites
    (sensor data, project setup)\"] Resolution[\"Configure resolution & enable physics\"] Mapping[\"Configure data mapping\"] Simulate[\"Run simulation with NC file\"] Export[\"Export simulation data
    (WriteShotFiles, WriteStepFiles)\"] Map[\"Map sensor data to simulation\"] Train[\"Train milling parameters\"] Evaluate[\"Evaluate training quality\"] Apply[\"Load trained parameters\"] Prereq --> Resolution --> Mapping --> Simulate --> Export Simulate --> Map --> Train --> Evaluate --> Apply 1. Prerequisites Before training you need: Item Description HiNC project Machine tool, workpiece, fixture, tool house configured NC file The NC program used during the physical cutting experiment Sensor data CSV Time-stamped force/torque data from a dynamometer or smart tool holder Controller data CSV (optional) Machine controller log with FileNo, LineNo, ActualTime for two-layer mapping Sensor Data File Format The CSV must contain a header row with ActualTime and at least one force/torque channel: Source Headers Dynamometer Fx (or Workpiece.Fx), Fy, Fz Smart tool holder Mx (or Holder.Mx), My, Mz Accelerometer (optional) Ax, Ay, Az ActualTime,CH1,CH2,Mx,My,Mz 18:23:54.703,-0.00398,-0.00034,-0.02923,0.10733,0.00409 18:23:54.704,-0.00194,0.00285,0.04155,-0.04457,0.00448 ... Tip Keep the completed training project archived. When the HiNC training algorithm is updated, you can re-run training from the same project. 2. Configure Resolution and Enable Physics Resolution Use a finer resolution than normal operation for training accuracy: MachiningResolution_mm = 0.0625; // half or less of production resolution MachiningMotionResolution = FeedPerTooth; Tip Training resolution should be ≤ 0.5× the production resolution for better accuracy. Enable Physics EnablePhysics must be enabled for force calculation: EnablePhysics = true; Milling Force Cycle Division Set the number of angular divisions per revolution before training. Higher values yield more accurate phase alignment: MillingForceCycleDivisionNum = 360; Note This must be set before executing TrainMillingPara. A larger value produces a more accurate AngleOffset result and better milling coefficients. 3. Configure Data Mapping Depending on your data, choose one of the mapping strategies below. 3.1 Local Mapping (Anchor-Based) For mapping sensor data to specific NC path segments: Step A — Specify input data: ClearTimeMappingData(); AddTimeDataByFile(\"lineA\", \"Mapping/sensor1.csv\", \"18:25:51.7100\", \"18:26:12.9910\"); AddTimeDataByFile(\"lineB\", \"Mapping/sensor1.csv\", \"18:26:30.5750\", \"18:27:12.2880\"); Step B — Specify NC paths (embedded in NC code comments): X13. F20 ;@LineSelection(\"lineA\", FirstTouch, ShiftTime_s(2), LineEnd, ShiftDistance_mm(-1)); X25. F10 ;@LineSelection(\"lineB\", FirstTouch, null, LastTouch, null); Anchor options: LineBegin, LineEnd, FirstTouch, LastTouch. Offset options: null, ShiftTime_s(), ShiftDistance_mm(). 3.2 Two-Layer Chained Mapping (Controller + Sensor) When you have both controller data and sensor data: PlayNcFile(\"NC/machining.nc\"); MapSingleByCsvFile(\"Data/controller.csv\"); // maps FileNo/LineNo → ActualTime MapSeriesByCsvFile(\"Data/sensor.csv\"); // maps ActualTime → sensor series Note Why two-layer mapping? Running the NC through the system interpreter produces more accurate simulation paths than direct CSV playback. The controller data bridges simulation steps to real time via FileNo/LineNo, and the sensor data bridges real time to force/torque readings. 4. Run Simulation PlayNcFile(\"NC/file1.nc\"); Warning During training, do not: Adjust workpiece, tool, or controller resolution settings Use the NC player reset button (close the project instead) Save the project (system training configuration may overwrite tool resolution settings) 5. Export Simulation Data Export step data and waveform data for analysis: WriteStepFiles(\"Output/[NcName].step.csv\"); WriteShotFiles(\"Output/[NcName].shot.csv\", 1); The shot file contains time-resolved force columns: Tool.Fx/Fy/Fz, Workpiece.Fx/Fy/Fz, Spindle.Mx/My/Mz. For coordinate system explanations, see Milling Physics Coordinates. 6. Train Milling Parameters TrainMillingPara (New Training) TrainMillingPara trains new coefficients independently of any existing workpiece parameters. TrainMillingPara(Fx|Fy|Fz, \"StainlessSteel.mp\"); ReTrainMillingPara (Calibration) ReTrainMillingPara calibrates existing coefficients (10% original weight, 90% new sample weight). ReTrainMillingPara(Fz|Mx|My|Mz, \"StainlessSteel.mp\"); Sample Flag Requirements Command Minimum Data Types Feed Per Tooth Requirement TrainMillingPara Fx\\|Fy\\|Fz (dynamometer) or Fz\\|Mx\\|My\\|Mz (smart tool holder) At least one sample with different feed per tooth ReTrainMillingPara No restriction No restriction Warning Using only Mx|My|Mz without Fz loses one degree of freedom (torque = r × F loses the r-direction), making coefficient training unreliable. Always include Fz when using torque data. Training Conditions Samples should have stable, repeatable waveforms for at least two spindle revolutions Under unstable conditions, plowing coefficients tend to be over-estimated Any NC path shape (slot milling, side milling, any tool shape) is acceptable when samples are stable 7. Evaluate Training Quality After training, the system reports three quality metrics: Correlation Coefficient (R) A single value for the overall result. Ranges from 0 to 1; for new tools, expect 0.95–0.999. Training Error Ratio (TrainingErrRatio) A per-step variable registered automatically after training. Lower values indicate better step-level quality: \\[ \\text{TrainingErrRatio} = \\sqrt{\\frac{\\sum_{i} e_i^2}{\\sqrt{\\sum_{i} y_i^2 \\cdot \\sum_{i} \\hat{y}_i^2}}} \\] Angle Offset (AngleOffset) A per-step variable representing the cutter rotation phase difference between measured and simulated data: \\[ \\theta_{offset} = \\frac{2\\pi \\cdot i_{min}}{N_{div}} \\] Tip If AngleOffset varies significantly across segments in the same training batch, the spindle may have experienced speed changes, data gaps, or the system could not accurately analyze the samples. 8. Load Trained Parameters After training, load the new coefficients into the workpiece: LoadCuttingParaByFile(\"StainlessSteel.mp\"); Warning If the training output file path is the same as the tool's existing cutting parameter file, reload the project after training to ensure the new parameters take effect. XML Configuration (GUI Workflow) When using the GUI-based training workflow, configure the .hincproj file: MillingPara/trainedPara.mp false 2 1 0 0 1 0 0 Set IsMzEnabled to true if mapped data contains axial spindle torque from a smart tool holder. Complete Script Example MachiningResolution_mm = 0.0625; EnablePhysics = true; MillingForceCycleDivisionNum = 360; ClearTimeMappingData(); AddTimeDataByFile(\"lineA\", \"Mapping/sensor1.csv\", \"18:25:51.7100\", \"18:26:12.9910\"); AddTimeDataByFile(\"lineB\", \"Mapping/sensor1.csv\", \"18:26:30.5750\", \"18:27:12.2880\"); PlayNcFile(\"NC/file1.nc\"); TrainMillingPara(Fx|Fy|Fz, \"MillingPara/trained.mp\"); LoadCuttingParaByFile(\"MillingPara/trained.mp\"); WriteStepFiles(\"Output/[NcName].step.csv\"); WriteShotFiles(\"Output/[NcName].shot.csv\", 1); See Also Milling Physics Coordinates — coordinate system reference Sensor Mapping Workflow — detailed mapping workflow Workflow: Basic Machining Simulation — basic simulation setup Workflow: NC Optimization — optimization after training Glossary: Machining Step — step data reference Glossary: SessionShell Quick-Reference — SessionShell quick-reference Training with a Dynamometer (Example) Cascading Mapping (Example)" + "summary": "Workflow: Milling Force Parameter Training This workflow covers the end-to-end process of training milling force coefficients from sensor data, including data mapping, coefficient training, quality evaluation, and application of the trained parameters. Milling coefficients are essential parameters for calculating milling forces. Training derives these coefficients from experimental sensor data (dynamometer or smart tool holder) mapped to simulated toolpaths. flowchart TD Prereq[\"Prerequisites
    (sensor data, project setup)\"] Resolution[\"Configure resolution & enable physics\"] Mapping[\"Configure data mapping\"] Simulate[\"Run simulation with NC file\"] Export[\"Export simulation data
    (WriteShotFiles, WriteStepFiles)\"] Map[\"Map sensor data to simulation\"] Train[\"Train milling parameters\"] Evaluate[\"Evaluate training quality\"] Apply[\"Load trained parameters\"] Prereq --> Resolution --> Mapping --> Simulate --> Export Simulate --> Map --> Train --> Evaluate --> Apply 1. Prerequisites Before training you need: Item Description HiNC project Machine tool, workpiece, fixture, tool house configured NC file The NC program used during the physical cutting experiment Sensor data CSV Time-stamped force/torque data from a dynamometer or smart tool holder Controller data CSV (optional) Machine controller log with FileNo, LineNo, ActualTime for two-layer mapping Sensor Data File Format The CSV must contain a header row with ActualTime and at least one force/torque channel: Source Headers Dynamometer Fx (or Workpiece.Fx), Fy, Fz Smart tool holder Mx (or Holder.Mx), My, Mz Accelerometer (optional) Ax, Ay, Az ActualTime,CH1,CH2,Mx,My,Mz 18:23:54.703,-0.00398,-0.00034,-0.02923,0.10733,0.00409 18:23:54.704,-0.00194,0.00285,0.04155,-0.04457,0.00448 ... Tip Keep the completed training project archived. When the HiNC training algorithm is updated, you can re-run training from the same project. 2. Configure Resolution and Enable Physics Resolution Use a finer resolution than normal operation for training accuracy: MachiningResolution_mm = 0.0625; // half or less of production resolution MachiningMotionResolution = FeedPerTooth; Tip Training resolution should be ≤ 0.5× the production resolution for better accuracy. Enable Physics EnablePhysics must be enabled for force calculation: EnablePhysics = true; Milling Force Cycle Division Set the number of angular divisions per revolution before training. Higher values yield more accurate phase alignment: MillingForceCycleDivisionNum = 360; Note This must be set before executing TrainMillingPara. A larger value produces a more accurate AngleOffset result and better milling coefficients. 3. Configure Data Mapping Depending on your data, choose one of the mapping strategies below. 3.1 Local Mapping (Anchor-Based) For mapping sensor data to specific NC path segments: Step A — Specify input data: ClearTimeMappingData(); AddTimeDataByFile(\"lineA\", \"Mapping/sensor1.csv\", \"18:25:51.7100\", \"18:26:12.9910\"); AddTimeDataByFile(\"lineB\", \"Mapping/sensor1.csv\", \"18:26:30.5750\", \"18:27:12.2880\"); Step B — Specify NC paths (embedded in NC code comments): X13. F20 ;@LineSelection(\"lineA\", FirstTouch, ShiftTime_s(2), LineEnd, ShiftDistance_mm(-1)); X25. F10 ;@LineSelection(\"lineB\", FirstTouch, null, LastTouch, null); Anchor options: LineBegin, LineEnd, FirstTouch, LastTouch. Offset options: null, ShiftTime_s(), ShiftDistance_mm(). 3.2 Two-Layer Chained Mapping (Controller + Sensor) When you have both controller data and sensor data: PlayNcFile(\"NC/machining.nc\"); MapSingleByCsvFile(\"Data/controller.csv\"); // maps FileNo/LineNo → ActualTime MapSeriesByCsvFile(\"Data/sensor.csv\"); // maps ActualTime → sensor series Note Why two-layer mapping? Running the NC through the system interpreter produces more accurate simulation paths than direct CSV playback. The controller data bridges simulation steps to real time via FileNo/LineNo, and the sensor data bridges real time to force/torque readings. 4. Run Simulation PlayNcFile(\"NC/file1.nc\"); Warning During training, do not: Adjust workpiece, tool, or controller resolution settings Use the NC player reset button (close the project instead) Save the project (system training configuration may overwrite tool resolution settings) 5. Export Simulation Data Export step data and waveform data for analysis: WriteStepFiles(\"Output/[NcName].step.csv\"); WriteShotFiles(\"Output/[NcName].shot.csv\", 1); The shot file contains time-resolved force columns: Tool.Fx/Fy/Fz, Workpiece.Fx/Fy/Fz, Spindle.Mx/My/Mz. For coordinate system explanations, see Milling Physics Coordinates. 6. Train Milling Parameters TrainMillingPara (New Training) TrainMillingPara trains new coefficients independently of any existing workpiece parameters. TrainMillingPara(Fx|Fy|Fz, \"StainlessSteel.mp\"); ReTrainMillingPara (Calibration) ReTrainMillingPara calibrates existing coefficients (10% original weight, 90% new sample weight). ReTrainMillingPara(Fz|Mx|My|Mz, \"StainlessSteel.mp\"); Sample Flag Requirements Command Minimum Data Types Feed Per Tooth Requirement TrainMillingPara Fx\\|Fy\\|Fz (dynamometer) or Fz\\|Mx\\|My\\|Mz (smart tool holder) At least one sample with different feed per tooth ReTrainMillingPara No restriction No restriction Warning Using only Mx|My|Mz without Fz loses one degree of freedom (torque = r × F loses the r-direction), making coefficient training unreliable. Always include Fz when using torque data. Training Conditions Samples should have stable, repeatable waveforms for at least two spindle revolutions Under unstable conditions, plowing coefficients tend to be over-estimated Any NC path shape (slot milling, side milling, any tool shape) is acceptable when samples are stable 7. Evaluate Training Quality After training, the system reports three quality metrics: Correlation Coefficient (R) A single value for the overall result. Ranges from 0 to 1; for new tools, expect 0.95–0.999. Training Error Ratio (TrainingErrRatio) A per-step variable registered automatically after training. Lower values indicate better step-level quality: \\[ \\text{TrainingErrRatio} = \\sqrt{\\frac{\\sum_{i} e_i^2}{\\sqrt{\\sum_{i} y_i^2 \\cdot \\sum_{i} \\hat{y}_i^2}}} \\] Angle Offset (AngleOffset) A per-step variable representing the cutter rotation phase difference between measured and simulated data: \\[ \\theta_{offset} = \\frac{2\\pi \\cdot i_{min}}{N_{div}} \\] Tip If AngleOffset varies significantly across segments in the same training batch, the spindle may have experienced speed changes, data gaps, or the system could not accurately analyze the samples. 8. Load Trained Parameters After training, load the new coefficients into the workpiece: LoadCuttingParaByFile(\"StainlessSteel.mp\"); Warning If the training output file path is the same as the tool's existing cutting parameter file, reload the project after training to ensure the new parameters take effect. XML Configuration (GUI Workflow) When using the GUI-based training workflow, configure the .hincproj file: MillingPara/trainedPara.mp false 2 1 0 0 1 0 0 Set IsMzEnabled to true if mapped data contains axial spindle torque from a smart tool holder. Complete Script Example MachiningResolution_mm = 0.0625; EnablePhysics = true; MillingForceCycleDivisionNum = 360; ClearTimeMappingData(); AddTimeDataByFile(\"lineA\", \"Mapping/sensor1.csv\", \"18:25:51.7100\", \"18:26:12.9910\"); AddTimeDataByFile(\"lineB\", \"Mapping/sensor1.csv\", \"18:26:30.5750\", \"18:27:12.2880\"); PlayNcFile(\"NC/file1.nc\"); TrainMillingPara(Fx|Fy|Fz, \"MillingPara/trained.mp\"); LoadCuttingParaByFile(\"MillingPara/trained.mp\"); WriteStepFiles(\"Output/[NcName].step.csv\"); WriteShotFiles(\"Output/[NcName].shot.csv\", 1); See Also Milling Physics Coordinates — coordinate system reference Sensor Mapping Workflow — detailed mapping workflow Workflow: Basic Machining Simulation — basic simulation setup Workflow: NC Optimization — optimization after training Step — step data reference Glossary: SessionShell Quick-Reference — SessionShell quick-reference Training with a Dynamometer (Example) Cascading Mapping (Example)" }, "workflows/geometry-validation.html": { "href": "workflows/geometry-validation.html", @@ -7152,6 +7087,6 @@ "workflows/sensor-mapping.html": { "href": "workflows/sensor-mapping.html", "title": "Workflow: Sensor Data Mapping | HiAPI-C# 2025", - "summary": "Workflow: Sensor Data Mapping This workflow covers mapping external sensor data (dynamometer, smart tool holder, accelerometer) to simulation toolpaths so that simulation steps can index real-world measurement data. flowchart TD Prepare[\"Prepare sensor CSV data\"] Configure[\"Configure time mapping\"] Simulate[\"Run simulation\"] Map[\"Map data to simulation steps\"] View[\"View mapped results\"] Prepare --> Configure --> Simulate --> Map --> View Overview Data mapping associates external sensor measurements with simulated machining steps. After mapping, each step can reference real-world force, torque, and acceleration data for: Inspecting machining states Training milling coefficients (see Workflow: Milling Force Parameter Training) Calibrating milling coefficients Comparing simulated vs. measured forces Depending on data volume and application, mapping is either one-to-one (each step maps to one data point) or one-to-many (each step maps to multiple data points from high-sampling-rate sensors). 1. Prepare Sensor CSV Data Sensor Data Format The CSV file must have a header row with ActualTime and sensor channels: Source Headers Aliases Dynamometer Fx, Fy, Fz Workpiece.Fx, Workpiece.Fy, Workpiece.Fz Smart tool holder Mx, My, Mz Holder.Mx, Holder.My, Holder.Mz Accelerometer Ax, Ay, Az — ActualTime,Mx,My,Mz 18:23:54.703,-0.02923,0.10733,0.00409 18:23:54.704,0.04155,-0.04457,0.00448 ... The time format is ::.. Additional fields (e.g., CH1, CH2) may be included and will be available after mapping. Controller Data Format (for Two-Layer Mapping) The controller CSV must contain at least FileNo, LineNo, and ActualTime: FileNo,LineNo,ActualTime,MC.X,MC.Y,MC.Z,... 1,6,00:00:00.030,0,0,0.37,... 2. Configure Time Mapping Strategy A: One-to-One Mapping (MapSingleByCsvFile) MapSingleByCsvFile reads a CSV file and uses time interpolation to map each data point to one simulation step. PlayNcFile(\"NC/file1.nc\"); MapSingleByCsvFile(\"Data/sensor.csv\"); Strategy B: One-to-One via PlayCsvFile PlayCsvFile can drive the simulation directly from CSV data, where each row becomes one step. Custom fields in the CSV are automatically available on each step. PlayCsvFile(\"Data/controller.csv\"); Strategy C: One-to-Many Global Mapping (MapSeriesByCsvFile) For high-sampling-rate data, first establish ActualTime via one-to-one mapping, then map the series: PlayNcFile(\"NC/file1.nc\"); MapSingleByCsvFile(\"Data/controller.csv\"); // establishes ActualTime MapSeriesByCsvFile(\"Data/sensor.csv\"); // maps high-rate series Strategy D: One-to-Many Local Mapping (Anchor-Based) For mapping sensor data to specific NC path segments using anchors. Step 1 — Specify input data and time ranges: ClearTimeMappingData(); AddTimeDataByFile(\"lineA\", \"Mapping/sensor1.csv\", \"18:25:51.7100\", \"18:26:12.9910\"); AddTimeDataByFile(\"lineB\", \"Mapping/sensor1.csv\", \"18:26:30.5750\", \"18:27:12.2880\"); Step 2 — Specify NC path anchors (embedded in NC code): X13. F20 ;@LineSelection(\"lineA\", FirstTouch, ShiftTime_s(2), LineEnd, ShiftDistance_mm(-1)); X25. F10 ;@LineSelection(\"lineB\", FirstTouch, null, LastTouch, null); For range mapping across multiple NC lines, use BeginSelection / EndSelection: ;@BeginSelection(\"region1\", LineBegin, null); ... ;@EndSelection(\"region1\", LineEnd, null); Anchor Flags: Flag Description LineBegin Motion start point of the line LineEnd Motion end point of the line FirstTouch First contact with the workpiece LastTouch Last contact with the workpiece Offset Options: Offset Description null No offset ShiftTime_s() Time-based offset (positive = forward) ShiftDistance_mm() Distance-based offset (positive = forward) Note For FANUC controllers that do not support ; as a comment character, enclose the script command in a comment block: X13. F20 (;@LineSelection(\"lineA\", FirstTouch, null, LineEnd, null);) Map on Selection End EnableMapOnSelectionEnd controls automatic mapping when a selection ends (default: true): EnableMapOnSelectionEnd = true; // EndSelection triggers Map automatically Clearing Mapping Data Mapping data persists across player resets. To clear: ClearTimeMappingData(); 3. Run Simulation PlayNcFile(\"NC/file1.nc\"); Note Why interpret NC code instead of playing CSV directly? The system NC interpreter produces more accurate simulation paths than direct controller CSV playback, which has limited sampling resolution that distorts tool paths. 4. Map Data After simulation, apply the mapping strategy chosen in step 2. For the two-layer chained approach: // Chain 1: Controller data → simulation steps (via FileNo/LineNo → ActualTime) MapSingleByCsvFile(\"Data/controller.csv\"); // Chain 2: Sensor data → simulation steps (via ActualTime → sensor readings) MapSeriesByCsvFile(\"Data/sensor.csv\"); The chaining works because: Simulation steps and controller data share FileNo/LineNo anchors Controller data and sensor data share ActualTime anchors After chaining, simulation steps can index sensor data Tip Due to machine acceleration/deceleration, simulation time and actual time diverge over longer durations. Anchor-based linear projection corrects for this drift. 5. View Mapped Results After mapping, sensor data is available on each step. Use the UI to: View color gradient maps on the workpiece geometry Inspect time-series charts Click-to-track specific data channels Export mapped results: WriteStepFiles(\"Output/[NcName].step.csv\"); WriteShotFiles(\"Output/[NcName].shot.csv\", 1); Complete Two-Layer Mapping Example // Configure resolution MachiningResolution_mm = 0.125; EnablePhysics = true; // Clear any previous mapping data ClearTimeMappingData(); // Run simulation using NC interpreter for accurate paths PlayNcFile(\"NC/machining.nc\"); // Map controller data (contains FileNo, LineNo, ActualTime) MapSingleByCsvFile(\"Data/controller.csv\"); // Map high-rate sensor data (contains ActualTime and force/torque) MapSeriesByCsvFile(\"Data/sensor.csv\"); // Export results WriteStepFiles(\"Output/[NcName].step.csv\"); See Also Workflow: Milling Force Parameter Training — using mapped data for coefficient training Workflow: Basic Machining Simulation — basic simulation setup Glossary: Machining Step — step data model Glossary: SessionShell Quick-Reference — SessionShell quick-reference Example Project: Mapping Controller and Sensor Data to Simulated NC Toolpaths and Updating Milling Coefficients — mapping demo example project Example Project: Training Milling Coefficients with a Dynamometer — dynamometer training example project" + "summary": "Workflow: Sensor Data Mapping This workflow covers mapping external sensor data (dynamometer, smart tool holder, accelerometer) to simulation toolpaths so that simulation steps can index real-world measurement data. flowchart TD Prepare[\"Prepare sensor CSV data\"] Configure[\"Configure time mapping\"] Simulate[\"Run simulation\"] Map[\"Map data to simulation steps\"] View[\"View mapped results\"] Prepare --> Configure --> Simulate --> Map --> View Overview Data mapping associates external sensor measurements with simulated machining steps. After mapping, each step can reference real-world force, torque, and acceleration data for: Inspecting machining states Training milling coefficients (see Workflow: Milling Force Parameter Training) Calibrating milling coefficients Comparing simulated vs. measured forces Depending on data volume and application, mapping is either one-to-one (each step maps to one data point) or one-to-many (each step maps to multiple data points from high-sampling-rate sensors). 1. Prepare Sensor CSV Data Sensor Data Format The CSV file must have a header row with ActualTime and sensor channels: Source Headers Aliases Dynamometer Fx, Fy, Fz Workpiece.Fx, Workpiece.Fy, Workpiece.Fz Smart tool holder Mx, My, Mz Holder.Mx, Holder.My, Holder.Mz Accelerometer Ax, Ay, Az — ActualTime,Mx,My,Mz 18:23:54.703,-0.02923,0.10733,0.00409 18:23:54.704,0.04155,-0.04457,0.00448 ... The time format is ::.. Additional fields (e.g., CH1, CH2) may be included and will be available after mapping. Controller Data Format (for Two-Layer Mapping) The controller CSV must contain at least FileNo, LineNo, and ActualTime: FileNo,LineNo,ActualTime,MC.X,MC.Y,MC.Z,... 1,6,00:00:00.030,0,0,0.37,... 2. Configure Time Mapping Strategy A: One-to-One Mapping (MapSingleByCsvFile) MapSingleByCsvFile reads a CSV file and uses time interpolation to map each data point to one simulation step. PlayNcFile(\"NC/file1.nc\"); MapSingleByCsvFile(\"Data/sensor.csv\"); Strategy B: One-to-One via PlayCsvFile PlayCsvFile can drive the simulation directly from CSV data, where each row becomes one step. Custom fields in the CSV are automatically available on each step. PlayCsvFile(\"Data/controller.csv\"); Strategy C: One-to-Many Global Mapping (MapSeriesByCsvFile) For high-sampling-rate data, first establish ActualTime via one-to-one mapping, then map the series: PlayNcFile(\"NC/file1.nc\"); MapSingleByCsvFile(\"Data/controller.csv\"); // establishes ActualTime MapSeriesByCsvFile(\"Data/sensor.csv\"); // maps high-rate series Strategy D: One-to-Many Local Mapping (Anchor-Based) For mapping sensor data to specific NC path segments using anchors. Step 1 — Specify input data and time ranges: ClearTimeMappingData(); AddTimeDataByFile(\"lineA\", \"Mapping/sensor1.csv\", \"18:25:51.7100\", \"18:26:12.9910\"); AddTimeDataByFile(\"lineB\", \"Mapping/sensor1.csv\", \"18:26:30.5750\", \"18:27:12.2880\"); Step 2 — Specify NC path anchors (embedded in NC code): X13. F20 ;@LineSelection(\"lineA\", FirstTouch, ShiftTime_s(2), LineEnd, ShiftDistance_mm(-1)); X25. F10 ;@LineSelection(\"lineB\", FirstTouch, null, LastTouch, null); For range mapping across multiple NC lines, use BeginSelection / EndSelection: ;@BeginSelection(\"region1\", LineBegin, null); ... ;@EndSelection(\"region1\", LineEnd, null); Anchor Flags: Flag Description LineBegin Motion start point of the line LineEnd Motion end point of the line FirstTouch First contact with the workpiece LastTouch Last contact with the workpiece Offset Options: Offset Description null No offset ShiftTime_s() Time-based offset (positive = forward) ShiftDistance_mm() Distance-based offset (positive = forward) Note For FANUC controllers that do not support ; as a comment character, enclose the script command in a comment block: X13. F20 (;@LineSelection(\"lineA\", FirstTouch, null, LineEnd, null);) Map on Selection End EnableMapOnSelectionEnd controls automatic mapping when a selection ends (default: true): EnableMapOnSelectionEnd = true; // EndSelection triggers Map automatically Clearing Mapping Data Mapping data persists across player resets. To clear: ClearTimeMappingData(); 3. Run Simulation PlayNcFile(\"NC/file1.nc\"); Note Why interpret NC code instead of playing CSV directly? The system NC interpreter produces more accurate simulation paths than direct controller CSV playback, which has limited sampling resolution that distorts tool paths. 4. Map Data After simulation, apply the mapping strategy chosen in step 2. For the two-layer chained approach: // Chain 1: Controller data → simulation steps (via FileNo/LineNo → ActualTime) MapSingleByCsvFile(\"Data/controller.csv\"); // Chain 2: Sensor data → simulation steps (via ActualTime → sensor readings) MapSeriesByCsvFile(\"Data/sensor.csv\"); The chaining works because: Simulation steps and controller data share FileNo/LineNo anchors Controller data and sensor data share ActualTime anchors After chaining, simulation steps can index sensor data Tip Due to machine acceleration/deceleration, simulation time and actual time diverge over longer durations. Anchor-based linear projection corrects for this drift. 5. View Mapped Results After mapping, sensor data is available on each step. Use the UI to: View color gradient maps on the workpiece geometry Inspect time-series charts Click-to-track specific data channels Export mapped results: WriteStepFiles(\"Output/[NcName].step.csv\"); WriteShotFiles(\"Output/[NcName].shot.csv\", 1); Complete Two-Layer Mapping Example // Configure resolution MachiningResolution_mm = 0.125; EnablePhysics = true; // Clear any previous mapping data ClearTimeMappingData(); // Run simulation using NC interpreter for accurate paths PlayNcFile(\"NC/machining.nc\"); // Map controller data (contains FileNo, LineNo, ActualTime) MapSingleByCsvFile(\"Data/controller.csv\"); // Map high-rate sensor data (contains ActualTime and force/torque) MapSeriesByCsvFile(\"Data/sensor.csv\"); // Export results WriteStepFiles(\"Output/[NcName].step.csv\"); See Also Workflow: Milling Force Parameter Training — using mapped data for coefficient training Workflow: Basic Machining Simulation — basic simulation setup Step — step data model Glossary: SessionShell Quick-Reference — SessionShell quick-reference Example Project: Mapping Controller and Sensor Data to Simulated NC Toolpaths and Updating Milling Coefficients — mapping demo example project Example Project: Training Milling Coefficients with a Dynamometer — dynamometer training example project" } } \ No newline at end of file diff --git a/App/wwwroot/HiAPI-docsite/manifest.json b/App/wwwroot/HiAPI-docsite/manifest.json index a5aad312..69b60b95 100644 --- a/App/wwwroot/HiAPI-docsite/manifest.json +++ b/App/wwwroot/HiAPI-docsite/manifest.json @@ -4910,174 +4910,6 @@ "Title": "Hi.Geom", "Summary": null }, - { - "type": "ManagedReference", - "source_relative_path": "api/Hi.Grpcs.ClStripService.ClStripServiceBase.yml", - "output": { - ".html": { - "relative_path": "api/Hi.Grpcs.ClStripService.ClStripServiceBase.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "Hi.Grpcs.ClStripService.ClStripServiceBase", - "Summary": "

    Base class for server-side implementations of ClStripService

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/Hi.Grpcs.ClStripService.ClStripServiceClient.yml", - "output": { - ".html": { - "relative_path": "api/Hi.Grpcs.ClStripService.ClStripServiceClient.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "Hi.Grpcs.ClStripService.ClStripServiceClient", - "Summary": "

    Client for ClStripService

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/Hi.Grpcs.ClStripService.yml", - "output": { - ".html": { - "relative_path": "api/Hi.Grpcs.ClStripService.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "Hi.Grpcs.ClStripService", - "Summary": "

    milling process service based on dictionary data type.

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/Hi.Grpcs.ClStripServiceReflection.yml", - "output": { - ".html": { - "relative_path": "api/Hi.Grpcs.ClStripServiceReflection.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "Hi.Grpcs.ClStripServiceReflection", - "Summary": "

    Holder for reflection information generated from Grpcs/ClStripService.proto

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/Hi.Grpcs.ClStripServiceRunner.yml", - "output": { - ".html": { - "relative_path": "api/Hi.Grpcs.ClStripServiceRunner.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "Hi.Grpcs.ClStripServiceRunner", - "Summary": "

    Service runner for the ClStrip gRPC service.

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/Hi.Grpcs.DictionaryStep.yml", - "output": { - ".html": { - "relative_path": "api/Hi.Grpcs.DictionaryStep.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "Hi.Grpcs.DictionaryStep", - "Summary": "

    step which data type is dictionary

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/Hi.Grpcs.PlayerService.PlayerServiceBase.yml", - "output": { - ".html": { - "relative_path": "api/Hi.Grpcs.PlayerService.PlayerServiceBase.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "Hi.Grpcs.PlayerService.PlayerServiceBase", - "Summary": "

    Base class for server-side implementations of PlayerService

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/Hi.Grpcs.PlayerService.PlayerServiceClient.yml", - "output": { - ".html": { - "relative_path": "api/Hi.Grpcs.PlayerService.PlayerServiceClient.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "Hi.Grpcs.PlayerService.PlayerServiceClient", - "Summary": "

    Client for PlayerService

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/Hi.Grpcs.PlayerService.yml", - "output": { - ".html": { - "relative_path": "api/Hi.Grpcs.PlayerService.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "Hi.Grpcs.PlayerService", - "Summary": "

    numerical file player service.

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/Hi.Grpcs.PlayerServiceReflection.yml", - "output": { - ".html": { - "relative_path": "api/Hi.Grpcs.PlayerServiceReflection.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "Hi.Grpcs.PlayerServiceReflection", - "Summary": "

    Holder for reflection information generated from Grpcs/PlayerService.proto

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/Hi.Grpcs.PlayerServiceRunner.yml", - "output": { - ".html": { - "relative_path": "api/Hi.Grpcs.PlayerServiceRunner.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "Hi.Grpcs.PlayerServiceRunner", - "Summary": "

    Service runner for the Player gRPC service.

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/Hi.Grpcs.yml", - "output": { - ".html": { - "relative_path": "api/Hi.Grpcs.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "Hi.Grpcs", - "Summary": null - }, { "type": "ManagedReference", "source_relative_path": "api/Hi.HiNcKits.BasePathEnum.yml", @@ -6030,6 +5862,20 @@ "Title": "Hi.MachiningSteps.IMachiningService", "Summary": "

    Represents a host interface for milling steps that provides access to milling equipment and related resources.

    \n" }, + { + "type": "ManagedReference", + "source_relative_path": "api/Hi.MachiningSteps.IStepPropertyAccessHost.yml", + "output": { + ".html": { + "relative_path": "api/Hi.MachiningSteps.IStepPropertyAccessHost.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "Hi.MachiningSteps.IStepPropertyAccessHost", + "Summary": "

    Narrow host contract for accessing the step-variable registry and registering\nnew step variables. Exposed as a dedicated surface so pipelines that only\nneed step-variable wiring (e.g. )\ndo not have to depend on the broader .

    \n" + }, { "type": "ManagedReference", "source_relative_path": "api/Hi.MachiningSteps.MachineMotionStep.yml", @@ -9584,7 +9430,7 @@ "Uid": null, "IsMRef": true, "Title": "Hi.NcMech.Xyzabc.CodeXyzabcMachineTool", - "Summary": "

    For legacy compatible. Use instead.

    \n" + "Summary": "

    This machine tool class helps very quick test by the code configuration.\nFor general/end-user use, apply instead.

    \n" }, { "type": "ManagedReference", @@ -9920,7 +9766,7 @@ "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency", - "Summary": "

    Watchdog for Fanuc Custom Macro B GOTO loops. Holds a\n limit (XML-persisted user config —\nthe soft cap above which the upcoming\nFanucGotoSyntax stops firing and emits a warning) plus a\nruntime per-target hit counter ( — not\nserialised, cleared at session start by\n).

    \n

    \nThe dependency is syntax-managed: FanucGotoSyntax reads the\nlimit, increments the counter, and decides whether to fire. There is\nno host Func provider — the dep is placed in\n rather than\n because nothing outside the\nsyntax pipeline writes it; is a plain method call\nthe runner invokes, not a host-wired Func.\n

    \n

    \nThe counter key is (FileName, TargetN) where FileName\nis the source-level file path of the block containing the GOTO (the\nrelative path form carried on — same\nform used by IndexedFileLine labels). Source-level keying means\nmultiple inline invocations of the same subprogram pool their counts\n(they ARE the same source-code GOTO), while two different files with\ntheir own N100 stay isolated (they ARE different jumps).\n

    \n

    \nDefault is 1000 — a runaway-loop\nguard, not a precise iteration budget. Legitimate macro loops\n(multi-hole drill matrices, calibration sweeps) sit well below this;\ntruly infinite loops hit the limit fast. Projects with batch-style\nmacros that legitimately need higher counts can raise the value in\nthe project XML.\n

    \n" + "Summary": "

    Watchdog for Fanuc Custom Macro B GOTO loops. Holds a\n limit (XML-persisted user config —\nthe soft cap above which the upcoming\nFanucGotoSyntax stops firing and emits a warning) plus a\nruntime per-target hit counter ( — not\nserialised, cleared at session start by the\n sweep in\n).

    \n

    \nThe dependency is syntax-managed: FanucGotoSyntax reads the\nlimit, increments the counter, and decides whether to fire. There is\nno host Func provider — the dep is placed in\n rather than\n because nothing outside the\nsyntax pipeline writes it; is the\nsession-init hook the runner invokes through\n, not a host-wired Func.\n

    \n

    \nThe counter key is (FileName, TargetN) where FileName\nis the source-level file path of the block containing the GOTO (the\nrelative path form carried on — same\nform used by IndexedFileLine labels). Source-level keying means\nmultiple inline invocations of the same subprogram pool their counts\n(they ARE the same source-code GOTO), while two different files with\ntheir own N100 stay isolated (they ARE different jumps).\n

    \n

    \nDefault is 1000 — a runaway-loop\nguard, not a precise iteration budget. Legitimate macro loops\n(multi-hole drill matrices, calibration sweeps) sit well below this;\ntruly infinite loops hit the limit fast. Projects with batch-style\nmacros that legitimately need higher counts can raise the value in\nthe project XML.\n

    \n" }, { "type": "ManagedReference", @@ -9964,6 +9810,20 @@ "Title": "Hi.NcParsers.Dependencys.Fanuc.FanucToolOffsetVariableLookup", "Summary": "

    Fanuc-side adapter that exposes a wrapped \n(resolved at call time from the dependency list) as an\n following Fanuc Memory C tool\noffset addressing: #2001+N → effective height of offset N\n(geometry − wear).

    \n

    \nThe underlying stays brand-neutral —\nHeidenhain / Siemens can use the same storage with different addressing\nby registering their own adapter alongside the table. Stateless: holds\nno reference of its own and resolves the table from the per-call\ndependencies list, so XML round-trip is trivial (an empty element).\n

    \n

    \nRegistered on a brand preset's\n, not on\n — the wrapper owns no\nlong-lived data, only the Fanuc-style id addressing scheme. The\nunderlying still lives in\nNcDependencyList as the data dependency.\n

    \n" }, + { + "type": "ManagedReference", + "source_relative_path": "api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.yml", + "output": { + ".html": { + "relative_path": "api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency", + "Summary": "

    Watchdog for Fanuc Custom Macro B WHILE/END m bounded loops. Sibling\nto with the same\n“soft-cap + runtime counter + session-init ”\nshape, but kept as a separate dep (rather than sharing the GOTO\nbucket) so loop and jump iteration limits can be tuned independently\nand so diagnostic codes do not cross.

    \n

    \nThe counter key is (FileName, LoopId) where FileName\nis the source-level file path of the WHILE/END pair (the relative\npath form carried on ). Source-level\nkeying means multiple inline invocations of the same subprogram\npool their counts (same source-code loop), while two different files\neach with their own WHILE DO 1 stay isolated.\n

    \n

    \nThe consuming syntax ()\nincrements the counter at the END m reverse-jump step — not on the\nWHILE entry — so a loop that exits on first WHILE evaluation\n(condition false from the outset) consumes zero iterations. Above\n, the END m block emits a warning\nand suppresses the redirect; subsequent flow falls through past END.\n

    \n

    \nDefault is 10000 — higher than\nthe GOTO equivalent (1000) because WHILE/END is the legitimate\niteration primitive that NcOpt-generated programs (drill grids,\nadaptive sweeps) depend on, and 1000 is too tight for those.\n

    \n" + }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Fanuc.RetainedCommonVariableTable.yml", @@ -10410,7 +10270,21 @@ "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency", - "Summary": "

    Per-session monotonically-increasing file index allocator. Holds the\ncounter as a private field; returns the next\nunused value and increments. rewinds to 0 — the\nowning calls\n on the same edge that initializes a fresh\n, so a controller\npower-reset clears both the syntax-piece pipeline and this counter\nin lock-step.

    \n

    \nTwo consumers share one allocator:\n

    • allocates one\n index per top-level NC file that streams through the runner.
    • allocates a\n fresh index for each inlined subprogram invocation, including\n each L repetition — distinct indices ensure\n (FileIndex, LineIndex) pairs stay unique across overlapping\n subprogram line ranges.
    \nHolding the counter on this dependency rather than on\n avoids a duplicate\nsource-of-truth: the dep is the single seam through which syntaxes\nreach the counter, and there is no third reader that would benefit\nfrom session-state visibility.\n\n" + "Summary": "

    Per-session monotonically-increasing file index allocator. Holds the\ncounter as a private field; returns the next\nunused value and increments. rewinds to 0 —\nthe owning invokes it via\nthe sweep on the same edge that\ninitializes a fresh ,\nso a controller power-reset clears both the syntax-piece pipeline and\nthis counter in lock-step.

    \n

    \nTwo consumers share one allocator:\n

    • allocates one\n index per top-level NC file that streams through the runner.
    • allocates a\n fresh index for each inlined subprogram invocation, including\n each L repetition — distinct indices ensure\n (FileIndex, LineIndex) pairs stay unique across overlapping\n subprogram line ranges.
    \nHolding the counter on this dependency rather than on\n avoids a duplicate\nsource-of-truth: the dep is the single seam through which syntaxes\nreach the counter, and there is no third reader that would benefit\nfrom session-state visibility.\n\n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.yml", + "output": { + ".html": { + "relative_path": "api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency", + "Summary": "

    Exposes the full surface to NC pipeline\ncomponents — currently provided for client-authored syntaxes / semantics\nthat need broad host access (machining equipment, session, tool house,\ntime mapping, …). The built-in CSV pipeline does not consume this\ndependency; it uses the narrower\n instead.

    \n" }, { "type": "ManagedReference", @@ -10454,6 +10328,20 @@ "Title": "Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency", "Summary": "

    Exposes the active to syntaxes that need to\nre-segment auxiliary NC text mid-pipeline (e.g.,\n reading an O<n>\nsubprogram file and re-using the host runner's segmenter so the inlined\nblocks are split with the same rules).

    \n

    \nThe actual segmenter is resolved at runtime via\n; \nwires the provider to its own at the\nstart of each session run, so this dependency can sit in\n without participating in XML\nserialization (see ).\n

    \n" }, + { + "type": "ManagedReference", + "source_relative_path": "api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.yml", + "output": { + ".html": { + "relative_path": "api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency", + "Summary": "

    Exposes the host's step-variable registry to NC pipeline components\n(today: ) as a narrow\n surface.

    \n

    \nThe provider is wired by the host (e.g. LocalProjectService) so\nthe dependency does not carry strong references to host types; this lets\nthe runner be created before the host is fully constructed and reused\nacross project loads.\n

    \n

    \nA sibling exposes the broader\n surface to client-authored syntaxes. The\ntwo dependencies are independent — production hosts typically wire both\nproviders to the same backing object, but a test fixture can supply just\nthis narrow one.\n

    \n" + }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency.yml", @@ -10748,6 +10636,20 @@ "Title": "Hi.NcParsers.EvaluationSyntaxs.Evaluation", "Summary": null }, + { + "type": "ManagedReference", + "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.yml", + "output": { + ".html": { + "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader", + "Summary": "

    Shared polymorphic reader for Fanuc Custom Macro B conditional gate\nexpressions (IF [...] GOTO, IF [...] THEN,\nWHILE [...] DO m). The condition node is read post-evaluation —\n's pass-2 tree walk has already\nsubstituted the original expression string with a numeric\n when evaluation succeeded; this helper maps\nthat node to a tri-state truthy outcome plus a display form for\ndiagnostics.

    \n

    \nThree states, mapping directly to the\nConditionEvaluated: true | false | null stamp shape used by\nall three consumers (see ,\n, and the WHILE-loop syntax):\n

    \n
    • Truthy = true — node is a finite non-zero numeric;\n gate fires.
    • Truthy = false — node is a finite numeric equal to\n zero; gate falls through silently.
    • Truthy = null — node is null, still a string\n (evaluator failed), or non-finite double (NaN / ±∞); gate falls\n through and the caller emits its own\n <Syntax>--ConditionNotEvaluated warning.
    \n

    \nThe Display form is the human-readable expression text for\ndiagnostic messages. For resolved numerics it is the value formatted\nvia ; for unresolved\nstrings it is the original expression text. Diagnostics build their\nown message text — the helper just provides the source string so the\ncaller can compose \"IF [<Display>] GOTO ...\" etc.\n

    \n

    \nCallers typically the original node\nbefore passing in here, then again before stamping back, so removing\nthe parsing section and writing the host-level stamp can happen in\nany order without dangling references.\n

    \n" + }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax.yml", @@ -10760,7 +10662,7 @@ "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax", - "Summary": "

    Resolves Fanuc Custom Macro B GOTO control flow.\nTriggered by Parsing.FanucGoto (written by\n); decides whether\nto fire, and on fire calls\n on layers[0] with\nthe re-segmented file content starting at the matching N{target}\nlabel. The host block stays materialised (so cache dumps still see the\nGOTO call site); execution naturally continues from the new source\nonce the pipeline pulls the next block.

    \n

    \nBoth unconditional GOTO <n> and conditional\nIF [<expr>] GOTO <n> are implemented. The conditional\nform leans on 's pass-2 tree walk\nto substitute Parsing.FanucGoto.Condition with a numeric\n when the expression\nevaluates successfully — then reads the\nnode polymorphically. Truthy non-zero fires the redirect; zero falls\nthrough silently; a still-string (unresolved) Condition emits\nFanucGoto--ConditionNotEvaluated and falls through.\n

    \n

    \nPipeline placement: tail of the Fanuc / Mazak / Syntec Evaluation\nbundle. Must run after so any\n#<var> in the target N (e.g. GOTO #1) has been\nsubstituted to a literal in Parsing.FanucGoto.N. Reader syntaxes\n( etc.) are independent —\nthey touch Parsing.Assignments, not Parsing.FanucGoto.\n

    \n

    \nLabel scanning uses two hosted helper syntaxes —\nCommentSyntax and IndexSyntax — applied to\neach candidate block in turn so the predicate\nIndexNote.Number == target matches the same way the Parsing\nbundle would. Both are XML-IO-able so API customers can swap them\n(e.g. for a controller variant using ;-style comments or a\ndifferent head symbol). Defaults match Fanuc: \nand with the \"N\" symbol.\n

    \n" + "Summary": "

    Resolves Fanuc Custom Macro B GOTO control flow.\nTriggered by Parsing.FanucGoto (written by\n); decides whether\nto fire, and on fire calls\n on layers[0] with\nthe re-segmented file content starting at the matching N{target}\nlabel. The host block stays materialised (so cache dumps still see the\nGOTO call site); execution naturally continues from the new source\nonce the pipeline pulls the next block.

    \n

    \nBoth unconditional GOTO <n> and conditional\nIF [<expr>] GOTO <n> are implemented. The conditional\nform leans on 's pass-2 tree walk\nto substitute Parsing.FanucGoto.Condition with a numeric\n when the expression\nevaluates successfully — \nthen reads the node polymorphically. Truthy non-zero fires the\nredirect; zero falls through silently; a still-string (unresolved)\nCondition emits FanucGoto--ConditionNotEvaluated and falls\nthrough.\n

    \n

    \nPipeline placement: tail of the Fanuc / Mazak / Syntec Evaluation\nbundle. Must run after so any\n#<var> in the target N (e.g. GOTO #1) has been\nsubstituted to a literal in Parsing.FanucGoto.N. Reader syntaxes\n( etc.) are independent —\nthey touch Parsing.Assignments, not Parsing.FanucGoto.\n

    \n

    \nLabel scanning uses two hosted helper syntaxes —\nCommentSyntax and IndexSyntax — applied to\neach candidate block in turn so the predicate\nIndexNote.Number == target matches the same way the Parsing\nbundle would. Both are XML-IO-able so API customers can swap them\n(e.g. for a controller variant using ;-style comments or a\ndifferent head symbol). Defaults match Fanuc: \nand with the \"N\" symbol.\n

    \n" }, { "type": "ManagedReference", @@ -10774,7 +10676,7 @@ "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucIfThenSyntax", - "Summary": "

    Resolves Fanuc Custom Macro B IF [<cond>] THEN <body>\nsingle-block conditionals. Triggered by Parsing.FanucIfThen\n(written by );\nreads the now-resolved node, decides\nwhether to fire, and on fire lifts the parsing-stage\nPendingAssignments sub-object into the canonical\nParsing.Assignments bucket so the brand-specific reader syntaxes\ndownstream route each entry to its store the same way they would handle\nan unconditional #nnn = <literal> on a normal block.

    \n

    \nUnlike there is no source splice, no\nlabel scan, no iteration watchdog — the spec restricts the body to the\ncurrent block. The host block is preserved either way (the stamped\nFanucIfThen section on the host's top-level JSON keeps the\nIF-THEN call site visible to cache dumps and diagnostics, with\n flipped true only on a successful\nfire).\n

    \n

    \nPipeline placement: in the Evaluation bundle after\n (so the Condition expression has\nbeen substituted in place by pass-2 tree walk, and each\nPendingAssignments RHS string has been evaluated to a numeric\n) and before the reader syntaxes\n(,\n,\n,\n) — that ordering lets\nthe lifted entries reach the readers as if they had been written by\n on a normal block.\n

    \n

    \nThree condition outcomes mirror the\n shape:\n

    • Truthy non-zero → lift assignments, stamp Applied=true.
    • Truthy zero → fall through silently, Applied=false.
    • Truthy null (evaluator failed, condition still a string or\n non-finite) → warn FanucIfThen--ConditionNotEvaluated, do not\n lift, Applied=false.
    \nA truthy condition with no PendingAssignments (body did not parse as\none or more assignments — e.g. a G-code body, currently unsupported)\nwarns FanucIfThen--UnsupportedBody and falls through.\n\n" + "Summary": "

    Resolves Fanuc Custom Macro B IF [<cond>] THEN <body>\nsingle-block conditionals. Triggered by Parsing.FanucIfThen\n(written by );\nreads the now-resolved node, decides\nwhether to fire, and on fire lifts the parsing-stage\nPendingAssignments sub-object into the canonical\nParsing.Assignments bucket so the brand-specific reader syntaxes\ndownstream route each entry to its store the same way they would handle\nan unconditional #nnn = <literal> on a normal block.

    \n

    \nUnlike there is no source splice, no\nlabel scan, no iteration watchdog — the spec restricts the body to the\ncurrent block. The host block is preserved either way (the stamped\nFanucIfThen section on the host's top-level JSON keeps the\nIF-THEN call site visible to cache dumps and diagnostics, with\n flipped true only on a successful\nfire).\n

    \n

    \nPipeline placement: in the Evaluation bundle after\n (so the Condition expression has\nbeen substituted in place by pass-2 tree walk, and each\nPendingAssignments RHS string has been evaluated to a numeric\n) and before the reader syntaxes\n(,\n,\n,\n) — that ordering lets\nthe lifted entries reach the readers as if they had been written by\n on a normal block.\n

    \n

    \nThree condition outcomes mirror the\nFanucGotoSyntax.ReadCondition shape:\n

    • Truthy non-zero → lift assignments, stamp Applied=true.
    • Truthy zero → fall through silently, Applied=false.
    • Truthy null (evaluator failed, condition still a string or\n non-finite) → warn FanucIfThen--ConditionNotEvaluated, do not\n lift, Applied=false.
    \nA truthy condition with no PendingAssignments (body did not parse as\none or more assignments — e.g. a G-code body, currently unsupported)\nwarns FanucIfThen--UnsupportedBody and falls through.\n\n" }, { "type": "ManagedReference", @@ -10860,6 +10762,20 @@ "Title": "Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucSystemControlVariableSyntax", "Summary": "

    Consumes Fanuc-style system-control variable assignments\n(#3000-#3999) — alarm trigger (#3000), millisecond and\nhour clocks (#3001 / #3002), single-block / feed-hold\nbypass flags (#3003 / #3004), pause-with-message\n(#3006), mirror-image flags (#3007), date / time\n(#3011 / #3012), tool-life data (#3030 /\n#3032), etc.

    \n

    \nEvery id in this range is a controller-side state variable — its\nauthoritative value lives on the real hardware (RTC, alarm bus,\noverride switches, …) and an NC write at most triggers a side effect\n(clock reset, alarm raise, message-pause prompt). Offline simulation\nhas none of that machinery, so this syntax does not emulate the\neffect. Instead it:\n

    \n
    1. records the literal write on the block JSON under\nVars.SystemControl (round-trip and cache-dump visibility);
    2. emits a FanucSystemControl--Unsupported\n\nso the user knows the assignment was recognised but its controller-side\neffect is not simulated. Message-severity (not Warning) because these\nwrites are safe no-ops offline — every consumed assignment would emit\na Warning per block, which would be noisy without signalling anything\nthe user must act on;
    3. removes the entry from Parsing.Assignments so it does not\nre-surface as a generic Parsing--Unconsumed diagnostic.
    \n

    \nThe dictionary carries forward block-by-block (same dict-merge pattern\nas ) so a downstream consumer\ncan read the most recent recorded value via SyntaxPiece linkage.\n

    \n

    \nOnly literal numeric RHS values are consumed; non-literal RHS\n(e.g. #3002 = #500) is left in Parsing.Assignments for\n to resolve, mirroring the\nretained / volatile reading syntaxes.\n

    \n

    \nFanuc-family only — Siemens uses named system variables\n($AC_TIME, $A_DAY, …) and Heidenhain uses\nFN18: SYSREAD; neither flows through Parsing.Assignments.#nnn.\n

    \n" }, + { + "type": "ManagedReference", + "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.yml", + "output": { + ".html": { + "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax", + "Summary": "

    Resolves Fanuc Custom Macro B WHILE [..] DO m ... END m\nbounded loops. Two phrases dispatched by\n:

    \n
    • WHILE [..] DO m — entry: reads the resolved condition\n via , manages the per-LoopId\n frame in the top-level WhileFrames dict, and either falls\n through (truthy) or forward-jumps past the matching END m\n (falsy / unresolved).
    • END m — terminator: unconditionally reverse-jumps to\n the WHILE block recorded in WhileFrames[LoopId].BeginLineNo\n so the next iteration re-evaluates the entry condition. Increments\n the per-loop iteration counter on\n ; suppresses the\n redirect above .
    \n

    \nWhileFrames carrier. The top-level WhileFrames JSON\nsection is a keyed by LoopId-as-string\nwhose values are { BeginLineNo: int }. Frames are pushed when\na WHILE block first encounters a truthy condition with no existing\nframe for that LoopId; popped when the condition becomes falsy or\nunresolved; otherwise carried forward unchanged by\n's\n tracked-key\nlist. Nested loops with distinct LoopIds coexist in the same dict;\nsame-LoopId nesting (spec-undefined) overwrites and is not given\nspecial handling.\n

    \n

    \nPipeline placement. Evaluation bundle, after the variable\nreaders (defensive — WHILE/END blocks per spec do not carry\nassignments, but the placement is consistent with GOTO). Must run\nafter so the condition string\nhas been substituted to numeric.\n

    \n

    \nForward scan to matching END m uses the\n predicate overload — probe runs the\nbrand-default on each\ncandidate, predicate matches on\nParsing.FanucWhileDo.Term == \"END\" && LoopId == target.\n

    \n

    \nReverse scan to WHILE BeginLineNo does not need a label\npredicate — the BeginLineNo is a known file-line index recorded in\nthe active frame, so the END side re-segments the file from the top\nand returns the slice starting at the first piece whose\n.Begin.LineIndex\nmatches.\n

    \n" + }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.yml", @@ -10970,7 +10886,7 @@ "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.SubProgramReturnSyntax", - "Summary": "

    Consumes Fanuc-style M99 subprogram-return blocks and pops\none frame. Plain M99 relies on the\nnatural pipeline tail — the inlined body's last block is followed\nin layers[0] by the caller's next block, so the “return”\nhappens implicitly; this syntax only consumes the M99 trigger (so\n doesn't warn),\nstamps a diagnostic section, and\nwrites the popped for downstream blocks to\ncarry.

    \n

    \nM99 P{seq} additionally redirects control flow to the\ncaller's N{seq} block via\n. The caller's file is\nresolved from the popped frame's\n; the scan uses the same\n helper as\n, with hardcoded Fanuc-default\nprobes ( + \nwith symbol \"N\") because the M99 P semantic itself is\nFanuc-family-only and Mazak / Syntec follow the same conventions.\nThe iteration is counted against\n, sharing the same\nrunaway-loop guard as GOTO — keyed on the same\n(FileName, TargetN) bucket so a tight\nM98 → M99 P → M98 … loop trips the same threshold.\n

    \n

    \nPipeline placement: same Evaluation bundle slot it always occupied,\nright after at the head. Needs\n,\n,\n,\n,\n on the dep list when\nM99 P{seq} is to fire; without them the plain-M99 path still\nworks and the P-jump emits a configuration warning.\n

    \n

    \nDetection is on the Parsing.M99 sub-object written by\n\n(a ) — the keyword\n\"M99\" never reaches Parsing.Flags because the\nparameterized match has already consumed the text by the time\n runs.\n

    \n" + "Summary": "

    Consumes Fanuc-style M99 subprogram-return blocks and pops\none frame. Plain M99 relies on the\nnatural pipeline tail — the inlined body's last block is followed\nin layers[0] by the caller's next block, so the “return”\nhappens implicitly; this syntax only consumes the M99 trigger (so\n doesn't warn),\nstamps a diagnostic section, and\nwrites the popped for downstream blocks to\ncarry.

    \n

    \nM99 P{seq} additionally redirects control flow to the\ncaller's N{seq} block via\n. The caller's file is\nresolved from the popped frame's\n; the scan uses the same\n.SegmentAndSkipUntilLabel helper as\n, with hardcoded Fanuc-default\nprobes ( + \nwith symbol \"N\") because the M99 P semantic itself is\nFanuc-family-only and Mazak / Syntec follow the same conventions.\nThe iteration is counted against\n, sharing the same\nrunaway-loop guard as GOTO — keyed on the same\n(FileName, TargetN) bucket so a tight\nM98 → M99 P → M98 … loop trips the same threshold.\n

    \n

    \nPipeline placement: same Evaluation bundle slot it always occupied,\nright after at the head. Needs\n,\n,\n,\n,\n on the dep list when\nM99 P{seq} is to fire; without them the plain-M99 path still\nworks and the P-jump emits a configuration warning.\n

    \n

    \nDetection is on the Parsing.M99 sub-object written by\n\n(a ) — the keyword\n\"M99\" never reaches Parsing.Flags because the\nparameterized match has already consumed the text by the time\n runs.\n

    \n" }, { "type": "ManagedReference", @@ -10984,7 +10900,7 @@ "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax", - "Summary": "

    Pure expression normalizer for Custom Macro B syntax. Walks the\nparser-stage residue on a single block and inlines numeric values\nwherever a Fanuc-style variable reference or bracket expression\nappears — but does not write to any specific store. Routing\n“where the resolved literal lands” stays in the brand-specific\nreader syntaxes (,\n's reader,\n, …) which run\nafter this syntax on the same block.

    \n

    \nTwo passes per block:\n

    \n
    1. \nAssignments normalizeParsing.Assignments.#nnn entries\nwhose RHS is non-literal (e.g. \"#500+1\", \"SQRT[#100]\")\nare evaluated via the and the RHS string is\nreplaced with the resolved literal (round-trip-safe\n\"R\"-format). The entry stays in Parsing.Assignments so\ndownstream reader syntaxes consume it as a pure-literal assignment.\nIteration follows source order (Parsing.Assignments insertion order).\n
    2. \nParsing tree substitution — every string-typed value reachable\nfrom Parsing.<tag> (axis tags, canned-cycle sub-objects)\nis parsed; on a successful evaluation the string is replaced with a\nnumeric . Failures silently leave the original\nstring and rely on downstream\n at consumer sites to surface\nVariableExpression--Unevaluated only if the tag is actually read.\n
    \n

    \nLookup chain (first non-null wins, configured per brand preset via\n + \ninstances on NcDependencyList):\n

    \n
    1. Current block's own resolved assignments — built-in to\n; covers same-block forward references in\nsource order (an earlier #nnn=literal is visible to a later\nRHS that mentions #nnn).
    2. Each in\n, in list order. Typical contents\nfor a Fanuc-family preset:\n (#1-#33),\n (#100-#499),\n\n(#5001-#5043).
    3. Each on the runner's\nNcDependencyList, in registration order\n(,\n,\n).
    \n

    \nEach lookup self-gates its id range; the evaluator stays brand- and\nrange-agnostic. Adding a new variable surface is additive: register\nan on a dependency or push an\n onto the per-preset list.\n

    \n

    \nSame-block forward reference — when an Assignment RHS\nreferences a #nnn that is also being assigned later in\nthe same block (i.e. listed in Parsing.Assignments after the\nRHS being evaluated), the cannot pick up\nthe not-yet-resolved value and falls back to traceback /\ndependency-table reads — effectively the pre-block value. A\nVariableEvaluator--SameBlockForwardReference warning is\nemitted per such RHS so the user is told the source-order semantics\nwere not honoured. Practical impact is near-zero for typical\nCAM-emitted NC (one assignment per line).\n

    \n" + "Summary": "

    Pure expression normalizer for Custom Macro B syntax. Walks the\nparser-stage residue on a single block and inlines numeric values\nwherever a Fanuc-style variable reference or bracket expression\nappears — but does not write to any specific store. Routing\n“where the resolved literal lands” stays in the brand-specific\nreader syntaxes (,\n's reader,\n, …) which run\nafter this syntax on the same block.

    \n

    \nTwo passes per block:\n

    \n
    1. \nAssignments normalizeParsing.Assignments.#nnn entries\nwhose RHS is non-literal (e.g. \"#500+1\", \"SQRT[#100]\")\nare evaluated via the and the RHS string is\nreplaced with the resolved literal (round-trip-safe\n\"R\"-format). The entry stays in Parsing.Assignments so\ndownstream reader syntaxes consume it as a pure-literal assignment.\nIteration follows source order (Parsing.Assignments insertion order).\n
    2. \nParsing tree substitution — every string-typed value reachable\nfrom Parsing.<tag> (axis tags, canned-cycle sub-objects)\nis parsed; on a successful evaluation the string is replaced with a\nnumeric . Failures silently leave the original\nstring and rely on downstream\n at consumer sites to surface\nVariableExpression--Unevaluated only if the tag is actually read.\n
    \n

    \nLookup chain (first non-null wins, configured per brand preset via\n + \ninstances on NcDependencyList):\n

    \n
    1. Current block's own resolved assignments — built-in to\n; covers same-block forward references in\nsource order (an earlier #nnn=literal is visible to a later\nRHS that mentions #nnn).
    2. Each in\n, in list order. Typical contents\nfor a Fanuc-family preset:\n (#1-#33),\n (#100-#499),\n\n(#5001-#5043).
    3. Each on the runner's\nNcDependencyList, in registration order\n(,\n,\n).
    \n

    \nEach lookup self-gates its id range; the evaluator stays brand- and\nrange-agnostic. Adding a new variable surface is additive: register\nan on a dependency or push an\n onto the per-preset list.\n

    \n

    \nSame-block forward reference — when an Assignment RHS\nreferences a #nnn that is also being assigned later in\nthe same block (i.e. listed in Parsing.Assignments after the\nRHS being evaluated), the cannot pick up\nthe not-yet-resolved value and falls back to traceback /\ndependency-table reads — effectively the pre-block value. A\nVariableEvaluator--SameBlockForwardReference warning is\nemitted per such RHS so the user is told the source-order semantics\nwere not honoured. Practical impact is near-zero for typical\nCAM-emitted NC (one assignment per line).\n

    \n

    \nFormula mirror tree — when either pass actually performs a\nnon-trivial expression evaluation (i.e. the RHS / tag value was not\nalready a pure literal and the evaluator returned a finite value),\nthe original expression string is mirrored to a parallel\nFormula.<same path> entry at the root of the block JSON.\nThe Parsing.* subtree carries the resolved value (R-format\nstring for Assignments; numeric for tags);\nthe Formula.* subtree preserves the source-text expression\nfor diagnostics, round-trip reconstruction, and downstream\ninspection. Pure-literal RHS / tag values produce no Formula entry —\nthe Parsing value is already the original text. Evaluation failures\n(parse error, vacant variable, non-finite result) also produce no\nFormula entry — the original string is still in Parsing.*\nuntouched, no preservation needed.\n

    \n" }, { "type": "ManagedReference", @@ -11056,6 +10972,20 @@ "Title": "Hi.NcParsers.ISentenceIndexed", "Summary": "

    Abstraction for an object that carries a —\na 0-based ordinal of its source in NC execution\norder. Use as a cross-process alignment key (messages, ClStripPos,\nMachiningStep, etc.) when source order\n()\nis not enough because SubProgram inline reorders blocks relative to\n(FileIndex, LineIndex).

    \n" }, + { + "type": "ManagedReference", + "source_relative_path": "api/Hi.NcParsers.ISessionResettable.yml", + "output": { + ".html": { + "relative_path": "api/Hi.NcParsers.ISessionResettable.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "Hi.NcParsers.ISessionResettable", + "Summary": "

    Marker for objects that hold session-scoped runtime state which must be\ncleared when initializes a new\nsession pipeline (the state.IsInitialized == false edge).

    \n

    \nImplementers may live on either chain: \nor . scans\n and\n on the session-init edge and calls\n on every match.\n

    \n

    \nDistinct from : power-reset clears\nretained-but-volatile state on a controller power cycle (e.g., Fanuc\n#100-#499), an edge that survives ordinary session boundaries.\nSession-reset clears state whose lifetime is one pipeline pass (iteration\ncounters, file-index allocators, etc.).\n

    \n" + }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.IndexedSentence.yml", @@ -11376,7 +11306,7 @@ "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.FanucGoto", - "Summary": "

    Fanuc Custom Macro B GOTO record. Stamped on the host block by\n after the control-flow\ndecision has been made; produced earlier by\n as a parsing-stage\nsub-section (Parsing.FanucGoto) carrying the raw captured fields.

    \n

    \nTwo source forms map to the same shape:\n

    • GOTO <n> — unconditional jump. is null.
    • IF [<bool-expr>] GOTO <n> — conditional jump.\n holds the expression text from inside the\n brackets.
    \n\n

    \nAt parsing time is a raw token from the source — it may\nbe a literal (\"100\"), a variable reference (\"#1\"), or a\nbracketed expression (\"#[#2+5]\"). \nsubstitutes a resolved literal back into the same field in the\nEvaluation bundle; then\nint.TryParses the final string to produce an int target.\n

    \n" + "Summary": "

    Fanuc Custom Macro B GOTO record. Stamped on the host block by\n after the control-flow\ndecision has been made; produced earlier by\n as a parsing-stage\nsub-section (Parsing.FanucGoto) carrying the raw captured fields.

    \n

    \nTwo source forms map to the same shape:\n

    • GOTO <n> — unconditional jump. is null.
    • IF [<bool-expr>] GOTO <n> — conditional jump.\n holds the expression text from inside the\n brackets.
    \n\n

    \nAt parsing time is a raw token from the source — it may\nbe a literal (\"100\"), a variable reference (\"#1\"), or a\nbracketed expression (\"#[#2+5]\"). \nsubstitutes a resolved literal back into the same field in the\nEvaluation bundle; then\nint.TryParses the final string to produce an int target.\n

    \n

    \nLifecycle of the condition fields.\n

    • is written at Parsing time as the raw\n expression text and substituted in place by\n pass-2 — the\n original text is preserved at Formula.FanucGoto.Condition\n when substitution succeeds.
    • is the host-level stamp\n written by \n carrying the tri-state truthy outcome.
    \n\n" }, { "type": "ManagedReference", @@ -11448,6 +11378,20 @@ "Title": "Hi.NcParsers.Keywords.FanucProgramNumber", "Summary": "

    Fanuc-family program identifier header that follows a\n line — e.g. O1234 or\n<O1234>. records the surface form\nso a parsed block can be emitted back to the original notation.

    \n" }, + { + "type": "ManagedReference", + "source_relative_path": "api/Hi.NcParsers.Keywords.FanucWhileDo.yml", + "output": { + ".html": { + "relative_path": "api/Hi.NcParsers.Keywords.FanucWhileDo.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "Hi.NcParsers.Keywords.FanucWhileDo", + "Summary": "

    Fanuc Custom Macro B WHILE/END bounded-loop record. Stamped on the\nhost block by\n after the\ncontrol-flow decision has been made; produced earlier by\n as a\nparsing-stage sub-section (Parsing.FanucWhileDo) carrying the\nraw captured fields.

    \n

    \nTwo phrases map to the same shape, distinguished by :\n

    • WHILE [<bool-expr>] DO <m> — loop entry.\n holds the expression text from inside the\n brackets at parsing time; substituted to a numeric\n by\n in place.\n carries the host-level truthy\n outcome at stamp time.
    • END <m> — loop terminator. Carries no condition;\n unconditionally reverse-jumps to the matching WHILE block on every\n execution (re-evaluation of the entry condition is the WHILE block's\n responsibility).
    \n\n

    \n is the spec-named \"identification number for\nnesting\" (the m in DO m / END m). Nested loops\nmust use distinct LoopIds; matching is by exact value. Same-LoopId\nnesting is spec-undefined and not given special handling here.\n

    \n

    \nActive loop frames are carried block-to-block via the top-level\nWhileFrames JSON section (a \nkeyed by LoopId-as-string, each entry recording the\nBeginLineNo of the WHILE block that opened that frame).\nCarried by as part\nof its tracked\nkeys (mutated in Evaluation, must reach Logic-stage consumers and\ndownstream blocks unchanged).\n

    \n" + }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.Feedrate.yml", @@ -11544,7 +11488,7 @@ "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.IArcMotionDef", - "Summary": "

    Arc motion data written by .\nStored under the JSON section alongside\n properties.

    \n" + "Summary": "

    Arc motion data written by .\nStored under the JSON section alongside\n properties. The arc plane is read from the\nmodal section via\n rather than\ncached on the event — same source of truth as\n.

    \n" }, { "type": "ManagedReference", @@ -12286,7 +12230,7 @@ "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.BareG28Behavior", - "Summary": "

    Writes section for G28 reference point return.\nReads intermediate XYZ from Parsing.G28\n(written by )\nand converts to machine coordinates via\n.

    \n

    \nMust be placed after in the syntax chain.\nRemoves the section written by\n (G28 handles its own motion).\nOverwrites root \nand with reference position\nfor subsequent block lookback.\n

    \n" + "Summary": "

    Configurable handling for a G28 block with no axis specifiers\n(“bare G28”) — value of .\nReal Fanuc-class controllers vary: older 0i-M alarms (PS010), some\n30i variants send every configured axis to home. Default to\n so silent NC bugs surface; opt into\n per syntax instance.

    \n" }, { "type": "ManagedReference", @@ -12776,7 +12720,7 @@ "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.ReferenceReturnSyntax", - "Summary": "

    G28 reference point return syntax. Behaviour is documented in detail\non the example attached to ; this class\nis the implementation that the\n property configures.

    \n" + "Summary": "

    Writes section for G28 reference point return.\nReads intermediate XYZ from Parsing.G28\n(written by )\nand converts to machine coordinates via\n.

    \n

    \nMust be placed after in the syntax chain.\nRemoves the section written by\n (G28 handles its own motion).\nOverwrites root \nand with reference position\nfor subsequent block lookback.\n

    \n" }, { "type": "ManagedReference", @@ -13086,6 +13030,20 @@ "Title": "Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucProgramNumberSyntax", "Summary": "

    Detects a Fanuc-family program identifier header — O1234 or\n<O1234> — that follows a \nline, and records it under on the\nblock JSON. The wrapping form (bare vs angle-bracketed) is preserved\nin so the block can be emitted\nback to its original notation.

    \n" }, + { + "type": "ManagedReference", + "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.yml", + "output": { + ".html": { + "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax", + "Summary": "

    Parses the two Fanuc Custom Macro B WHILE/END phrases out of\n into a\nParsing.FanucWhileDo sub-object:

    \n
    • WHILE [<bool-expr>] DO <m> — loop entry,\n writes { Term: \"WHILE...DO\", LoopId, Condition }.
    • END <m> — loop terminator, writes\n { Term: \"END\", LoopId }.
    \n

    \nPipeline placement. This syntax must run before\n in the Parsing bundle — same lesson\nas : although the WHILE / END\nphrases per Fanuc spec do not coexist with assignments on the same\nblock, the defensive ordering prevents a body fragment from being\nhalf-eaten as a stand-alone assignment if a non-spec NC file appears.\n

    \n

    \nLoopId is captured as an int directly (Fanuc spec\nrestricts the m identifier to small literal integers 1–3\ntypical, no expression form). The WHILE's Condition is captured\nas a string and substituted in place by\n's pass-2 tree\nwalk; then\nreads it via the shared\n.\n

    \n" + }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Fanuc.yml", @@ -14724,6 +14682,90 @@ "Title": "Hi.Numerical.CoordinateInterpolationMode", "Summary": "

    Defines the coordinate interpolation mode for NC operations.

    \n" }, + { + "type": "ManagedReference", + "source_relative_path": "api/Hi.Numerical.CsvParsers.CsvRowSemantic.yml", + "output": { + ".html": { + "relative_path": "api/Hi.Numerical.CsvParsers.CsvRowSemantic.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "Hi.Numerical.CsvParsers.CsvRowSemantic", + "Summary": "

    Final-stage semantic that turns each row JSON stamped by\n into the same sequence the\nlegacy CsvRunner produced: optional \n(begin), , ,\n, ,\n, /\n, , and\noptional (end).

    \n

    \nStateless — the previous machine coordinate is recovered by walking back\nthrough the chain and reading the typed\n cells already stamped, so\nno carry-state lives on the semantic instance or in extra JSON sections.\nThe previous actual time is recovered the same way; that cell stays as a\nstring (the source format may be TimeSpan or DateTime) and is re-parsed\non demand — at most once per row.\n

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/Hi.Numerical.CsvParsers.CsvRowSyntax.yml", + "output": { + ".html": { + "relative_path": "api/Hi.Numerical.CsvParsers.CsvRowSyntax.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "Hi.Numerical.CsvParsers.CsvRowSyntax", + "Summary": "

    Per-row CSV parsing syntax for the soft NC runner. Reads the active\n via\n, splits the row text using\n, and\nstamps the resulting column→value map into\n under the \nproperty for to consume.

    \n

    \nNumeric cells are pre-typed to (or )\nat this stage so downstream readers — including\n's backwards walk for the previous machine\ncoordinate — touch native JSON numbers instead of re-parsing strings on\nevery visit. Columns kept as strings: the script / time / spindle-direction\ntags whose semantic interpretation is non-numeric, plus any column whose\nkey appears in (the\ncaller-supplied parsing function expects the raw cell text).\n

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/Hi.Numerical.CsvParsers.CsvRunnerConfig.yml", + "output": { + ".html": { + "relative_path": "api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "Hi.Numerical.CsvParsers.CsvRunnerConfig", + "Summary": "

    Configuration class for CSV Runner. Lives in\n when wired with\n; consumed by and\n for tag-name lookup and custom-field parsing.

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/Hi.Numerical.CsvParsers.CsvSegmenter.yml", + "output": { + ".html": { + "relative_path": "api/Hi.Numerical.CsvParsers.CsvSegmenter.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "Hi.Numerical.CsvParsers.CsvSegmenter", + "Summary": "

    Segments a CSV stream for the \npipeline. Consumes the first as the title\nrow (populating and registering any new columns\nas step variables via\n), then yields each\nsubsequent line as a one-line for\n to parse.

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/Hi.Numerical.CsvParsers.CsvSoftRunner.yml", + "output": { + ".html": { + "relative_path": "api/Hi.Numerical.CsvParsers.CsvSoftRunner.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "Hi.Numerical.CsvParsers.CsvSoftRunner", + "Summary": "

    Factory for a wired to replay CSV files\n(deprecates the legacy CsvRunner). The returned runner has a\nsingle-syntax pipeline: →\n.

    \n

    \nDefault :\n

    • — tag names + custom field parsers.
    • — provider left null; host wires\n it the same way it does for brand presets (see BuildCoordinateConverter).
    • — wired by the\n host so CSV title columns auto-register as step variables.
    • , ,\n — runtime plumbing required by\n .
    \n is intentionally not included by\ndefault; clients that build custom syntaxes around \ncan append it themselves.\n\n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/Hi.Numerical.CsvParsers.yml", + "output": { + ".html": { + "relative_path": "api/Hi.Numerical.CsvParsers.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "Hi.Numerical.CsvParsers", + "Summary": null + }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.FilePlayers.CsvRunner.yml", @@ -14738,20 +14780,6 @@ "Title": "Hi.Numerical.FilePlayers.CsvRunner", "Summary": "

    Provides functionality for running and processing csv lines.

    \n" }, - { - "type": "ManagedReference", - "source_relative_path": "api/Hi.Numerical.FilePlayers.CsvRunnerConfig.yml", - "output": { - ".html": { - "relative_path": "api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "Hi.Numerical.FilePlayers.CsvRunnerConfig", - "Summary": "

    Configuration class for CSV Runner.

    \n" - }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.FilePlayers.HardNcRunner.yml", @@ -17580,202 +17608,6 @@ "Title": "HiMachining.Milling", "Summary": null }, - { - "type": "ManagedReference", - "source_relative_path": "api/HiNc.Grpcs.MachiningProjectGrpcServer.yml", - "output": { - ".html": { - "relative_path": "api/HiNc.Grpcs.MachiningProjectGrpcServer.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "HiNc.Grpcs.MachiningProjectGrpcServer", - "Summary": "

    Server for exposing machining project functionality via gRPC.

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/HiNc.Grpcs.yml", - "output": { - ".html": { - "relative_path": "api/HiNc.Grpcs.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "HiNc.Grpcs", - "Summary": null - }, - { - "type": "ManagedReference", - "source_relative_path": "api/numerical.Empty.yml", - "output": { - ".html": { - "relative_path": "api/numerical.Empty.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "numerical.Empty", - "Summary": null - }, - { - "type": "ManagedReference", - "source_relative_path": "api/numerical.GrpcCsvRowDictionary.yml", - "output": { - ".html": { - "relative_path": "api/numerical.GrpcCsvRowDictionary.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "numerical.GrpcCsvRowDictionary", - "Summary": null - }, - { - "type": "ManagedReference", - "source_relative_path": "api/numerical.GrpcNcStep.yml", - "output": { - ".html": { - "relative_path": "api/numerical.GrpcNcStep.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "numerical.GrpcNcStep", - "Summary": null - }, - { - "type": "ManagedReference", - "source_relative_path": "api/numerical.NumericalReflection.yml", - "output": { - ".html": { - "relative_path": "api/numerical.NumericalReflection.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "numerical.NumericalReflection", - "Summary": "

    Holder for reflection information generated from UniversalNcs/numerical.proto

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/numerical.NumericalService.NumericalServiceBase.yml", - "output": { - ".html": { - "relative_path": "api/numerical.NumericalService.NumericalServiceBase.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "numerical.NumericalService.NumericalServiceBase", - "Summary": "

    Base class for server-side implementations of NumericalService

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/numerical.NumericalService.NumericalServiceClient.yml", - "output": { - ".html": { - "relative_path": "api/numerical.NumericalService.NumericalServiceClient.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "numerical.NumericalService.NumericalServiceClient", - "Summary": "

    Client for NumericalService

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/numerical.NumericalService.yml", - "output": { - ".html": { - "relative_path": "api/numerical.NumericalService.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "numerical.NumericalService", - "Summary": null - }, - { - "type": "ManagedReference", - "source_relative_path": "api/numerical.UniversalNcReflection.yml", - "output": { - ".html": { - "relative_path": "api/numerical.UniversalNcReflection.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "numerical.UniversalNcReflection", - "Summary": "

    Holder for reflection information generated from UniversalNcs/universal_nc.proto

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/numerical.UniversalNcService.UniversalNcServiceBase.yml", - "output": { - ".html": { - "relative_path": "api/numerical.UniversalNcService.UniversalNcServiceBase.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "numerical.UniversalNcService.UniversalNcServiceBase", - "Summary": "

    Base class for server-side implementations of UniversalNcService

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/numerical.UniversalNcService.UniversalNcServiceClient.yml", - "output": { - ".html": { - "relative_path": "api/numerical.UniversalNcService.UniversalNcServiceClient.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "numerical.UniversalNcService.UniversalNcServiceClient", - "Summary": "

    Client for UniversalNcService

    \n" - }, - { - "type": "ManagedReference", - "source_relative_path": "api/numerical.UniversalNcService.yml", - "output": { - ".html": { - "relative_path": "api/numerical.UniversalNcService.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "numerical.UniversalNcService", - "Summary": null - }, - { - "type": "ManagedReference", - "source_relative_path": "api/numerical.yml", - "output": { - ".html": { - "relative_path": "api/numerical.html" - } - }, - "version": "", - "Uid": null, - "IsMRef": true, - "Title": "numerical", - "Summary": null - }, { "type": "Toc", "source_relative_path": "api/toc.yml", @@ -19078,16 +18910,6 @@ }, "version": "" }, - { - "type": "Conceptual", - "source_relative_path": "manual/runtime/machining-step.md", - "output": { - ".html": { - "relative_path": "manual/runtime/machining-step.html" - } - }, - "version": "" - }, { "type": "Conceptual", "source_relative_path": "manual/runtime/script-command.md", @@ -19120,20 +18942,20 @@ }, { "type": "Conceptual", - "source_relative_path": "manual/runtime/step-intro.md", + "source_relative_path": "manual/runtime/step-fields.md", "output": { ".html": { - "relative_path": "manual/runtime/step-intro.html" + "relative_path": "manual/runtime/step-fields.html" } }, "version": "" }, { "type": "Conceptual", - "source_relative_path": "manual/runtime/step-output.md", + "source_relative_path": "manual/runtime/step.md", "output": { ".html": { - "relative_path": "manual/runtime/step-output.html" + "relative_path": "manual/runtime/step.html" } }, "version": "" diff --git a/App/wwwroot/HiAPI-docsite/manual/analysis/nc-optimization-principles.html b/App/wwwroot/HiAPI-docsite/manual/analysis/nc-optimization-principles.html index 4aabe066..27330e3a 100644 --- a/App/wwwroot/HiAPI-docsite/manual/analysis/nc-optimization-principles.html +++ b/App/wwwroot/HiAPI-docsite/manual/analysis/nc-optimization-principles.html @@ -94,7 +94,7 @@

    Factors Determining the Optimized Feed Rate

    The optimized feed rate is determined by:

      -
    1. Physical quantity constraints of individual steps: Feed rate limits calculated for each step based on target force, yielding stress, spindle torque, etc. For detailed descriptions of indicators such as yielding stress ratio and spindle torque ratio, refer to "Evaluating Process Machinability".
    2. +
    3. Physical quantity constraints of individual steps: Feed rate limits calculated for each step based on target force, yielding stress, spindle torque, etc. For detailed descriptions of indicators such as yielding stress ratio and spindle torque ratio, refer to "Evaluating Process Machinability".
    4. Inter-step smoothing: Interactions such as acceleration/deceleration limits and extended distances.

    Differences in Simulation Results After Optimization

    diff --git a/App/wwwroot/HiAPI-docsite/manual/analysis/spindle-capability.html b/App/wwwroot/HiAPI-docsite/manual/analysis/spindle-capability.html index a0b0b573..79d6a315 100644 --- a/App/wwwroot/HiAPI-docsite/manual/analysis/spindle-capability.html +++ b/App/wwwroot/HiAPI-docsite/manual/analysis/spindle-capability.html @@ -191,7 +191,7 @@ diff --git a/App/wwwroot/HiAPI-docsite/manual/runtime/index.html b/App/wwwroot/HiAPI-docsite/manual/runtime/index.html index 13f5267a..6f7edc40 100644 --- a/App/wwwroot/HiAPI-docsite/manual/runtime/index.html +++ b/App/wwwroot/HiAPI-docsite/manual/runtime/index.html @@ -91,9 +91,8 @@

    Core Concepts

    API Reference

    diff --git a/App/wwwroot/HiAPI-docsite/manual/runtime/script-command.html b/App/wwwroot/HiAPI-docsite/manual/runtime/script-command.html index 9e5bdaa8..39011e6a 100644 --- a/App/wwwroot/HiAPI-docsite/manual/runtime/script-command.html +++ b/App/wwwroot/HiAPI-docsite/manual/runtime/script-command.html @@ -202,7 +202,7 @@ var material = Global["material"];

    See Also

    diff --git a/App/wwwroot/HiAPI-docsite/manual/runtime/session-shell.html b/App/wwwroot/HiAPI-docsite/manual/runtime/session-shell.html index edd30c40..0e72ff35 100644 --- a/App/wwwroot/HiAPI-docsite/manual/runtime/session-shell.html +++ b/App/wwwroot/HiAPI-docsite/manual/runtime/session-shell.html @@ -597,7 +597,7 @@ RegisterStepVariable Register a custom step variable -Glossary: Machining Step +Step @@ -694,7 +694,7 @@ diff --git a/App/wwwroot/HiAPI-docsite/manual/runtime/step-output.html b/App/wwwroot/HiAPI-docsite/manual/runtime/step-fields.html similarity index 95% rename from App/wwwroot/HiAPI-docsite/manual/runtime/step-output.html rename to App/wwwroot/HiAPI-docsite/manual/runtime/step-fields.html index 8f1e0339..68ff2bbb 100644 --- a/App/wwwroot/HiAPI-docsite/manual/runtime/step-output.html +++ b/App/wwwroot/HiAPI-docsite/manual/runtime/step-fields.html @@ -2,9 +2,9 @@ - Simulation Step Output | HiAPI-C# 2025 + Step Field Reference | HiAPI-C# 2025 - + @@ -84,14 +84,14 @@ -
    -

    Simulation Step Output

    +
    +

    Step Field Reference

    For the complete and up-to-date field reference, see MachiningStep.

    To assess the risk of tool breakage, also refer to "Evaluating Process Machinability".

    -

    This page summarizes the main output data for each simulation step, covering source line, kinematics, load, force/torque, power, thermal, and wear information to help quickly understand the machining state at each step.

    +

    This page summarizes the main output data for each simulation step, covering source line, kinematics, load, force/torque, power, thermal, and wear information to help quickly understand the machining state at each step.

    Step data contains information for the time interval between two consecutive steps (i.e., from the previous step to the current step). Many fields are therefore simplified representations over that period. Common prefixes based on the simplification method include Average (Avg), Extremes (Min, Max), Range (Delta), and Maximum Absolute Value (MaxAbs).

    Basic Source Information

      @@ -105,6 +105,7 @@
    • StepDuration: Duration of this step (default per-revolution mode: one step equals one spindle revolution).
    • BeginSpindleAngle_deg: Spindle angular displacement at the start of this step.
    • Cl (Cutter Location): Cutter location point (including IJK normal).
    • +
    • MC (X, Y, Z, A, B, C): Machine coordinates.
    • MoveOnProgramCoordinate, MovingLength_mm: Displacement vector and length in the program coordinate system.
    • Feedrate_mmdmin / SpindleSpeed_rpm / CuttingSpeed_mmds: Feed rate, spindle speed, and cutting speed.
    • FeedPerTooth_mm / FeedPerCycle_mm / ToothArcDuration_s / SpindleCyclePeriod_s: Feed per tooth/per cycle, tooth arc duration, and spindle cycle period.
    • diff --git a/App/wwwroot/HiAPI-docsite/manual/runtime/step-intro.html b/App/wwwroot/HiAPI-docsite/manual/runtime/step-intro.html deleted file mode 100644 index 92348941..00000000 --- a/App/wwwroot/HiAPI-docsite/manual/runtime/step-intro.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - Simulation Step | HiAPI-C# 2025 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - -
      -
      -
      -
      -
      Table of Contents
      - -
      -
      - -
      -
      -
      - -
      -
      - - - -
      - -
      -

      Simulation Step

      - -

      Definition

      -

      A Step is a single computation unit in the simulation. During cutting, the default is one spindle revolution per step, which can be modified via Workflow: Basic Machining Simulation.

      -

      Time Significance of Step Data

      -

      Step data contains information for the time interval between two consecutive steps (i.e., from the previous step to the current step). Since this represents a time interval rather than an instant, many fields are simplified representations of data over that period.

      - - - -
      - -
      -
      - - - -
      - -
      - -
      -
      - -
      - - - - diff --git a/App/wwwroot/HiAPI-docsite/manual/runtime/machining-step.html b/App/wwwroot/HiAPI-docsite/manual/runtime/step.html similarity index 67% rename from App/wwwroot/HiAPI-docsite/manual/runtime/machining-step.html rename to App/wwwroot/HiAPI-docsite/manual/runtime/step.html index b4ac4a3c..165b5002 100644 --- a/App/wwwroot/HiAPI-docsite/manual/runtime/machining-step.html +++ b/App/wwwroot/HiAPI-docsite/manual/runtime/step.html @@ -2,9 +2,9 @@ - Glossary: Machining Step | HiAPI-C# 2025 + Step | HiAPI-C# 2025 - + @@ -84,225 +84,13 @@ -
      -

      Glossary: Machining Step

      +
      +

      Step

      -

      What Is a Machining Step?

      +

      What Is a Step?

      A MachiningStep (MachiningStep) is a single computation unit in the HiNC simulation. By default, one step corresponds to one spindle revolution, but this interval is configurable via the Basic Simulation workflow.

      Each step contains data for the time interval between two consecutive steps (from the previous step to the current step). Since this represents a period rather than an instant, many fields are simplified representations using prefixes like Average (Avg), Extremes (Min, Max), Range (Delta), and Maximum Absolute Value (MaxAbs).


      -

      Key Properties

      -

      The table below summarizes the primary step output fields. For the complete reference, see MachiningStep.

      -

      Basic Source Information

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      PropertyDescription
      FileNo / LineNo / FilePath / LineTextSource NC file and line information
      StepIndexStep sequence index
      ToolIdActive tool ID
      FlagsTextActive G-code modal flags
      -

      Time and Motion

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      PropertyDescription
      AccumulatedTimeAccumulated simulation time
      StepDurationDuration of this step
      BeginSpindleAngle_degSpindle angle at step start
      Cl (X, Y, Z, I, J, K)Cutter location point and tool axis vector
      MC (X, Y, Z, A, B, C)Machine coordinates
      Feedrate_mmdminFeed rate (mm/min)
      SpindleSpeed_rpmSpindle speed (RPM)
      FeedPerTooth_mm / FeedPerCycle_mmFeed per tooth / per cycle
      MovingLength_mmDisplacement length
      -

      Cutting Engagement

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      PropertyDescription
      IsTouchedWhether cutting engagement occurred
      CuttingWidth_mm (ae)Cutting width
      CuttingDepth_mm (ap)Cutting depth
      Mrr_mm3dsMaterial removal rate
      ChipThickness_mmChip thickness
      ChipVolume_mm3Chip volume
      -

      Force and Torque

      - - - - - - - - - - - - - - - - - - - - - -
      PropertyDescription
      AvgForceToToolOnToolRunningCoordinate_NAverage force on tool (X, Y, Z)
      MaxAbsForce_NMaximum absolute force
      AvgAbsTorque_NmAverage absolute torque
      -

      Power and Energy

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      PropertyDescription
      SpindleInputPower_WSpindle input power
      SpindleOutputPower_WSpindle output power (after efficiency losses)
      MaxSpindlePowerRatioInput power / max spindle power capability
      AccumulatedSpindleEnergyConsumption_kWhAccumulated energy consumption
      -

      Thermal

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      PropertyDescription
      CutterDermisTemperature_CCutter surface temperature
      WorkpieceDermisTemperature_CWorkpiece surface temperature
      ChipTemperature_CChip temperature
      ThermalStress_MPa / ThermalYieldRatioThermal stress and yield ratio
      -

      Wear and Deflection

      - - - - - - - - - - - - - - - - - - - - - -
      PropertyDescription
      AccumulatedCraterWear_umAccumulated crater wear
      AccumulatedFlankWearDepth_um / Width_umAccumulated flank wear
      ReCutDepth_umRe-cut depth from tool deflection
      -

      Registering Custom Step Variables

      Beyond default properties, you can register custom step variables using RegisterStepVariable:

      RegisterStepVariable(
      @@ -385,8 +173,7 @@ if (step != null)
       

      See Also

        -
      • Simulation Step — concept definition
      • -
      • Simulation Step Output — complete field reference
      • +
      • Step Field Reference — complete field reference
      • Glossary: SessionShell Quick-Reference — SessionShell quick-reference
      • Workflow: Basic Machining Simulation — simulation workflow producing steps
      • Workflow: Milling Force Parameter Training — training workflow that adds step variables
      • diff --git a/App/wwwroot/HiAPI-docsite/manual/runtime/toc.html b/App/wwwroot/HiAPI-docsite/manual/runtime/toc.html index c27faa6e..d721a3bf 100644 --- a/App/wwwroot/HiAPI-docsite/manual/runtime/toc.html +++ b/App/wwwroot/HiAPI-docsite/manual/runtime/toc.html @@ -22,13 +22,10 @@ SessionShell Reference
      • - MachiningStep + Step — Concept & Output
      • - Step (Concept) -
      • -
      • - Step Output + Step Field Reference
      • SessionProgress diff --git a/App/wwwroot/HiAPI-docsite/manual/runtime/toc.json b/App/wwwroot/HiAPI-docsite/manual/runtime/toc.json index ad41223c..b79ad000 100644 --- a/App/wwwroot/HiAPI-docsite/manual/runtime/toc.json +++ b/App/wwwroot/HiAPI-docsite/manual/runtime/toc.json @@ -1,2 +1,2 @@ -{"items":[{"name":"Overview","href":"index.html","topicHref":"index.html"},{"name":"Script Command","href":"script-command.html","topicHref":"script-command.html"},{"name":"SessionShell Reference","href":"session-shell.html","topicHref":"session-shell.html"},{"name":"MachiningStep","href":"machining-step.html","topicHref":"machining-step.html"},{"name":"Step (Concept)","href":"step-intro.html","topicHref":"step-intro.html"},{"name":"Step Output","href":"step-output.html","topicHref":"step-output.html"},{"name":"SessionProgress","href":"session-progress.html","topicHref":"session-progress.html"}]} +{"items":[{"name":"Overview","href":"index.html","topicHref":"index.html"},{"name":"Script Command","href":"script-command.html","topicHref":"script-command.html"},{"name":"SessionShell Reference","href":"session-shell.html","topicHref":"session-shell.html"},{"name":"Step — Concept & Output","href":"step.html","topicHref":"step.html"},{"name":"Step Field Reference","href":"step-fields.html","topicHref":"step-fields.html"},{"name":"SessionProgress","href":"session-progress.html","topicHref":"session-progress.html"}]} diff --git a/App/wwwroot/HiAPI-docsite/release-note/index.html b/App/wwwroot/HiAPI-docsite/release-note/index.html index b501b0b9..2a8e7147 100644 --- a/App/wwwroot/HiAPI-docsite/release-note/index.html +++ b/App/wwwroot/HiAPI-docsite/release-note/index.html @@ -87,6 +87,12 @@

        Release Note

        +

        HiNc Packages Version 3.1.173

        +
          +
        • Improve Mrr_mm3ds precision: the material-removal-rate now sums each cut contour's signed area-vector (fan triangulation, skipping non-finite triangles) projected on the feed direction, replacing the per-contour bounding-box area that over-estimated the cut cross-section
        • +
        • Add AlignWorkpieceProgramZeroToIso script command: resolves a G54/G55/… entry from the project ISO coordinate table and places workpiece + fixture so the program zero coincides with that machine coordinate (topology math delegated to the new AlignWorkpieceProgramZeroToIso extension)
        • +
        • Drop gRPC plumbing from the HiNc package: remove Hi.Grpcs.* ClStrip/Player service runners and protos, MachiningProjectGrpcServer, MonitoringPlayer, and UniversalNcMonitorClient; fold CsvRunnerConfig back into CsvRunner (gRPC services now ship in HiNcRcl / UJoinRcl)
        • +

        HiNc Packages Version 3.1.172

        • Replace implicit XFactory registration (private static <ClassName>() constructors + _ = X.XName wake-up touches) with explicit public static void Reg(XFactory factory = null) methods across ~270 classes. XFactory becomes an instance class with a process-wide Default singleton; Generators is renamed from Regs and now an instance property; the delegate type is renamed XGeneratorDelegate from GenByXElementDelegate. Composite types chain X.Reg(factory) on dependents in place of the old wake-up touches; multi-name (legacy alias) registrations keep the current XName first and group aliases under a //legacy aliases comment. Entry points (web service, win-desktop, test fixtures) must call Reg once at startup before any project XML is deserialized — registration no longer happens by accident when the type is first touched. See XML IO.
        • diff --git a/App/wwwroot/HiAPI-docsite/workflows/basic-simulation.html b/App/wwwroot/HiAPI-docsite/workflows/basic-simulation.html index 8251dd68..8b681d80 100644 --- a/App/wwwroot/HiAPI-docsite/workflows/basic-simulation.html +++ b/App/wwwroot/HiAPI-docsite/workflows/basic-simulation.html @@ -224,6 +224,12 @@ PlayNc($"G01 X{x} Y20 F100", "Generated Command");
          PlayCsvFile("Data/file1.csv");
           

          Required CSV columns (default headers): MC.X, MC.Y, MC.Z, ToolId, SpindleSpeed_rpm, Feedrate_mmdmin. Optional: MC.A, MC.B, MC.C, ActualTime, StepDuration.

          +

          Headers and timestamp values may be wrapped in double quotes; the parser strips them. ActualTime accepts either HH:mm:ss.fff or an absolute yyyy-MM-dd HH:mm:ss.ffffff form (the absolute form is required when chaining with MapSeriesByCsvFile(API), which matches by TimeTag):

          +
          "ActualTime","Feedrate_mmdmin","MC.X","MC.Y","MC.Z","SpindleSpeed_rpm","ToolId"
          +"2026-03-16 15:57:45.559000",10000.0,-351.745,-244.799,-215.799,1270,1
          +"2026-03-16 15:57:45.705000",10000.0,-351.745,-244.799,-215.799,1270,1
          +
          +

          When a real-world controller log includes extra columns (e.g., t_receive, cnc_delay_s, status) or uses alternative column names (X/Y/Z, feedrate, spindle_speed), preprocess the file to drop or rename columns before passing it to PlayCsvFile(API).

          Tip

          CSV files exported by WriteStepFiles(API) can be directly read back with PlayCsvFile(API).

          @@ -324,8 +330,8 @@ AppendMessagesToFile("Output/messages.txt"); diff --git a/App/wwwroot/HiAPI-docsite/workflows/force-training.html b/App/wwwroot/HiAPI-docsite/workflows/force-training.html index 08c9453e..a3c42348 100644 --- a/App/wwwroot/HiAPI-docsite/workflows/force-training.html +++ b/App/wwwroot/HiAPI-docsite/workflows/force-training.html @@ -355,7 +355,7 @@ WriteShotFiles("Output/[NcName].shot.csv", 1);
        • Sensor Mapping Workflow — detailed mapping workflow
        • Workflow: Basic Machining Simulation — basic simulation setup
        • Workflow: NC Optimization — optimization after training
        • -
        • Glossary: Machining Step — step data reference
        • +
        • Step — step data reference
        • Glossary: SessionShell Quick-Reference — SessionShell quick-reference
        • Training with a Dynamometer (Example)
        • Cascading Mapping (Example)
        • diff --git a/App/wwwroot/HiAPI-docsite/workflows/sensor-mapping.html b/App/wwwroot/HiAPI-docsite/workflows/sensor-mapping.html index 42500107..c7d216d2 100644 --- a/App/wwwroot/HiAPI-docsite/workflows/sensor-mapping.html +++ b/App/wwwroot/HiAPI-docsite/workflows/sensor-mapping.html @@ -309,7 +309,7 @@ WriteStepFiles("Output/[NcName].step.csv");
          • Workflow: Milling Force Parameter Training — using mapped data for coefficient training
          • Workflow: Basic Machining Simulation — basic simulation setup
          • -
          • Glossary: Machining Step — step data model
          • +
          • Step — step data model
          • Glossary: SessionShell Quick-Reference — SessionShell quick-reference
          • Example Project: Mapping Controller and Sensor Data to Simulated NC Toolpaths and Updating Milling Coefficients — mapping demo example project
          • Example Project: Training Milling Coefficients with a Dynamometer — dynamometer training example project
          • diff --git a/App/wwwroot/HiAPI-docsite/xrefmap.yml b/App/wwwroot/HiAPI-docsite/xrefmap.yml index 20a62e70..2f94490e 100644 --- a/App/wwwroot/HiAPI-docsite/xrefmap.yml +++ b/App/wwwroot/HiAPI-docsite/xrefmap.yml @@ -1,15 +1,12 @@ ### YamlMime:XRefMap sorted: true references: -- uid: Concept-Step - name: Simulation Step - href: manual/runtime/step-intro.html - uid: Controllers/HeidenhainSupport name: Heidenhain Controller Support href: manual/setup/controller-heidenhain.html -- uid: Doc-Machining-Step-Output - name: Simulation Step Output - href: manual/runtime/step-output.html +- uid: Doc-Step-Fields + name: Step Field Reference + href: manual/runtime/step-fields.html - uid: Equipment/Coolant name: Coolant href: manual/setup/coolant.html @@ -22,9 +19,6 @@ references: - uid: Examples name: Example Projects href: workflows/examples/index.html -- uid: Glossary-MachiningStep - name: 'Glossary: Machining Step' - href: manual/runtime/machining-step.html - uid: Glossary-ScriptCommand name: 'Glossary: Script Commands' href: manual/runtime/script-command.html @@ -34,6 +28,9 @@ references: - uid: Glossary-SessionShell name: 'Glossary: SessionShell Quick-Reference' href: manual/runtime/session-shell.html +- uid: Glossary-Step + name: Step + href: manual/runtime/step.html - uid: Hi.Cbtr name: Hi.Cbtr href: api/Hi.Cbtr.html @@ -8241,6 +8238,15 @@ references: fullName.vb: Hi.Common.CsvUtils.CsvInputKit.New nameWithType: CsvInputKit.CsvInputKit nameWithType.vb: CsvInputKit.New +- uid: Hi.Common.CsvUtils.CsvInputKit.GetCsvDictionary(System.Collections.Generic.IList{System.String},System.String) + name: GetCsvDictionary(IList, string) + href: api/Hi.Common.CsvUtils.CsvInputKit.html#Hi_Common_CsvUtils_CsvInputKit_GetCsvDictionary_System_Collections_Generic_IList_System_String__System_String_ + commentId: M:Hi.Common.CsvUtils.CsvInputKit.GetCsvDictionary(System.Collections.Generic.IList{System.String},System.String) + name.vb: GetCsvDictionary(IList(Of String), String) + fullName: Hi.Common.CsvUtils.CsvInputKit.GetCsvDictionary(System.Collections.Generic.IList, string) + fullName.vb: Hi.Common.CsvUtils.CsvInputKit.GetCsvDictionary(System.Collections.Generic.IList(Of String), String) + nameWithType: CsvInputKit.GetCsvDictionary(IList, string) + nameWithType.vb: CsvInputKit.GetCsvDictionary(IList(Of String), String) - uid: Hi.Common.CsvUtils.CsvInputKit.GetCsvDictionary(System.String) name: GetCsvDictionary(string) href: api/Hi.Common.CsvUtils.CsvInputKit.html#Hi_Common_CsvUtils_CsvInputKit_GetCsvDictionary_System_String_ @@ -77861,891 +77867,6 @@ references: commentId: F:Hi.Geom.Vec3d.z fullName: Hi.Geom.Vec3d.z nameWithType: Vec3d.z -- uid: Hi.Grpcs - name: Hi.Grpcs - href: api/Hi.Grpcs.html - commentId: N:Hi.Grpcs - fullName: Hi.Grpcs - nameWithType: Hi.Grpcs -- uid: Hi.Grpcs.ClStripService - name: ClStripService - href: api/Hi.Grpcs.ClStripService.html - commentId: T:Hi.Grpcs.ClStripService - fullName: Hi.Grpcs.ClStripService - nameWithType: ClStripService -- uid: Hi.Grpcs.ClStripService.BindService(Grpc.Core.ServiceBinderBase,Hi.Grpcs.ClStripService.ClStripServiceBase) - name: BindService(ServiceBinderBase, ClStripServiceBase) - href: api/Hi.Grpcs.ClStripService.html#Hi_Grpcs_ClStripService_BindService_Grpc_Core_ServiceBinderBase_Hi_Grpcs_ClStripService_ClStripServiceBase_ - commentId: M:Hi.Grpcs.ClStripService.BindService(Grpc.Core.ServiceBinderBase,Hi.Grpcs.ClStripService.ClStripServiceBase) - fullName: Hi.Grpcs.ClStripService.BindService(Grpc.Core.ServiceBinderBase, Hi.Grpcs.ClStripService.ClStripServiceBase) - nameWithType: ClStripService.BindService(ServiceBinderBase, ClStripService.ClStripServiceBase) -- uid: Hi.Grpcs.ClStripService.BindService(Hi.Grpcs.ClStripService.ClStripServiceBase) - name: BindService(ClStripServiceBase) - href: api/Hi.Grpcs.ClStripService.html#Hi_Grpcs_ClStripService_BindService_Hi_Grpcs_ClStripService_ClStripServiceBase_ - commentId: M:Hi.Grpcs.ClStripService.BindService(Hi.Grpcs.ClStripService.ClStripServiceBase) - fullName: Hi.Grpcs.ClStripService.BindService(Hi.Grpcs.ClStripService.ClStripServiceBase) - nameWithType: ClStripService.BindService(ClStripService.ClStripServiceBase) -- uid: Hi.Grpcs.ClStripService.BindService* - name: BindService - href: api/Hi.Grpcs.ClStripService.html#Hi_Grpcs_ClStripService_BindService_ - commentId: Overload:Hi.Grpcs.ClStripService.BindService - isSpec: "True" - fullName: Hi.Grpcs.ClStripService.BindService - nameWithType: ClStripService.BindService -- uid: Hi.Grpcs.ClStripService.ClStripServiceBase - name: ClStripService.ClStripServiceBase - href: api/Hi.Grpcs.ClStripService.ClStripServiceBase.html - commentId: T:Hi.Grpcs.ClStripService.ClStripServiceBase - fullName: Hi.Grpcs.ClStripService.ClStripServiceBase - nameWithType: ClStripService.ClStripServiceBase -- uid: Hi.Grpcs.ClStripService.ClStripServiceBase.StepRan(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.IServerStreamWriter{Hi.Grpcs.DictionaryStep},Grpc.Core.ServerCallContext) - name: StepRan(Empty, IServerStreamWriter, ServerCallContext) - href: api/Hi.Grpcs.ClStripService.ClStripServiceBase.html#Hi_Grpcs_ClStripService_ClStripServiceBase_StepRan_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_IServerStreamWriter_Hi_Grpcs_DictionaryStep__Grpc_Core_ServerCallContext_ - commentId: M:Hi.Grpcs.ClStripService.ClStripServiceBase.StepRan(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.IServerStreamWriter{Hi.Grpcs.DictionaryStep},Grpc.Core.ServerCallContext) - name.vb: StepRan(Empty, IServerStreamWriter(Of DictionaryStep), ServerCallContext) - fullName: Hi.Grpcs.ClStripService.ClStripServiceBase.StepRan(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.IServerStreamWriter, Grpc.Core.ServerCallContext) - fullName.vb: Hi.Grpcs.ClStripService.ClStripServiceBase.StepRan(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.IServerStreamWriter(Of Hi.Grpcs.DictionaryStep), Grpc.Core.ServerCallContext) - nameWithType: ClStripService.ClStripServiceBase.StepRan(Empty, IServerStreamWriter, ServerCallContext) - nameWithType.vb: ClStripService.ClStripServiceBase.StepRan(Empty, IServerStreamWriter(Of DictionaryStep), ServerCallContext) -- uid: Hi.Grpcs.ClStripService.ClStripServiceBase.StepRan* - name: StepRan - href: api/Hi.Grpcs.ClStripService.ClStripServiceBase.html#Hi_Grpcs_ClStripService_ClStripServiceBase_StepRan_ - commentId: Overload:Hi.Grpcs.ClStripService.ClStripServiceBase.StepRan - isSpec: "True" - fullName: Hi.Grpcs.ClStripService.ClStripServiceBase.StepRan - nameWithType: ClStripService.ClStripServiceBase.StepRan -- uid: Hi.Grpcs.ClStripService.ClStripServiceBase.StepSelected(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.IServerStreamWriter{Hi.Grpcs.DictionaryStep},Grpc.Core.ServerCallContext) - name: StepSelected(Empty, IServerStreamWriter, ServerCallContext) - href: api/Hi.Grpcs.ClStripService.ClStripServiceBase.html#Hi_Grpcs_ClStripService_ClStripServiceBase_StepSelected_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_IServerStreamWriter_Hi_Grpcs_DictionaryStep__Grpc_Core_ServerCallContext_ - commentId: M:Hi.Grpcs.ClStripService.ClStripServiceBase.StepSelected(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.IServerStreamWriter{Hi.Grpcs.DictionaryStep},Grpc.Core.ServerCallContext) - name.vb: StepSelected(Empty, IServerStreamWriter(Of DictionaryStep), ServerCallContext) - fullName: Hi.Grpcs.ClStripService.ClStripServiceBase.StepSelected(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.IServerStreamWriter, Grpc.Core.ServerCallContext) - fullName.vb: Hi.Grpcs.ClStripService.ClStripServiceBase.StepSelected(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.IServerStreamWriter(Of Hi.Grpcs.DictionaryStep), Grpc.Core.ServerCallContext) - nameWithType: ClStripService.ClStripServiceBase.StepSelected(Empty, IServerStreamWriter, ServerCallContext) - nameWithType.vb: ClStripService.ClStripServiceBase.StepSelected(Empty, IServerStreamWriter(Of DictionaryStep), ServerCallContext) -- uid: Hi.Grpcs.ClStripService.ClStripServiceBase.StepSelected* - name: StepSelected - href: api/Hi.Grpcs.ClStripService.ClStripServiceBase.html#Hi_Grpcs_ClStripService_ClStripServiceBase_StepSelected_ - commentId: Overload:Hi.Grpcs.ClStripService.ClStripServiceBase.StepSelected - isSpec: "True" - fullName: Hi.Grpcs.ClStripService.ClStripServiceBase.StepSelected - nameWithType: ClStripService.ClStripServiceBase.StepSelected -- uid: Hi.Grpcs.ClStripService.ClStripServiceClient - name: ClStripService.ClStripServiceClient - href: api/Hi.Grpcs.ClStripService.ClStripServiceClient.html - commentId: T:Hi.Grpcs.ClStripService.ClStripServiceClient - fullName: Hi.Grpcs.ClStripService.ClStripServiceClient - nameWithType: ClStripService.ClStripServiceClient -- uid: Hi.Grpcs.ClStripService.ClStripServiceClient.#ctor - name: ClStripServiceClient() - href: api/Hi.Grpcs.ClStripService.ClStripServiceClient.html#Hi_Grpcs_ClStripService_ClStripServiceClient__ctor - commentId: M:Hi.Grpcs.ClStripService.ClStripServiceClient.#ctor - name.vb: New() - fullName: Hi.Grpcs.ClStripService.ClStripServiceClient.ClStripServiceClient() - fullName.vb: Hi.Grpcs.ClStripService.ClStripServiceClient.New() - nameWithType: ClStripService.ClStripServiceClient.ClStripServiceClient() - nameWithType.vb: ClStripService.ClStripServiceClient.New() -- uid: Hi.Grpcs.ClStripService.ClStripServiceClient.#ctor(Grpc.Core.CallInvoker) - name: ClStripServiceClient(CallInvoker) - href: api/Hi.Grpcs.ClStripService.ClStripServiceClient.html#Hi_Grpcs_ClStripService_ClStripServiceClient__ctor_Grpc_Core_CallInvoker_ - commentId: M:Hi.Grpcs.ClStripService.ClStripServiceClient.#ctor(Grpc.Core.CallInvoker) - name.vb: New(CallInvoker) - fullName: Hi.Grpcs.ClStripService.ClStripServiceClient.ClStripServiceClient(Grpc.Core.CallInvoker) - fullName.vb: Hi.Grpcs.ClStripService.ClStripServiceClient.New(Grpc.Core.CallInvoker) - nameWithType: ClStripService.ClStripServiceClient.ClStripServiceClient(CallInvoker) - nameWithType.vb: ClStripService.ClStripServiceClient.New(CallInvoker) -- uid: Hi.Grpcs.ClStripService.ClStripServiceClient.#ctor(Grpc.Core.ChannelBase) - name: ClStripServiceClient(ChannelBase) - href: api/Hi.Grpcs.ClStripService.ClStripServiceClient.html#Hi_Grpcs_ClStripService_ClStripServiceClient__ctor_Grpc_Core_ChannelBase_ - commentId: M:Hi.Grpcs.ClStripService.ClStripServiceClient.#ctor(Grpc.Core.ChannelBase) - name.vb: New(ChannelBase) - fullName: Hi.Grpcs.ClStripService.ClStripServiceClient.ClStripServiceClient(Grpc.Core.ChannelBase) - fullName.vb: Hi.Grpcs.ClStripService.ClStripServiceClient.New(Grpc.Core.ChannelBase) - nameWithType: ClStripService.ClStripServiceClient.ClStripServiceClient(ChannelBase) - nameWithType.vb: ClStripService.ClStripServiceClient.New(ChannelBase) -- uid: Hi.Grpcs.ClStripService.ClStripServiceClient.#ctor(Grpc.Core.ClientBase.ClientBaseConfiguration) - name: ClStripServiceClient(ClientBaseConfiguration) - href: api/Hi.Grpcs.ClStripService.ClStripServiceClient.html#Hi_Grpcs_ClStripService_ClStripServiceClient__ctor_Grpc_Core_ClientBase_ClientBaseConfiguration_ - commentId: M:Hi.Grpcs.ClStripService.ClStripServiceClient.#ctor(Grpc.Core.ClientBase.ClientBaseConfiguration) - name.vb: New(ClientBaseConfiguration) - fullName: Hi.Grpcs.ClStripService.ClStripServiceClient.ClStripServiceClient(Grpc.Core.ClientBase.ClientBaseConfiguration) - fullName.vb: Hi.Grpcs.ClStripService.ClStripServiceClient.New(Grpc.Core.ClientBase.ClientBaseConfiguration) - nameWithType: ClStripService.ClStripServiceClient.ClStripServiceClient(ClientBase.ClientBaseConfiguration) - nameWithType.vb: ClStripService.ClStripServiceClient.New(ClientBase.ClientBaseConfiguration) -- uid: Hi.Grpcs.ClStripService.ClStripServiceClient.#ctor* - name: ClStripServiceClient - href: api/Hi.Grpcs.ClStripService.ClStripServiceClient.html#Hi_Grpcs_ClStripService_ClStripServiceClient__ctor_ - commentId: Overload:Hi.Grpcs.ClStripService.ClStripServiceClient.#ctor - isSpec: "True" - name.vb: New - fullName: Hi.Grpcs.ClStripService.ClStripServiceClient.ClStripServiceClient - fullName.vb: Hi.Grpcs.ClStripService.ClStripServiceClient.New - nameWithType: ClStripService.ClStripServiceClient.ClStripServiceClient - nameWithType.vb: ClStripService.ClStripServiceClient.New -- uid: Hi.Grpcs.ClStripService.ClStripServiceClient.NewInstance(Grpc.Core.ClientBase.ClientBaseConfiguration) - name: NewInstance(ClientBaseConfiguration) - href: api/Hi.Grpcs.ClStripService.ClStripServiceClient.html#Hi_Grpcs_ClStripService_ClStripServiceClient_NewInstance_Grpc_Core_ClientBase_ClientBaseConfiguration_ - commentId: M:Hi.Grpcs.ClStripService.ClStripServiceClient.NewInstance(Grpc.Core.ClientBase.ClientBaseConfiguration) - fullName: Hi.Grpcs.ClStripService.ClStripServiceClient.NewInstance(Grpc.Core.ClientBase.ClientBaseConfiguration) - nameWithType: ClStripService.ClStripServiceClient.NewInstance(ClientBase.ClientBaseConfiguration) -- uid: Hi.Grpcs.ClStripService.ClStripServiceClient.NewInstance* - name: NewInstance - href: api/Hi.Grpcs.ClStripService.ClStripServiceClient.html#Hi_Grpcs_ClStripService_ClStripServiceClient_NewInstance_ - commentId: Overload:Hi.Grpcs.ClStripService.ClStripServiceClient.NewInstance - isSpec: "True" - fullName: Hi.Grpcs.ClStripService.ClStripServiceClient.NewInstance - nameWithType: ClStripService.ClStripServiceClient.NewInstance -- uid: Hi.Grpcs.ClStripService.ClStripServiceClient.StepRan(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - name: StepRan(Empty, CallOptions) - href: api/Hi.Grpcs.ClStripService.ClStripServiceClient.html#Hi_Grpcs_ClStripService_ClStripServiceClient_StepRan_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_CallOptions_ - commentId: M:Hi.Grpcs.ClStripService.ClStripServiceClient.StepRan(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - fullName: Hi.Grpcs.ClStripService.ClStripServiceClient.StepRan(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.CallOptions) - nameWithType: ClStripService.ClStripServiceClient.StepRan(Empty, CallOptions) -- uid: Hi.Grpcs.ClStripService.ClStripServiceClient.StepRan(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name: StepRan(Empty, Metadata, DateTime?, CancellationToken) - href: api/Hi.Grpcs.ClStripService.ClStripServiceClient.html#Hi_Grpcs_ClStripService_ClStripServiceClient_StepRan_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_Metadata_System_Nullable_System_DateTime__System_Threading_CancellationToken_ - commentId: M:Hi.Grpcs.ClStripService.ClStripServiceClient.StepRan(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name.vb: StepRan(Empty, Metadata, Date?, CancellationToken) - fullName: Hi.Grpcs.ClStripService.ClStripServiceClient.StepRan(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, System.DateTime?, System.Threading.CancellationToken) - fullName.vb: Hi.Grpcs.ClStripService.ClStripServiceClient.StepRan(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, Date?, System.Threading.CancellationToken) - nameWithType: ClStripService.ClStripServiceClient.StepRan(Empty, Metadata, DateTime?, CancellationToken) - nameWithType.vb: ClStripService.ClStripServiceClient.StepRan(Empty, Metadata, Date?, CancellationToken) -- uid: Hi.Grpcs.ClStripService.ClStripServiceClient.StepRan* - name: StepRan - href: api/Hi.Grpcs.ClStripService.ClStripServiceClient.html#Hi_Grpcs_ClStripService_ClStripServiceClient_StepRan_ - commentId: Overload:Hi.Grpcs.ClStripService.ClStripServiceClient.StepRan - isSpec: "True" - fullName: Hi.Grpcs.ClStripService.ClStripServiceClient.StepRan - nameWithType: ClStripService.ClStripServiceClient.StepRan -- uid: Hi.Grpcs.ClStripService.ClStripServiceClient.StepSelected(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - name: StepSelected(Empty, CallOptions) - href: api/Hi.Grpcs.ClStripService.ClStripServiceClient.html#Hi_Grpcs_ClStripService_ClStripServiceClient_StepSelected_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_CallOptions_ - commentId: M:Hi.Grpcs.ClStripService.ClStripServiceClient.StepSelected(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - fullName: Hi.Grpcs.ClStripService.ClStripServiceClient.StepSelected(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.CallOptions) - nameWithType: ClStripService.ClStripServiceClient.StepSelected(Empty, CallOptions) -- uid: Hi.Grpcs.ClStripService.ClStripServiceClient.StepSelected(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name: StepSelected(Empty, Metadata, DateTime?, CancellationToken) - href: api/Hi.Grpcs.ClStripService.ClStripServiceClient.html#Hi_Grpcs_ClStripService_ClStripServiceClient_StepSelected_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_Metadata_System_Nullable_System_DateTime__System_Threading_CancellationToken_ - commentId: M:Hi.Grpcs.ClStripService.ClStripServiceClient.StepSelected(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name.vb: StepSelected(Empty, Metadata, Date?, CancellationToken) - fullName: Hi.Grpcs.ClStripService.ClStripServiceClient.StepSelected(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, System.DateTime?, System.Threading.CancellationToken) - fullName.vb: Hi.Grpcs.ClStripService.ClStripServiceClient.StepSelected(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, Date?, System.Threading.CancellationToken) - nameWithType: ClStripService.ClStripServiceClient.StepSelected(Empty, Metadata, DateTime?, CancellationToken) - nameWithType.vb: ClStripService.ClStripServiceClient.StepSelected(Empty, Metadata, Date?, CancellationToken) -- uid: Hi.Grpcs.ClStripService.ClStripServiceClient.StepSelected* - name: StepSelected - href: api/Hi.Grpcs.ClStripService.ClStripServiceClient.html#Hi_Grpcs_ClStripService_ClStripServiceClient_StepSelected_ - commentId: Overload:Hi.Grpcs.ClStripService.ClStripServiceClient.StepSelected - isSpec: "True" - fullName: Hi.Grpcs.ClStripService.ClStripServiceClient.StepSelected - nameWithType: ClStripService.ClStripServiceClient.StepSelected -- uid: Hi.Grpcs.ClStripService.Descriptor - name: Descriptor - href: api/Hi.Grpcs.ClStripService.html#Hi_Grpcs_ClStripService_Descriptor - commentId: P:Hi.Grpcs.ClStripService.Descriptor - fullName: Hi.Grpcs.ClStripService.Descriptor - nameWithType: ClStripService.Descriptor -- uid: Hi.Grpcs.ClStripService.Descriptor* - name: Descriptor - href: api/Hi.Grpcs.ClStripService.html#Hi_Grpcs_ClStripService_Descriptor_ - commentId: Overload:Hi.Grpcs.ClStripService.Descriptor - isSpec: "True" - fullName: Hi.Grpcs.ClStripService.Descriptor - nameWithType: ClStripService.Descriptor -- uid: Hi.Grpcs.ClStripServiceReflection - name: ClStripServiceReflection - href: api/Hi.Grpcs.ClStripServiceReflection.html - commentId: T:Hi.Grpcs.ClStripServiceReflection - fullName: Hi.Grpcs.ClStripServiceReflection - nameWithType: ClStripServiceReflection -- uid: Hi.Grpcs.ClStripServiceReflection.Descriptor - name: Descriptor - href: api/Hi.Grpcs.ClStripServiceReflection.html#Hi_Grpcs_ClStripServiceReflection_Descriptor - commentId: P:Hi.Grpcs.ClStripServiceReflection.Descriptor - fullName: Hi.Grpcs.ClStripServiceReflection.Descriptor - nameWithType: ClStripServiceReflection.Descriptor -- uid: Hi.Grpcs.ClStripServiceReflection.Descriptor* - name: Descriptor - href: api/Hi.Grpcs.ClStripServiceReflection.html#Hi_Grpcs_ClStripServiceReflection_Descriptor_ - commentId: Overload:Hi.Grpcs.ClStripServiceReflection.Descriptor - isSpec: "True" - fullName: Hi.Grpcs.ClStripServiceReflection.Descriptor - nameWithType: ClStripServiceReflection.Descriptor -- uid: Hi.Grpcs.ClStripServiceRunner - name: ClStripServiceRunner - href: api/Hi.Grpcs.ClStripServiceRunner.html - commentId: T:Hi.Grpcs.ClStripServiceRunner - fullName: Hi.Grpcs.ClStripServiceRunner - nameWithType: ClStripServiceRunner -- uid: Hi.Grpcs.ClStripServiceRunner.#ctor(Hi.MachiningProcs.LocalProjectService) - name: ClStripServiceRunner(LocalProjectService) - href: api/Hi.Grpcs.ClStripServiceRunner.html#Hi_Grpcs_ClStripServiceRunner__ctor_Hi_MachiningProcs_LocalProjectService_ - commentId: M:Hi.Grpcs.ClStripServiceRunner.#ctor(Hi.MachiningProcs.LocalProjectService) - name.vb: New(LocalProjectService) - fullName: Hi.Grpcs.ClStripServiceRunner.ClStripServiceRunner(Hi.MachiningProcs.LocalProjectService) - fullName.vb: Hi.Grpcs.ClStripServiceRunner.New(Hi.MachiningProcs.LocalProjectService) - nameWithType: ClStripServiceRunner.ClStripServiceRunner(LocalProjectService) - nameWithType.vb: ClStripServiceRunner.New(LocalProjectService) -- uid: Hi.Grpcs.ClStripServiceRunner.#ctor* - name: ClStripServiceRunner - href: api/Hi.Grpcs.ClStripServiceRunner.html#Hi_Grpcs_ClStripServiceRunner__ctor_ - commentId: Overload:Hi.Grpcs.ClStripServiceRunner.#ctor - isSpec: "True" - name.vb: New - fullName: Hi.Grpcs.ClStripServiceRunner.ClStripServiceRunner - fullName.vb: Hi.Grpcs.ClStripServiceRunner.New - nameWithType: ClStripServiceRunner.ClStripServiceRunner - nameWithType.vb: ClStripServiceRunner.New -- uid: Hi.Grpcs.ClStripServiceRunner.StepRan(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.IServerStreamWriter{Hi.Grpcs.DictionaryStep},Grpc.Core.ServerCallContext) - name: StepRan(Empty, IServerStreamWriter, ServerCallContext) - href: api/Hi.Grpcs.ClStripServiceRunner.html#Hi_Grpcs_ClStripServiceRunner_StepRan_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_IServerStreamWriter_Hi_Grpcs_DictionaryStep__Grpc_Core_ServerCallContext_ - commentId: M:Hi.Grpcs.ClStripServiceRunner.StepRan(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.IServerStreamWriter{Hi.Grpcs.DictionaryStep},Grpc.Core.ServerCallContext) - name.vb: StepRan(Empty, IServerStreamWriter(Of DictionaryStep), ServerCallContext) - fullName: Hi.Grpcs.ClStripServiceRunner.StepRan(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.IServerStreamWriter, Grpc.Core.ServerCallContext) - fullName.vb: Hi.Grpcs.ClStripServiceRunner.StepRan(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.IServerStreamWriter(Of Hi.Grpcs.DictionaryStep), Grpc.Core.ServerCallContext) - nameWithType: ClStripServiceRunner.StepRan(Empty, IServerStreamWriter, ServerCallContext) - nameWithType.vb: ClStripServiceRunner.StepRan(Empty, IServerStreamWriter(Of DictionaryStep), ServerCallContext) -- uid: Hi.Grpcs.ClStripServiceRunner.StepRan* - name: StepRan - href: api/Hi.Grpcs.ClStripServiceRunner.html#Hi_Grpcs_ClStripServiceRunner_StepRan_ - commentId: Overload:Hi.Grpcs.ClStripServiceRunner.StepRan - isSpec: "True" - fullName: Hi.Grpcs.ClStripServiceRunner.StepRan - nameWithType: ClStripServiceRunner.StepRan -- uid: Hi.Grpcs.ClStripServiceRunner.StepSelected(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.IServerStreamWriter{Hi.Grpcs.DictionaryStep},Grpc.Core.ServerCallContext) - name: StepSelected(Empty, IServerStreamWriter, ServerCallContext) - href: api/Hi.Grpcs.ClStripServiceRunner.html#Hi_Grpcs_ClStripServiceRunner_StepSelected_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_IServerStreamWriter_Hi_Grpcs_DictionaryStep__Grpc_Core_ServerCallContext_ - commentId: M:Hi.Grpcs.ClStripServiceRunner.StepSelected(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.IServerStreamWriter{Hi.Grpcs.DictionaryStep},Grpc.Core.ServerCallContext) - name.vb: StepSelected(Empty, IServerStreamWriter(Of DictionaryStep), ServerCallContext) - fullName: Hi.Grpcs.ClStripServiceRunner.StepSelected(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.IServerStreamWriter, Grpc.Core.ServerCallContext) - fullName.vb: Hi.Grpcs.ClStripServiceRunner.StepSelected(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.IServerStreamWriter(Of Hi.Grpcs.DictionaryStep), Grpc.Core.ServerCallContext) - nameWithType: ClStripServiceRunner.StepSelected(Empty, IServerStreamWriter, ServerCallContext) - nameWithType.vb: ClStripServiceRunner.StepSelected(Empty, IServerStreamWriter(Of DictionaryStep), ServerCallContext) -- uid: Hi.Grpcs.ClStripServiceRunner.StepSelected* - name: StepSelected - href: api/Hi.Grpcs.ClStripServiceRunner.html#Hi_Grpcs_ClStripServiceRunner_StepSelected_ - commentId: Overload:Hi.Grpcs.ClStripServiceRunner.StepSelected - isSpec: "True" - fullName: Hi.Grpcs.ClStripServiceRunner.StepSelected - nameWithType: ClStripServiceRunner.StepSelected -- uid: Hi.Grpcs.DictionaryStep - name: DictionaryStep - href: api/Hi.Grpcs.DictionaryStep.html - commentId: T:Hi.Grpcs.DictionaryStep - fullName: Hi.Grpcs.DictionaryStep - nameWithType: DictionaryStep -- uid: Hi.Grpcs.DictionaryStep.#ctor - name: DictionaryStep() - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep__ctor - commentId: M:Hi.Grpcs.DictionaryStep.#ctor - name.vb: New() - fullName: Hi.Grpcs.DictionaryStep.DictionaryStep() - fullName.vb: Hi.Grpcs.DictionaryStep.New() - nameWithType: DictionaryStep.DictionaryStep() - nameWithType.vb: DictionaryStep.New() -- uid: Hi.Grpcs.DictionaryStep.#ctor(Hi.Grpcs.DictionaryStep) - name: DictionaryStep(DictionaryStep) - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep__ctor_Hi_Grpcs_DictionaryStep_ - commentId: M:Hi.Grpcs.DictionaryStep.#ctor(Hi.Grpcs.DictionaryStep) - name.vb: New(DictionaryStep) - fullName: Hi.Grpcs.DictionaryStep.DictionaryStep(Hi.Grpcs.DictionaryStep) - fullName.vb: Hi.Grpcs.DictionaryStep.New(Hi.Grpcs.DictionaryStep) - nameWithType: DictionaryStep.DictionaryStep(DictionaryStep) - nameWithType.vb: DictionaryStep.New(DictionaryStep) -- uid: Hi.Grpcs.DictionaryStep.#ctor* - name: DictionaryStep - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep__ctor_ - commentId: Overload:Hi.Grpcs.DictionaryStep.#ctor - isSpec: "True" - name.vb: New - fullName: Hi.Grpcs.DictionaryStep.DictionaryStep - fullName.vb: Hi.Grpcs.DictionaryStep.New - nameWithType: DictionaryStep.DictionaryStep - nameWithType.vb: DictionaryStep.New -- uid: Hi.Grpcs.DictionaryStep.CalculateSize - name: CalculateSize() - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_CalculateSize - commentId: M:Hi.Grpcs.DictionaryStep.CalculateSize - fullName: Hi.Grpcs.DictionaryStep.CalculateSize() - nameWithType: DictionaryStep.CalculateSize() -- uid: Hi.Grpcs.DictionaryStep.CalculateSize* - name: CalculateSize - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_CalculateSize_ - commentId: Overload:Hi.Grpcs.DictionaryStep.CalculateSize - isSpec: "True" - fullName: Hi.Grpcs.DictionaryStep.CalculateSize - nameWithType: DictionaryStep.CalculateSize -- uid: Hi.Grpcs.DictionaryStep.Clone - name: Clone() - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_Clone - commentId: M:Hi.Grpcs.DictionaryStep.Clone - fullName: Hi.Grpcs.DictionaryStep.Clone() - nameWithType: DictionaryStep.Clone() -- uid: Hi.Grpcs.DictionaryStep.Clone* - name: Clone - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_Clone_ - commentId: Overload:Hi.Grpcs.DictionaryStep.Clone - isSpec: "True" - fullName: Hi.Grpcs.DictionaryStep.Clone - nameWithType: DictionaryStep.Clone -- uid: Hi.Grpcs.DictionaryStep.Descriptor - name: Descriptor - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_Descriptor - commentId: P:Hi.Grpcs.DictionaryStep.Descriptor - fullName: Hi.Grpcs.DictionaryStep.Descriptor - nameWithType: DictionaryStep.Descriptor -- uid: Hi.Grpcs.DictionaryStep.Descriptor* - name: Descriptor - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_Descriptor_ - commentId: Overload:Hi.Grpcs.DictionaryStep.Descriptor - isSpec: "True" - fullName: Hi.Grpcs.DictionaryStep.Descriptor - nameWithType: DictionaryStep.Descriptor -- uid: Hi.Grpcs.DictionaryStep.Dictionary - name: Dictionary - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_Dictionary - commentId: P:Hi.Grpcs.DictionaryStep.Dictionary - fullName: Hi.Grpcs.DictionaryStep.Dictionary - nameWithType: DictionaryStep.Dictionary -- uid: Hi.Grpcs.DictionaryStep.Dictionary* - name: Dictionary - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_Dictionary_ - commentId: Overload:Hi.Grpcs.DictionaryStep.Dictionary - isSpec: "True" - fullName: Hi.Grpcs.DictionaryStep.Dictionary - nameWithType: DictionaryStep.Dictionary -- uid: Hi.Grpcs.DictionaryStep.DictionaryFieldNumber - name: DictionaryFieldNumber - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_DictionaryFieldNumber - commentId: F:Hi.Grpcs.DictionaryStep.DictionaryFieldNumber - fullName: Hi.Grpcs.DictionaryStep.DictionaryFieldNumber - nameWithType: DictionaryStep.DictionaryFieldNumber -- uid: Hi.Grpcs.DictionaryStep.Equals(Hi.Grpcs.DictionaryStep) - name: Equals(DictionaryStep) - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_Equals_Hi_Grpcs_DictionaryStep_ - commentId: M:Hi.Grpcs.DictionaryStep.Equals(Hi.Grpcs.DictionaryStep) - fullName: Hi.Grpcs.DictionaryStep.Equals(Hi.Grpcs.DictionaryStep) - nameWithType: DictionaryStep.Equals(DictionaryStep) -- uid: Hi.Grpcs.DictionaryStep.Equals(System.Object) - name: Equals(object) - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_Equals_System_Object_ - commentId: M:Hi.Grpcs.DictionaryStep.Equals(System.Object) - name.vb: Equals(Object) - fullName: Hi.Grpcs.DictionaryStep.Equals(object) - fullName.vb: Hi.Grpcs.DictionaryStep.Equals(Object) - nameWithType: DictionaryStep.Equals(object) - nameWithType.vb: DictionaryStep.Equals(Object) -- uid: Hi.Grpcs.DictionaryStep.Equals* - name: Equals - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_Equals_ - commentId: Overload:Hi.Grpcs.DictionaryStep.Equals - isSpec: "True" - fullName: Hi.Grpcs.DictionaryStep.Equals - nameWithType: DictionaryStep.Equals -- uid: Hi.Grpcs.DictionaryStep.GetHashCode - name: GetHashCode() - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_GetHashCode - commentId: M:Hi.Grpcs.DictionaryStep.GetHashCode - fullName: Hi.Grpcs.DictionaryStep.GetHashCode() - nameWithType: DictionaryStep.GetHashCode() -- uid: Hi.Grpcs.DictionaryStep.GetHashCode* - name: GetHashCode - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_GetHashCode_ - commentId: Overload:Hi.Grpcs.DictionaryStep.GetHashCode - isSpec: "True" - fullName: Hi.Grpcs.DictionaryStep.GetHashCode - nameWithType: DictionaryStep.GetHashCode -- uid: Hi.Grpcs.DictionaryStep.MergeFrom(Google.Protobuf.CodedInputStream) - name: MergeFrom(CodedInputStream) - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_MergeFrom_Google_Protobuf_CodedInputStream_ - commentId: M:Hi.Grpcs.DictionaryStep.MergeFrom(Google.Protobuf.CodedInputStream) - fullName: Hi.Grpcs.DictionaryStep.MergeFrom(Google.Protobuf.CodedInputStream) - nameWithType: DictionaryStep.MergeFrom(CodedInputStream) -- uid: Hi.Grpcs.DictionaryStep.MergeFrom(Hi.Grpcs.DictionaryStep) - name: MergeFrom(DictionaryStep) - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_MergeFrom_Hi_Grpcs_DictionaryStep_ - commentId: M:Hi.Grpcs.DictionaryStep.MergeFrom(Hi.Grpcs.DictionaryStep) - fullName: Hi.Grpcs.DictionaryStep.MergeFrom(Hi.Grpcs.DictionaryStep) - nameWithType: DictionaryStep.MergeFrom(DictionaryStep) -- uid: Hi.Grpcs.DictionaryStep.MergeFrom* - name: MergeFrom - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_MergeFrom_ - commentId: Overload:Hi.Grpcs.DictionaryStep.MergeFrom - isSpec: "True" - fullName: Hi.Grpcs.DictionaryStep.MergeFrom - nameWithType: DictionaryStep.MergeFrom -- uid: Hi.Grpcs.DictionaryStep.Parser - name: Parser - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_Parser - commentId: P:Hi.Grpcs.DictionaryStep.Parser - fullName: Hi.Grpcs.DictionaryStep.Parser - nameWithType: DictionaryStep.Parser -- uid: Hi.Grpcs.DictionaryStep.Parser* - name: Parser - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_Parser_ - commentId: Overload:Hi.Grpcs.DictionaryStep.Parser - isSpec: "True" - fullName: Hi.Grpcs.DictionaryStep.Parser - nameWithType: DictionaryStep.Parser -- uid: Hi.Grpcs.DictionaryStep.ToString - name: ToString() - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_ToString - commentId: M:Hi.Grpcs.DictionaryStep.ToString - fullName: Hi.Grpcs.DictionaryStep.ToString() - nameWithType: DictionaryStep.ToString() -- uid: Hi.Grpcs.DictionaryStep.ToString* - name: ToString - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_ToString_ - commentId: Overload:Hi.Grpcs.DictionaryStep.ToString - isSpec: "True" - fullName: Hi.Grpcs.DictionaryStep.ToString - nameWithType: DictionaryStep.ToString -- uid: Hi.Grpcs.DictionaryStep.WriteTo(Google.Protobuf.CodedOutputStream) - name: WriteTo(CodedOutputStream) - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_WriteTo_Google_Protobuf_CodedOutputStream_ - commentId: M:Hi.Grpcs.DictionaryStep.WriteTo(Google.Protobuf.CodedOutputStream) - fullName: Hi.Grpcs.DictionaryStep.WriteTo(Google.Protobuf.CodedOutputStream) - nameWithType: DictionaryStep.WriteTo(CodedOutputStream) -- uid: Hi.Grpcs.DictionaryStep.WriteTo* - name: WriteTo - href: api/Hi.Grpcs.DictionaryStep.html#Hi_Grpcs_DictionaryStep_WriteTo_ - commentId: Overload:Hi.Grpcs.DictionaryStep.WriteTo - isSpec: "True" - fullName: Hi.Grpcs.DictionaryStep.WriteTo - nameWithType: DictionaryStep.WriteTo -- uid: Hi.Grpcs.PlayerService - name: PlayerService - href: api/Hi.Grpcs.PlayerService.html - commentId: T:Hi.Grpcs.PlayerService - fullName: Hi.Grpcs.PlayerService - nameWithType: PlayerService -- uid: Hi.Grpcs.PlayerService.BindService(Grpc.Core.ServiceBinderBase,Hi.Grpcs.PlayerService.PlayerServiceBase) - name: BindService(ServiceBinderBase, PlayerServiceBase) - href: api/Hi.Grpcs.PlayerService.html#Hi_Grpcs_PlayerService_BindService_Grpc_Core_ServiceBinderBase_Hi_Grpcs_PlayerService_PlayerServiceBase_ - commentId: M:Hi.Grpcs.PlayerService.BindService(Grpc.Core.ServiceBinderBase,Hi.Grpcs.PlayerService.PlayerServiceBase) - fullName: Hi.Grpcs.PlayerService.BindService(Grpc.Core.ServiceBinderBase, Hi.Grpcs.PlayerService.PlayerServiceBase) - nameWithType: PlayerService.BindService(ServiceBinderBase, PlayerService.PlayerServiceBase) -- uid: Hi.Grpcs.PlayerService.BindService(Hi.Grpcs.PlayerService.PlayerServiceBase) - name: BindService(PlayerServiceBase) - href: api/Hi.Grpcs.PlayerService.html#Hi_Grpcs_PlayerService_BindService_Hi_Grpcs_PlayerService_PlayerServiceBase_ - commentId: M:Hi.Grpcs.PlayerService.BindService(Hi.Grpcs.PlayerService.PlayerServiceBase) - fullName: Hi.Grpcs.PlayerService.BindService(Hi.Grpcs.PlayerService.PlayerServiceBase) - nameWithType: PlayerService.BindService(PlayerService.PlayerServiceBase) -- uid: Hi.Grpcs.PlayerService.BindService* - name: BindService - href: api/Hi.Grpcs.PlayerService.html#Hi_Grpcs_PlayerService_BindService_ - commentId: Overload:Hi.Grpcs.PlayerService.BindService - isSpec: "True" - fullName: Hi.Grpcs.PlayerService.BindService - nameWithType: PlayerService.BindService -- uid: Hi.Grpcs.PlayerService.Descriptor - name: Descriptor - href: api/Hi.Grpcs.PlayerService.html#Hi_Grpcs_PlayerService_Descriptor - commentId: P:Hi.Grpcs.PlayerService.Descriptor - fullName: Hi.Grpcs.PlayerService.Descriptor - nameWithType: PlayerService.Descriptor -- uid: Hi.Grpcs.PlayerService.Descriptor* - name: Descriptor - href: api/Hi.Grpcs.PlayerService.html#Hi_Grpcs_PlayerService_Descriptor_ - commentId: Overload:Hi.Grpcs.PlayerService.Descriptor - isSpec: "True" - fullName: Hi.Grpcs.PlayerService.Descriptor - nameWithType: PlayerService.Descriptor -- uid: Hi.Grpcs.PlayerService.PlayerServiceBase - name: PlayerService.PlayerServiceBase - href: api/Hi.Grpcs.PlayerService.PlayerServiceBase.html - commentId: T:Hi.Grpcs.PlayerService.PlayerServiceBase - fullName: Hi.Grpcs.PlayerService.PlayerServiceBase - nameWithType: PlayerService.PlayerServiceBase -- uid: Hi.Grpcs.PlayerService.PlayerServiceBase.Pause(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.ServerCallContext) - name: Pause(Empty, ServerCallContext) - href: api/Hi.Grpcs.PlayerService.PlayerServiceBase.html#Hi_Grpcs_PlayerService_PlayerServiceBase_Pause_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_ServerCallContext_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceBase.Pause(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.ServerCallContext) - fullName: Hi.Grpcs.PlayerService.PlayerServiceBase.Pause(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.ServerCallContext) - nameWithType: PlayerService.PlayerServiceBase.Pause(Empty, ServerCallContext) -- uid: Hi.Grpcs.PlayerService.PlayerServiceBase.Pause* - name: Pause - href: api/Hi.Grpcs.PlayerService.PlayerServiceBase.html#Hi_Grpcs_PlayerService_PlayerServiceBase_Pause_ - commentId: Overload:Hi.Grpcs.PlayerService.PlayerServiceBase.Pause - isSpec: "True" - fullName: Hi.Grpcs.PlayerService.PlayerServiceBase.Pause - nameWithType: PlayerService.PlayerServiceBase.Pause -- uid: Hi.Grpcs.PlayerService.PlayerServiceBase.Reset(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.ServerCallContext) - name: Reset(Empty, ServerCallContext) - href: api/Hi.Grpcs.PlayerService.PlayerServiceBase.html#Hi_Grpcs_PlayerService_PlayerServiceBase_Reset_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_ServerCallContext_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceBase.Reset(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.ServerCallContext) - fullName: Hi.Grpcs.PlayerService.PlayerServiceBase.Reset(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.ServerCallContext) - nameWithType: PlayerService.PlayerServiceBase.Reset(Empty, ServerCallContext) -- uid: Hi.Grpcs.PlayerService.PlayerServiceBase.Reset* - name: Reset - href: api/Hi.Grpcs.PlayerService.PlayerServiceBase.html#Hi_Grpcs_PlayerService_PlayerServiceBase_Reset_ - commentId: Overload:Hi.Grpcs.PlayerService.PlayerServiceBase.Reset - isSpec: "True" - fullName: Hi.Grpcs.PlayerService.PlayerServiceBase.Reset - nameWithType: PlayerService.PlayerServiceBase.Reset -- uid: Hi.Grpcs.PlayerService.PlayerServiceBase.Resume(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.ServerCallContext) - name: Resume(Empty, ServerCallContext) - href: api/Hi.Grpcs.PlayerService.PlayerServiceBase.html#Hi_Grpcs_PlayerService_PlayerServiceBase_Resume_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_ServerCallContext_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceBase.Resume(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.ServerCallContext) - fullName: Hi.Grpcs.PlayerService.PlayerServiceBase.Resume(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.ServerCallContext) - nameWithType: PlayerService.PlayerServiceBase.Resume(Empty, ServerCallContext) -- uid: Hi.Grpcs.PlayerService.PlayerServiceBase.Resume* - name: Resume - href: api/Hi.Grpcs.PlayerService.PlayerServiceBase.html#Hi_Grpcs_PlayerService_PlayerServiceBase_Resume_ - commentId: Overload:Hi.Grpcs.PlayerService.PlayerServiceBase.Resume - isSpec: "True" - fullName: Hi.Grpcs.PlayerService.PlayerServiceBase.Resume - nameWithType: PlayerService.PlayerServiceBase.Resume -- uid: Hi.Grpcs.PlayerService.PlayerServiceBase.Start(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.ServerCallContext) - name: Start(Empty, ServerCallContext) - href: api/Hi.Grpcs.PlayerService.PlayerServiceBase.html#Hi_Grpcs_PlayerService_PlayerServiceBase_Start_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_ServerCallContext_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceBase.Start(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.ServerCallContext) - fullName: Hi.Grpcs.PlayerService.PlayerServiceBase.Start(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.ServerCallContext) - nameWithType: PlayerService.PlayerServiceBase.Start(Empty, ServerCallContext) -- uid: Hi.Grpcs.PlayerService.PlayerServiceBase.Start* - name: Start - href: api/Hi.Grpcs.PlayerService.PlayerServiceBase.html#Hi_Grpcs_PlayerService_PlayerServiceBase_Start_ - commentId: Overload:Hi.Grpcs.PlayerService.PlayerServiceBase.Start - isSpec: "True" - fullName: Hi.Grpcs.PlayerService.PlayerServiceBase.Start - nameWithType: PlayerService.PlayerServiceBase.Start -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient - name: PlayerService.PlayerServiceClient - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html - commentId: T:Hi.Grpcs.PlayerService.PlayerServiceClient - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient - nameWithType: PlayerService.PlayerServiceClient -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.#ctor - name: PlayerServiceClient() - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient__ctor - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.#ctor - name.vb: New() - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.PlayerServiceClient() - fullName.vb: Hi.Grpcs.PlayerService.PlayerServiceClient.New() - nameWithType: PlayerService.PlayerServiceClient.PlayerServiceClient() - nameWithType.vb: PlayerService.PlayerServiceClient.New() -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.#ctor(Grpc.Core.CallInvoker) - name: PlayerServiceClient(CallInvoker) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient__ctor_Grpc_Core_CallInvoker_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.#ctor(Grpc.Core.CallInvoker) - name.vb: New(CallInvoker) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.PlayerServiceClient(Grpc.Core.CallInvoker) - fullName.vb: Hi.Grpcs.PlayerService.PlayerServiceClient.New(Grpc.Core.CallInvoker) - nameWithType: PlayerService.PlayerServiceClient.PlayerServiceClient(CallInvoker) - nameWithType.vb: PlayerService.PlayerServiceClient.New(CallInvoker) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.#ctor(Grpc.Core.ChannelBase) - name: PlayerServiceClient(ChannelBase) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient__ctor_Grpc_Core_ChannelBase_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.#ctor(Grpc.Core.ChannelBase) - name.vb: New(ChannelBase) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.PlayerServiceClient(Grpc.Core.ChannelBase) - fullName.vb: Hi.Grpcs.PlayerService.PlayerServiceClient.New(Grpc.Core.ChannelBase) - nameWithType: PlayerService.PlayerServiceClient.PlayerServiceClient(ChannelBase) - nameWithType.vb: PlayerService.PlayerServiceClient.New(ChannelBase) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.#ctor(Grpc.Core.ClientBase.ClientBaseConfiguration) - name: PlayerServiceClient(ClientBaseConfiguration) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient__ctor_Grpc_Core_ClientBase_ClientBaseConfiguration_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.#ctor(Grpc.Core.ClientBase.ClientBaseConfiguration) - name.vb: New(ClientBaseConfiguration) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.PlayerServiceClient(Grpc.Core.ClientBase.ClientBaseConfiguration) - fullName.vb: Hi.Grpcs.PlayerService.PlayerServiceClient.New(Grpc.Core.ClientBase.ClientBaseConfiguration) - nameWithType: PlayerService.PlayerServiceClient.PlayerServiceClient(ClientBase.ClientBaseConfiguration) - nameWithType.vb: PlayerService.PlayerServiceClient.New(ClientBase.ClientBaseConfiguration) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.#ctor* - name: PlayerServiceClient - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient__ctor_ - commentId: Overload:Hi.Grpcs.PlayerService.PlayerServiceClient.#ctor - isSpec: "True" - name.vb: New - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.PlayerServiceClient - fullName.vb: Hi.Grpcs.PlayerService.PlayerServiceClient.New - nameWithType: PlayerService.PlayerServiceClient.PlayerServiceClient - nameWithType.vb: PlayerService.PlayerServiceClient.New -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.NewInstance(Grpc.Core.ClientBase.ClientBaseConfiguration) - name: NewInstance(ClientBaseConfiguration) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_NewInstance_Grpc_Core_ClientBase_ClientBaseConfiguration_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.NewInstance(Grpc.Core.ClientBase.ClientBaseConfiguration) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.NewInstance(Grpc.Core.ClientBase.ClientBaseConfiguration) - nameWithType: PlayerService.PlayerServiceClient.NewInstance(ClientBase.ClientBaseConfiguration) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.NewInstance* - name: NewInstance - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_NewInstance_ - commentId: Overload:Hi.Grpcs.PlayerService.PlayerServiceClient.NewInstance - isSpec: "True" - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.NewInstance - nameWithType: PlayerService.PlayerServiceClient.NewInstance -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.Pause(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - name: Pause(Empty, CallOptions) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_Pause_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_CallOptions_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.Pause(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.Pause(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.CallOptions) - nameWithType: PlayerService.PlayerServiceClient.Pause(Empty, CallOptions) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.Pause(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name: Pause(Empty, Metadata, DateTime?, CancellationToken) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_Pause_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_Metadata_System_Nullable_System_DateTime__System_Threading_CancellationToken_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.Pause(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name.vb: Pause(Empty, Metadata, Date?, CancellationToken) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.Pause(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, System.DateTime?, System.Threading.CancellationToken) - fullName.vb: Hi.Grpcs.PlayerService.PlayerServiceClient.Pause(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, Date?, System.Threading.CancellationToken) - nameWithType: PlayerService.PlayerServiceClient.Pause(Empty, Metadata, DateTime?, CancellationToken) - nameWithType.vb: PlayerService.PlayerServiceClient.Pause(Empty, Metadata, Date?, CancellationToken) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.Pause* - name: Pause - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_Pause_ - commentId: Overload:Hi.Grpcs.PlayerService.PlayerServiceClient.Pause - isSpec: "True" - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.Pause - nameWithType: PlayerService.PlayerServiceClient.Pause -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.PauseAsync(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - name: PauseAsync(Empty, CallOptions) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_PauseAsync_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_CallOptions_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.PauseAsync(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.PauseAsync(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.CallOptions) - nameWithType: PlayerService.PlayerServiceClient.PauseAsync(Empty, CallOptions) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.PauseAsync(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name: PauseAsync(Empty, Metadata, DateTime?, CancellationToken) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_PauseAsync_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_Metadata_System_Nullable_System_DateTime__System_Threading_CancellationToken_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.PauseAsync(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name.vb: PauseAsync(Empty, Metadata, Date?, CancellationToken) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.PauseAsync(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, System.DateTime?, System.Threading.CancellationToken) - fullName.vb: Hi.Grpcs.PlayerService.PlayerServiceClient.PauseAsync(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, Date?, System.Threading.CancellationToken) - nameWithType: PlayerService.PlayerServiceClient.PauseAsync(Empty, Metadata, DateTime?, CancellationToken) - nameWithType.vb: PlayerService.PlayerServiceClient.PauseAsync(Empty, Metadata, Date?, CancellationToken) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.PauseAsync* - name: PauseAsync - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_PauseAsync_ - commentId: Overload:Hi.Grpcs.PlayerService.PlayerServiceClient.PauseAsync - isSpec: "True" - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.PauseAsync - nameWithType: PlayerService.PlayerServiceClient.PauseAsync -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.Reset(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - name: Reset(Empty, CallOptions) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_Reset_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_CallOptions_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.Reset(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.Reset(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.CallOptions) - nameWithType: PlayerService.PlayerServiceClient.Reset(Empty, CallOptions) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.Reset(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name: Reset(Empty, Metadata, DateTime?, CancellationToken) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_Reset_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_Metadata_System_Nullable_System_DateTime__System_Threading_CancellationToken_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.Reset(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name.vb: Reset(Empty, Metadata, Date?, CancellationToken) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.Reset(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, System.DateTime?, System.Threading.CancellationToken) - fullName.vb: Hi.Grpcs.PlayerService.PlayerServiceClient.Reset(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, Date?, System.Threading.CancellationToken) - nameWithType: PlayerService.PlayerServiceClient.Reset(Empty, Metadata, DateTime?, CancellationToken) - nameWithType.vb: PlayerService.PlayerServiceClient.Reset(Empty, Metadata, Date?, CancellationToken) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.Reset* - name: Reset - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_Reset_ - commentId: Overload:Hi.Grpcs.PlayerService.PlayerServiceClient.Reset - isSpec: "True" - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.Reset - nameWithType: PlayerService.PlayerServiceClient.Reset -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.ResetAsync(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - name: ResetAsync(Empty, CallOptions) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_ResetAsync_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_CallOptions_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.ResetAsync(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.ResetAsync(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.CallOptions) - nameWithType: PlayerService.PlayerServiceClient.ResetAsync(Empty, CallOptions) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.ResetAsync(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name: ResetAsync(Empty, Metadata, DateTime?, CancellationToken) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_ResetAsync_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_Metadata_System_Nullable_System_DateTime__System_Threading_CancellationToken_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.ResetAsync(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name.vb: ResetAsync(Empty, Metadata, Date?, CancellationToken) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.ResetAsync(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, System.DateTime?, System.Threading.CancellationToken) - fullName.vb: Hi.Grpcs.PlayerService.PlayerServiceClient.ResetAsync(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, Date?, System.Threading.CancellationToken) - nameWithType: PlayerService.PlayerServiceClient.ResetAsync(Empty, Metadata, DateTime?, CancellationToken) - nameWithType.vb: PlayerService.PlayerServiceClient.ResetAsync(Empty, Metadata, Date?, CancellationToken) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.ResetAsync* - name: ResetAsync - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_ResetAsync_ - commentId: Overload:Hi.Grpcs.PlayerService.PlayerServiceClient.ResetAsync - isSpec: "True" - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.ResetAsync - nameWithType: PlayerService.PlayerServiceClient.ResetAsync -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.Resume(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - name: Resume(Empty, CallOptions) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_Resume_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_CallOptions_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.Resume(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.Resume(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.CallOptions) - nameWithType: PlayerService.PlayerServiceClient.Resume(Empty, CallOptions) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.Resume(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name: Resume(Empty, Metadata, DateTime?, CancellationToken) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_Resume_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_Metadata_System_Nullable_System_DateTime__System_Threading_CancellationToken_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.Resume(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name.vb: Resume(Empty, Metadata, Date?, CancellationToken) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.Resume(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, System.DateTime?, System.Threading.CancellationToken) - fullName.vb: Hi.Grpcs.PlayerService.PlayerServiceClient.Resume(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, Date?, System.Threading.CancellationToken) - nameWithType: PlayerService.PlayerServiceClient.Resume(Empty, Metadata, DateTime?, CancellationToken) - nameWithType.vb: PlayerService.PlayerServiceClient.Resume(Empty, Metadata, Date?, CancellationToken) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.Resume* - name: Resume - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_Resume_ - commentId: Overload:Hi.Grpcs.PlayerService.PlayerServiceClient.Resume - isSpec: "True" - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.Resume - nameWithType: PlayerService.PlayerServiceClient.Resume -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.ResumeAsync(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - name: ResumeAsync(Empty, CallOptions) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_ResumeAsync_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_CallOptions_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.ResumeAsync(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.ResumeAsync(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.CallOptions) - nameWithType: PlayerService.PlayerServiceClient.ResumeAsync(Empty, CallOptions) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.ResumeAsync(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name: ResumeAsync(Empty, Metadata, DateTime?, CancellationToken) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_ResumeAsync_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_Metadata_System_Nullable_System_DateTime__System_Threading_CancellationToken_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.ResumeAsync(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name.vb: ResumeAsync(Empty, Metadata, Date?, CancellationToken) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.ResumeAsync(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, System.DateTime?, System.Threading.CancellationToken) - fullName.vb: Hi.Grpcs.PlayerService.PlayerServiceClient.ResumeAsync(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, Date?, System.Threading.CancellationToken) - nameWithType: PlayerService.PlayerServiceClient.ResumeAsync(Empty, Metadata, DateTime?, CancellationToken) - nameWithType.vb: PlayerService.PlayerServiceClient.ResumeAsync(Empty, Metadata, Date?, CancellationToken) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.ResumeAsync* - name: ResumeAsync - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_ResumeAsync_ - commentId: Overload:Hi.Grpcs.PlayerService.PlayerServiceClient.ResumeAsync - isSpec: "True" - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.ResumeAsync - nameWithType: PlayerService.PlayerServiceClient.ResumeAsync -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.Start(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - name: Start(Empty, CallOptions) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_Start_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_CallOptions_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.Start(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.Start(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.CallOptions) - nameWithType: PlayerService.PlayerServiceClient.Start(Empty, CallOptions) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.Start(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name: Start(Empty, Metadata, DateTime?, CancellationToken) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_Start_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_Metadata_System_Nullable_System_DateTime__System_Threading_CancellationToken_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.Start(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name.vb: Start(Empty, Metadata, Date?, CancellationToken) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.Start(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, System.DateTime?, System.Threading.CancellationToken) - fullName.vb: Hi.Grpcs.PlayerService.PlayerServiceClient.Start(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, Date?, System.Threading.CancellationToken) - nameWithType: PlayerService.PlayerServiceClient.Start(Empty, Metadata, DateTime?, CancellationToken) - nameWithType.vb: PlayerService.PlayerServiceClient.Start(Empty, Metadata, Date?, CancellationToken) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.Start* - name: Start - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_Start_ - commentId: Overload:Hi.Grpcs.PlayerService.PlayerServiceClient.Start - isSpec: "True" - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.Start - nameWithType: PlayerService.PlayerServiceClient.Start -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.StartAsync(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - name: StartAsync(Empty, CallOptions) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_StartAsync_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_CallOptions_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.StartAsync(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.CallOptions) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.StartAsync(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.CallOptions) - nameWithType: PlayerService.PlayerServiceClient.StartAsync(Empty, CallOptions) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.StartAsync(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name: StartAsync(Empty, Metadata, DateTime?, CancellationToken) - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_StartAsync_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_Metadata_System_Nullable_System_DateTime__System_Threading_CancellationToken_ - commentId: M:Hi.Grpcs.PlayerService.PlayerServiceClient.StartAsync(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name.vb: StartAsync(Empty, Metadata, Date?, CancellationToken) - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.StartAsync(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, System.DateTime?, System.Threading.CancellationToken) - fullName.vb: Hi.Grpcs.PlayerService.PlayerServiceClient.StartAsync(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.Metadata, Date?, System.Threading.CancellationToken) - nameWithType: PlayerService.PlayerServiceClient.StartAsync(Empty, Metadata, DateTime?, CancellationToken) - nameWithType.vb: PlayerService.PlayerServiceClient.StartAsync(Empty, Metadata, Date?, CancellationToken) -- uid: Hi.Grpcs.PlayerService.PlayerServiceClient.StartAsync* - name: StartAsync - href: api/Hi.Grpcs.PlayerService.PlayerServiceClient.html#Hi_Grpcs_PlayerService_PlayerServiceClient_StartAsync_ - commentId: Overload:Hi.Grpcs.PlayerService.PlayerServiceClient.StartAsync - isSpec: "True" - fullName: Hi.Grpcs.PlayerService.PlayerServiceClient.StartAsync - nameWithType: PlayerService.PlayerServiceClient.StartAsync -- uid: Hi.Grpcs.PlayerServiceReflection - name: PlayerServiceReflection - href: api/Hi.Grpcs.PlayerServiceReflection.html - commentId: T:Hi.Grpcs.PlayerServiceReflection - fullName: Hi.Grpcs.PlayerServiceReflection - nameWithType: PlayerServiceReflection -- uid: Hi.Grpcs.PlayerServiceReflection.Descriptor - name: Descriptor - href: api/Hi.Grpcs.PlayerServiceReflection.html#Hi_Grpcs_PlayerServiceReflection_Descriptor - commentId: P:Hi.Grpcs.PlayerServiceReflection.Descriptor - fullName: Hi.Grpcs.PlayerServiceReflection.Descriptor - nameWithType: PlayerServiceReflection.Descriptor -- uid: Hi.Grpcs.PlayerServiceReflection.Descriptor* - name: Descriptor - href: api/Hi.Grpcs.PlayerServiceReflection.html#Hi_Grpcs_PlayerServiceReflection_Descriptor_ - commentId: Overload:Hi.Grpcs.PlayerServiceReflection.Descriptor - isSpec: "True" - fullName: Hi.Grpcs.PlayerServiceReflection.Descriptor - nameWithType: PlayerServiceReflection.Descriptor -- uid: Hi.Grpcs.PlayerServiceRunner - name: PlayerServiceRunner - href: api/Hi.Grpcs.PlayerServiceRunner.html - commentId: T:Hi.Grpcs.PlayerServiceRunner - fullName: Hi.Grpcs.PlayerServiceRunner - nameWithType: PlayerServiceRunner -- uid: Hi.Grpcs.PlayerServiceRunner.#ctor(Hi.MachiningProcs.LocalProjectService) - name: PlayerServiceRunner(LocalProjectService) - href: api/Hi.Grpcs.PlayerServiceRunner.html#Hi_Grpcs_PlayerServiceRunner__ctor_Hi_MachiningProcs_LocalProjectService_ - commentId: M:Hi.Grpcs.PlayerServiceRunner.#ctor(Hi.MachiningProcs.LocalProjectService) - name.vb: New(LocalProjectService) - fullName: Hi.Grpcs.PlayerServiceRunner.PlayerServiceRunner(Hi.MachiningProcs.LocalProjectService) - fullName.vb: Hi.Grpcs.PlayerServiceRunner.New(Hi.MachiningProcs.LocalProjectService) - nameWithType: PlayerServiceRunner.PlayerServiceRunner(LocalProjectService) - nameWithType.vb: PlayerServiceRunner.New(LocalProjectService) -- uid: Hi.Grpcs.PlayerServiceRunner.#ctor* - name: PlayerServiceRunner - href: api/Hi.Grpcs.PlayerServiceRunner.html#Hi_Grpcs_PlayerServiceRunner__ctor_ - commentId: Overload:Hi.Grpcs.PlayerServiceRunner.#ctor - isSpec: "True" - name.vb: New - fullName: Hi.Grpcs.PlayerServiceRunner.PlayerServiceRunner - fullName.vb: Hi.Grpcs.PlayerServiceRunner.New - nameWithType: PlayerServiceRunner.PlayerServiceRunner - nameWithType.vb: PlayerServiceRunner.New -- uid: Hi.Grpcs.PlayerServiceRunner.Pause(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.ServerCallContext) - name: Pause(Empty, ServerCallContext) - href: api/Hi.Grpcs.PlayerServiceRunner.html#Hi_Grpcs_PlayerServiceRunner_Pause_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_ServerCallContext_ - commentId: M:Hi.Grpcs.PlayerServiceRunner.Pause(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.ServerCallContext) - fullName: Hi.Grpcs.PlayerServiceRunner.Pause(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.ServerCallContext) - nameWithType: PlayerServiceRunner.Pause(Empty, ServerCallContext) -- uid: Hi.Grpcs.PlayerServiceRunner.Pause* - name: Pause - href: api/Hi.Grpcs.PlayerServiceRunner.html#Hi_Grpcs_PlayerServiceRunner_Pause_ - commentId: Overload:Hi.Grpcs.PlayerServiceRunner.Pause - isSpec: "True" - fullName: Hi.Grpcs.PlayerServiceRunner.Pause - nameWithType: PlayerServiceRunner.Pause -- uid: Hi.Grpcs.PlayerServiceRunner.Reset(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.ServerCallContext) - name: Reset(Empty, ServerCallContext) - href: api/Hi.Grpcs.PlayerServiceRunner.html#Hi_Grpcs_PlayerServiceRunner_Reset_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_ServerCallContext_ - commentId: M:Hi.Grpcs.PlayerServiceRunner.Reset(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.ServerCallContext) - fullName: Hi.Grpcs.PlayerServiceRunner.Reset(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.ServerCallContext) - nameWithType: PlayerServiceRunner.Reset(Empty, ServerCallContext) -- uid: Hi.Grpcs.PlayerServiceRunner.Reset* - name: Reset - href: api/Hi.Grpcs.PlayerServiceRunner.html#Hi_Grpcs_PlayerServiceRunner_Reset_ - commentId: Overload:Hi.Grpcs.PlayerServiceRunner.Reset - isSpec: "True" - fullName: Hi.Grpcs.PlayerServiceRunner.Reset - nameWithType: PlayerServiceRunner.Reset -- uid: Hi.Grpcs.PlayerServiceRunner.Resume(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.ServerCallContext) - name: Resume(Empty, ServerCallContext) - href: api/Hi.Grpcs.PlayerServiceRunner.html#Hi_Grpcs_PlayerServiceRunner_Resume_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_ServerCallContext_ - commentId: M:Hi.Grpcs.PlayerServiceRunner.Resume(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.ServerCallContext) - fullName: Hi.Grpcs.PlayerServiceRunner.Resume(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.ServerCallContext) - nameWithType: PlayerServiceRunner.Resume(Empty, ServerCallContext) -- uid: Hi.Grpcs.PlayerServiceRunner.Resume* - name: Resume - href: api/Hi.Grpcs.PlayerServiceRunner.html#Hi_Grpcs_PlayerServiceRunner_Resume_ - commentId: Overload:Hi.Grpcs.PlayerServiceRunner.Resume - isSpec: "True" - fullName: Hi.Grpcs.PlayerServiceRunner.Resume - nameWithType: PlayerServiceRunner.Resume -- uid: Hi.Grpcs.PlayerServiceRunner.Start(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.ServerCallContext) - name: Start(Empty, ServerCallContext) - href: api/Hi.Grpcs.PlayerServiceRunner.html#Hi_Grpcs_PlayerServiceRunner_Start_Google_Protobuf_WellKnownTypes_Empty_Grpc_Core_ServerCallContext_ - commentId: M:Hi.Grpcs.PlayerServiceRunner.Start(Google.Protobuf.WellKnownTypes.Empty,Grpc.Core.ServerCallContext) - fullName: Hi.Grpcs.PlayerServiceRunner.Start(Google.Protobuf.WellKnownTypes.Empty, Grpc.Core.ServerCallContext) - nameWithType: PlayerServiceRunner.Start(Empty, ServerCallContext) -- uid: Hi.Grpcs.PlayerServiceRunner.Start* - name: Start - href: api/Hi.Grpcs.PlayerServiceRunner.html#Hi_Grpcs_PlayerServiceRunner_Start_ - commentId: Overload:Hi.Grpcs.PlayerServiceRunner.Start - isSpec: "True" - fullName: Hi.Grpcs.PlayerServiceRunner.Start - nameWithType: PlayerServiceRunner.Start - uid: Hi.HiNcKits name: Hi.HiNcKits href: api/Hi.HiNcKits.html @@ -82041,6 +81162,19 @@ references: commentId: T:Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil fullName: Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil nameWithType: MachiningEquipmentUtil +- uid: Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.AlignWorkpieceProgramZeroToIso(Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment,Hi.Geom.Vec3d) + name: AlignWorkpieceProgramZeroToIso(IMachiningEquipment, Vec3d) + href: api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.html#Hi_Machining_MachiningEquipmentUtils_MachiningEquipmentUtil_AlignWorkpieceProgramZeroToIso_Hi_Machining_MachiningEquipmentUtils_IMachiningEquipment_Hi_Geom_Vec3d_ + commentId: M:Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.AlignWorkpieceProgramZeroToIso(Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment,Hi.Geom.Vec3d) + fullName: Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.AlignWorkpieceProgramZeroToIso(Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment, Hi.Geom.Vec3d) + nameWithType: MachiningEquipmentUtil.AlignWorkpieceProgramZeroToIso(IMachiningEquipment, Vec3d) +- uid: Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.AlignWorkpieceProgramZeroToIso* + name: AlignWorkpieceProgramZeroToIso + href: api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.html#Hi_Machining_MachiningEquipmentUtils_MachiningEquipmentUtil_AlignWorkpieceProgramZeroToIso_ + commentId: Overload:Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.AlignWorkpieceProgramZeroToIso + isSpec: "True" + fullName: Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.AlignWorkpieceProgramZeroToIso + nameWithType: MachiningEquipmentUtil.AlignWorkpieceProgramZeroToIso - uid: Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.GetIsoCoordinatePosition(Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment,Hi.Geom.Vec3d) name: GetIsoCoordinatePosition(IMachiningEquipment, Vec3d) href: api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.html#Hi_Machining_MachiningEquipmentUtils_MachiningEquipmentUtil_GetIsoCoordinatePosition_Hi_Machining_MachiningEquipmentUtils_IMachiningEquipment_Hi_Geom_Vec3d_ @@ -84904,6 +84038,19 @@ references: isSpec: "True" fullName: Hi.MachiningProcs.MachiningProject.SoftNcRunner nameWithType: MachiningProject.SoftNcRunner +- uid: Hi.MachiningProcs.MachiningProject.SoftNcRunnerFile + name: SoftNcRunnerFile + href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_SoftNcRunnerFile + commentId: P:Hi.MachiningProcs.MachiningProject.SoftNcRunnerFile + fullName: Hi.MachiningProcs.MachiningProject.SoftNcRunnerFile + nameWithType: MachiningProject.SoftNcRunnerFile +- uid: Hi.MachiningProcs.MachiningProject.SoftNcRunnerFile* + name: SoftNcRunnerFile + href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_SoftNcRunnerFile_ + commentId: Overload:Hi.MachiningProcs.MachiningProject.SoftNcRunnerFile + isSpec: "True" + fullName: Hi.MachiningProcs.MachiningProject.SoftNcRunnerFile + nameWithType: MachiningProject.SoftNcRunnerFile - uid: Hi.MachiningProcs.MachiningProject.TimeMapping name: TimeMapping href: api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_TimeMapping @@ -86304,6 +85451,22 @@ references: isSpec: "True" fullName: Hi.MachiningProcs.SessionShell.AdjustedFeedPerCycle nameWithType: SessionShell.AdjustedFeedPerCycle +- uid: Hi.MachiningProcs.SessionShell.AlignWorkpieceProgramZeroToIso(System.String) + name: AlignWorkpieceProgramZeroToIso(string) + href: api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_AlignWorkpieceProgramZeroToIso_System_String_ + commentId: M:Hi.MachiningProcs.SessionShell.AlignWorkpieceProgramZeroToIso(System.String) + name.vb: AlignWorkpieceProgramZeroToIso(String) + fullName: Hi.MachiningProcs.SessionShell.AlignWorkpieceProgramZeroToIso(string) + fullName.vb: Hi.MachiningProcs.SessionShell.AlignWorkpieceProgramZeroToIso(String) + nameWithType: SessionShell.AlignWorkpieceProgramZeroToIso(string) + nameWithType.vb: SessionShell.AlignWorkpieceProgramZeroToIso(String) +- uid: Hi.MachiningProcs.SessionShell.AlignWorkpieceProgramZeroToIso* + name: AlignWorkpieceProgramZeroToIso + href: api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_AlignWorkpieceProgramZeroToIso_ + commentId: Overload:Hi.MachiningProcs.SessionShell.AlignWorkpieceProgramZeroToIso + isSpec: "True" + fullName: Hi.MachiningProcs.SessionShell.AlignWorkpieceProgramZeroToIso + nameWithType: SessionShell.AlignWorkpieceProgramZeroToIso - uid: Hi.MachiningProcs.SessionShell.AppendMessagesToFile(System.String,System.String[]) name: AppendMessagesToFile(string, params string[]) href: api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_AppendMessagesToFile_System_String_System_String___ @@ -89944,6 +89107,41 @@ references: isSpec: "True" fullName: Hi.MachiningSteps.IMachiningService.TimeMapping nameWithType: IMachiningService.TimeMapping +- uid: Hi.MachiningSteps.IStepPropertyAccessHost + name: IStepPropertyAccessHost + href: api/Hi.MachiningSteps.IStepPropertyAccessHost.html + commentId: T:Hi.MachiningSteps.IStepPropertyAccessHost + fullName: Hi.MachiningSteps.IStepPropertyAccessHost + nameWithType: IStepPropertyAccessHost +- uid: Hi.MachiningSteps.IStepPropertyAccessHost.RegisterStepVariable(System.String,System.String,System.String,System.String,System.Func{Hi.MachiningSteps.MachiningStep,System.Object}) + name: RegisterStepVariable(string, string, string, string, Func) + href: api/Hi.MachiningSteps.IStepPropertyAccessHost.html#Hi_MachiningSteps_IStepPropertyAccessHost_RegisterStepVariable_System_String_System_String_System_String_System_String_System_Func_Hi_MachiningSteps_MachiningStep_System_Object__ + commentId: M:Hi.MachiningSteps.IStepPropertyAccessHost.RegisterStepVariable(System.String,System.String,System.String,System.String,System.Func{Hi.MachiningSteps.MachiningStep,System.Object}) + name.vb: RegisterStepVariable(String, String, String, String, Func(Of MachiningStep, Object)) + fullName: Hi.MachiningSteps.IStepPropertyAccessHost.RegisterStepVariable(string, string, string, string, System.Func) + fullName.vb: Hi.MachiningSteps.IStepPropertyAccessHost.RegisterStepVariable(String, String, String, String, System.Func(Of Hi.MachiningSteps.MachiningStep, Object)) + nameWithType: IStepPropertyAccessHost.RegisterStepVariable(string, string, string, string, Func) + nameWithType.vb: IStepPropertyAccessHost.RegisterStepVariable(String, String, String, String, Func(Of MachiningStep, Object)) +- uid: Hi.MachiningSteps.IStepPropertyAccessHost.RegisterStepVariable* + name: RegisterStepVariable + href: api/Hi.MachiningSteps.IStepPropertyAccessHost.html#Hi_MachiningSteps_IStepPropertyAccessHost_RegisterStepVariable_ + commentId: Overload:Hi.MachiningSteps.IStepPropertyAccessHost.RegisterStepVariable + isSpec: "True" + fullName: Hi.MachiningSteps.IStepPropertyAccessHost.RegisterStepVariable + nameWithType: IStepPropertyAccessHost.RegisterStepVariable +- uid: Hi.MachiningSteps.IStepPropertyAccessHost.StepPropertyAccessDictionary + name: StepPropertyAccessDictionary + href: api/Hi.MachiningSteps.IStepPropertyAccessHost.html#Hi_MachiningSteps_IStepPropertyAccessHost_StepPropertyAccessDictionary + commentId: P:Hi.MachiningSteps.IStepPropertyAccessHost.StepPropertyAccessDictionary + fullName: Hi.MachiningSteps.IStepPropertyAccessHost.StepPropertyAccessDictionary + nameWithType: IStepPropertyAccessHost.StepPropertyAccessDictionary +- uid: Hi.MachiningSteps.IStepPropertyAccessHost.StepPropertyAccessDictionary* + name: StepPropertyAccessDictionary + href: api/Hi.MachiningSteps.IStepPropertyAccessHost.html#Hi_MachiningSteps_IStepPropertyAccessHost_StepPropertyAccessDictionary_ + commentId: Overload:Hi.MachiningSteps.IStepPropertyAccessHost.StepPropertyAccessDictionary + isSpec: "True" + fullName: Hi.MachiningSteps.IStepPropertyAccessHost.StepPropertyAccessDictionary + nameWithType: IStepPropertyAccessHost.StepPropertyAccessDictionary - uid: Hi.MachiningSteps.MachineMotionStep name: MachineMotionStep href: api/Hi.MachiningSteps.MachineMotionStep.html @@ -122278,6 +121476,19 @@ references: isSpec: "True" fullName: Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.MaxIterationsPerTarget nameWithType: FanucGotoIterationDependency.MaxIterationsPerTarget +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.OnSessionReset + name: OnSessionReset() + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucGotoIterationDependency_OnSessionReset + commentId: M:Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.OnSessionReset + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.OnSessionReset() + nameWithType: FanucGotoIterationDependency.OnSessionReset() +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.OnSessionReset* + name: OnSessionReset + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucGotoIterationDependency_OnSessionReset_ + commentId: Overload:Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.OnSessionReset + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.OnSessionReset + nameWithType: FanucGotoIterationDependency.OnSessionReset - uid: Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.Reg(Hi.Common.XmlUtils.XFactory) name: Reg(XFactory) href: api/Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucGotoIterationDependency_Reg_Hi_Common_XmlUtils_XFactory_ @@ -122291,19 +121502,6 @@ references: isSpec: "True" fullName: Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.Reg nameWithType: FanucGotoIterationDependency.Reg -- uid: Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.Reset - name: Reset() - href: api/Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucGotoIterationDependency_Reset - commentId: M:Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.Reset - fullName: Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.Reset() - nameWithType: FanucGotoIterationDependency.Reset() -- uid: Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.Reset* - name: Reset - href: api/Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucGotoIterationDependency_Reset_ - commentId: Overload:Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.Reset - isSpec: "True" - fullName: Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.Reset - nameWithType: FanucGotoIterationDependency.Reset - uid: Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.XName name: XName href: api/Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucGotoIterationDependency_XName @@ -122979,6 +122177,127 @@ references: isSpec: "True" fullName: Hi.NcParsers.Dependencys.Fanuc.FanucToolOffsetVariableLookup.XName nameWithType: FanucToolOffsetVariableLookup.XName +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency + name: FanucWhileDoIterationDependency + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html + commentId: T:Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency + nameWithType: FanucWhileDoIterationDependency +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.#ctor + name: FanucWhileDoIterationDependency() + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucWhileDoIterationDependency__ctor + commentId: M:Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.#ctor + name.vb: New() + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.FanucWhileDoIterationDependency() + fullName.vb: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.New() + nameWithType: FanucWhileDoIterationDependency.FanucWhileDoIterationDependency() + nameWithType.vb: FanucWhileDoIterationDependency.New() +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.#ctor(System.Xml.Linq.XElement) + name: FanucWhileDoIterationDependency(XElement) + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucWhileDoIterationDependency__ctor_System_Xml_Linq_XElement_ + commentId: M:Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.#ctor(System.Xml.Linq.XElement) + name.vb: New(XElement) + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.FanucWhileDoIterationDependency(System.Xml.Linq.XElement) + fullName.vb: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.New(System.Xml.Linq.XElement) + nameWithType: FanucWhileDoIterationDependency.FanucWhileDoIterationDependency(XElement) + nameWithType.vb: FanucWhileDoIterationDependency.New(XElement) +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.#ctor* + name: FanucWhileDoIterationDependency + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucWhileDoIterationDependency__ctor_ + commentId: Overload:Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.#ctor + isSpec: "True" + name.vb: New + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.FanucWhileDoIterationDependency + fullName.vb: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.New + nameWithType: FanucWhileDoIterationDependency.FanucWhileDoIterationDependency + nameWithType.vb: FanucWhileDoIterationDependency.New +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.CountByLoop + name: CountByLoop + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucWhileDoIterationDependency_CountByLoop + commentId: P:Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.CountByLoop + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.CountByLoop + nameWithType: FanucWhileDoIterationDependency.CountByLoop +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.CountByLoop* + name: CountByLoop + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucWhileDoIterationDependency_CountByLoop_ + commentId: Overload:Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.CountByLoop + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.CountByLoop + nameWithType: FanucWhileDoIterationDependency.CountByLoop +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.DefaultMaxIterationsPerLoopId + name: DefaultMaxIterationsPerLoopId + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucWhileDoIterationDependency_DefaultMaxIterationsPerLoopId + commentId: F:Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.DefaultMaxIterationsPerLoopId + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.DefaultMaxIterationsPerLoopId + nameWithType: FanucWhileDoIterationDependency.DefaultMaxIterationsPerLoopId +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.MakeXmlSource(System.String,System.String,System.Boolean) + name: MakeXmlSource(string, string, bool) + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucWhileDoIterationDependency_MakeXmlSource_System_String_System_String_System_Boolean_ + commentId: M:Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.MakeXmlSource(System.String,System.String,System.Boolean) + name.vb: MakeXmlSource(String, String, Boolean) + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.MakeXmlSource(string, string, bool) + fullName.vb: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.MakeXmlSource(String, String, Boolean) + nameWithType: FanucWhileDoIterationDependency.MakeXmlSource(string, string, bool) + nameWithType.vb: FanucWhileDoIterationDependency.MakeXmlSource(String, String, Boolean) +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.MakeXmlSource* + name: MakeXmlSource + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucWhileDoIterationDependency_MakeXmlSource_ + commentId: Overload:Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.MakeXmlSource + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.MakeXmlSource + nameWithType: FanucWhileDoIterationDependency.MakeXmlSource +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.MaxIterationsPerLoopId + name: MaxIterationsPerLoopId + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucWhileDoIterationDependency_MaxIterationsPerLoopId + commentId: P:Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.MaxIterationsPerLoopId + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.MaxIterationsPerLoopId + nameWithType: FanucWhileDoIterationDependency.MaxIterationsPerLoopId +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.MaxIterationsPerLoopId* + name: MaxIterationsPerLoopId + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucWhileDoIterationDependency_MaxIterationsPerLoopId_ + commentId: Overload:Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.MaxIterationsPerLoopId + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.MaxIterationsPerLoopId + nameWithType: FanucWhileDoIterationDependency.MaxIterationsPerLoopId +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.OnSessionReset + name: OnSessionReset() + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucWhileDoIterationDependency_OnSessionReset + commentId: M:Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.OnSessionReset + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.OnSessionReset() + nameWithType: FanucWhileDoIterationDependency.OnSessionReset() +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.OnSessionReset* + name: OnSessionReset + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucWhileDoIterationDependency_OnSessionReset_ + commentId: Overload:Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.OnSessionReset + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.OnSessionReset + nameWithType: FanucWhileDoIterationDependency.OnSessionReset +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.Reg(Hi.Common.XmlUtils.XFactory) + name: Reg(XFactory) + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucWhileDoIterationDependency_Reg_Hi_Common_XmlUtils_XFactory_ + commentId: M:Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.Reg(Hi.Common.XmlUtils.XFactory) + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.Reg(Hi.Common.XmlUtils.XFactory) + nameWithType: FanucWhileDoIterationDependency.Reg(XFactory) +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.Reg* + name: Reg + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucWhileDoIterationDependency_Reg_ + commentId: Overload:Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.Reg + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.Reg + nameWithType: FanucWhileDoIterationDependency.Reg +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.XName + name: XName + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucWhileDoIterationDependency_XName + commentId: P:Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.XName + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.XName + nameWithType: FanucWhileDoIterationDependency.XName +- uid: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.XName* + name: XName + href: api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucWhileDoIterationDependency_XName_ + commentId: Overload:Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.XName + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.XName + nameWithType: FanucWhileDoIterationDependency.XName - uid: Hi.NcParsers.Dependencys.Fanuc.RetainedCommonVariableTable name: RetainedCommonVariableTable href: api/Hi.NcParsers.Dependencys.Fanuc.RetainedCommonVariableTable.html @@ -126108,6 +125427,19 @@ references: isSpec: "True" fullName: Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.MakeXmlSource nameWithType: FileIndexCounterDependency.MakeXmlSource +- uid: Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.OnSessionReset + name: OnSessionReset() + href: api/Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.html#Hi_NcParsers_Dependencys_SystemWired_FileIndexCounterDependency_OnSessionReset + commentId: M:Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.OnSessionReset + fullName: Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.OnSessionReset() + nameWithType: FileIndexCounterDependency.OnSessionReset() +- uid: Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.OnSessionReset* + name: OnSessionReset + href: api/Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.html#Hi_NcParsers_Dependencys_SystemWired_FileIndexCounterDependency_OnSessionReset_ + commentId: Overload:Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.OnSessionReset + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.OnSessionReset + nameWithType: FileIndexCounterDependency.OnSessionReset - uid: Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.Reg(Hi.Common.XmlUtils.XFactory) name: Reg(XFactory) href: api/Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.html#Hi_NcParsers_Dependencys_SystemWired_FileIndexCounterDependency_Reg_Hi_Common_XmlUtils_XFactory_ @@ -126121,19 +125453,6 @@ references: isSpec: "True" fullName: Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.Reg nameWithType: FileIndexCounterDependency.Reg -- uid: Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.Reset - name: Reset() - href: api/Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.html#Hi_NcParsers_Dependencys_SystemWired_FileIndexCounterDependency_Reset - commentId: M:Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.Reset - fullName: Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.Reset() - nameWithType: FileIndexCounterDependency.Reset() -- uid: Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.Reset* - name: Reset - href: api/Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.html#Hi_NcParsers_Dependencys_SystemWired_FileIndexCounterDependency_Reset_ - commentId: Overload:Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.Reset - isSpec: "True" - fullName: Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.Reset - nameWithType: FileIndexCounterDependency.Reset - uid: Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.XName name: XName href: api/Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.html#Hi_NcParsers_Dependencys_SystemWired_FileIndexCounterDependency_XName @@ -126147,6 +125466,108 @@ references: isSpec: "True" fullName: Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.XName nameWithType: FileIndexCounterDependency.XName +- uid: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency + name: MachiningServiceDependency + href: api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html + commentId: T:Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency + fullName: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency + nameWithType: MachiningServiceDependency +- uid: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.#ctor + name: MachiningServiceDependency() + href: api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html#Hi_NcParsers_Dependencys_SystemWired_MachiningServiceDependency__ctor + commentId: M:Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.#ctor + name.vb: New() + fullName: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.MachiningServiceDependency() + fullName.vb: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.New() + nameWithType: MachiningServiceDependency.MachiningServiceDependency() + nameWithType.vb: MachiningServiceDependency.New() +- uid: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.#ctor(System.Func{Hi.MachiningSteps.IMachiningService}) + name: MachiningServiceDependency(Func) + href: api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html#Hi_NcParsers_Dependencys_SystemWired_MachiningServiceDependency__ctor_System_Func_Hi_MachiningSteps_IMachiningService__ + commentId: M:Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.#ctor(System.Func{Hi.MachiningSteps.IMachiningService}) + name.vb: New(Func(Of IMachiningService)) + fullName: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.MachiningServiceDependency(System.Func) + fullName.vb: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.New(System.Func(Of Hi.MachiningSteps.IMachiningService)) + nameWithType: MachiningServiceDependency.MachiningServiceDependency(Func) + nameWithType.vb: MachiningServiceDependency.New(Func(Of IMachiningService)) +- uid: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.#ctor* + name: MachiningServiceDependency + href: api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html#Hi_NcParsers_Dependencys_SystemWired_MachiningServiceDependency__ctor_ + commentId: Overload:Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.#ctor + isSpec: "True" + name.vb: New + fullName: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.MachiningServiceDependency + fullName.vb: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.New + nameWithType: MachiningServiceDependency.MachiningServiceDependency + nameWithType.vb: MachiningServiceDependency.New +- uid: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.MakeXmlSource(System.String,System.String,System.Boolean) + name: MakeXmlSource(string, string, bool) + href: api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html#Hi_NcParsers_Dependencys_SystemWired_MachiningServiceDependency_MakeXmlSource_System_String_System_String_System_Boolean_ + commentId: M:Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.MakeXmlSource(System.String,System.String,System.Boolean) + name.vb: MakeXmlSource(String, String, Boolean) + fullName: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.MakeXmlSource(string, string, bool) + fullName.vb: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.MakeXmlSource(String, String, Boolean) + nameWithType: MachiningServiceDependency.MakeXmlSource(string, string, bool) + nameWithType.vb: MachiningServiceDependency.MakeXmlSource(String, String, Boolean) +- uid: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.MakeXmlSource* + name: MakeXmlSource + href: api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html#Hi_NcParsers_Dependencys_SystemWired_MachiningServiceDependency_MakeXmlSource_ + commentId: Overload:Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.MakeXmlSource + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.MakeXmlSource + nameWithType: MachiningServiceDependency.MakeXmlSource +- uid: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.Reg(Hi.Common.XmlUtils.XFactory) + name: Reg(XFactory) + href: api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html#Hi_NcParsers_Dependencys_SystemWired_MachiningServiceDependency_Reg_Hi_Common_XmlUtils_XFactory_ + commentId: M:Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.Reg(Hi.Common.XmlUtils.XFactory) + fullName: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.Reg(Hi.Common.XmlUtils.XFactory) + nameWithType: MachiningServiceDependency.Reg(XFactory) +- uid: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.Reg* + name: Reg + href: api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html#Hi_NcParsers_Dependencys_SystemWired_MachiningServiceDependency_Reg_ + commentId: Overload:Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.Reg + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.Reg + nameWithType: MachiningServiceDependency.Reg +- uid: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.Service + name: Service + href: api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html#Hi_NcParsers_Dependencys_SystemWired_MachiningServiceDependency_Service + commentId: P:Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.Service + fullName: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.Service + nameWithType: MachiningServiceDependency.Service +- uid: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.Service* + name: Service + href: api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html#Hi_NcParsers_Dependencys_SystemWired_MachiningServiceDependency_Service_ + commentId: Overload:Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.Service + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.Service + nameWithType: MachiningServiceDependency.Service +- uid: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.ServiceProvider + name: ServiceProvider + href: api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html#Hi_NcParsers_Dependencys_SystemWired_MachiningServiceDependency_ServiceProvider + commentId: P:Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.ServiceProvider + fullName: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.ServiceProvider + nameWithType: MachiningServiceDependency.ServiceProvider +- uid: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.ServiceProvider* + name: ServiceProvider + href: api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html#Hi_NcParsers_Dependencys_SystemWired_MachiningServiceDependency_ServiceProvider_ + commentId: Overload:Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.ServiceProvider + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.ServiceProvider + nameWithType: MachiningServiceDependency.ServiceProvider +- uid: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.XName + name: XName + href: api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html#Hi_NcParsers_Dependencys_SystemWired_MachiningServiceDependency_XName + commentId: P:Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.XName + fullName: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.XName + nameWithType: MachiningServiceDependency.XName +- uid: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.XName* + name: XName + href: api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html#Hi_NcParsers_Dependencys_SystemWired_MachiningServiceDependency_XName_ + commentId: Overload:Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.XName + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.XName + nameWithType: MachiningServiceDependency.XName - uid: Hi.NcParsers.Dependencys.SystemWired.NcKinematicsDependency name: NcKinematicsDependency href: api/Hi.NcParsers.Dependencys.SystemWired.NcKinematicsDependency.html @@ -126507,6 +125928,108 @@ references: isSpec: "True" fullName: Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency.XName nameWithType: SegmenterDependency.XName +- uid: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency + name: StepPropertyAccessDictionaryDependency + href: api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html + commentId: T:Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency + fullName: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency + nameWithType: StepPropertyAccessDictionaryDependency +- uid: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.#ctor + name: StepPropertyAccessDictionaryDependency() + href: api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html#Hi_NcParsers_Dependencys_SystemWired_StepPropertyAccessDictionaryDependency__ctor + commentId: M:Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.#ctor + name.vb: New() + fullName: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.StepPropertyAccessDictionaryDependency() + fullName.vb: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.New() + nameWithType: StepPropertyAccessDictionaryDependency.StepPropertyAccessDictionaryDependency() + nameWithType.vb: StepPropertyAccessDictionaryDependency.New() +- uid: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.#ctor(System.Func{Hi.MachiningSteps.IStepPropertyAccessHost}) + name: StepPropertyAccessDictionaryDependency(Func) + href: api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html#Hi_NcParsers_Dependencys_SystemWired_StepPropertyAccessDictionaryDependency__ctor_System_Func_Hi_MachiningSteps_IStepPropertyAccessHost__ + commentId: M:Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.#ctor(System.Func{Hi.MachiningSteps.IStepPropertyAccessHost}) + name.vb: New(Func(Of IStepPropertyAccessHost)) + fullName: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.StepPropertyAccessDictionaryDependency(System.Func) + fullName.vb: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.New(System.Func(Of Hi.MachiningSteps.IStepPropertyAccessHost)) + nameWithType: StepPropertyAccessDictionaryDependency.StepPropertyAccessDictionaryDependency(Func) + nameWithType.vb: StepPropertyAccessDictionaryDependency.New(Func(Of IStepPropertyAccessHost)) +- uid: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.#ctor* + name: StepPropertyAccessDictionaryDependency + href: api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html#Hi_NcParsers_Dependencys_SystemWired_StepPropertyAccessDictionaryDependency__ctor_ + commentId: Overload:Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.#ctor + isSpec: "True" + name.vb: New + fullName: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.StepPropertyAccessDictionaryDependency + fullName.vb: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.New + nameWithType: StepPropertyAccessDictionaryDependency.StepPropertyAccessDictionaryDependency + nameWithType.vb: StepPropertyAccessDictionaryDependency.New +- uid: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.Host + name: Host + href: api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html#Hi_NcParsers_Dependencys_SystemWired_StepPropertyAccessDictionaryDependency_Host + commentId: P:Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.Host + fullName: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.Host + nameWithType: StepPropertyAccessDictionaryDependency.Host +- uid: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.Host* + name: Host + href: api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html#Hi_NcParsers_Dependencys_SystemWired_StepPropertyAccessDictionaryDependency_Host_ + commentId: Overload:Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.Host + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.Host + nameWithType: StepPropertyAccessDictionaryDependency.Host +- uid: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.HostProvider + name: HostProvider + href: api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html#Hi_NcParsers_Dependencys_SystemWired_StepPropertyAccessDictionaryDependency_HostProvider + commentId: P:Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.HostProvider + fullName: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.HostProvider + nameWithType: StepPropertyAccessDictionaryDependency.HostProvider +- uid: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.HostProvider* + name: HostProvider + href: api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html#Hi_NcParsers_Dependencys_SystemWired_StepPropertyAccessDictionaryDependency_HostProvider_ + commentId: Overload:Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.HostProvider + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.HostProvider + nameWithType: StepPropertyAccessDictionaryDependency.HostProvider +- uid: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.MakeXmlSource(System.String,System.String,System.Boolean) + name: MakeXmlSource(string, string, bool) + href: api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html#Hi_NcParsers_Dependencys_SystemWired_StepPropertyAccessDictionaryDependency_MakeXmlSource_System_String_System_String_System_Boolean_ + commentId: M:Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.MakeXmlSource(System.String,System.String,System.Boolean) + name.vb: MakeXmlSource(String, String, Boolean) + fullName: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.MakeXmlSource(string, string, bool) + fullName.vb: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.MakeXmlSource(String, String, Boolean) + nameWithType: StepPropertyAccessDictionaryDependency.MakeXmlSource(string, string, bool) + nameWithType.vb: StepPropertyAccessDictionaryDependency.MakeXmlSource(String, String, Boolean) +- uid: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.MakeXmlSource* + name: MakeXmlSource + href: api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html#Hi_NcParsers_Dependencys_SystemWired_StepPropertyAccessDictionaryDependency_MakeXmlSource_ + commentId: Overload:Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.MakeXmlSource + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.MakeXmlSource + nameWithType: StepPropertyAccessDictionaryDependency.MakeXmlSource +- uid: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.Reg(Hi.Common.XmlUtils.XFactory) + name: Reg(XFactory) + href: api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html#Hi_NcParsers_Dependencys_SystemWired_StepPropertyAccessDictionaryDependency_Reg_Hi_Common_XmlUtils_XFactory_ + commentId: M:Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.Reg(Hi.Common.XmlUtils.XFactory) + fullName: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.Reg(Hi.Common.XmlUtils.XFactory) + nameWithType: StepPropertyAccessDictionaryDependency.Reg(XFactory) +- uid: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.Reg* + name: Reg + href: api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html#Hi_NcParsers_Dependencys_SystemWired_StepPropertyAccessDictionaryDependency_Reg_ + commentId: Overload:Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.Reg + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.Reg + nameWithType: StepPropertyAccessDictionaryDependency.Reg +- uid: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.XName + name: XName + href: api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html#Hi_NcParsers_Dependencys_SystemWired_StepPropertyAccessDictionaryDependency_XName + commentId: P:Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.XName + fullName: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.XName + nameWithType: StepPropertyAccessDictionaryDependency.XName +- uid: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.XName* + name: XName + href: api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html#Hi_NcParsers_Dependencys_SystemWired_StepPropertyAccessDictionaryDependency_XName_ + commentId: Overload:Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.XName + isSpec: "True" + fullName: Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.XName + nameWithType: StepPropertyAccessDictionaryDependency.XName - uid: Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency name: SyntaxPieceLayerDependency href: api/Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency.html @@ -127483,6 +127006,25 @@ references: commentId: N:Hi.NcParsers.EvaluationSyntaxs.Fanuc fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc nameWithType: Hi.NcParsers.EvaluationSyntaxs.Fanuc +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader + name: FanucConditionReader + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.html + commentId: T:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader + nameWithType: FanucConditionReader +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.ReadCondition(System.Text.Json.Nodes.JsonNode) + name: ReadCondition(JsonNode) + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.html#Hi_NcParsers_EvaluationSyntaxs_Fanuc_FanucConditionReader_ReadCondition_System_Text_Json_Nodes_JsonNode_ + commentId: M:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.ReadCondition(System.Text.Json.Nodes.JsonNode) + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.ReadCondition(System.Text.Json.Nodes.JsonNode) + nameWithType: FanucConditionReader.ReadCondition(JsonNode) +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.ReadCondition* + name: ReadCondition + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.html#Hi_NcParsers_EvaluationSyntaxs_Fanuc_FanucConditionReader_ReadCondition_ + commentId: Overload:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.ReadCondition + isSpec: "True" + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.ReadCondition + nameWithType: FanucConditionReader.ReadCondition - uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax name: FanucGotoSyntax href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax.html @@ -128225,21 +127767,147 @@ references: isSpec: "True" fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucSystemControlVariableSyntax.XName nameWithType: FanucSystemControlVariableSyntax.XName +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax + name: FanucWhileDoSyntax + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html + commentId: T:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax + nameWithType: FanucWhileDoSyntax +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.#ctor + name: FanucWhileDoSyntax() + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html#Hi_NcParsers_EvaluationSyntaxs_Fanuc_FanucWhileDoSyntax__ctor + commentId: M:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.#ctor + name.vb: New() + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.FanucWhileDoSyntax() + fullName.vb: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.New() + nameWithType: FanucWhileDoSyntax.FanucWhileDoSyntax() + nameWithType.vb: FanucWhileDoSyntax.New() +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.#ctor(System.Xml.Linq.XElement) + name: FanucWhileDoSyntax(XElement) + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html#Hi_NcParsers_EvaluationSyntaxs_Fanuc_FanucWhileDoSyntax__ctor_System_Xml_Linq_XElement_ + commentId: M:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.#ctor(System.Xml.Linq.XElement) + name.vb: New(XElement) + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.FanucWhileDoSyntax(System.Xml.Linq.XElement) + fullName.vb: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.New(System.Xml.Linq.XElement) + nameWithType: FanucWhileDoSyntax.FanucWhileDoSyntax(XElement) + nameWithType.vb: FanucWhileDoSyntax.New(XElement) +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.#ctor* + name: FanucWhileDoSyntax + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html#Hi_NcParsers_EvaluationSyntaxs_Fanuc_FanucWhileDoSyntax__ctor_ + commentId: Overload:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.#ctor + isSpec: "True" + name.vb: New + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.FanucWhileDoSyntax + fullName.vb: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.New + nameWithType: FanucWhileDoSyntax.FanucWhileDoSyntax + nameWithType.vb: FanucWhileDoSyntax.New +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.BeginLineNoKey + name: BeginLineNoKey + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html#Hi_NcParsers_EvaluationSyntaxs_Fanuc_FanucWhileDoSyntax_BeginLineNoKey + commentId: F:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.BeginLineNoKey + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.BeginLineNoKey + nameWithType: FanucWhileDoSyntax.BeginLineNoKey +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Build(Hi.Common.Collections.LazyLinkedListNode{Hi.NcParsers.Syntaxs.SyntaxPiece},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name: Build(LazyLinkedListNode, List, NcDiagnosticProgress) + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html#Hi_NcParsers_EvaluationSyntaxs_Fanuc_FanucWhileDoSyntax_Build_Hi_Common_Collections_LazyLinkedListNode_Hi_NcParsers_Syntaxs_SyntaxPiece__System_Collections_Generic_List_Hi_NcParsers_Dependencys_INcDependency__Hi_NcParsers_NcDiagnosticProgress_ + commentId: M:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Build(Hi.Common.Collections.LazyLinkedListNode{Hi.NcParsers.Syntaxs.SyntaxPiece},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name.vb: Build(LazyLinkedListNode(Of SyntaxPiece), List(Of INcDependency), NcDiagnosticProgress) + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Build(Hi.Common.Collections.LazyLinkedListNode, System.Collections.Generic.List, Hi.NcParsers.NcDiagnosticProgress) + fullName.vb: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Build(Hi.Common.Collections.LazyLinkedListNode(Of Hi.NcParsers.Syntaxs.SyntaxPiece), System.Collections.Generic.List(Of Hi.NcParsers.Dependencys.INcDependency), Hi.NcParsers.NcDiagnosticProgress) + nameWithType: FanucWhileDoSyntax.Build(LazyLinkedListNode, List, NcDiagnosticProgress) + nameWithType.vb: FanucWhileDoSyntax.Build(LazyLinkedListNode(Of SyntaxPiece), List(Of INcDependency), NcDiagnosticProgress) +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Build* + name: Build + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html#Hi_NcParsers_EvaluationSyntaxs_Fanuc_FanucWhileDoSyntax_Build_ + commentId: Overload:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Build + isSpec: "True" + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Build + nameWithType: FanucWhileDoSyntax.Build +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.MakeXmlSource(System.String,System.String,System.Boolean) + name: MakeXmlSource(string, string, bool) + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html#Hi_NcParsers_EvaluationSyntaxs_Fanuc_FanucWhileDoSyntax_MakeXmlSource_System_String_System_String_System_Boolean_ + commentId: M:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.MakeXmlSource(System.String,System.String,System.Boolean) + name.vb: MakeXmlSource(String, String, Boolean) + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.MakeXmlSource(string, string, bool) + fullName.vb: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.MakeXmlSource(String, String, Boolean) + nameWithType: FanucWhileDoSyntax.MakeXmlSource(string, string, bool) + nameWithType.vb: FanucWhileDoSyntax.MakeXmlSource(String, String, Boolean) +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.MakeXmlSource* + name: MakeXmlSource + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html#Hi_NcParsers_EvaluationSyntaxs_Fanuc_FanucWhileDoSyntax_MakeXmlSource_ + commentId: Overload:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.MakeXmlSource + isSpec: "True" + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.MakeXmlSource + nameWithType: FanucWhileDoSyntax.MakeXmlSource +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Name + name: Name + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html#Hi_NcParsers_EvaluationSyntaxs_Fanuc_FanucWhileDoSyntax_Name + commentId: P:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Name + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Name + nameWithType: FanucWhileDoSyntax.Name +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Name* + name: Name + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html#Hi_NcParsers_EvaluationSyntaxs_Fanuc_FanucWhileDoSyntax_Name_ + commentId: Overload:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Name + isSpec: "True" + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Name + nameWithType: FanucWhileDoSyntax.Name +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Reg(Hi.Common.XmlUtils.XFactory) + name: Reg(XFactory) + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html#Hi_NcParsers_EvaluationSyntaxs_Fanuc_FanucWhileDoSyntax_Reg_Hi_Common_XmlUtils_XFactory_ + commentId: M:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Reg(Hi.Common.XmlUtils.XFactory) + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Reg(Hi.Common.XmlUtils.XFactory) + nameWithType: FanucWhileDoSyntax.Reg(XFactory) +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Reg* + name: Reg + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html#Hi_NcParsers_EvaluationSyntaxs_Fanuc_FanucWhileDoSyntax_Reg_ + commentId: Overload:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Reg + isSpec: "True" + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.Reg + nameWithType: FanucWhileDoSyntax.Reg +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.WhileFramesKey + name: WhileFramesKey + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html#Hi_NcParsers_EvaluationSyntaxs_Fanuc_FanucWhileDoSyntax_WhileFramesKey + commentId: F:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.WhileFramesKey + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.WhileFramesKey + nameWithType: FanucWhileDoSyntax.WhileFramesKey +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.XName + name: XName + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html#Hi_NcParsers_EvaluationSyntaxs_Fanuc_FanucWhileDoSyntax_XName + commentId: P:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.XName + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.XName + nameWithType: FanucWhileDoSyntax.XName +- uid: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.XName* + name: XName + href: api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html#Hi_NcParsers_EvaluationSyntaxs_Fanuc_FanucWhileDoSyntax_XName_ + commentId: Overload:Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.XName + isSpec: "True" + fullName: Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.XName + nameWithType: FanucWhileDoSyntax.XName - uid: Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil name: LabelScanUtil href: api/Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.html commentId: T:Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil fullName: Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil nameWithType: LabelScanUtil -- uid: Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.SegmentAndSkipUntilLabel(Hi.NcParsers.Segmenters.ISegmenter,System.String,System.String,System.Int32,System.Int32,System.Int32,System.Collections.Generic.List{Hi.NcParsers.Syntaxs.ISituNcSyntax},Hi.NcParsers.NcDiagnosticProgress) - name: SegmentAndSkipUntilLabel(ISegmenter, string, string, int, int, int, List, NcDiagnosticProgress) - href: api/Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.html#Hi_NcParsers_EvaluationSyntaxs_LabelScanUtil_SegmentAndSkipUntilLabel_Hi_NcParsers_Segmenters_ISegmenter_System_String_System_String_System_Int32_System_Int32_System_Int32_System_Collections_Generic_List_Hi_NcParsers_Syntaxs_ISituNcSyntax__Hi_NcParsers_NcDiagnosticProgress_ - commentId: M:Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.SegmentAndSkipUntilLabel(Hi.NcParsers.Segmenters.ISegmenter,System.String,System.String,System.Int32,System.Int32,System.Int32,System.Collections.Generic.List{Hi.NcParsers.Syntaxs.ISituNcSyntax},Hi.NcParsers.NcDiagnosticProgress) - name.vb: SegmentAndSkipUntilLabel(ISegmenter, String, String, Integer, Integer, Integer, List(Of ISituNcSyntax), NcDiagnosticProgress) - fullName: Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.SegmentAndSkipUntilLabel(Hi.NcParsers.Segmenters.ISegmenter, string, string, int, int, int, System.Collections.Generic.List, Hi.NcParsers.NcDiagnosticProgress) - fullName.vb: Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.SegmentAndSkipUntilLabel(Hi.NcParsers.Segmenters.ISegmenter, String, String, Integer, Integer, Integer, System.Collections.Generic.List(Of Hi.NcParsers.Syntaxs.ISituNcSyntax), Hi.NcParsers.NcDiagnosticProgress) - nameWithType: LabelScanUtil.SegmentAndSkipUntilLabel(ISegmenter, string, string, int, int, int, List, NcDiagnosticProgress) - nameWithType.vb: LabelScanUtil.SegmentAndSkipUntilLabel(ISegmenter, String, String, Integer, Integer, Integer, List(Of ISituNcSyntax), NcDiagnosticProgress) +- uid: Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.SegmentAndSkipUntilLabel(Hi.NcParsers.Segmenters.ISegmenter,System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},System.String,System.String,System.Int32,System.Int32,System.Collections.Generic.List{Hi.NcParsers.Syntaxs.ISituNcSyntax},System.Func{System.Text.Json.Nodes.JsonObject,System.Boolean},Hi.NcParsers.NcDiagnosticProgress) + name: SegmentAndSkipUntilLabel(ISegmenter, List, string, string, int, int, List, Func, NcDiagnosticProgress) + href: api/Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.html#Hi_NcParsers_EvaluationSyntaxs_LabelScanUtil_SegmentAndSkipUntilLabel_Hi_NcParsers_Segmenters_ISegmenter_System_Collections_Generic_List_Hi_NcParsers_Dependencys_INcDependency__System_String_System_String_System_Int32_System_Int32_System_Collections_Generic_List_Hi_NcParsers_Syntaxs_ISituNcSyntax__System_Func_System_Text_Json_Nodes_JsonObject_System_Boolean__Hi_NcParsers_NcDiagnosticProgress_ + commentId: M:Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.SegmentAndSkipUntilLabel(Hi.NcParsers.Segmenters.ISegmenter,System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},System.String,System.String,System.Int32,System.Int32,System.Collections.Generic.List{Hi.NcParsers.Syntaxs.ISituNcSyntax},System.Func{System.Text.Json.Nodes.JsonObject,System.Boolean},Hi.NcParsers.NcDiagnosticProgress) + name.vb: SegmentAndSkipUntilLabel(ISegmenter, List(Of INcDependency), String, String, Integer, Integer, List(Of ISituNcSyntax), Func(Of JsonObject, Boolean), NcDiagnosticProgress) + fullName: Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.SegmentAndSkipUntilLabel(Hi.NcParsers.Segmenters.ISegmenter, System.Collections.Generic.List, string, string, int, int, System.Collections.Generic.List, System.Func, Hi.NcParsers.NcDiagnosticProgress) + fullName.vb: Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.SegmentAndSkipUntilLabel(Hi.NcParsers.Segmenters.ISegmenter, System.Collections.Generic.List(Of Hi.NcParsers.Dependencys.INcDependency), String, String, Integer, Integer, System.Collections.Generic.List(Of Hi.NcParsers.Syntaxs.ISituNcSyntax), System.Func(Of System.Text.Json.Nodes.JsonObject, Boolean), Hi.NcParsers.NcDiagnosticProgress) + nameWithType: LabelScanUtil.SegmentAndSkipUntilLabel(ISegmenter, List, string, string, int, int, List, Func, NcDiagnosticProgress) + nameWithType.vb: LabelScanUtil.SegmentAndSkipUntilLabel(ISegmenter, List(Of INcDependency), String, String, Integer, Integer, List(Of ISituNcSyntax), Func(Of JsonObject, Boolean), NcDiagnosticProgress) +- uid: Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.SegmentAndSkipUntilLabel(Hi.NcParsers.Segmenters.ISegmenter,System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},System.String,System.String,System.Int32,System.Int32,System.Int32,System.Collections.Generic.List{Hi.NcParsers.Syntaxs.ISituNcSyntax},Hi.NcParsers.NcDiagnosticProgress) + name: SegmentAndSkipUntilLabel(ISegmenter, List, string, string, int, int, int, List, NcDiagnosticProgress) + href: api/Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.html#Hi_NcParsers_EvaluationSyntaxs_LabelScanUtil_SegmentAndSkipUntilLabel_Hi_NcParsers_Segmenters_ISegmenter_System_Collections_Generic_List_Hi_NcParsers_Dependencys_INcDependency__System_String_System_String_System_Int32_System_Int32_System_Int32_System_Collections_Generic_List_Hi_NcParsers_Syntaxs_ISituNcSyntax__Hi_NcParsers_NcDiagnosticProgress_ + commentId: M:Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.SegmentAndSkipUntilLabel(Hi.NcParsers.Segmenters.ISegmenter,System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},System.String,System.String,System.Int32,System.Int32,System.Int32,System.Collections.Generic.List{Hi.NcParsers.Syntaxs.ISituNcSyntax},Hi.NcParsers.NcDiagnosticProgress) + name.vb: SegmentAndSkipUntilLabel(ISegmenter, List(Of INcDependency), String, String, Integer, Integer, Integer, List(Of ISituNcSyntax), NcDiagnosticProgress) + fullName: Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.SegmentAndSkipUntilLabel(Hi.NcParsers.Segmenters.ISegmenter, System.Collections.Generic.List, string, string, int, int, int, System.Collections.Generic.List, Hi.NcParsers.NcDiagnosticProgress) + fullName.vb: Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.SegmentAndSkipUntilLabel(Hi.NcParsers.Segmenters.ISegmenter, System.Collections.Generic.List(Of Hi.NcParsers.Dependencys.INcDependency), String, String, Integer, Integer, Integer, System.Collections.Generic.List(Of Hi.NcParsers.Syntaxs.ISituNcSyntax), Hi.NcParsers.NcDiagnosticProgress) + nameWithType: LabelScanUtil.SegmentAndSkipUntilLabel(ISegmenter, List, string, string, int, int, int, List, NcDiagnosticProgress) + nameWithType.vb: LabelScanUtil.SegmentAndSkipUntilLabel(ISegmenter, List(Of INcDependency), String, String, Integer, Integer, Integer, List(Of ISituNcSyntax), NcDiagnosticProgress) - uid: Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.SegmentAndSkipUntilLabel* name: SegmentAndSkipUntilLabel href: api/Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.html#Hi_NcParsers_EvaluationSyntaxs_LabelScanUtil_SegmentAndSkipUntilLabel_ @@ -128377,15 +128045,15 @@ references: isSpec: "True" fullName: Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.ApplyLocalBindings nameWithType: MacroInlineUtil.ApplyLocalBindings -- uid: Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.BuildInlinedPieces(Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile,System.Int32,System.Collections.Generic.IReadOnlyDictionary{System.String,System.Double},System.Text.Json.Nodes.JsonObject,System.Text.Json.Nodes.JsonObject,Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency,Hi.NcParsers.Segmenters.ISegmenter,System.Int32,Hi.NcParsers.NcDiagnosticProgress) - name: BuildInlinedPieces(ResolvedFile, int, IReadOnlyDictionary, JsonObject, JsonObject, FileIndexCounterDependency, ISegmenter, int, NcDiagnosticProgress) - href: api/Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.html#Hi_NcParsers_EvaluationSyntaxs_MacroInlineUtil_BuildInlinedPieces_Hi_NcParsers_EvaluationSyntaxs_MacroFileResolver_ResolvedFile_System_Int32_System_Collections_Generic_IReadOnlyDictionary_System_String_System_Double__System_Text_Json_Nodes_JsonObject_System_Text_Json_Nodes_JsonObject_Hi_NcParsers_Dependencys_SystemWired_FileIndexCounterDependency_Hi_NcParsers_Segmenters_ISegmenter_System_Int32_Hi_NcParsers_NcDiagnosticProgress_ - commentId: M:Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.BuildInlinedPieces(Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile,System.Int32,System.Collections.Generic.IReadOnlyDictionary{System.String,System.Double},System.Text.Json.Nodes.JsonObject,System.Text.Json.Nodes.JsonObject,Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency,Hi.NcParsers.Segmenters.ISegmenter,System.Int32,Hi.NcParsers.NcDiagnosticProgress) - name.vb: BuildInlinedPieces(ResolvedFile, Integer, IReadOnlyDictionary(Of String, Double), JsonObject, JsonObject, FileIndexCounterDependency, ISegmenter, Integer, NcDiagnosticProgress) - fullName: Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.BuildInlinedPieces(Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile, int, System.Collections.Generic.IReadOnlyDictionary, System.Text.Json.Nodes.JsonObject, System.Text.Json.Nodes.JsonObject, Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency, Hi.NcParsers.Segmenters.ISegmenter, int, Hi.NcParsers.NcDiagnosticProgress) - fullName.vb: Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.BuildInlinedPieces(Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile, Integer, System.Collections.Generic.IReadOnlyDictionary(Of String, Double), System.Text.Json.Nodes.JsonObject, System.Text.Json.Nodes.JsonObject, Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency, Hi.NcParsers.Segmenters.ISegmenter, Integer, Hi.NcParsers.NcDiagnosticProgress) - nameWithType: MacroInlineUtil.BuildInlinedPieces(MacroFileResolver.ResolvedFile, int, IReadOnlyDictionary, JsonObject, JsonObject, FileIndexCounterDependency, ISegmenter, int, NcDiagnosticProgress) - nameWithType.vb: MacroInlineUtil.BuildInlinedPieces(MacroFileResolver.ResolvedFile, Integer, IReadOnlyDictionary(Of String, Double), JsonObject, JsonObject, FileIndexCounterDependency, ISegmenter, Integer, NcDiagnosticProgress) +- uid: Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.BuildInlinedPieces(Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile,System.Int32,System.Collections.Generic.IReadOnlyDictionary{System.String,System.Double},System.Text.Json.Nodes.JsonObject,System.Text.Json.Nodes.JsonObject,Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency,Hi.NcParsers.Segmenters.ISegmenter,System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},System.Int32,Hi.NcParsers.NcDiagnosticProgress) + name: BuildInlinedPieces(ResolvedFile, int, IReadOnlyDictionary, JsonObject, JsonObject, FileIndexCounterDependency, ISegmenter, List, int, NcDiagnosticProgress) + href: api/Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.html#Hi_NcParsers_EvaluationSyntaxs_MacroInlineUtil_BuildInlinedPieces_Hi_NcParsers_EvaluationSyntaxs_MacroFileResolver_ResolvedFile_System_Int32_System_Collections_Generic_IReadOnlyDictionary_System_String_System_Double__System_Text_Json_Nodes_JsonObject_System_Text_Json_Nodes_JsonObject_Hi_NcParsers_Dependencys_SystemWired_FileIndexCounterDependency_Hi_NcParsers_Segmenters_ISegmenter_System_Collections_Generic_List_Hi_NcParsers_Dependencys_INcDependency__System_Int32_Hi_NcParsers_NcDiagnosticProgress_ + commentId: M:Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.BuildInlinedPieces(Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile,System.Int32,System.Collections.Generic.IReadOnlyDictionary{System.String,System.Double},System.Text.Json.Nodes.JsonObject,System.Text.Json.Nodes.JsonObject,Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency,Hi.NcParsers.Segmenters.ISegmenter,System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},System.Int32,Hi.NcParsers.NcDiagnosticProgress) + name.vb: BuildInlinedPieces(ResolvedFile, Integer, IReadOnlyDictionary(Of String, Double), JsonObject, JsonObject, FileIndexCounterDependency, ISegmenter, List(Of INcDependency), Integer, NcDiagnosticProgress) + fullName: Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.BuildInlinedPieces(Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile, int, System.Collections.Generic.IReadOnlyDictionary, System.Text.Json.Nodes.JsonObject, System.Text.Json.Nodes.JsonObject, Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency, Hi.NcParsers.Segmenters.ISegmenter, System.Collections.Generic.List, int, Hi.NcParsers.NcDiagnosticProgress) + fullName.vb: Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.BuildInlinedPieces(Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile, Integer, System.Collections.Generic.IReadOnlyDictionary(Of String, Double), System.Text.Json.Nodes.JsonObject, System.Text.Json.Nodes.JsonObject, Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency, Hi.NcParsers.Segmenters.ISegmenter, System.Collections.Generic.List(Of Hi.NcParsers.Dependencys.INcDependency), Integer, Hi.NcParsers.NcDiagnosticProgress) + nameWithType: MacroInlineUtil.BuildInlinedPieces(MacroFileResolver.ResolvedFile, int, IReadOnlyDictionary, JsonObject, JsonObject, FileIndexCounterDependency, ISegmenter, List, int, NcDiagnosticProgress) + nameWithType.vb: MacroInlineUtil.BuildInlinedPieces(MacroFileResolver.ResolvedFile, Integer, IReadOnlyDictionary(Of String, Double), JsonObject, JsonObject, FileIndexCounterDependency, ISegmenter, List(Of INcDependency), Integer, NcDiagnosticProgress) - uid: Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.BuildInlinedPieces* name: BuildInlinedPieces href: api/Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.html#Hi_NcParsers_EvaluationSyntaxs_MacroInlineUtil_BuildInlinedPieces_ @@ -128784,6 +128452,12 @@ references: isSpec: "True" fullName: Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.Build nameWithType: VariableEvaluatorSyntax.Build +- uid: Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.FormulaKey + name: FormulaKey + href: api/Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.html#Hi_NcParsers_EvaluationSyntaxs_VariableEvaluatorSyntax_FormulaKey + commentId: F:Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.FormulaKey + fullName: Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.FormulaKey + nameWithType: VariableEvaluatorSyntax.FormulaKey - uid: Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.MakeXmlSource(System.String,System.String,System.Boolean) name: MakeXmlSource(string, string, bool) href: api/Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.html#Hi_NcParsers_EvaluationSyntaxs_VariableEvaluatorSyntax_MakeXmlSource_System_String_System_String_System_Boolean_ @@ -129013,6 +128687,25 @@ references: isSpec: "True" fullName: Hi.NcParsers.ISentenceIndexed.SentenceIndex nameWithType: ISentenceIndexed.SentenceIndex +- uid: Hi.NcParsers.ISessionResettable + name: ISessionResettable + href: api/Hi.NcParsers.ISessionResettable.html + commentId: T:Hi.NcParsers.ISessionResettable + fullName: Hi.NcParsers.ISessionResettable + nameWithType: ISessionResettable +- uid: Hi.NcParsers.ISessionResettable.OnSessionReset + name: OnSessionReset() + href: api/Hi.NcParsers.ISessionResettable.html#Hi_NcParsers_ISessionResettable_OnSessionReset + commentId: M:Hi.NcParsers.ISessionResettable.OnSessionReset + fullName: Hi.NcParsers.ISessionResettable.OnSessionReset() + nameWithType: ISessionResettable.OnSessionReset() +- uid: Hi.NcParsers.ISessionResettable.OnSessionReset* + name: OnSessionReset + href: api/Hi.NcParsers.ISessionResettable.html#Hi_NcParsers_ISessionResettable_OnSessionReset_ + commentId: Overload:Hi.NcParsers.ISessionResettable.OnSessionReset + isSpec: "True" + fullName: Hi.NcParsers.ISessionResettable.OnSessionReset + nameWithType: ISessionResettable.OnSessionReset - uid: Hi.NcParsers.IndexedSentence name: IndexedSentence href: api/Hi.NcParsers.IndexedSentence.html @@ -130276,6 +129969,19 @@ references: isSpec: "True" fullName: Hi.NcParsers.Keywords.FanucGoto.Condition nameWithType: FanucGoto.Condition +- uid: Hi.NcParsers.Keywords.FanucGoto.ConditionEvaluated + name: ConditionEvaluated + href: api/Hi.NcParsers.Keywords.FanucGoto.html#Hi_NcParsers_Keywords_FanucGoto_ConditionEvaluated + commentId: P:Hi.NcParsers.Keywords.FanucGoto.ConditionEvaluated + fullName: Hi.NcParsers.Keywords.FanucGoto.ConditionEvaluated + nameWithType: FanucGoto.ConditionEvaluated +- uid: Hi.NcParsers.Keywords.FanucGoto.ConditionEvaluated* + name: ConditionEvaluated + href: api/Hi.NcParsers.Keywords.FanucGoto.html#Hi_NcParsers_Keywords_FanucGoto_ConditionEvaluated_ + commentId: Overload:Hi.NcParsers.Keywords.FanucGoto.ConditionEvaluated + isSpec: "True" + fullName: Hi.NcParsers.Keywords.FanucGoto.ConditionEvaluated + nameWithType: FanucGoto.ConditionEvaluated - uid: Hi.NcParsers.Keywords.FanucGoto.Fired name: Fired href: api/Hi.NcParsers.Keywords.FanucGoto.html#Hi_NcParsers_Keywords_FanucGoto_Fired @@ -130360,6 +130066,19 @@ references: isSpec: "True" fullName: Hi.NcParsers.Keywords.FanucIfThen.Condition nameWithType: FanucIfThen.Condition +- uid: Hi.NcParsers.Keywords.FanucIfThen.ConditionEvaluated + name: ConditionEvaluated + href: api/Hi.NcParsers.Keywords.FanucIfThen.html#Hi_NcParsers_Keywords_FanucIfThen_ConditionEvaluated + commentId: P:Hi.NcParsers.Keywords.FanucIfThen.ConditionEvaluated + fullName: Hi.NcParsers.Keywords.FanucIfThen.ConditionEvaluated + nameWithType: FanucIfThen.ConditionEvaluated +- uid: Hi.NcParsers.Keywords.FanucIfThen.ConditionEvaluated* + name: ConditionEvaluated + href: api/Hi.NcParsers.Keywords.FanucIfThen.html#Hi_NcParsers_Keywords_FanucIfThen_ConditionEvaluated_ + commentId: Overload:Hi.NcParsers.Keywords.FanucIfThen.ConditionEvaluated + isSpec: "True" + fullName: Hi.NcParsers.Keywords.FanucIfThen.ConditionEvaluated + nameWithType: FanucIfThen.ConditionEvaluated - uid: Hi.NcParsers.Keywords.FanucMacroCall name: FanucMacroCall href: api/Hi.NcParsers.Keywords.FanucMacroCall.html @@ -130565,6 +130284,64 @@ references: commentId: F:Hi.NcParsers.Keywords.FanucProgramNumber.WrapperNone fullName: Hi.NcParsers.Keywords.FanucProgramNumber.WrapperNone nameWithType: FanucProgramNumber.WrapperNone +- uid: Hi.NcParsers.Keywords.FanucWhileDo + name: FanucWhileDo + href: api/Hi.NcParsers.Keywords.FanucWhileDo.html + commentId: T:Hi.NcParsers.Keywords.FanucWhileDo + fullName: Hi.NcParsers.Keywords.FanucWhileDo + nameWithType: FanucWhileDo +- uid: Hi.NcParsers.Keywords.FanucWhileDo.Condition + name: Condition + href: api/Hi.NcParsers.Keywords.FanucWhileDo.html#Hi_NcParsers_Keywords_FanucWhileDo_Condition + commentId: P:Hi.NcParsers.Keywords.FanucWhileDo.Condition + fullName: Hi.NcParsers.Keywords.FanucWhileDo.Condition + nameWithType: FanucWhileDo.Condition +- uid: Hi.NcParsers.Keywords.FanucWhileDo.Condition* + name: Condition + href: api/Hi.NcParsers.Keywords.FanucWhileDo.html#Hi_NcParsers_Keywords_FanucWhileDo_Condition_ + commentId: Overload:Hi.NcParsers.Keywords.FanucWhileDo.Condition + isSpec: "True" + fullName: Hi.NcParsers.Keywords.FanucWhileDo.Condition + nameWithType: FanucWhileDo.Condition +- uid: Hi.NcParsers.Keywords.FanucWhileDo.ConditionEvaluated + name: ConditionEvaluated + href: api/Hi.NcParsers.Keywords.FanucWhileDo.html#Hi_NcParsers_Keywords_FanucWhileDo_ConditionEvaluated + commentId: P:Hi.NcParsers.Keywords.FanucWhileDo.ConditionEvaluated + fullName: Hi.NcParsers.Keywords.FanucWhileDo.ConditionEvaluated + nameWithType: FanucWhileDo.ConditionEvaluated +- uid: Hi.NcParsers.Keywords.FanucWhileDo.ConditionEvaluated* + name: ConditionEvaluated + href: api/Hi.NcParsers.Keywords.FanucWhileDo.html#Hi_NcParsers_Keywords_FanucWhileDo_ConditionEvaluated_ + commentId: Overload:Hi.NcParsers.Keywords.FanucWhileDo.ConditionEvaluated + isSpec: "True" + fullName: Hi.NcParsers.Keywords.FanucWhileDo.ConditionEvaluated + nameWithType: FanucWhileDo.ConditionEvaluated +- uid: Hi.NcParsers.Keywords.FanucWhileDo.LoopId + name: LoopId + href: api/Hi.NcParsers.Keywords.FanucWhileDo.html#Hi_NcParsers_Keywords_FanucWhileDo_LoopId + commentId: P:Hi.NcParsers.Keywords.FanucWhileDo.LoopId + fullName: Hi.NcParsers.Keywords.FanucWhileDo.LoopId + nameWithType: FanucWhileDo.LoopId +- uid: Hi.NcParsers.Keywords.FanucWhileDo.LoopId* + name: LoopId + href: api/Hi.NcParsers.Keywords.FanucWhileDo.html#Hi_NcParsers_Keywords_FanucWhileDo_LoopId_ + commentId: Overload:Hi.NcParsers.Keywords.FanucWhileDo.LoopId + isSpec: "True" + fullName: Hi.NcParsers.Keywords.FanucWhileDo.LoopId + nameWithType: FanucWhileDo.LoopId +- uid: Hi.NcParsers.Keywords.FanucWhileDo.Term + name: Term + href: api/Hi.NcParsers.Keywords.FanucWhileDo.html#Hi_NcParsers_Keywords_FanucWhileDo_Term + commentId: P:Hi.NcParsers.Keywords.FanucWhileDo.Term + fullName: Hi.NcParsers.Keywords.FanucWhileDo.Term + nameWithType: FanucWhileDo.Term +- uid: Hi.NcParsers.Keywords.FanucWhileDo.Term* + name: Term + href: api/Hi.NcParsers.Keywords.FanucWhileDo.html#Hi_NcParsers_Keywords_FanucWhileDo_Term_ + commentId: Overload:Hi.NcParsers.Keywords.FanucWhileDo.Term + isSpec: "True" + fullName: Hi.NcParsers.Keywords.FanucWhileDo.Term + nameWithType: FanucWhileDo.Term - uid: Hi.NcParsers.Keywords.Feedrate name: Feedrate href: api/Hi.NcParsers.Keywords.Feedrate.html @@ -131116,19 +130893,6 @@ references: isSpec: "True" fullName: Hi.NcParsers.Keywords.IArcMotionDef.IsCcw nameWithType: IArcMotionDef.IsCcw -- uid: Hi.NcParsers.Keywords.IArcMotionDef.PlaneNormalDir - name: PlaneNormalDir - href: api/Hi.NcParsers.Keywords.IArcMotionDef.html#Hi_NcParsers_Keywords_IArcMotionDef_PlaneNormalDir - commentId: P:Hi.NcParsers.Keywords.IArcMotionDef.PlaneNormalDir - fullName: Hi.NcParsers.Keywords.IArcMotionDef.PlaneNormalDir - nameWithType: IArcMotionDef.PlaneNormalDir -- uid: Hi.NcParsers.Keywords.IArcMotionDef.PlaneNormalDir* - name: PlaneNormalDir - href: api/Hi.NcParsers.Keywords.IArcMotionDef.html#Hi_NcParsers_Keywords_IArcMotionDef_PlaneNormalDir_ - commentId: Overload:Hi.NcParsers.Keywords.IArcMotionDef.PlaneNormalDir - isSpec: "True" - fullName: Hi.NcParsers.Keywords.IArcMotionDef.PlaneNormalDir - nameWithType: IArcMotionDef.PlaneNormalDir - uid: Hi.NcParsers.Keywords.ICannedCycleDef name: ICannedCycleDef href: api/Hi.NcParsers.Keywords.ICannedCycleDef.html @@ -138383,6 +138147,111 @@ references: isSpec: "True" fullName: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucProgramNumberSyntax.XName nameWithType: FanucProgramNumberSyntax.XName +- uid: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax + name: FanucWhileDoParsingSyntax + href: api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html + commentId: T:Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax + fullName: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax + nameWithType: FanucWhileDoParsingSyntax +- uid: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.#ctor + name: FanucWhileDoParsingSyntax() + href: api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html#Hi_NcParsers_ParsingSyntaxs_Fanuc_FanucWhileDoParsingSyntax__ctor + commentId: M:Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.#ctor + name.vb: New() + fullName: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.FanucWhileDoParsingSyntax() + fullName.vb: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.New() + nameWithType: FanucWhileDoParsingSyntax.FanucWhileDoParsingSyntax() + nameWithType.vb: FanucWhileDoParsingSyntax.New() +- uid: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.#ctor(System.Xml.Linq.XElement) + name: FanucWhileDoParsingSyntax(XElement) + href: api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html#Hi_NcParsers_ParsingSyntaxs_Fanuc_FanucWhileDoParsingSyntax__ctor_System_Xml_Linq_XElement_ + commentId: M:Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.#ctor(System.Xml.Linq.XElement) + name.vb: New(XElement) + fullName: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.FanucWhileDoParsingSyntax(System.Xml.Linq.XElement) + fullName.vb: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.New(System.Xml.Linq.XElement) + nameWithType: FanucWhileDoParsingSyntax.FanucWhileDoParsingSyntax(XElement) + nameWithType.vb: FanucWhileDoParsingSyntax.New(XElement) +- uid: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.#ctor* + name: FanucWhileDoParsingSyntax + href: api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html#Hi_NcParsers_ParsingSyntaxs_Fanuc_FanucWhileDoParsingSyntax__ctor_ + commentId: Overload:Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.#ctor + isSpec: "True" + name.vb: New + fullName: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.FanucWhileDoParsingSyntax + fullName.vb: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.New + nameWithType: FanucWhileDoParsingSyntax.FanucWhileDoParsingSyntax + nameWithType.vb: FanucWhileDoParsingSyntax.New +- uid: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Build(Hi.Common.Collections.LazyLinkedListNode{Hi.NcParsers.Syntaxs.SyntaxPiece},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name: Build(LazyLinkedListNode, List, NcDiagnosticProgress) + href: api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html#Hi_NcParsers_ParsingSyntaxs_Fanuc_FanucWhileDoParsingSyntax_Build_Hi_Common_Collections_LazyLinkedListNode_Hi_NcParsers_Syntaxs_SyntaxPiece__System_Collections_Generic_List_Hi_NcParsers_Dependencys_INcDependency__Hi_NcParsers_NcDiagnosticProgress_ + commentId: M:Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Build(Hi.Common.Collections.LazyLinkedListNode{Hi.NcParsers.Syntaxs.SyntaxPiece},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name.vb: Build(LazyLinkedListNode(Of SyntaxPiece), List(Of INcDependency), NcDiagnosticProgress) + fullName: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Build(Hi.Common.Collections.LazyLinkedListNode, System.Collections.Generic.List, Hi.NcParsers.NcDiagnosticProgress) + fullName.vb: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Build(Hi.Common.Collections.LazyLinkedListNode(Of Hi.NcParsers.Syntaxs.SyntaxPiece), System.Collections.Generic.List(Of Hi.NcParsers.Dependencys.INcDependency), Hi.NcParsers.NcDiagnosticProgress) + nameWithType: FanucWhileDoParsingSyntax.Build(LazyLinkedListNode, List, NcDiagnosticProgress) + nameWithType.vb: FanucWhileDoParsingSyntax.Build(LazyLinkedListNode(Of SyntaxPiece), List(Of INcDependency), NcDiagnosticProgress) +- uid: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Build* + name: Build + href: api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html#Hi_NcParsers_ParsingSyntaxs_Fanuc_FanucWhileDoParsingSyntax_Build_ + commentId: Overload:Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Build + isSpec: "True" + fullName: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Build + nameWithType: FanucWhileDoParsingSyntax.Build +- uid: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.MakeXmlSource(System.String,System.String,System.Boolean) + name: MakeXmlSource(string, string, bool) + href: api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html#Hi_NcParsers_ParsingSyntaxs_Fanuc_FanucWhileDoParsingSyntax_MakeXmlSource_System_String_System_String_System_Boolean_ + commentId: M:Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.MakeXmlSource(System.String,System.String,System.Boolean) + name.vb: MakeXmlSource(String, String, Boolean) + fullName: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.MakeXmlSource(string, string, bool) + fullName.vb: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.MakeXmlSource(String, String, Boolean) + nameWithType: FanucWhileDoParsingSyntax.MakeXmlSource(string, string, bool) + nameWithType.vb: FanucWhileDoParsingSyntax.MakeXmlSource(String, String, Boolean) +- uid: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.MakeXmlSource* + name: MakeXmlSource + href: api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html#Hi_NcParsers_ParsingSyntaxs_Fanuc_FanucWhileDoParsingSyntax_MakeXmlSource_ + commentId: Overload:Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.MakeXmlSource + isSpec: "True" + fullName: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.MakeXmlSource + nameWithType: FanucWhileDoParsingSyntax.MakeXmlSource +- uid: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Name + name: Name + href: api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html#Hi_NcParsers_ParsingSyntaxs_Fanuc_FanucWhileDoParsingSyntax_Name + commentId: P:Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Name + fullName: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Name + nameWithType: FanucWhileDoParsingSyntax.Name +- uid: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Name* + name: Name + href: api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html#Hi_NcParsers_ParsingSyntaxs_Fanuc_FanucWhileDoParsingSyntax_Name_ + commentId: Overload:Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Name + isSpec: "True" + fullName: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Name + nameWithType: FanucWhileDoParsingSyntax.Name +- uid: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Reg(Hi.Common.XmlUtils.XFactory) + name: Reg(XFactory) + href: api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html#Hi_NcParsers_ParsingSyntaxs_Fanuc_FanucWhileDoParsingSyntax_Reg_Hi_Common_XmlUtils_XFactory_ + commentId: M:Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Reg(Hi.Common.XmlUtils.XFactory) + fullName: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Reg(Hi.Common.XmlUtils.XFactory) + nameWithType: FanucWhileDoParsingSyntax.Reg(XFactory) +- uid: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Reg* + name: Reg + href: api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html#Hi_NcParsers_ParsingSyntaxs_Fanuc_FanucWhileDoParsingSyntax_Reg_ + commentId: Overload:Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Reg + isSpec: "True" + fullName: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.Reg + nameWithType: FanucWhileDoParsingSyntax.Reg +- uid: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.XName + name: XName + href: api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html#Hi_NcParsers_ParsingSyntaxs_Fanuc_FanucWhileDoParsingSyntax_XName + commentId: P:Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.XName + fullName: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.XName + nameWithType: FanucWhileDoParsingSyntax.XName +- uid: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.XName* + name: XName + href: api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html#Hi_NcParsers_ParsingSyntaxs_Fanuc_FanucWhileDoParsingSyntax_XName_ + commentId: Overload:Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.XName + isSpec: "True" + fullName: Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.XName + nameWithType: FanucWhileDoParsingSyntax.XName - uid: Hi.NcParsers.ParsingSyntaxs.FlagSyntax name: FlagSyntax href: api/Hi.NcParsers.ParsingSyntaxs.FlagSyntax.html @@ -141426,15 +141295,15 @@ references: fullName.vb: Hi.NcParsers.Segmenters.HeidenhainSegmenter.New nameWithType: HeidenhainSegmenter.HeidenhainSegmenter nameWithType.vb: HeidenhainSegmenter.New -- uid: Hi.NcParsers.Segmenters.HeidenhainSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},Hi.NcParsers.NcDiagnosticProgress) - name: GetSentences(LazyLinkedList, NcDiagnosticProgress) - href: api/Hi.NcParsers.Segmenters.HeidenhainSegmenter.html#Hi_NcParsers_Segmenters_HeidenhainSegmenter_GetSentences_Hi_Common_Collections_LazyLinkedList_Hi_Common_FileLines_IndexedFileLine__Hi_NcParsers_NcDiagnosticProgress_ - commentId: M:Hi.NcParsers.Segmenters.HeidenhainSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},Hi.NcParsers.NcDiagnosticProgress) - name.vb: GetSentences(LazyLinkedList(Of IndexedFileLine), NcDiagnosticProgress) - fullName: Hi.NcParsers.Segmenters.HeidenhainSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList, Hi.NcParsers.NcDiagnosticProgress) - fullName.vb: Hi.NcParsers.Segmenters.HeidenhainSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList(Of Hi.Common.FileLines.IndexedFileLine), Hi.NcParsers.NcDiagnosticProgress) - nameWithType: HeidenhainSegmenter.GetSentences(LazyLinkedList, NcDiagnosticProgress) - nameWithType.vb: HeidenhainSegmenter.GetSentences(LazyLinkedList(Of IndexedFileLine), NcDiagnosticProgress) +- uid: Hi.NcParsers.Segmenters.HeidenhainSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name: GetSentences(LazyLinkedList, List, NcDiagnosticProgress) + href: api/Hi.NcParsers.Segmenters.HeidenhainSegmenter.html#Hi_NcParsers_Segmenters_HeidenhainSegmenter_GetSentences_Hi_Common_Collections_LazyLinkedList_Hi_Common_FileLines_IndexedFileLine__System_Collections_Generic_List_Hi_NcParsers_Dependencys_INcDependency__Hi_NcParsers_NcDiagnosticProgress_ + commentId: M:Hi.NcParsers.Segmenters.HeidenhainSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name.vb: GetSentences(LazyLinkedList(Of IndexedFileLine), List(Of INcDependency), NcDiagnosticProgress) + fullName: Hi.NcParsers.Segmenters.HeidenhainSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList, System.Collections.Generic.List, Hi.NcParsers.NcDiagnosticProgress) + fullName.vb: Hi.NcParsers.Segmenters.HeidenhainSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList(Of Hi.Common.FileLines.IndexedFileLine), System.Collections.Generic.List(Of Hi.NcParsers.Dependencys.INcDependency), Hi.NcParsers.NcDiagnosticProgress) + nameWithType: HeidenhainSegmenter.GetSentences(LazyLinkedList, List, NcDiagnosticProgress) + nameWithType.vb: HeidenhainSegmenter.GetSentences(LazyLinkedList(Of IndexedFileLine), List(Of INcDependency), NcDiagnosticProgress) - uid: Hi.NcParsers.Segmenters.HeidenhainSegmenter.GetSentences* name: GetSentences href: api/Hi.NcParsers.Segmenters.HeidenhainSegmenter.html#Hi_NcParsers_Segmenters_HeidenhainSegmenter_GetSentences_ @@ -141500,15 +141369,15 @@ references: commentId: T:Hi.NcParsers.Segmenters.ISegmenter fullName: Hi.NcParsers.Segmenters.ISegmenter nameWithType: ISegmenter -- uid: Hi.NcParsers.Segmenters.ISegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},Hi.NcParsers.NcDiagnosticProgress) - name: GetSentences(LazyLinkedList, NcDiagnosticProgress) - href: api/Hi.NcParsers.Segmenters.ISegmenter.html#Hi_NcParsers_Segmenters_ISegmenter_GetSentences_Hi_Common_Collections_LazyLinkedList_Hi_Common_FileLines_IndexedFileLine__Hi_NcParsers_NcDiagnosticProgress_ - commentId: M:Hi.NcParsers.Segmenters.ISegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},Hi.NcParsers.NcDiagnosticProgress) - name.vb: GetSentences(LazyLinkedList(Of IndexedFileLine), NcDiagnosticProgress) - fullName: Hi.NcParsers.Segmenters.ISegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList, Hi.NcParsers.NcDiagnosticProgress) - fullName.vb: Hi.NcParsers.Segmenters.ISegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList(Of Hi.Common.FileLines.IndexedFileLine), Hi.NcParsers.NcDiagnosticProgress) - nameWithType: ISegmenter.GetSentences(LazyLinkedList, NcDiagnosticProgress) - nameWithType.vb: ISegmenter.GetSentences(LazyLinkedList(Of IndexedFileLine), NcDiagnosticProgress) +- uid: Hi.NcParsers.Segmenters.ISegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name: GetSentences(LazyLinkedList, List, NcDiagnosticProgress) + href: api/Hi.NcParsers.Segmenters.ISegmenter.html#Hi_NcParsers_Segmenters_ISegmenter_GetSentences_Hi_Common_Collections_LazyLinkedList_Hi_Common_FileLines_IndexedFileLine__System_Collections_Generic_List_Hi_NcParsers_Dependencys_INcDependency__Hi_NcParsers_NcDiagnosticProgress_ + commentId: M:Hi.NcParsers.Segmenters.ISegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name.vb: GetSentences(LazyLinkedList(Of IndexedFileLine), List(Of INcDependency), NcDiagnosticProgress) + fullName: Hi.NcParsers.Segmenters.ISegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList, System.Collections.Generic.List, Hi.NcParsers.NcDiagnosticProgress) + fullName.vb: Hi.NcParsers.Segmenters.ISegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList(Of Hi.Common.FileLines.IndexedFileLine), System.Collections.Generic.List(Of Hi.NcParsers.Dependencys.INcDependency), Hi.NcParsers.NcDiagnosticProgress) + nameWithType: ISegmenter.GetSentences(LazyLinkedList, List, NcDiagnosticProgress) + nameWithType.vb: ISegmenter.GetSentences(LazyLinkedList(Of IndexedFileLine), List(Of INcDependency), NcDiagnosticProgress) - uid: Hi.NcParsers.Segmenters.ISegmenter.GetSentences* name: GetSentences href: api/Hi.NcParsers.Segmenters.ISegmenter.html#Hi_NcParsers_Segmenters_ISegmenter_GetSentences_ @@ -141582,15 +141451,15 @@ references: isSpec: "True" fullName: Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.Delimiter nameWithType: InlineDelimiterSegmenter.Delimiter -- uid: Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},Hi.NcParsers.NcDiagnosticProgress) - name: GetSentences(LazyLinkedList, NcDiagnosticProgress) - href: api/Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.html#Hi_NcParsers_Segmenters_InlineDelimiterSegmenter_GetSentences_Hi_Common_Collections_LazyLinkedList_Hi_Common_FileLines_IndexedFileLine__Hi_NcParsers_NcDiagnosticProgress_ - commentId: M:Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},Hi.NcParsers.NcDiagnosticProgress) - name.vb: GetSentences(LazyLinkedList(Of IndexedFileLine), NcDiagnosticProgress) - fullName: Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList, Hi.NcParsers.NcDiagnosticProgress) - fullName.vb: Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList(Of Hi.Common.FileLines.IndexedFileLine), Hi.NcParsers.NcDiagnosticProgress) - nameWithType: InlineDelimiterSegmenter.GetSentences(LazyLinkedList, NcDiagnosticProgress) - nameWithType.vb: InlineDelimiterSegmenter.GetSentences(LazyLinkedList(Of IndexedFileLine), NcDiagnosticProgress) +- uid: Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name: GetSentences(LazyLinkedList, List, NcDiagnosticProgress) + href: api/Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.html#Hi_NcParsers_Segmenters_InlineDelimiterSegmenter_GetSentences_Hi_Common_Collections_LazyLinkedList_Hi_Common_FileLines_IndexedFileLine__System_Collections_Generic_List_Hi_NcParsers_Dependencys_INcDependency__Hi_NcParsers_NcDiagnosticProgress_ + commentId: M:Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name.vb: GetSentences(LazyLinkedList(Of IndexedFileLine), List(Of INcDependency), NcDiagnosticProgress) + fullName: Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList, System.Collections.Generic.List, Hi.NcParsers.NcDiagnosticProgress) + fullName.vb: Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList(Of Hi.Common.FileLines.IndexedFileLine), System.Collections.Generic.List(Of Hi.NcParsers.Dependencys.INcDependency), Hi.NcParsers.NcDiagnosticProgress) + nameWithType: InlineDelimiterSegmenter.GetSentences(LazyLinkedList, List, NcDiagnosticProgress) + nameWithType.vb: InlineDelimiterSegmenter.GetSentences(LazyLinkedList(Of IndexedFileLine), List(Of INcDependency), NcDiagnosticProgress) - uid: Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.GetSentences* name: GetSentences href: api/Hi.NcParsers.Segmenters.InlineDelimiterSegmenter.html#Hi_NcParsers_Segmenters_InlineDelimiterSegmenter_GetSentences_ @@ -141656,15 +141525,15 @@ references: commentId: T:Hi.NcParsers.Segmenters.SingleLineSegmenter fullName: Hi.NcParsers.Segmenters.SingleLineSegmenter nameWithType: SingleLineSegmenter -- uid: Hi.NcParsers.Segmenters.SingleLineSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},Hi.NcParsers.NcDiagnosticProgress) - name: GetSentences(LazyLinkedList, NcDiagnosticProgress) - href: api/Hi.NcParsers.Segmenters.SingleLineSegmenter.html#Hi_NcParsers_Segmenters_SingleLineSegmenter_GetSentences_Hi_Common_Collections_LazyLinkedList_Hi_Common_FileLines_IndexedFileLine__Hi_NcParsers_NcDiagnosticProgress_ - commentId: M:Hi.NcParsers.Segmenters.SingleLineSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},Hi.NcParsers.NcDiagnosticProgress) - name.vb: GetSentences(LazyLinkedList(Of IndexedFileLine), NcDiagnosticProgress) - fullName: Hi.NcParsers.Segmenters.SingleLineSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList, Hi.NcParsers.NcDiagnosticProgress) - fullName.vb: Hi.NcParsers.Segmenters.SingleLineSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList(Of Hi.Common.FileLines.IndexedFileLine), Hi.NcParsers.NcDiagnosticProgress) - nameWithType: SingleLineSegmenter.GetSentences(LazyLinkedList, NcDiagnosticProgress) - nameWithType.vb: SingleLineSegmenter.GetSentences(LazyLinkedList(Of IndexedFileLine), NcDiagnosticProgress) +- uid: Hi.NcParsers.Segmenters.SingleLineSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name: GetSentences(LazyLinkedList, List, NcDiagnosticProgress) + href: api/Hi.NcParsers.Segmenters.SingleLineSegmenter.html#Hi_NcParsers_Segmenters_SingleLineSegmenter_GetSentences_Hi_Common_Collections_LazyLinkedList_Hi_Common_FileLines_IndexedFileLine__System_Collections_Generic_List_Hi_NcParsers_Dependencys_INcDependency__Hi_NcParsers_NcDiagnosticProgress_ + commentId: M:Hi.NcParsers.Segmenters.SingleLineSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name.vb: GetSentences(LazyLinkedList(Of IndexedFileLine), List(Of INcDependency), NcDiagnosticProgress) + fullName: Hi.NcParsers.Segmenters.SingleLineSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList, System.Collections.Generic.List, Hi.NcParsers.NcDiagnosticProgress) + fullName.vb: Hi.NcParsers.Segmenters.SingleLineSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList(Of Hi.Common.FileLines.IndexedFileLine), System.Collections.Generic.List(Of Hi.NcParsers.Dependencys.INcDependency), Hi.NcParsers.NcDiagnosticProgress) + nameWithType: SingleLineSegmenter.GetSentences(LazyLinkedList, List, NcDiagnosticProgress) + nameWithType.vb: SingleLineSegmenter.GetSentences(LazyLinkedList(Of IndexedFileLine), List(Of INcDependency), NcDiagnosticProgress) - uid: Hi.NcParsers.Segmenters.SingleLineSegmenter.GetSentences* name: GetSentences href: api/Hi.NcParsers.Segmenters.SingleLineSegmenter.html#Hi_NcParsers_Segmenters_SingleLineSegmenter_GetSentences_ @@ -146978,6 +146847,497 @@ references: commentId: F:Hi.Numerical.CoordinateInterpolationMode.Polar fullName: Hi.Numerical.CoordinateInterpolationMode.Polar nameWithType: CoordinateInterpolationMode.Polar +- uid: Hi.Numerical.CsvParsers + name: Hi.Numerical.CsvParsers + href: api/Hi.Numerical.CsvParsers.html + commentId: N:Hi.Numerical.CsvParsers + fullName: Hi.Numerical.CsvParsers + nameWithType: Hi.Numerical.CsvParsers +- uid: Hi.Numerical.CsvParsers.CsvRowSemantic + name: CsvRowSemantic + href: api/Hi.Numerical.CsvParsers.CsvRowSemantic.html + commentId: T:Hi.Numerical.CsvParsers.CsvRowSemantic + fullName: Hi.Numerical.CsvParsers.CsvRowSemantic + nameWithType: CsvRowSemantic +- uid: Hi.Numerical.CsvParsers.CsvRowSemantic.DisplayName + name: DisplayName + href: api/Hi.Numerical.CsvParsers.CsvRowSemantic.html#Hi_Numerical_CsvParsers_CsvRowSemantic_DisplayName + commentId: P:Hi.Numerical.CsvParsers.CsvRowSemantic.DisplayName + fullName: Hi.Numerical.CsvParsers.CsvRowSemantic.DisplayName + nameWithType: CsvRowSemantic.DisplayName +- uid: Hi.Numerical.CsvParsers.CsvRowSemantic.DisplayName* + name: DisplayName + href: api/Hi.Numerical.CsvParsers.CsvRowSemantic.html#Hi_Numerical_CsvParsers_CsvRowSemantic_DisplayName_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRowSemantic.DisplayName + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRowSemantic.DisplayName + nameWithType: CsvRowSemantic.DisplayName +- uid: Hi.Numerical.CsvParsers.CsvRowSemantic.MakeXmlSource(System.String,System.String,System.Boolean) + name: MakeXmlSource(string, string, bool) + href: api/Hi.Numerical.CsvParsers.CsvRowSemantic.html#Hi_Numerical_CsvParsers_CsvRowSemantic_MakeXmlSource_System_String_System_String_System_Boolean_ + commentId: M:Hi.Numerical.CsvParsers.CsvRowSemantic.MakeXmlSource(System.String,System.String,System.Boolean) + name.vb: MakeXmlSource(String, String, Boolean) + fullName: Hi.Numerical.CsvParsers.CsvRowSemantic.MakeXmlSource(string, string, bool) + fullName.vb: Hi.Numerical.CsvParsers.CsvRowSemantic.MakeXmlSource(String, String, Boolean) + nameWithType: CsvRowSemantic.MakeXmlSource(string, string, bool) + nameWithType.vb: CsvRowSemantic.MakeXmlSource(String, String, Boolean) +- uid: Hi.Numerical.CsvParsers.CsvRowSemantic.MakeXmlSource* + name: MakeXmlSource + href: api/Hi.Numerical.CsvParsers.CsvRowSemantic.html#Hi_Numerical_CsvParsers_CsvRowSemantic_MakeXmlSource_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRowSemantic.MakeXmlSource + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRowSemantic.MakeXmlSource + nameWithType: CsvRowSemantic.MakeXmlSource +- uid: Hi.Numerical.CsvParsers.CsvRowSemantic.Reg(Hi.Common.XmlUtils.XFactory) + name: Reg(XFactory) + href: api/Hi.Numerical.CsvParsers.CsvRowSemantic.html#Hi_Numerical_CsvParsers_CsvRowSemantic_Reg_Hi_Common_XmlUtils_XFactory_ + commentId: M:Hi.Numerical.CsvParsers.CsvRowSemantic.Reg(Hi.Common.XmlUtils.XFactory) + fullName: Hi.Numerical.CsvParsers.CsvRowSemantic.Reg(Hi.Common.XmlUtils.XFactory) + nameWithType: CsvRowSemantic.Reg(XFactory) +- uid: Hi.Numerical.CsvParsers.CsvRowSemantic.Reg* + name: Reg + href: api/Hi.Numerical.CsvParsers.CsvRowSemantic.html#Hi_Numerical_CsvParsers_CsvRowSemantic_Reg_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRowSemantic.Reg + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRowSemantic.Reg + nameWithType: CsvRowSemantic.Reg +- uid: Hi.Numerical.CsvParsers.CsvRowSemantic.Resolve(Hi.Common.Collections.LazyLinkedListNode{Hi.NcParsers.Syntaxs.SyntaxPiece},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name: Resolve(LazyLinkedListNode, List, NcDiagnosticProgress) + href: api/Hi.Numerical.CsvParsers.CsvRowSemantic.html#Hi_Numerical_CsvParsers_CsvRowSemantic_Resolve_Hi_Common_Collections_LazyLinkedListNode_Hi_NcParsers_Syntaxs_SyntaxPiece__System_Collections_Generic_List_Hi_NcParsers_Dependencys_INcDependency__Hi_NcParsers_NcDiagnosticProgress_ + commentId: M:Hi.Numerical.CsvParsers.CsvRowSemantic.Resolve(Hi.Common.Collections.LazyLinkedListNode{Hi.NcParsers.Syntaxs.SyntaxPiece},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name.vb: Resolve(LazyLinkedListNode(Of SyntaxPiece), List(Of INcDependency), NcDiagnosticProgress) + fullName: Hi.Numerical.CsvParsers.CsvRowSemantic.Resolve(Hi.Common.Collections.LazyLinkedListNode, System.Collections.Generic.List, Hi.NcParsers.NcDiagnosticProgress) + fullName.vb: Hi.Numerical.CsvParsers.CsvRowSemantic.Resolve(Hi.Common.Collections.LazyLinkedListNode(Of Hi.NcParsers.Syntaxs.SyntaxPiece), System.Collections.Generic.List(Of Hi.NcParsers.Dependencys.INcDependency), Hi.NcParsers.NcDiagnosticProgress) + nameWithType: CsvRowSemantic.Resolve(LazyLinkedListNode, List, NcDiagnosticProgress) + nameWithType.vb: CsvRowSemantic.Resolve(LazyLinkedListNode(Of SyntaxPiece), List(Of INcDependency), NcDiagnosticProgress) +- uid: Hi.Numerical.CsvParsers.CsvRowSemantic.Resolve* + name: Resolve + href: api/Hi.Numerical.CsvParsers.CsvRowSemantic.html#Hi_Numerical_CsvParsers_CsvRowSemantic_Resolve_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRowSemantic.Resolve + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRowSemantic.Resolve + nameWithType: CsvRowSemantic.Resolve +- uid: Hi.Numerical.CsvParsers.CsvRowSemantic.XName + name: XName + href: api/Hi.Numerical.CsvParsers.CsvRowSemantic.html#Hi_Numerical_CsvParsers_CsvRowSemantic_XName + commentId: P:Hi.Numerical.CsvParsers.CsvRowSemantic.XName + fullName: Hi.Numerical.CsvParsers.CsvRowSemantic.XName + nameWithType: CsvRowSemantic.XName +- uid: Hi.Numerical.CsvParsers.CsvRowSemantic.XName* + name: XName + href: api/Hi.Numerical.CsvParsers.CsvRowSemantic.html#Hi_Numerical_CsvParsers_CsvRowSemantic_XName_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRowSemantic.XName + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRowSemantic.XName + nameWithType: CsvRowSemantic.XName +- uid: Hi.Numerical.CsvParsers.CsvRowSyntax + name: CsvRowSyntax + href: api/Hi.Numerical.CsvParsers.CsvRowSyntax.html + commentId: T:Hi.Numerical.CsvParsers.CsvRowSyntax + fullName: Hi.Numerical.CsvParsers.CsvRowSyntax + nameWithType: CsvRowSyntax +- uid: Hi.Numerical.CsvParsers.CsvRowSyntax.Build(Hi.Common.Collections.LazyLinkedListNode{Hi.NcParsers.Syntaxs.SyntaxPiece},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name: Build(LazyLinkedListNode, List, NcDiagnosticProgress) + href: api/Hi.Numerical.CsvParsers.CsvRowSyntax.html#Hi_Numerical_CsvParsers_CsvRowSyntax_Build_Hi_Common_Collections_LazyLinkedListNode_Hi_NcParsers_Syntaxs_SyntaxPiece__System_Collections_Generic_List_Hi_NcParsers_Dependencys_INcDependency__Hi_NcParsers_NcDiagnosticProgress_ + commentId: M:Hi.Numerical.CsvParsers.CsvRowSyntax.Build(Hi.Common.Collections.LazyLinkedListNode{Hi.NcParsers.Syntaxs.SyntaxPiece},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name.vb: Build(LazyLinkedListNode(Of SyntaxPiece), List(Of INcDependency), NcDiagnosticProgress) + fullName: Hi.Numerical.CsvParsers.CsvRowSyntax.Build(Hi.Common.Collections.LazyLinkedListNode, System.Collections.Generic.List, Hi.NcParsers.NcDiagnosticProgress) + fullName.vb: Hi.Numerical.CsvParsers.CsvRowSyntax.Build(Hi.Common.Collections.LazyLinkedListNode(Of Hi.NcParsers.Syntaxs.SyntaxPiece), System.Collections.Generic.List(Of Hi.NcParsers.Dependencys.INcDependency), Hi.NcParsers.NcDiagnosticProgress) + nameWithType: CsvRowSyntax.Build(LazyLinkedListNode, List, NcDiagnosticProgress) + nameWithType.vb: CsvRowSyntax.Build(LazyLinkedListNode(Of SyntaxPiece), List(Of INcDependency), NcDiagnosticProgress) +- uid: Hi.Numerical.CsvParsers.CsvRowSyntax.Build* + name: Build + href: api/Hi.Numerical.CsvParsers.CsvRowSyntax.html#Hi_Numerical_CsvParsers_CsvRowSyntax_Build_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRowSyntax.Build + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRowSyntax.Build + nameWithType: CsvRowSyntax.Build +- uid: Hi.Numerical.CsvParsers.CsvRowSyntax.CsvRowKey + name: CsvRowKey + href: api/Hi.Numerical.CsvParsers.CsvRowSyntax.html#Hi_Numerical_CsvParsers_CsvRowSyntax_CsvRowKey + commentId: F:Hi.Numerical.CsvParsers.CsvRowSyntax.CsvRowKey + fullName: Hi.Numerical.CsvParsers.CsvRowSyntax.CsvRowKey + nameWithType: CsvRowSyntax.CsvRowKey +- uid: Hi.Numerical.CsvParsers.CsvRowSyntax.MakeXmlSource(System.String,System.String,System.Boolean) + name: MakeXmlSource(string, string, bool) + href: api/Hi.Numerical.CsvParsers.CsvRowSyntax.html#Hi_Numerical_CsvParsers_CsvRowSyntax_MakeXmlSource_System_String_System_String_System_Boolean_ + commentId: M:Hi.Numerical.CsvParsers.CsvRowSyntax.MakeXmlSource(System.String,System.String,System.Boolean) + name.vb: MakeXmlSource(String, String, Boolean) + fullName: Hi.Numerical.CsvParsers.CsvRowSyntax.MakeXmlSource(string, string, bool) + fullName.vb: Hi.Numerical.CsvParsers.CsvRowSyntax.MakeXmlSource(String, String, Boolean) + nameWithType: CsvRowSyntax.MakeXmlSource(string, string, bool) + nameWithType.vb: CsvRowSyntax.MakeXmlSource(String, String, Boolean) +- uid: Hi.Numerical.CsvParsers.CsvRowSyntax.MakeXmlSource* + name: MakeXmlSource + href: api/Hi.Numerical.CsvParsers.CsvRowSyntax.html#Hi_Numerical_CsvParsers_CsvRowSyntax_MakeXmlSource_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRowSyntax.MakeXmlSource + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRowSyntax.MakeXmlSource + nameWithType: CsvRowSyntax.MakeXmlSource +- uid: Hi.Numerical.CsvParsers.CsvRowSyntax.Name + name: Name + href: api/Hi.Numerical.CsvParsers.CsvRowSyntax.html#Hi_Numerical_CsvParsers_CsvRowSyntax_Name + commentId: P:Hi.Numerical.CsvParsers.CsvRowSyntax.Name + fullName: Hi.Numerical.CsvParsers.CsvRowSyntax.Name + nameWithType: CsvRowSyntax.Name +- uid: Hi.Numerical.CsvParsers.CsvRowSyntax.Name* + name: Name + href: api/Hi.Numerical.CsvParsers.CsvRowSyntax.html#Hi_Numerical_CsvParsers_CsvRowSyntax_Name_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRowSyntax.Name + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRowSyntax.Name + nameWithType: CsvRowSyntax.Name +- uid: Hi.Numerical.CsvParsers.CsvRowSyntax.Reg(Hi.Common.XmlUtils.XFactory) + name: Reg(XFactory) + href: api/Hi.Numerical.CsvParsers.CsvRowSyntax.html#Hi_Numerical_CsvParsers_CsvRowSyntax_Reg_Hi_Common_XmlUtils_XFactory_ + commentId: M:Hi.Numerical.CsvParsers.CsvRowSyntax.Reg(Hi.Common.XmlUtils.XFactory) + fullName: Hi.Numerical.CsvParsers.CsvRowSyntax.Reg(Hi.Common.XmlUtils.XFactory) + nameWithType: CsvRowSyntax.Reg(XFactory) +- uid: Hi.Numerical.CsvParsers.CsvRowSyntax.Reg* + name: Reg + href: api/Hi.Numerical.CsvParsers.CsvRowSyntax.html#Hi_Numerical_CsvParsers_CsvRowSyntax_Reg_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRowSyntax.Reg + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRowSyntax.Reg + nameWithType: CsvRowSyntax.Reg +- uid: Hi.Numerical.CsvParsers.CsvRowSyntax.XName + name: XName + href: api/Hi.Numerical.CsvParsers.CsvRowSyntax.html#Hi_Numerical_CsvParsers_CsvRowSyntax_XName + commentId: P:Hi.Numerical.CsvParsers.CsvRowSyntax.XName + fullName: Hi.Numerical.CsvParsers.CsvRowSyntax.XName + nameWithType: CsvRowSyntax.XName +- uid: Hi.Numerical.CsvParsers.CsvRowSyntax.XName* + name: XName + href: api/Hi.Numerical.CsvParsers.CsvRowSyntax.html#Hi_Numerical_CsvParsers_CsvRowSyntax_XName_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRowSyntax.XName + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRowSyntax.XName + nameWithType: CsvRowSyntax.XName +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig + name: CsvRunnerConfig + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html + commentId: T:Hi.Numerical.CsvParsers.CsvRunnerConfig + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig + nameWithType: CsvRunnerConfig +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.#ctor + name: CsvRunnerConfig() + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig__ctor + commentId: M:Hi.Numerical.CsvParsers.CsvRunnerConfig.#ctor + name.vb: New() + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.CsvRunnerConfig() + fullName.vb: Hi.Numerical.CsvParsers.CsvRunnerConfig.New() + nameWithType: CsvRunnerConfig.CsvRunnerConfig() + nameWithType.vb: CsvRunnerConfig.New() +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.#ctor(System.Xml.Linq.XElement) + name: CsvRunnerConfig(XElement) + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig__ctor_System_Xml_Linq_XElement_ + commentId: M:Hi.Numerical.CsvParsers.CsvRunnerConfig.#ctor(System.Xml.Linq.XElement) + name.vb: New(XElement) + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.CsvRunnerConfig(System.Xml.Linq.XElement) + fullName.vb: Hi.Numerical.CsvParsers.CsvRunnerConfig.New(System.Xml.Linq.XElement) + nameWithType: CsvRunnerConfig.CsvRunnerConfig(XElement) + nameWithType.vb: CsvRunnerConfig.New(XElement) +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.#ctor* + name: CsvRunnerConfig + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig__ctor_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRunnerConfig.#ctor + isSpec: "True" + name.vb: New + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.CsvRunnerConfig + fullName.vb: Hi.Numerical.CsvParsers.CsvRunnerConfig.New + nameWithType: CsvRunnerConfig.CsvRunnerConfig + nameWithType.vb: CsvRunnerConfig.New +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.ActualTimeTag + name: ActualTimeTag + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_ActualTimeTag + commentId: P:Hi.Numerical.CsvParsers.CsvRunnerConfig.ActualTimeTag + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.ActualTimeTag + nameWithType: CsvRunnerConfig.ActualTimeTag +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.ActualTimeTag* + name: ActualTimeTag + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_ActualTimeTag_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRunnerConfig.ActualTimeTag + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.ActualTimeTag + nameWithType: CsvRunnerConfig.ActualTimeTag +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.CutterLocationPrefix + name: CutterLocationPrefix + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_CutterLocationPrefix + commentId: P:Hi.Numerical.CsvParsers.CsvRunnerConfig.CutterLocationPrefix + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.CutterLocationPrefix + nameWithType: CsvRunnerConfig.CutterLocationPrefix +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.CutterLocationPrefix* + name: CutterLocationPrefix + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_CutterLocationPrefix_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRunnerConfig.CutterLocationPrefix + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.CutterLocationPrefix + nameWithType: CsvRunnerConfig.CutterLocationPrefix +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.DurationTag + name: DurationTag + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_DurationTag + commentId: P:Hi.Numerical.CsvParsers.CsvRunnerConfig.DurationTag + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.DurationTag + nameWithType: CsvRunnerConfig.DurationTag +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.DurationTag* + name: DurationTag + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_DurationTag_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRunnerConfig.DurationTag + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.DurationTag + nameWithType: CsvRunnerConfig.DurationTag +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.FeedrateTag_mmdmin + name: FeedrateTag_mmdmin + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_FeedrateTag_mmdmin + commentId: P:Hi.Numerical.CsvParsers.CsvRunnerConfig.FeedrateTag_mmdmin + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.FeedrateTag_mmdmin + nameWithType: CsvRunnerConfig.FeedrateTag_mmdmin +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.FeedrateTag_mmdmin* + name: FeedrateTag_mmdmin + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_FeedrateTag_mmdmin_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRunnerConfig.FeedrateTag_mmdmin + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.FeedrateTag_mmdmin + nameWithType: CsvRunnerConfig.FeedrateTag_mmdmin +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.LineBeginCsScriptTag + name: LineBeginCsScriptTag + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_LineBeginCsScriptTag + commentId: P:Hi.Numerical.CsvParsers.CsvRunnerConfig.LineBeginCsScriptTag + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.LineBeginCsScriptTag + nameWithType: CsvRunnerConfig.LineBeginCsScriptTag +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.LineBeginCsScriptTag* + name: LineBeginCsScriptTag + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_LineBeginCsScriptTag_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRunnerConfig.LineBeginCsScriptTag + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.LineBeginCsScriptTag + nameWithType: CsvRunnerConfig.LineBeginCsScriptTag +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.LineEndCsScriptTag + name: LineEndCsScriptTag + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_LineEndCsScriptTag + commentId: P:Hi.Numerical.CsvParsers.CsvRunnerConfig.LineEndCsScriptTag + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.LineEndCsScriptTag + nameWithType: CsvRunnerConfig.LineEndCsScriptTag +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.LineEndCsScriptTag* + name: LineEndCsScriptTag + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_LineEndCsScriptTag_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRunnerConfig.LineEndCsScriptTag + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.LineEndCsScriptTag + nameWithType: CsvRunnerConfig.LineEndCsScriptTag +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.MachineCoordinatePrefix + name: MachineCoordinatePrefix + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_MachineCoordinatePrefix + commentId: P:Hi.Numerical.CsvParsers.CsvRunnerConfig.MachineCoordinatePrefix + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.MachineCoordinatePrefix + nameWithType: CsvRunnerConfig.MachineCoordinatePrefix +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.MachineCoordinatePrefix* + name: MachineCoordinatePrefix + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_MachineCoordinatePrefix_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRunnerConfig.MachineCoordinatePrefix + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.MachineCoordinatePrefix + nameWithType: CsvRunnerConfig.MachineCoordinatePrefix +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.MakeXmlSource(System.String,System.String,System.Boolean) + name: MakeXmlSource(string, string, bool) + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_MakeXmlSource_System_String_System_String_System_Boolean_ + commentId: M:Hi.Numerical.CsvParsers.CsvRunnerConfig.MakeXmlSource(System.String,System.String,System.Boolean) + name.vb: MakeXmlSource(String, String, Boolean) + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.MakeXmlSource(string, string, bool) + fullName.vb: Hi.Numerical.CsvParsers.CsvRunnerConfig.MakeXmlSource(String, String, Boolean) + nameWithType: CsvRunnerConfig.MakeXmlSource(string, string, bool) + nameWithType.vb: CsvRunnerConfig.MakeXmlSource(String, String, Boolean) +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.MakeXmlSource* + name: MakeXmlSource + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_MakeXmlSource_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRunnerConfig.MakeXmlSource + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.MakeXmlSource + nameWithType: CsvRunnerConfig.MakeXmlSource +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.ParsingDictionary + name: ParsingDictionary + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_ParsingDictionary + commentId: P:Hi.Numerical.CsvParsers.CsvRunnerConfig.ParsingDictionary + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.ParsingDictionary + nameWithType: CsvRunnerConfig.ParsingDictionary +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.ParsingDictionary* + name: ParsingDictionary + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_ParsingDictionary_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRunnerConfig.ParsingDictionary + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.ParsingDictionary + nameWithType: CsvRunnerConfig.ParsingDictionary +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.Reg(Hi.Common.XmlUtils.XFactory) + name: Reg(XFactory) + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_Reg_Hi_Common_XmlUtils_XFactory_ + commentId: M:Hi.Numerical.CsvParsers.CsvRunnerConfig.Reg(Hi.Common.XmlUtils.XFactory) + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.Reg(Hi.Common.XmlUtils.XFactory) + nameWithType: CsvRunnerConfig.Reg(XFactory) +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.Reg* + name: Reg + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_Reg_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRunnerConfig.Reg + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.Reg + nameWithType: CsvRunnerConfig.Reg +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.SpindleDirectionTag + name: SpindleDirectionTag + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_SpindleDirectionTag + commentId: P:Hi.Numerical.CsvParsers.CsvRunnerConfig.SpindleDirectionTag + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.SpindleDirectionTag + nameWithType: CsvRunnerConfig.SpindleDirectionTag +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.SpindleDirectionTag* + name: SpindleDirectionTag + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_SpindleDirectionTag_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRunnerConfig.SpindleDirectionTag + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.SpindleDirectionTag + nameWithType: CsvRunnerConfig.SpindleDirectionTag +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.SpindleSpeedTag_rpm + name: SpindleSpeedTag_rpm + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_SpindleSpeedTag_rpm + commentId: P:Hi.Numerical.CsvParsers.CsvRunnerConfig.SpindleSpeedTag_rpm + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.SpindleSpeedTag_rpm + nameWithType: CsvRunnerConfig.SpindleSpeedTag_rpm +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.SpindleSpeedTag_rpm* + name: SpindleSpeedTag_rpm + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_SpindleSpeedTag_rpm_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRunnerConfig.SpindleSpeedTag_rpm + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.SpindleSpeedTag_rpm + nameWithType: CsvRunnerConfig.SpindleSpeedTag_rpm +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.ToolIdTag + name: ToolIdTag + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_ToolIdTag + commentId: P:Hi.Numerical.CsvParsers.CsvRunnerConfig.ToolIdTag + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.ToolIdTag + nameWithType: CsvRunnerConfig.ToolIdTag +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.ToolIdTag* + name: ToolIdTag + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_ToolIdTag_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRunnerConfig.ToolIdTag + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.ToolIdTag + nameWithType: CsvRunnerConfig.ToolIdTag +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.XName + name: XName + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_XName + commentId: P:Hi.Numerical.CsvParsers.CsvRunnerConfig.XName + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.XName + nameWithType: CsvRunnerConfig.XName +- uid: Hi.Numerical.CsvParsers.CsvRunnerConfig.XName* + name: XName + href: api/Hi.Numerical.CsvParsers.CsvRunnerConfig.html#Hi_Numerical_CsvParsers_CsvRunnerConfig_XName_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvRunnerConfig.XName + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvRunnerConfig.XName + nameWithType: CsvRunnerConfig.XName +- uid: Hi.Numerical.CsvParsers.CsvSegmenter + name: CsvSegmenter + href: api/Hi.Numerical.CsvParsers.CsvSegmenter.html + commentId: T:Hi.Numerical.CsvParsers.CsvSegmenter + fullName: Hi.Numerical.CsvParsers.CsvSegmenter + nameWithType: CsvSegmenter +- uid: Hi.Numerical.CsvParsers.CsvSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name: GetSentences(LazyLinkedList, List, NcDiagnosticProgress) + href: api/Hi.Numerical.CsvParsers.CsvSegmenter.html#Hi_Numerical_CsvParsers_CsvSegmenter_GetSentences_Hi_Common_Collections_LazyLinkedList_Hi_Common_FileLines_IndexedFileLine__System_Collections_Generic_List_Hi_NcParsers_Dependencys_INcDependency__Hi_NcParsers_NcDiagnosticProgress_ + commentId: M:Hi.Numerical.CsvParsers.CsvSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList{Hi.Common.FileLines.IndexedFileLine},System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency},Hi.NcParsers.NcDiagnosticProgress) + name.vb: GetSentences(LazyLinkedList(Of IndexedFileLine), List(Of INcDependency), NcDiagnosticProgress) + fullName: Hi.Numerical.CsvParsers.CsvSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList, System.Collections.Generic.List, Hi.NcParsers.NcDiagnosticProgress) + fullName.vb: Hi.Numerical.CsvParsers.CsvSegmenter.GetSentences(Hi.Common.Collections.LazyLinkedList(Of Hi.Common.FileLines.IndexedFileLine), System.Collections.Generic.List(Of Hi.NcParsers.Dependencys.INcDependency), Hi.NcParsers.NcDiagnosticProgress) + nameWithType: CsvSegmenter.GetSentences(LazyLinkedList, List, NcDiagnosticProgress) + nameWithType.vb: CsvSegmenter.GetSentences(LazyLinkedList(Of IndexedFileLine), List(Of INcDependency), NcDiagnosticProgress) +- uid: Hi.Numerical.CsvParsers.CsvSegmenter.GetSentences* + name: GetSentences + href: api/Hi.Numerical.CsvParsers.CsvSegmenter.html#Hi_Numerical_CsvParsers_CsvSegmenter_GetSentences_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvSegmenter.GetSentences + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvSegmenter.GetSentences + nameWithType: CsvSegmenter.GetSentences +- uid: Hi.Numerical.CsvParsers.CsvSegmenter.Name + name: Name + href: api/Hi.Numerical.CsvParsers.CsvSegmenter.html#Hi_Numerical_CsvParsers_CsvSegmenter_Name + commentId: P:Hi.Numerical.CsvParsers.CsvSegmenter.Name + fullName: Hi.Numerical.CsvParsers.CsvSegmenter.Name + nameWithType: CsvSegmenter.Name +- uid: Hi.Numerical.CsvParsers.CsvSegmenter.Name* + name: Name + href: api/Hi.Numerical.CsvParsers.CsvSegmenter.html#Hi_Numerical_CsvParsers_CsvSegmenter_Name_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvSegmenter.Name + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvSegmenter.Name + nameWithType: CsvSegmenter.Name +- uid: Hi.Numerical.CsvParsers.CsvSegmenter.Reg(Hi.Common.XmlUtils.XFactory) + name: Reg(XFactory) + href: api/Hi.Numerical.CsvParsers.CsvSegmenter.html#Hi_Numerical_CsvParsers_CsvSegmenter_Reg_Hi_Common_XmlUtils_XFactory_ + commentId: M:Hi.Numerical.CsvParsers.CsvSegmenter.Reg(Hi.Common.XmlUtils.XFactory) + fullName: Hi.Numerical.CsvParsers.CsvSegmenter.Reg(Hi.Common.XmlUtils.XFactory) + nameWithType: CsvSegmenter.Reg(XFactory) +- uid: Hi.Numerical.CsvParsers.CsvSegmenter.Reg* + name: Reg + href: api/Hi.Numerical.CsvParsers.CsvSegmenter.html#Hi_Numerical_CsvParsers_CsvSegmenter_Reg_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvSegmenter.Reg + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvSegmenter.Reg + nameWithType: CsvSegmenter.Reg +- uid: Hi.Numerical.CsvParsers.CsvSegmenter.TitleList + name: TitleList + href: api/Hi.Numerical.CsvParsers.CsvSegmenter.html#Hi_Numerical_CsvParsers_CsvSegmenter_TitleList + commentId: P:Hi.Numerical.CsvParsers.CsvSegmenter.TitleList + fullName: Hi.Numerical.CsvParsers.CsvSegmenter.TitleList + nameWithType: CsvSegmenter.TitleList +- uid: Hi.Numerical.CsvParsers.CsvSegmenter.TitleList* + name: TitleList + href: api/Hi.Numerical.CsvParsers.CsvSegmenter.html#Hi_Numerical_CsvParsers_CsvSegmenter_TitleList_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvSegmenter.TitleList + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvSegmenter.TitleList + nameWithType: CsvSegmenter.TitleList +- uid: Hi.Numerical.CsvParsers.CsvSegmenter.ToXElement + name: ToXElement() + href: api/Hi.Numerical.CsvParsers.CsvSegmenter.html#Hi_Numerical_CsvParsers_CsvSegmenter_ToXElement + commentId: M:Hi.Numerical.CsvParsers.CsvSegmenter.ToXElement + fullName: Hi.Numerical.CsvParsers.CsvSegmenter.ToXElement() + nameWithType: CsvSegmenter.ToXElement() +- uid: Hi.Numerical.CsvParsers.CsvSegmenter.ToXElement* + name: ToXElement + href: api/Hi.Numerical.CsvParsers.CsvSegmenter.html#Hi_Numerical_CsvParsers_CsvSegmenter_ToXElement_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvSegmenter.ToXElement + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvSegmenter.ToXElement + nameWithType: CsvSegmenter.ToXElement +- uid: Hi.Numerical.CsvParsers.CsvSegmenter.XName + name: XName + href: api/Hi.Numerical.CsvParsers.CsvSegmenter.html#Hi_Numerical_CsvParsers_CsvSegmenter_XName + commentId: P:Hi.Numerical.CsvParsers.CsvSegmenter.XName + fullName: Hi.Numerical.CsvParsers.CsvSegmenter.XName + nameWithType: CsvSegmenter.XName +- uid: Hi.Numerical.CsvParsers.CsvSegmenter.XName* + name: XName + href: api/Hi.Numerical.CsvParsers.CsvSegmenter.html#Hi_Numerical_CsvParsers_CsvSegmenter_XName_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvSegmenter.XName + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvSegmenter.XName + nameWithType: CsvSegmenter.XName +- uid: Hi.Numerical.CsvParsers.CsvSoftRunner + name: CsvSoftRunner + href: api/Hi.Numerical.CsvParsers.CsvSoftRunner.html + commentId: T:Hi.Numerical.CsvParsers.CsvSoftRunner + fullName: Hi.Numerical.CsvParsers.CsvSoftRunner + nameWithType: CsvSoftRunner +- uid: Hi.Numerical.CsvParsers.CsvSoftRunner.Create(Hi.Numerical.CsvParsers.CsvRunnerConfig) + name: Create(CsvRunnerConfig) + href: api/Hi.Numerical.CsvParsers.CsvSoftRunner.html#Hi_Numerical_CsvParsers_CsvSoftRunner_Create_Hi_Numerical_CsvParsers_CsvRunnerConfig_ + commentId: M:Hi.Numerical.CsvParsers.CsvSoftRunner.Create(Hi.Numerical.CsvParsers.CsvRunnerConfig) + fullName: Hi.Numerical.CsvParsers.CsvSoftRunner.Create(Hi.Numerical.CsvParsers.CsvRunnerConfig) + nameWithType: CsvSoftRunner.Create(CsvRunnerConfig) +- uid: Hi.Numerical.CsvParsers.CsvSoftRunner.Create* + name: Create + href: api/Hi.Numerical.CsvParsers.CsvSoftRunner.html#Hi_Numerical_CsvParsers_CsvSoftRunner_Create_ + commentId: Overload:Hi.Numerical.CsvParsers.CsvSoftRunner.Create + isSpec: "True" + fullName: Hi.Numerical.CsvParsers.CsvSoftRunner.Create + nameWithType: CsvSoftRunner.Create - uid: Hi.Numerical.FilePlayers name: Hi.Numerical.FilePlayers href: api/Hi.Numerical.FilePlayers.html @@ -147051,225 +147411,6 @@ references: isSpec: "True" fullName: Hi.Numerical.FilePlayers.CsvRunner.RunControlLines nameWithType: CsvRunner.RunControlLines -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig - name: CsvRunnerConfig - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html - commentId: T:Hi.Numerical.FilePlayers.CsvRunnerConfig - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig - nameWithType: CsvRunnerConfig -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.#ctor - name: CsvRunnerConfig() - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig__ctor - commentId: M:Hi.Numerical.FilePlayers.CsvRunnerConfig.#ctor - name.vb: New() - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.CsvRunnerConfig() - fullName.vb: Hi.Numerical.FilePlayers.CsvRunnerConfig.New() - nameWithType: CsvRunnerConfig.CsvRunnerConfig() - nameWithType.vb: CsvRunnerConfig.New() -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.#ctor(System.Xml.Linq.XElement) - name: CsvRunnerConfig(XElement) - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig__ctor_System_Xml_Linq_XElement_ - commentId: M:Hi.Numerical.FilePlayers.CsvRunnerConfig.#ctor(System.Xml.Linq.XElement) - name.vb: New(XElement) - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.CsvRunnerConfig(System.Xml.Linq.XElement) - fullName.vb: Hi.Numerical.FilePlayers.CsvRunnerConfig.New(System.Xml.Linq.XElement) - nameWithType: CsvRunnerConfig.CsvRunnerConfig(XElement) - nameWithType.vb: CsvRunnerConfig.New(XElement) -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.#ctor* - name: CsvRunnerConfig - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig__ctor_ - commentId: Overload:Hi.Numerical.FilePlayers.CsvRunnerConfig.#ctor - isSpec: "True" - name.vb: New - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.CsvRunnerConfig - fullName.vb: Hi.Numerical.FilePlayers.CsvRunnerConfig.New - nameWithType: CsvRunnerConfig.CsvRunnerConfig - nameWithType.vb: CsvRunnerConfig.New -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.ActualTimeTag - name: ActualTimeTag - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_ActualTimeTag - commentId: P:Hi.Numerical.FilePlayers.CsvRunnerConfig.ActualTimeTag - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.ActualTimeTag - nameWithType: CsvRunnerConfig.ActualTimeTag -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.ActualTimeTag* - name: ActualTimeTag - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_ActualTimeTag_ - commentId: Overload:Hi.Numerical.FilePlayers.CsvRunnerConfig.ActualTimeTag - isSpec: "True" - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.ActualTimeTag - nameWithType: CsvRunnerConfig.ActualTimeTag -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.CutterLocationPrefix - name: CutterLocationPrefix - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_CutterLocationPrefix - commentId: P:Hi.Numerical.FilePlayers.CsvRunnerConfig.CutterLocationPrefix - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.CutterLocationPrefix - nameWithType: CsvRunnerConfig.CutterLocationPrefix -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.CutterLocationPrefix* - name: CutterLocationPrefix - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_CutterLocationPrefix_ - commentId: Overload:Hi.Numerical.FilePlayers.CsvRunnerConfig.CutterLocationPrefix - isSpec: "True" - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.CutterLocationPrefix - nameWithType: CsvRunnerConfig.CutterLocationPrefix -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.DurationTag - name: DurationTag - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_DurationTag - commentId: P:Hi.Numerical.FilePlayers.CsvRunnerConfig.DurationTag - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.DurationTag - nameWithType: CsvRunnerConfig.DurationTag -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.DurationTag* - name: DurationTag - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_DurationTag_ - commentId: Overload:Hi.Numerical.FilePlayers.CsvRunnerConfig.DurationTag - isSpec: "True" - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.DurationTag - nameWithType: CsvRunnerConfig.DurationTag -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.FeedrateTag_mmdmin - name: FeedrateTag_mmdmin - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_FeedrateTag_mmdmin - commentId: P:Hi.Numerical.FilePlayers.CsvRunnerConfig.FeedrateTag_mmdmin - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.FeedrateTag_mmdmin - nameWithType: CsvRunnerConfig.FeedrateTag_mmdmin -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.FeedrateTag_mmdmin* - name: FeedrateTag_mmdmin - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_FeedrateTag_mmdmin_ - commentId: Overload:Hi.Numerical.FilePlayers.CsvRunnerConfig.FeedrateTag_mmdmin - isSpec: "True" - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.FeedrateTag_mmdmin - nameWithType: CsvRunnerConfig.FeedrateTag_mmdmin -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.LineBeginCsScriptTag - name: LineBeginCsScriptTag - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_LineBeginCsScriptTag - commentId: P:Hi.Numerical.FilePlayers.CsvRunnerConfig.LineBeginCsScriptTag - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.LineBeginCsScriptTag - nameWithType: CsvRunnerConfig.LineBeginCsScriptTag -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.LineBeginCsScriptTag* - name: LineBeginCsScriptTag - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_LineBeginCsScriptTag_ - commentId: Overload:Hi.Numerical.FilePlayers.CsvRunnerConfig.LineBeginCsScriptTag - isSpec: "True" - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.LineBeginCsScriptTag - nameWithType: CsvRunnerConfig.LineBeginCsScriptTag -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.LineEndCsScriptTag - name: LineEndCsScriptTag - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_LineEndCsScriptTag - commentId: P:Hi.Numerical.FilePlayers.CsvRunnerConfig.LineEndCsScriptTag - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.LineEndCsScriptTag - nameWithType: CsvRunnerConfig.LineEndCsScriptTag -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.LineEndCsScriptTag* - name: LineEndCsScriptTag - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_LineEndCsScriptTag_ - commentId: Overload:Hi.Numerical.FilePlayers.CsvRunnerConfig.LineEndCsScriptTag - isSpec: "True" - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.LineEndCsScriptTag - nameWithType: CsvRunnerConfig.LineEndCsScriptTag -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.MachineCoordinatePrefix - name: MachineCoordinatePrefix - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_MachineCoordinatePrefix - commentId: P:Hi.Numerical.FilePlayers.CsvRunnerConfig.MachineCoordinatePrefix - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.MachineCoordinatePrefix - nameWithType: CsvRunnerConfig.MachineCoordinatePrefix -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.MachineCoordinatePrefix* - name: MachineCoordinatePrefix - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_MachineCoordinatePrefix_ - commentId: Overload:Hi.Numerical.FilePlayers.CsvRunnerConfig.MachineCoordinatePrefix - isSpec: "True" - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.MachineCoordinatePrefix - nameWithType: CsvRunnerConfig.MachineCoordinatePrefix -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.MakeXmlSource(System.String,System.String,System.Boolean) - name: MakeXmlSource(string, string, bool) - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_MakeXmlSource_System_String_System_String_System_Boolean_ - commentId: M:Hi.Numerical.FilePlayers.CsvRunnerConfig.MakeXmlSource(System.String,System.String,System.Boolean) - name.vb: MakeXmlSource(String, String, Boolean) - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.MakeXmlSource(string, string, bool) - fullName.vb: Hi.Numerical.FilePlayers.CsvRunnerConfig.MakeXmlSource(String, String, Boolean) - nameWithType: CsvRunnerConfig.MakeXmlSource(string, string, bool) - nameWithType.vb: CsvRunnerConfig.MakeXmlSource(String, String, Boolean) -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.MakeXmlSource* - name: MakeXmlSource - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_MakeXmlSource_ - commentId: Overload:Hi.Numerical.FilePlayers.CsvRunnerConfig.MakeXmlSource - isSpec: "True" - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.MakeXmlSource - nameWithType: CsvRunnerConfig.MakeXmlSource -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.ParsingDictionary - name: ParsingDictionary - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_ParsingDictionary - commentId: P:Hi.Numerical.FilePlayers.CsvRunnerConfig.ParsingDictionary - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.ParsingDictionary - nameWithType: CsvRunnerConfig.ParsingDictionary -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.ParsingDictionary* - name: ParsingDictionary - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_ParsingDictionary_ - commentId: Overload:Hi.Numerical.FilePlayers.CsvRunnerConfig.ParsingDictionary - isSpec: "True" - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.ParsingDictionary - nameWithType: CsvRunnerConfig.ParsingDictionary -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.Reg(Hi.Common.XmlUtils.XFactory) - name: Reg(XFactory) - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_Reg_Hi_Common_XmlUtils_XFactory_ - commentId: M:Hi.Numerical.FilePlayers.CsvRunnerConfig.Reg(Hi.Common.XmlUtils.XFactory) - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.Reg(Hi.Common.XmlUtils.XFactory) - nameWithType: CsvRunnerConfig.Reg(XFactory) -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.Reg* - name: Reg - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_Reg_ - commentId: Overload:Hi.Numerical.FilePlayers.CsvRunnerConfig.Reg - isSpec: "True" - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.Reg - nameWithType: CsvRunnerConfig.Reg -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.SpindleDirectionTag - name: SpindleDirectionTag - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_SpindleDirectionTag - commentId: P:Hi.Numerical.FilePlayers.CsvRunnerConfig.SpindleDirectionTag - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.SpindleDirectionTag - nameWithType: CsvRunnerConfig.SpindleDirectionTag -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.SpindleDirectionTag* - name: SpindleDirectionTag - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_SpindleDirectionTag_ - commentId: Overload:Hi.Numerical.FilePlayers.CsvRunnerConfig.SpindleDirectionTag - isSpec: "True" - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.SpindleDirectionTag - nameWithType: CsvRunnerConfig.SpindleDirectionTag -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.SpindleSpeedTag_rpm - name: SpindleSpeedTag_rpm - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_SpindleSpeedTag_rpm - commentId: P:Hi.Numerical.FilePlayers.CsvRunnerConfig.SpindleSpeedTag_rpm - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.SpindleSpeedTag_rpm - nameWithType: CsvRunnerConfig.SpindleSpeedTag_rpm -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.SpindleSpeedTag_rpm* - name: SpindleSpeedTag_rpm - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_SpindleSpeedTag_rpm_ - commentId: Overload:Hi.Numerical.FilePlayers.CsvRunnerConfig.SpindleSpeedTag_rpm - isSpec: "True" - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.SpindleSpeedTag_rpm - nameWithType: CsvRunnerConfig.SpindleSpeedTag_rpm -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.ToolIdTag - name: ToolIdTag - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_ToolIdTag - commentId: P:Hi.Numerical.FilePlayers.CsvRunnerConfig.ToolIdTag - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.ToolIdTag - nameWithType: CsvRunnerConfig.ToolIdTag -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.ToolIdTag* - name: ToolIdTag - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_ToolIdTag_ - commentId: Overload:Hi.Numerical.FilePlayers.CsvRunnerConfig.ToolIdTag - isSpec: "True" - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.ToolIdTag - nameWithType: CsvRunnerConfig.ToolIdTag -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.XName - name: XName - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_XName - commentId: P:Hi.Numerical.FilePlayers.CsvRunnerConfig.XName - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.XName - nameWithType: CsvRunnerConfig.XName -- uid: Hi.Numerical.FilePlayers.CsvRunnerConfig.XName* - name: XName - href: api/Hi.Numerical.FilePlayers.CsvRunnerConfig.html#Hi_Numerical_FilePlayers_CsvRunnerConfig_XName_ - commentId: Overload:Hi.Numerical.FilePlayers.CsvRunnerConfig.XName - isSpec: "True" - fullName: Hi.Numerical.FilePlayers.CsvRunnerConfig.XName - nameWithType: CsvRunnerConfig.XName - uid: Hi.Numerical.FilePlayers.HardNcRunner name: HardNcRunner href: api/Hi.Numerical.FilePlayers.HardNcRunner.html @@ -168751,175 +168892,6 @@ references: - uid: HiMech.Tutor.transformers name: Handle Transform Matrix by ITransformer href: fundamentals/mechanism/transformers/index.html -- uid: HiNc.Grpcs - name: HiNc.Grpcs - href: api/HiNc.Grpcs.html - commentId: N:HiNc.Grpcs - fullName: HiNc.Grpcs - nameWithType: HiNc.Grpcs -- uid: HiNc.Grpcs.MachiningProjectGrpcServer - name: MachiningProjectGrpcServer - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html - commentId: T:HiNc.Grpcs.MachiningProjectGrpcServer - fullName: HiNc.Grpcs.MachiningProjectGrpcServer - nameWithType: MachiningProjectGrpcServer -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.#ctor(Hi.MachiningProcs.LocalProjectService) - name: MachiningProjectGrpcServer(LocalProjectService) - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer__ctor_Hi_MachiningProcs_LocalProjectService_ - commentId: M:HiNc.Grpcs.MachiningProjectGrpcServer.#ctor(Hi.MachiningProcs.LocalProjectService) - name.vb: New(LocalProjectService) - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.MachiningProjectGrpcServer(Hi.MachiningProcs.LocalProjectService) - fullName.vb: HiNc.Grpcs.MachiningProjectGrpcServer.New(Hi.MachiningProcs.LocalProjectService) - nameWithType: MachiningProjectGrpcServer.MachiningProjectGrpcServer(LocalProjectService) - nameWithType.vb: MachiningProjectGrpcServer.New(LocalProjectService) -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.#ctor(System.Xml.Linq.XElement,Hi.MachiningProcs.LocalProjectService) - name: MachiningProjectGrpcServer(XElement, LocalProjectService) - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer__ctor_System_Xml_Linq_XElement_Hi_MachiningProcs_LocalProjectService_ - commentId: M:HiNc.Grpcs.MachiningProjectGrpcServer.#ctor(System.Xml.Linq.XElement,Hi.MachiningProcs.LocalProjectService) - name.vb: New(XElement, LocalProjectService) - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.MachiningProjectGrpcServer(System.Xml.Linq.XElement, Hi.MachiningProcs.LocalProjectService) - fullName.vb: HiNc.Grpcs.MachiningProjectGrpcServer.New(System.Xml.Linq.XElement, Hi.MachiningProcs.LocalProjectService) - nameWithType: MachiningProjectGrpcServer.MachiningProjectGrpcServer(XElement, LocalProjectService) - nameWithType.vb: MachiningProjectGrpcServer.New(XElement, LocalProjectService) -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.#ctor* - name: MachiningProjectGrpcServer - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer__ctor_ - commentId: Overload:HiNc.Grpcs.MachiningProjectGrpcServer.#ctor - isSpec: "True" - name.vb: New - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.MachiningProjectGrpcServer - fullName.vb: HiNc.Grpcs.MachiningProjectGrpcServer.New - nameWithType: MachiningProjectGrpcServer.MachiningProjectGrpcServer - nameWithType.vb: MachiningProjectGrpcServer.New -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.Dispose - name: Dispose() - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_Dispose - commentId: M:HiNc.Grpcs.MachiningProjectGrpcServer.Dispose - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.Dispose() - nameWithType: MachiningProjectGrpcServer.Dispose() -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.Dispose(System.Boolean) - name: Dispose(bool) - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_Dispose_System_Boolean_ - commentId: M:HiNc.Grpcs.MachiningProjectGrpcServer.Dispose(System.Boolean) - name.vb: Dispose(Boolean) - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.Dispose(bool) - fullName.vb: HiNc.Grpcs.MachiningProjectGrpcServer.Dispose(Boolean) - nameWithType: MachiningProjectGrpcServer.Dispose(bool) - nameWithType.vb: MachiningProjectGrpcServer.Dispose(Boolean) -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.Dispose* - name: Dispose - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_Dispose_ - commentId: Overload:HiNc.Grpcs.MachiningProjectGrpcServer.Dispose - isSpec: "True" - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.Dispose - nameWithType: MachiningProjectGrpcServer.Dispose -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.IsServiceRunning - name: IsServiceRunning - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_IsServiceRunning - commentId: P:HiNc.Grpcs.MachiningProjectGrpcServer.IsServiceRunning - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.IsServiceRunning - nameWithType: MachiningProjectGrpcServer.IsServiceRunning -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.IsServiceRunning* - name: IsServiceRunning - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_IsServiceRunning_ - commentId: Overload:HiNc.Grpcs.MachiningProjectGrpcServer.IsServiceRunning - isSpec: "True" - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.IsServiceRunning - nameWithType: MachiningProjectGrpcServer.IsServiceRunning -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.MakeXmlSource(System.String,System.String,System.Boolean) - name: MakeXmlSource(string, string, bool) - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_MakeXmlSource_System_String_System_String_System_Boolean_ - commentId: M:HiNc.Grpcs.MachiningProjectGrpcServer.MakeXmlSource(System.String,System.String,System.Boolean) - name.vb: MakeXmlSource(String, String, Boolean) - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.MakeXmlSource(string, string, bool) - fullName.vb: HiNc.Grpcs.MachiningProjectGrpcServer.MakeXmlSource(String, String, Boolean) - nameWithType: MachiningProjectGrpcServer.MakeXmlSource(string, string, bool) - nameWithType.vb: MachiningProjectGrpcServer.MakeXmlSource(String, String, Boolean) -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.MakeXmlSource* - name: MakeXmlSource - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_MakeXmlSource_ - commentId: Overload:HiNc.Grpcs.MachiningProjectGrpcServer.MakeXmlSource - isSpec: "True" - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.MakeXmlSource - nameWithType: MachiningProjectGrpcServer.MakeXmlSource -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.Reg(Hi.Common.XmlUtils.XFactory) - name: Reg(XFactory) - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_Reg_Hi_Common_XmlUtils_XFactory_ - commentId: M:HiNc.Grpcs.MachiningProjectGrpcServer.Reg(Hi.Common.XmlUtils.XFactory) - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.Reg(Hi.Common.XmlUtils.XFactory) - nameWithType: MachiningProjectGrpcServer.Reg(XFactory) -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.Reg* - name: Reg - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_Reg_ - commentId: Overload:HiNc.Grpcs.MachiningProjectGrpcServer.Reg - isSpec: "True" - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.Reg - nameWithType: MachiningProjectGrpcServer.Reg -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.ServicePort - name: ServicePort - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_ServicePort - commentId: P:HiNc.Grpcs.MachiningProjectGrpcServer.ServicePort - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.ServicePort - nameWithType: MachiningProjectGrpcServer.ServicePort -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.ServicePort* - name: ServicePort - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_ServicePort_ - commentId: Overload:HiNc.Grpcs.MachiningProjectGrpcServer.ServicePort - isSpec: "True" - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.ServicePort - nameWithType: MachiningProjectGrpcServer.ServicePort -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.StartAsync - name: StartAsync() - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_StartAsync - commentId: M:HiNc.Grpcs.MachiningProjectGrpcServer.StartAsync - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.StartAsync() - nameWithType: MachiningProjectGrpcServer.StartAsync() -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.StartAsync* - name: StartAsync - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_StartAsync_ - commentId: Overload:HiNc.Grpcs.MachiningProjectGrpcServer.StartAsync - isSpec: "True" - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.StartAsync - nameWithType: MachiningProjectGrpcServer.StartAsync -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.StopAsync - name: StopAsync() - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_StopAsync - commentId: M:HiNc.Grpcs.MachiningProjectGrpcServer.StopAsync - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.StopAsync() - nameWithType: MachiningProjectGrpcServer.StopAsync() -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.StopAsync* - name: StopAsync - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_StopAsync_ - commentId: Overload:HiNc.Grpcs.MachiningProjectGrpcServer.StopAsync - isSpec: "True" - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.StopAsync - nameWithType: MachiningProjectGrpcServer.StopAsync -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.WebApplication - name: WebApplication - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_WebApplication - commentId: P:HiNc.Grpcs.MachiningProjectGrpcServer.WebApplication - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.WebApplication - nameWithType: MachiningProjectGrpcServer.WebApplication -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.WebApplication* - name: WebApplication - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_WebApplication_ - commentId: Overload:HiNc.Grpcs.MachiningProjectGrpcServer.WebApplication - isSpec: "True" - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.WebApplication - nameWithType: MachiningProjectGrpcServer.WebApplication -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.XName - name: XName - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_XName - commentId: P:HiNc.Grpcs.MachiningProjectGrpcServer.XName - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.XName - nameWithType: MachiningProjectGrpcServer.XName -- uid: HiNc.Grpcs.MachiningProjectGrpcServer.XName* - name: XName - href: api/HiNc.Grpcs.MachiningProjectGrpcServer.html#HiNc_Grpcs_MachiningProjectGrpcServer_XName_ - commentId: Overload:HiNc.Grpcs.MachiningProjectGrpcServer.XName - isSpec: "True" - fullName: HiNc.Grpcs.MachiningProjectGrpcServer.XName - nameWithType: MachiningProjectGrpcServer.XName - uid: Milling-Physics-Coordinates name: Milling Physics Coordinate Systems href: manual/analysis/milling-physics-coordinates.html @@ -169518,1124 +169490,3 @@ references: - uid: Workflow-SensorMapping name: 'Workflow: Sensor Data Mapping' href: workflows/sensor-mapping.html -- uid: numerical - name: numerical - href: api/numerical.html - commentId: N:numerical - fullName: numerical - nameWithType: numerical -- uid: numerical.Empty - name: Empty - href: api/numerical.Empty.html - commentId: T:numerical.Empty - fullName: numerical.Empty - nameWithType: Empty -- uid: numerical.Empty.#ctor - name: Empty() - href: api/numerical.Empty.html#numerical_Empty__ctor - commentId: M:numerical.Empty.#ctor - name.vb: New() - fullName: numerical.Empty.Empty() - fullName.vb: numerical.Empty.New() - nameWithType: Empty.Empty() - nameWithType.vb: Empty.New() -- uid: numerical.Empty.#ctor(numerical.Empty) - name: Empty(Empty) - href: api/numerical.Empty.html#numerical_Empty__ctor_numerical_Empty_ - commentId: M:numerical.Empty.#ctor(numerical.Empty) - name.vb: New(Empty) - fullName: numerical.Empty.Empty(numerical.Empty) - fullName.vb: numerical.Empty.New(numerical.Empty) - nameWithType: Empty.Empty(Empty) - nameWithType.vb: Empty.New(Empty) -- uid: numerical.Empty.#ctor* - name: Empty - href: api/numerical.Empty.html#numerical_Empty__ctor_ - commentId: Overload:numerical.Empty.#ctor - isSpec: "True" - name.vb: New - fullName: numerical.Empty.Empty - fullName.vb: numerical.Empty.New - nameWithType: Empty.Empty - nameWithType.vb: Empty.New -- uid: numerical.Empty.CalculateSize - name: CalculateSize() - href: api/numerical.Empty.html#numerical_Empty_CalculateSize - commentId: M:numerical.Empty.CalculateSize - fullName: numerical.Empty.CalculateSize() - nameWithType: Empty.CalculateSize() -- uid: numerical.Empty.CalculateSize* - name: CalculateSize - href: api/numerical.Empty.html#numerical_Empty_CalculateSize_ - commentId: Overload:numerical.Empty.CalculateSize - isSpec: "True" - fullName: numerical.Empty.CalculateSize - nameWithType: Empty.CalculateSize -- uid: numerical.Empty.Clone - name: Clone() - href: api/numerical.Empty.html#numerical_Empty_Clone - commentId: M:numerical.Empty.Clone - fullName: numerical.Empty.Clone() - nameWithType: Empty.Clone() -- uid: numerical.Empty.Clone* - name: Clone - href: api/numerical.Empty.html#numerical_Empty_Clone_ - commentId: Overload:numerical.Empty.Clone - isSpec: "True" - fullName: numerical.Empty.Clone - nameWithType: Empty.Clone -- uid: numerical.Empty.Descriptor - name: Descriptor - href: api/numerical.Empty.html#numerical_Empty_Descriptor - commentId: P:numerical.Empty.Descriptor - fullName: numerical.Empty.Descriptor - nameWithType: Empty.Descriptor -- uid: numerical.Empty.Descriptor* - name: Descriptor - href: api/numerical.Empty.html#numerical_Empty_Descriptor_ - commentId: Overload:numerical.Empty.Descriptor - isSpec: "True" - fullName: numerical.Empty.Descriptor - nameWithType: Empty.Descriptor -- uid: numerical.Empty.Equals(System.Object) - name: Equals(object) - href: api/numerical.Empty.html#numerical_Empty_Equals_System_Object_ - commentId: M:numerical.Empty.Equals(System.Object) - name.vb: Equals(Object) - fullName: numerical.Empty.Equals(object) - fullName.vb: numerical.Empty.Equals(Object) - nameWithType: Empty.Equals(object) - nameWithType.vb: Empty.Equals(Object) -- uid: numerical.Empty.Equals(numerical.Empty) - name: Equals(Empty) - href: api/numerical.Empty.html#numerical_Empty_Equals_numerical_Empty_ - commentId: M:numerical.Empty.Equals(numerical.Empty) - fullName: numerical.Empty.Equals(numerical.Empty) - nameWithType: Empty.Equals(Empty) -- uid: numerical.Empty.Equals* - name: Equals - href: api/numerical.Empty.html#numerical_Empty_Equals_ - commentId: Overload:numerical.Empty.Equals - isSpec: "True" - fullName: numerical.Empty.Equals - nameWithType: Empty.Equals -- uid: numerical.Empty.GetHashCode - name: GetHashCode() - href: api/numerical.Empty.html#numerical_Empty_GetHashCode - commentId: M:numerical.Empty.GetHashCode - fullName: numerical.Empty.GetHashCode() - nameWithType: Empty.GetHashCode() -- uid: numerical.Empty.GetHashCode* - name: GetHashCode - href: api/numerical.Empty.html#numerical_Empty_GetHashCode_ - commentId: Overload:numerical.Empty.GetHashCode - isSpec: "True" - fullName: numerical.Empty.GetHashCode - nameWithType: Empty.GetHashCode -- uid: numerical.Empty.MergeFrom(Google.Protobuf.CodedInputStream) - name: MergeFrom(CodedInputStream) - href: api/numerical.Empty.html#numerical_Empty_MergeFrom_Google_Protobuf_CodedInputStream_ - commentId: M:numerical.Empty.MergeFrom(Google.Protobuf.CodedInputStream) - fullName: numerical.Empty.MergeFrom(Google.Protobuf.CodedInputStream) - nameWithType: Empty.MergeFrom(CodedInputStream) -- uid: numerical.Empty.MergeFrom(numerical.Empty) - name: MergeFrom(Empty) - href: api/numerical.Empty.html#numerical_Empty_MergeFrom_numerical_Empty_ - commentId: M:numerical.Empty.MergeFrom(numerical.Empty) - fullName: numerical.Empty.MergeFrom(numerical.Empty) - nameWithType: Empty.MergeFrom(Empty) -- uid: numerical.Empty.MergeFrom* - name: MergeFrom - href: api/numerical.Empty.html#numerical_Empty_MergeFrom_ - commentId: Overload:numerical.Empty.MergeFrom - isSpec: "True" - fullName: numerical.Empty.MergeFrom - nameWithType: Empty.MergeFrom -- uid: numerical.Empty.Parser - name: Parser - href: api/numerical.Empty.html#numerical_Empty_Parser - commentId: P:numerical.Empty.Parser - fullName: numerical.Empty.Parser - nameWithType: Empty.Parser -- uid: numerical.Empty.Parser* - name: Parser - href: api/numerical.Empty.html#numerical_Empty_Parser_ - commentId: Overload:numerical.Empty.Parser - isSpec: "True" - fullName: numerical.Empty.Parser - nameWithType: Empty.Parser -- uid: numerical.Empty.ToString - name: ToString() - href: api/numerical.Empty.html#numerical_Empty_ToString - commentId: M:numerical.Empty.ToString - fullName: numerical.Empty.ToString() - nameWithType: Empty.ToString() -- uid: numerical.Empty.ToString* - name: ToString - href: api/numerical.Empty.html#numerical_Empty_ToString_ - commentId: Overload:numerical.Empty.ToString - isSpec: "True" - fullName: numerical.Empty.ToString - nameWithType: Empty.ToString -- uid: numerical.Empty.WriteTo(Google.Protobuf.CodedOutputStream) - name: WriteTo(CodedOutputStream) - href: api/numerical.Empty.html#numerical_Empty_WriteTo_Google_Protobuf_CodedOutputStream_ - commentId: M:numerical.Empty.WriteTo(Google.Protobuf.CodedOutputStream) - fullName: numerical.Empty.WriteTo(Google.Protobuf.CodedOutputStream) - nameWithType: Empty.WriteTo(CodedOutputStream) -- uid: numerical.Empty.WriteTo* - name: WriteTo - href: api/numerical.Empty.html#numerical_Empty_WriteTo_ - commentId: Overload:numerical.Empty.WriteTo - isSpec: "True" - fullName: numerical.Empty.WriteTo - nameWithType: Empty.WriteTo -- uid: numerical.GrpcCsvRowDictionary - name: GrpcCsvRowDictionary - href: api/numerical.GrpcCsvRowDictionary.html - commentId: T:numerical.GrpcCsvRowDictionary - fullName: numerical.GrpcCsvRowDictionary - nameWithType: GrpcCsvRowDictionary -- uid: numerical.GrpcCsvRowDictionary.#ctor - name: GrpcCsvRowDictionary() - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary__ctor - commentId: M:numerical.GrpcCsvRowDictionary.#ctor - name.vb: New() - fullName: numerical.GrpcCsvRowDictionary.GrpcCsvRowDictionary() - fullName.vb: numerical.GrpcCsvRowDictionary.New() - nameWithType: GrpcCsvRowDictionary.GrpcCsvRowDictionary() - nameWithType.vb: GrpcCsvRowDictionary.New() -- uid: numerical.GrpcCsvRowDictionary.#ctor(numerical.GrpcCsvRowDictionary) - name: GrpcCsvRowDictionary(GrpcCsvRowDictionary) - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary__ctor_numerical_GrpcCsvRowDictionary_ - commentId: M:numerical.GrpcCsvRowDictionary.#ctor(numerical.GrpcCsvRowDictionary) - name.vb: New(GrpcCsvRowDictionary) - fullName: numerical.GrpcCsvRowDictionary.GrpcCsvRowDictionary(numerical.GrpcCsvRowDictionary) - fullName.vb: numerical.GrpcCsvRowDictionary.New(numerical.GrpcCsvRowDictionary) - nameWithType: GrpcCsvRowDictionary.GrpcCsvRowDictionary(GrpcCsvRowDictionary) - nameWithType.vb: GrpcCsvRowDictionary.New(GrpcCsvRowDictionary) -- uid: numerical.GrpcCsvRowDictionary.#ctor* - name: GrpcCsvRowDictionary - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary__ctor_ - commentId: Overload:numerical.GrpcCsvRowDictionary.#ctor - isSpec: "True" - name.vb: New - fullName: numerical.GrpcCsvRowDictionary.GrpcCsvRowDictionary - fullName.vb: numerical.GrpcCsvRowDictionary.New - nameWithType: GrpcCsvRowDictionary.GrpcCsvRowDictionary - nameWithType.vb: GrpcCsvRowDictionary.New -- uid: numerical.GrpcCsvRowDictionary.CalculateSize - name: CalculateSize() - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_CalculateSize - commentId: M:numerical.GrpcCsvRowDictionary.CalculateSize - fullName: numerical.GrpcCsvRowDictionary.CalculateSize() - nameWithType: GrpcCsvRowDictionary.CalculateSize() -- uid: numerical.GrpcCsvRowDictionary.CalculateSize* - name: CalculateSize - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_CalculateSize_ - commentId: Overload:numerical.GrpcCsvRowDictionary.CalculateSize - isSpec: "True" - fullName: numerical.GrpcCsvRowDictionary.CalculateSize - nameWithType: GrpcCsvRowDictionary.CalculateSize -- uid: numerical.GrpcCsvRowDictionary.Clone - name: Clone() - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_Clone - commentId: M:numerical.GrpcCsvRowDictionary.Clone - fullName: numerical.GrpcCsvRowDictionary.Clone() - nameWithType: GrpcCsvRowDictionary.Clone() -- uid: numerical.GrpcCsvRowDictionary.Clone* - name: Clone - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_Clone_ - commentId: Overload:numerical.GrpcCsvRowDictionary.Clone - isSpec: "True" - fullName: numerical.GrpcCsvRowDictionary.Clone - nameWithType: GrpcCsvRowDictionary.Clone -- uid: numerical.GrpcCsvRowDictionary.CsvRowDictionary - name: CsvRowDictionary - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_CsvRowDictionary - commentId: P:numerical.GrpcCsvRowDictionary.CsvRowDictionary - fullName: numerical.GrpcCsvRowDictionary.CsvRowDictionary - nameWithType: GrpcCsvRowDictionary.CsvRowDictionary -- uid: numerical.GrpcCsvRowDictionary.CsvRowDictionary* - name: CsvRowDictionary - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_CsvRowDictionary_ - commentId: Overload:numerical.GrpcCsvRowDictionary.CsvRowDictionary - isSpec: "True" - fullName: numerical.GrpcCsvRowDictionary.CsvRowDictionary - nameWithType: GrpcCsvRowDictionary.CsvRowDictionary -- uid: numerical.GrpcCsvRowDictionary.CsvRowDictionaryFieldNumber - name: CsvRowDictionaryFieldNumber - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_CsvRowDictionaryFieldNumber - commentId: F:numerical.GrpcCsvRowDictionary.CsvRowDictionaryFieldNumber - fullName: numerical.GrpcCsvRowDictionary.CsvRowDictionaryFieldNumber - nameWithType: GrpcCsvRowDictionary.CsvRowDictionaryFieldNumber -- uid: numerical.GrpcCsvRowDictionary.Descriptor - name: Descriptor - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_Descriptor - commentId: P:numerical.GrpcCsvRowDictionary.Descriptor - fullName: numerical.GrpcCsvRowDictionary.Descriptor - nameWithType: GrpcCsvRowDictionary.Descriptor -- uid: numerical.GrpcCsvRowDictionary.Descriptor* - name: Descriptor - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_Descriptor_ - commentId: Overload:numerical.GrpcCsvRowDictionary.Descriptor - isSpec: "True" - fullName: numerical.GrpcCsvRowDictionary.Descriptor - nameWithType: GrpcCsvRowDictionary.Descriptor -- uid: numerical.GrpcCsvRowDictionary.Equals(System.Object) - name: Equals(object) - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_Equals_System_Object_ - commentId: M:numerical.GrpcCsvRowDictionary.Equals(System.Object) - name.vb: Equals(Object) - fullName: numerical.GrpcCsvRowDictionary.Equals(object) - fullName.vb: numerical.GrpcCsvRowDictionary.Equals(Object) - nameWithType: GrpcCsvRowDictionary.Equals(object) - nameWithType.vb: GrpcCsvRowDictionary.Equals(Object) -- uid: numerical.GrpcCsvRowDictionary.Equals(numerical.GrpcCsvRowDictionary) - name: Equals(GrpcCsvRowDictionary) - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_Equals_numerical_GrpcCsvRowDictionary_ - commentId: M:numerical.GrpcCsvRowDictionary.Equals(numerical.GrpcCsvRowDictionary) - fullName: numerical.GrpcCsvRowDictionary.Equals(numerical.GrpcCsvRowDictionary) - nameWithType: GrpcCsvRowDictionary.Equals(GrpcCsvRowDictionary) -- uid: numerical.GrpcCsvRowDictionary.Equals* - name: Equals - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_Equals_ - commentId: Overload:numerical.GrpcCsvRowDictionary.Equals - isSpec: "True" - fullName: numerical.GrpcCsvRowDictionary.Equals - nameWithType: GrpcCsvRowDictionary.Equals -- uid: numerical.GrpcCsvRowDictionary.GetHashCode - name: GetHashCode() - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_GetHashCode - commentId: M:numerical.GrpcCsvRowDictionary.GetHashCode - fullName: numerical.GrpcCsvRowDictionary.GetHashCode() - nameWithType: GrpcCsvRowDictionary.GetHashCode() -- uid: numerical.GrpcCsvRowDictionary.GetHashCode* - name: GetHashCode - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_GetHashCode_ - commentId: Overload:numerical.GrpcCsvRowDictionary.GetHashCode - isSpec: "True" - fullName: numerical.GrpcCsvRowDictionary.GetHashCode - nameWithType: GrpcCsvRowDictionary.GetHashCode -- uid: numerical.GrpcCsvRowDictionary.MergeFrom(Google.Protobuf.CodedInputStream) - name: MergeFrom(CodedInputStream) - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_MergeFrom_Google_Protobuf_CodedInputStream_ - commentId: M:numerical.GrpcCsvRowDictionary.MergeFrom(Google.Protobuf.CodedInputStream) - fullName: numerical.GrpcCsvRowDictionary.MergeFrom(Google.Protobuf.CodedInputStream) - nameWithType: GrpcCsvRowDictionary.MergeFrom(CodedInputStream) -- uid: numerical.GrpcCsvRowDictionary.MergeFrom(numerical.GrpcCsvRowDictionary) - name: MergeFrom(GrpcCsvRowDictionary) - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_MergeFrom_numerical_GrpcCsvRowDictionary_ - commentId: M:numerical.GrpcCsvRowDictionary.MergeFrom(numerical.GrpcCsvRowDictionary) - fullName: numerical.GrpcCsvRowDictionary.MergeFrom(numerical.GrpcCsvRowDictionary) - nameWithType: GrpcCsvRowDictionary.MergeFrom(GrpcCsvRowDictionary) -- uid: numerical.GrpcCsvRowDictionary.MergeFrom* - name: MergeFrom - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_MergeFrom_ - commentId: Overload:numerical.GrpcCsvRowDictionary.MergeFrom - isSpec: "True" - fullName: numerical.GrpcCsvRowDictionary.MergeFrom - nameWithType: GrpcCsvRowDictionary.MergeFrom -- uid: numerical.GrpcCsvRowDictionary.Parser - name: Parser - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_Parser - commentId: P:numerical.GrpcCsvRowDictionary.Parser - fullName: numerical.GrpcCsvRowDictionary.Parser - nameWithType: GrpcCsvRowDictionary.Parser -- uid: numerical.GrpcCsvRowDictionary.Parser* - name: Parser - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_Parser_ - commentId: Overload:numerical.GrpcCsvRowDictionary.Parser - isSpec: "True" - fullName: numerical.GrpcCsvRowDictionary.Parser - nameWithType: GrpcCsvRowDictionary.Parser -- uid: numerical.GrpcCsvRowDictionary.Status - name: Status - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_Status - commentId: P:numerical.GrpcCsvRowDictionary.Status - fullName: numerical.GrpcCsvRowDictionary.Status - nameWithType: GrpcCsvRowDictionary.Status -- uid: numerical.GrpcCsvRowDictionary.Status* - name: Status - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_Status_ - commentId: Overload:numerical.GrpcCsvRowDictionary.Status - isSpec: "True" - fullName: numerical.GrpcCsvRowDictionary.Status - nameWithType: GrpcCsvRowDictionary.Status -- uid: numerical.GrpcCsvRowDictionary.StatusFieldNumber - name: StatusFieldNumber - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_StatusFieldNumber - commentId: F:numerical.GrpcCsvRowDictionary.StatusFieldNumber - fullName: numerical.GrpcCsvRowDictionary.StatusFieldNumber - nameWithType: GrpcCsvRowDictionary.StatusFieldNumber -- uid: numerical.GrpcCsvRowDictionary.ToString - name: ToString() - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_ToString - commentId: M:numerical.GrpcCsvRowDictionary.ToString - fullName: numerical.GrpcCsvRowDictionary.ToString() - nameWithType: GrpcCsvRowDictionary.ToString() -- uid: numerical.GrpcCsvRowDictionary.ToString* - name: ToString - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_ToString_ - commentId: Overload:numerical.GrpcCsvRowDictionary.ToString - isSpec: "True" - fullName: numerical.GrpcCsvRowDictionary.ToString - nameWithType: GrpcCsvRowDictionary.ToString -- uid: numerical.GrpcCsvRowDictionary.WriteTo(Google.Protobuf.CodedOutputStream) - name: WriteTo(CodedOutputStream) - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_WriteTo_Google_Protobuf_CodedOutputStream_ - commentId: M:numerical.GrpcCsvRowDictionary.WriteTo(Google.Protobuf.CodedOutputStream) - fullName: numerical.GrpcCsvRowDictionary.WriteTo(Google.Protobuf.CodedOutputStream) - nameWithType: GrpcCsvRowDictionary.WriteTo(CodedOutputStream) -- uid: numerical.GrpcCsvRowDictionary.WriteTo* - name: WriteTo - href: api/numerical.GrpcCsvRowDictionary.html#numerical_GrpcCsvRowDictionary_WriteTo_ - commentId: Overload:numerical.GrpcCsvRowDictionary.WriteTo - isSpec: "True" - fullName: numerical.GrpcCsvRowDictionary.WriteTo - nameWithType: GrpcCsvRowDictionary.WriteTo -- uid: numerical.GrpcNcStep - name: GrpcNcStep - href: api/numerical.GrpcNcStep.html - commentId: T:numerical.GrpcNcStep - fullName: numerical.GrpcNcStep - nameWithType: GrpcNcStep -- uid: numerical.GrpcNcStep.#ctor - name: GrpcNcStep() - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep__ctor - commentId: M:numerical.GrpcNcStep.#ctor - name.vb: New() - fullName: numerical.GrpcNcStep.GrpcNcStep() - fullName.vb: numerical.GrpcNcStep.New() - nameWithType: GrpcNcStep.GrpcNcStep() - nameWithType.vb: GrpcNcStep.New() -- uid: numerical.GrpcNcStep.#ctor(numerical.GrpcNcStep) - name: GrpcNcStep(GrpcNcStep) - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep__ctor_numerical_GrpcNcStep_ - commentId: M:numerical.GrpcNcStep.#ctor(numerical.GrpcNcStep) - name.vb: New(GrpcNcStep) - fullName: numerical.GrpcNcStep.GrpcNcStep(numerical.GrpcNcStep) - fullName.vb: numerical.GrpcNcStep.New(numerical.GrpcNcStep) - nameWithType: GrpcNcStep.GrpcNcStep(GrpcNcStep) - nameWithType.vb: GrpcNcStep.New(GrpcNcStep) -- uid: numerical.GrpcNcStep.#ctor* - name: GrpcNcStep - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep__ctor_ - commentId: Overload:numerical.GrpcNcStep.#ctor - isSpec: "True" - name.vb: New - fullName: numerical.GrpcNcStep.GrpcNcStep - fullName.vb: numerical.GrpcNcStep.New - nameWithType: GrpcNcStep.GrpcNcStep - nameWithType.vb: GrpcNcStep.New -- uid: numerical.GrpcNcStep.CalculateSize - name: CalculateSize() - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_CalculateSize - commentId: M:numerical.GrpcNcStep.CalculateSize - fullName: numerical.GrpcNcStep.CalculateSize() - nameWithType: GrpcNcStep.CalculateSize() -- uid: numerical.GrpcNcStep.CalculateSize* - name: CalculateSize - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_CalculateSize_ - commentId: Overload:numerical.GrpcNcStep.CalculateSize - isSpec: "True" - fullName: numerical.GrpcNcStep.CalculateSize - nameWithType: GrpcNcStep.CalculateSize -- uid: numerical.GrpcNcStep.Clone - name: Clone() - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_Clone - commentId: M:numerical.GrpcNcStep.Clone - fullName: numerical.GrpcNcStep.Clone() - nameWithType: GrpcNcStep.Clone() -- uid: numerical.GrpcNcStep.Clone* - name: Clone - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_Clone_ - commentId: Overload:numerical.GrpcNcStep.Clone - isSpec: "True" - fullName: numerical.GrpcNcStep.Clone - nameWithType: GrpcNcStep.Clone -- uid: numerical.GrpcNcStep.CsvRowDictionary - name: CsvRowDictionary - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_CsvRowDictionary - commentId: P:numerical.GrpcNcStep.CsvRowDictionary - fullName: numerical.GrpcNcStep.CsvRowDictionary - nameWithType: GrpcNcStep.CsvRowDictionary -- uid: numerical.GrpcNcStep.CsvRowDictionary* - name: CsvRowDictionary - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_CsvRowDictionary_ - commentId: Overload:numerical.GrpcNcStep.CsvRowDictionary - isSpec: "True" - fullName: numerical.GrpcNcStep.CsvRowDictionary - nameWithType: GrpcNcStep.CsvRowDictionary -- uid: numerical.GrpcNcStep.CsvRowDictionaryFieldNumber - name: CsvRowDictionaryFieldNumber - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_CsvRowDictionaryFieldNumber - commentId: F:numerical.GrpcNcStep.CsvRowDictionaryFieldNumber - fullName: numerical.GrpcNcStep.CsvRowDictionaryFieldNumber - nameWithType: GrpcNcStep.CsvRowDictionaryFieldNumber -- uid: numerical.GrpcNcStep.Descriptor - name: Descriptor - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_Descriptor - commentId: P:numerical.GrpcNcStep.Descriptor - fullName: numerical.GrpcNcStep.Descriptor - nameWithType: GrpcNcStep.Descriptor -- uid: numerical.GrpcNcStep.Descriptor* - name: Descriptor - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_Descriptor_ - commentId: Overload:numerical.GrpcNcStep.Descriptor - isSpec: "True" - fullName: numerical.GrpcNcStep.Descriptor - nameWithType: GrpcNcStep.Descriptor -- uid: numerical.GrpcNcStep.Equals(System.Object) - name: Equals(object) - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_Equals_System_Object_ - commentId: M:numerical.GrpcNcStep.Equals(System.Object) - name.vb: Equals(Object) - fullName: numerical.GrpcNcStep.Equals(object) - fullName.vb: numerical.GrpcNcStep.Equals(Object) - nameWithType: GrpcNcStep.Equals(object) - nameWithType.vb: GrpcNcStep.Equals(Object) -- uid: numerical.GrpcNcStep.Equals(numerical.GrpcNcStep) - name: Equals(GrpcNcStep) - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_Equals_numerical_GrpcNcStep_ - commentId: M:numerical.GrpcNcStep.Equals(numerical.GrpcNcStep) - fullName: numerical.GrpcNcStep.Equals(numerical.GrpcNcStep) - nameWithType: GrpcNcStep.Equals(GrpcNcStep) -- uid: numerical.GrpcNcStep.Equals* - name: Equals - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_Equals_ - commentId: Overload:numerical.GrpcNcStep.Equals - isSpec: "True" - fullName: numerical.GrpcNcStep.Equals - nameWithType: GrpcNcStep.Equals -- uid: numerical.GrpcNcStep.FeedrateMmdmin - name: FeedrateMmdmin - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_FeedrateMmdmin - commentId: P:numerical.GrpcNcStep.FeedrateMmdmin - fullName: numerical.GrpcNcStep.FeedrateMmdmin - nameWithType: GrpcNcStep.FeedrateMmdmin -- uid: numerical.GrpcNcStep.FeedrateMmdmin* - name: FeedrateMmdmin - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_FeedrateMmdmin_ - commentId: Overload:numerical.GrpcNcStep.FeedrateMmdmin - isSpec: "True" - fullName: numerical.GrpcNcStep.FeedrateMmdmin - nameWithType: GrpcNcStep.FeedrateMmdmin -- uid: numerical.GrpcNcStep.FeedrateMmdminFieldNumber - name: FeedrateMmdminFieldNumber - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_FeedrateMmdminFieldNumber - commentId: F:numerical.GrpcNcStep.FeedrateMmdminFieldNumber - fullName: numerical.GrpcNcStep.FeedrateMmdminFieldNumber - nameWithType: GrpcNcStep.FeedrateMmdminFieldNumber -- uid: numerical.GrpcNcStep.FileIndex - name: FileIndex - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_FileIndex - commentId: P:numerical.GrpcNcStep.FileIndex - fullName: numerical.GrpcNcStep.FileIndex - nameWithType: GrpcNcStep.FileIndex -- uid: numerical.GrpcNcStep.FileIndex* - name: FileIndex - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_FileIndex_ - commentId: Overload:numerical.GrpcNcStep.FileIndex - isSpec: "True" - fullName: numerical.GrpcNcStep.FileIndex - nameWithType: GrpcNcStep.FileIndex -- uid: numerical.GrpcNcStep.FileIndexFieldNumber - name: FileIndexFieldNumber - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_FileIndexFieldNumber - commentId: F:numerical.GrpcNcStep.FileIndexFieldNumber - fullName: numerical.GrpcNcStep.FileIndexFieldNumber - nameWithType: GrpcNcStep.FileIndexFieldNumber -- uid: numerical.GrpcNcStep.FilePath - name: FilePath - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_FilePath - commentId: P:numerical.GrpcNcStep.FilePath - fullName: numerical.GrpcNcStep.FilePath - nameWithType: GrpcNcStep.FilePath -- uid: numerical.GrpcNcStep.FilePath* - name: FilePath - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_FilePath_ - commentId: Overload:numerical.GrpcNcStep.FilePath - isSpec: "True" - fullName: numerical.GrpcNcStep.FilePath - nameWithType: GrpcNcStep.FilePath -- uid: numerical.GrpcNcStep.FilePathFieldNumber - name: FilePathFieldNumber - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_FilePathFieldNumber - commentId: F:numerical.GrpcNcStep.FilePathFieldNumber - fullName: numerical.GrpcNcStep.FilePathFieldNumber - nameWithType: GrpcNcStep.FilePathFieldNumber -- uid: numerical.GrpcNcStep.GetHashCode - name: GetHashCode() - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_GetHashCode - commentId: M:numerical.GrpcNcStep.GetHashCode - fullName: numerical.GrpcNcStep.GetHashCode() - nameWithType: GrpcNcStep.GetHashCode() -- uid: numerical.GrpcNcStep.GetHashCode* - name: GetHashCode - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_GetHashCode_ - commentId: Overload:numerical.GrpcNcStep.GetHashCode - isSpec: "True" - fullName: numerical.GrpcNcStep.GetHashCode - nameWithType: GrpcNcStep.GetHashCode -- uid: numerical.GrpcNcStep.Line - name: Line - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_Line - commentId: P:numerical.GrpcNcStep.Line - fullName: numerical.GrpcNcStep.Line - nameWithType: GrpcNcStep.Line -- uid: numerical.GrpcNcStep.Line* - name: Line - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_Line_ - commentId: Overload:numerical.GrpcNcStep.Line - isSpec: "True" - fullName: numerical.GrpcNcStep.Line - nameWithType: GrpcNcStep.Line -- uid: numerical.GrpcNcStep.LineFieldNumber - name: LineFieldNumber - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_LineFieldNumber - commentId: F:numerical.GrpcNcStep.LineFieldNumber - fullName: numerical.GrpcNcStep.LineFieldNumber - nameWithType: GrpcNcStep.LineFieldNumber -- uid: numerical.GrpcNcStep.LineIndex - name: LineIndex - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_LineIndex - commentId: P:numerical.GrpcNcStep.LineIndex - fullName: numerical.GrpcNcStep.LineIndex - nameWithType: GrpcNcStep.LineIndex -- uid: numerical.GrpcNcStep.LineIndex* - name: LineIndex - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_LineIndex_ - commentId: Overload:numerical.GrpcNcStep.LineIndex - isSpec: "True" - fullName: numerical.GrpcNcStep.LineIndex - nameWithType: GrpcNcStep.LineIndex -- uid: numerical.GrpcNcStep.LineIndexFieldNumber - name: LineIndexFieldNumber - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_LineIndexFieldNumber - commentId: F:numerical.GrpcNcStep.LineIndexFieldNumber - fullName: numerical.GrpcNcStep.LineIndexFieldNumber - nameWithType: GrpcNcStep.LineIndexFieldNumber -- uid: numerical.GrpcNcStep.MergeFrom(Google.Protobuf.CodedInputStream) - name: MergeFrom(CodedInputStream) - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_MergeFrom_Google_Protobuf_CodedInputStream_ - commentId: M:numerical.GrpcNcStep.MergeFrom(Google.Protobuf.CodedInputStream) - fullName: numerical.GrpcNcStep.MergeFrom(Google.Protobuf.CodedInputStream) - nameWithType: GrpcNcStep.MergeFrom(CodedInputStream) -- uid: numerical.GrpcNcStep.MergeFrom(numerical.GrpcNcStep) - name: MergeFrom(GrpcNcStep) - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_MergeFrom_numerical_GrpcNcStep_ - commentId: M:numerical.GrpcNcStep.MergeFrom(numerical.GrpcNcStep) - fullName: numerical.GrpcNcStep.MergeFrom(numerical.GrpcNcStep) - nameWithType: GrpcNcStep.MergeFrom(GrpcNcStep) -- uid: numerical.GrpcNcStep.MergeFrom* - name: MergeFrom - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_MergeFrom_ - commentId: Overload:numerical.GrpcNcStep.MergeFrom - isSpec: "True" - fullName: numerical.GrpcNcStep.MergeFrom - nameWithType: GrpcNcStep.MergeFrom -- uid: numerical.GrpcNcStep.Parser - name: Parser - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_Parser - commentId: P:numerical.GrpcNcStep.Parser - fullName: numerical.GrpcNcStep.Parser - nameWithType: GrpcNcStep.Parser -- uid: numerical.GrpcNcStep.Parser* - name: Parser - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_Parser_ - commentId: Overload:numerical.GrpcNcStep.Parser - isSpec: "True" - fullName: numerical.GrpcNcStep.Parser - nameWithType: GrpcNcStep.Parser -- uid: numerical.GrpcNcStep.SpindleDirection - name: SpindleDirection - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_SpindleDirection - commentId: P:numerical.GrpcNcStep.SpindleDirection - fullName: numerical.GrpcNcStep.SpindleDirection - nameWithType: GrpcNcStep.SpindleDirection -- uid: numerical.GrpcNcStep.SpindleDirection* - name: SpindleDirection - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_SpindleDirection_ - commentId: Overload:numerical.GrpcNcStep.SpindleDirection - isSpec: "True" - fullName: numerical.GrpcNcStep.SpindleDirection - nameWithType: GrpcNcStep.SpindleDirection -- uid: numerical.GrpcNcStep.SpindleDirectionFieldNumber - name: SpindleDirectionFieldNumber - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_SpindleDirectionFieldNumber - commentId: F:numerical.GrpcNcStep.SpindleDirectionFieldNumber - fullName: numerical.GrpcNcStep.SpindleDirectionFieldNumber - nameWithType: GrpcNcStep.SpindleDirectionFieldNumber -- uid: numerical.GrpcNcStep.SpindleSpeedRpm - name: SpindleSpeedRpm - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_SpindleSpeedRpm - commentId: P:numerical.GrpcNcStep.SpindleSpeedRpm - fullName: numerical.GrpcNcStep.SpindleSpeedRpm - nameWithType: GrpcNcStep.SpindleSpeedRpm -- uid: numerical.GrpcNcStep.SpindleSpeedRpm* - name: SpindleSpeedRpm - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_SpindleSpeedRpm_ - commentId: Overload:numerical.GrpcNcStep.SpindleSpeedRpm - isSpec: "True" - fullName: numerical.GrpcNcStep.SpindleSpeedRpm - nameWithType: GrpcNcStep.SpindleSpeedRpm -- uid: numerical.GrpcNcStep.SpindleSpeedRpmFieldNumber - name: SpindleSpeedRpmFieldNumber - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_SpindleSpeedRpmFieldNumber - commentId: F:numerical.GrpcNcStep.SpindleSpeedRpmFieldNumber - fullName: numerical.GrpcNcStep.SpindleSpeedRpmFieldNumber - nameWithType: GrpcNcStep.SpindleSpeedRpmFieldNumber -- uid: numerical.GrpcNcStep.StepIndex - name: StepIndex - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_StepIndex - commentId: P:numerical.GrpcNcStep.StepIndex - fullName: numerical.GrpcNcStep.StepIndex - nameWithType: GrpcNcStep.StepIndex -- uid: numerical.GrpcNcStep.StepIndex* - name: StepIndex - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_StepIndex_ - commentId: Overload:numerical.GrpcNcStep.StepIndex - isSpec: "True" - fullName: numerical.GrpcNcStep.StepIndex - nameWithType: GrpcNcStep.StepIndex -- uid: numerical.GrpcNcStep.StepIndexFieldNumber - name: StepIndexFieldNumber - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_StepIndexFieldNumber - commentId: F:numerical.GrpcNcStep.StepIndexFieldNumber - fullName: numerical.GrpcNcStep.StepIndexFieldNumber - nameWithType: GrpcNcStep.StepIndexFieldNumber -- uid: numerical.GrpcNcStep.ToString - name: ToString() - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_ToString - commentId: M:numerical.GrpcNcStep.ToString - fullName: numerical.GrpcNcStep.ToString() - nameWithType: GrpcNcStep.ToString() -- uid: numerical.GrpcNcStep.ToString* - name: ToString - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_ToString_ - commentId: Overload:numerical.GrpcNcStep.ToString - isSpec: "True" - fullName: numerical.GrpcNcStep.ToString - nameWithType: GrpcNcStep.ToString -- uid: numerical.GrpcNcStep.ToolId - name: ToolId - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_ToolId - commentId: P:numerical.GrpcNcStep.ToolId - fullName: numerical.GrpcNcStep.ToolId - nameWithType: GrpcNcStep.ToolId -- uid: numerical.GrpcNcStep.ToolId* - name: ToolId - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_ToolId_ - commentId: Overload:numerical.GrpcNcStep.ToolId - isSpec: "True" - fullName: numerical.GrpcNcStep.ToolId - nameWithType: GrpcNcStep.ToolId -- uid: numerical.GrpcNcStep.ToolIdFieldNumber - name: ToolIdFieldNumber - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_ToolIdFieldNumber - commentId: F:numerical.GrpcNcStep.ToolIdFieldNumber - fullName: numerical.GrpcNcStep.ToolIdFieldNumber - nameWithType: GrpcNcStep.ToolIdFieldNumber -- uid: numerical.GrpcNcStep.WorkTime - name: WorkTime - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_WorkTime - commentId: P:numerical.GrpcNcStep.WorkTime - fullName: numerical.GrpcNcStep.WorkTime - nameWithType: GrpcNcStep.WorkTime -- uid: numerical.GrpcNcStep.WorkTime* - name: WorkTime - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_WorkTime_ - commentId: Overload:numerical.GrpcNcStep.WorkTime - isSpec: "True" - fullName: numerical.GrpcNcStep.WorkTime - nameWithType: GrpcNcStep.WorkTime -- uid: numerical.GrpcNcStep.WorkTimeFieldNumber - name: WorkTimeFieldNumber - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_WorkTimeFieldNumber - commentId: F:numerical.GrpcNcStep.WorkTimeFieldNumber - fullName: numerical.GrpcNcStep.WorkTimeFieldNumber - nameWithType: GrpcNcStep.WorkTimeFieldNumber -- uid: numerical.GrpcNcStep.WriteTo(Google.Protobuf.CodedOutputStream) - name: WriteTo(CodedOutputStream) - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_WriteTo_Google_Protobuf_CodedOutputStream_ - commentId: M:numerical.GrpcNcStep.WriteTo(Google.Protobuf.CodedOutputStream) - fullName: numerical.GrpcNcStep.WriteTo(Google.Protobuf.CodedOutputStream) - nameWithType: GrpcNcStep.WriteTo(CodedOutputStream) -- uid: numerical.GrpcNcStep.WriteTo* - name: WriteTo - href: api/numerical.GrpcNcStep.html#numerical_GrpcNcStep_WriteTo_ - commentId: Overload:numerical.GrpcNcStep.WriteTo - isSpec: "True" - fullName: numerical.GrpcNcStep.WriteTo - nameWithType: GrpcNcStep.WriteTo -- uid: numerical.NumericalReflection - name: NumericalReflection - href: api/numerical.NumericalReflection.html - commentId: T:numerical.NumericalReflection - fullName: numerical.NumericalReflection - nameWithType: NumericalReflection -- uid: numerical.NumericalReflection.Descriptor - name: Descriptor - href: api/numerical.NumericalReflection.html#numerical_NumericalReflection_Descriptor - commentId: P:numerical.NumericalReflection.Descriptor - fullName: numerical.NumericalReflection.Descriptor - nameWithType: NumericalReflection.Descriptor -- uid: numerical.NumericalReflection.Descriptor* - name: Descriptor - href: api/numerical.NumericalReflection.html#numerical_NumericalReflection_Descriptor_ - commentId: Overload:numerical.NumericalReflection.Descriptor - isSpec: "True" - fullName: numerical.NumericalReflection.Descriptor - nameWithType: NumericalReflection.Descriptor -- uid: numerical.NumericalService - name: NumericalService - href: api/numerical.NumericalService.html - commentId: T:numerical.NumericalService - fullName: numerical.NumericalService - nameWithType: NumericalService -- uid: numerical.NumericalService.BindService(Grpc.Core.ServiceBinderBase,numerical.NumericalService.NumericalServiceBase) - name: BindService(ServiceBinderBase, NumericalServiceBase) - href: api/numerical.NumericalService.html#numerical_NumericalService_BindService_Grpc_Core_ServiceBinderBase_numerical_NumericalService_NumericalServiceBase_ - commentId: M:numerical.NumericalService.BindService(Grpc.Core.ServiceBinderBase,numerical.NumericalService.NumericalServiceBase) - fullName: numerical.NumericalService.BindService(Grpc.Core.ServiceBinderBase, numerical.NumericalService.NumericalServiceBase) - nameWithType: NumericalService.BindService(ServiceBinderBase, NumericalService.NumericalServiceBase) -- uid: numerical.NumericalService.BindService(numerical.NumericalService.NumericalServiceBase) - name: BindService(NumericalServiceBase) - href: api/numerical.NumericalService.html#numerical_NumericalService_BindService_numerical_NumericalService_NumericalServiceBase_ - commentId: M:numerical.NumericalService.BindService(numerical.NumericalService.NumericalServiceBase) - fullName: numerical.NumericalService.BindService(numerical.NumericalService.NumericalServiceBase) - nameWithType: NumericalService.BindService(NumericalService.NumericalServiceBase) -- uid: numerical.NumericalService.BindService* - name: BindService - href: api/numerical.NumericalService.html#numerical_NumericalService_BindService_ - commentId: Overload:numerical.NumericalService.BindService - isSpec: "True" - fullName: numerical.NumericalService.BindService - nameWithType: NumericalService.BindService -- uid: numerical.NumericalService.Descriptor - name: Descriptor - href: api/numerical.NumericalService.html#numerical_NumericalService_Descriptor - commentId: P:numerical.NumericalService.Descriptor - fullName: numerical.NumericalService.Descriptor - nameWithType: NumericalService.Descriptor -- uid: numerical.NumericalService.Descriptor* - name: Descriptor - href: api/numerical.NumericalService.html#numerical_NumericalService_Descriptor_ - commentId: Overload:numerical.NumericalService.Descriptor - isSpec: "True" - fullName: numerical.NumericalService.Descriptor - nameWithType: NumericalService.Descriptor -- uid: numerical.NumericalService.NumericalServiceBase - name: NumericalService.NumericalServiceBase - href: api/numerical.NumericalService.NumericalServiceBase.html - commentId: T:numerical.NumericalService.NumericalServiceBase - fullName: numerical.NumericalService.NumericalServiceBase - nameWithType: NumericalService.NumericalServiceBase -- uid: numerical.NumericalService.NumericalServiceBase.GetNcStepGrpcCsvRowDictionary(numerical.Empty,Grpc.Core.ServerCallContext) - name: GetNcStepGrpcCsvRowDictionary(Empty, ServerCallContext) - href: api/numerical.NumericalService.NumericalServiceBase.html#numerical_NumericalService_NumericalServiceBase_GetNcStepGrpcCsvRowDictionary_numerical_Empty_Grpc_Core_ServerCallContext_ - commentId: M:numerical.NumericalService.NumericalServiceBase.GetNcStepGrpcCsvRowDictionary(numerical.Empty,Grpc.Core.ServerCallContext) - fullName: numerical.NumericalService.NumericalServiceBase.GetNcStepGrpcCsvRowDictionary(numerical.Empty, Grpc.Core.ServerCallContext) - nameWithType: NumericalService.NumericalServiceBase.GetNcStepGrpcCsvRowDictionary(Empty, ServerCallContext) -- uid: numerical.NumericalService.NumericalServiceBase.GetNcStepGrpcCsvRowDictionary* - name: GetNcStepGrpcCsvRowDictionary - href: api/numerical.NumericalService.NumericalServiceBase.html#numerical_NumericalService_NumericalServiceBase_GetNcStepGrpcCsvRowDictionary_ - commentId: Overload:numerical.NumericalService.NumericalServiceBase.GetNcStepGrpcCsvRowDictionary - isSpec: "True" - fullName: numerical.NumericalService.NumericalServiceBase.GetNcStepGrpcCsvRowDictionary - nameWithType: NumericalService.NumericalServiceBase.GetNcStepGrpcCsvRowDictionary -- uid: numerical.NumericalService.NumericalServiceClient - name: NumericalService.NumericalServiceClient - href: api/numerical.NumericalService.NumericalServiceClient.html - commentId: T:numerical.NumericalService.NumericalServiceClient - fullName: numerical.NumericalService.NumericalServiceClient - nameWithType: NumericalService.NumericalServiceClient -- uid: numerical.NumericalService.NumericalServiceClient.#ctor - name: NumericalServiceClient() - href: api/numerical.NumericalService.NumericalServiceClient.html#numerical_NumericalService_NumericalServiceClient__ctor - commentId: M:numerical.NumericalService.NumericalServiceClient.#ctor - name.vb: New() - fullName: numerical.NumericalService.NumericalServiceClient.NumericalServiceClient() - fullName.vb: numerical.NumericalService.NumericalServiceClient.New() - nameWithType: NumericalService.NumericalServiceClient.NumericalServiceClient() - nameWithType.vb: NumericalService.NumericalServiceClient.New() -- uid: numerical.NumericalService.NumericalServiceClient.#ctor(Grpc.Core.CallInvoker) - name: NumericalServiceClient(CallInvoker) - href: api/numerical.NumericalService.NumericalServiceClient.html#numerical_NumericalService_NumericalServiceClient__ctor_Grpc_Core_CallInvoker_ - commentId: M:numerical.NumericalService.NumericalServiceClient.#ctor(Grpc.Core.CallInvoker) - name.vb: New(CallInvoker) - fullName: numerical.NumericalService.NumericalServiceClient.NumericalServiceClient(Grpc.Core.CallInvoker) - fullName.vb: numerical.NumericalService.NumericalServiceClient.New(Grpc.Core.CallInvoker) - nameWithType: NumericalService.NumericalServiceClient.NumericalServiceClient(CallInvoker) - nameWithType.vb: NumericalService.NumericalServiceClient.New(CallInvoker) -- uid: numerical.NumericalService.NumericalServiceClient.#ctor(Grpc.Core.ChannelBase) - name: NumericalServiceClient(ChannelBase) - href: api/numerical.NumericalService.NumericalServiceClient.html#numerical_NumericalService_NumericalServiceClient__ctor_Grpc_Core_ChannelBase_ - commentId: M:numerical.NumericalService.NumericalServiceClient.#ctor(Grpc.Core.ChannelBase) - name.vb: New(ChannelBase) - fullName: numerical.NumericalService.NumericalServiceClient.NumericalServiceClient(Grpc.Core.ChannelBase) - fullName.vb: numerical.NumericalService.NumericalServiceClient.New(Grpc.Core.ChannelBase) - nameWithType: NumericalService.NumericalServiceClient.NumericalServiceClient(ChannelBase) - nameWithType.vb: NumericalService.NumericalServiceClient.New(ChannelBase) -- uid: numerical.NumericalService.NumericalServiceClient.#ctor(Grpc.Core.ClientBase.ClientBaseConfiguration) - name: NumericalServiceClient(ClientBaseConfiguration) - href: api/numerical.NumericalService.NumericalServiceClient.html#numerical_NumericalService_NumericalServiceClient__ctor_Grpc_Core_ClientBase_ClientBaseConfiguration_ - commentId: M:numerical.NumericalService.NumericalServiceClient.#ctor(Grpc.Core.ClientBase.ClientBaseConfiguration) - name.vb: New(ClientBaseConfiguration) - fullName: numerical.NumericalService.NumericalServiceClient.NumericalServiceClient(Grpc.Core.ClientBase.ClientBaseConfiguration) - fullName.vb: numerical.NumericalService.NumericalServiceClient.New(Grpc.Core.ClientBase.ClientBaseConfiguration) - nameWithType: NumericalService.NumericalServiceClient.NumericalServiceClient(ClientBase.ClientBaseConfiguration) - nameWithType.vb: NumericalService.NumericalServiceClient.New(ClientBase.ClientBaseConfiguration) -- uid: numerical.NumericalService.NumericalServiceClient.#ctor* - name: NumericalServiceClient - href: api/numerical.NumericalService.NumericalServiceClient.html#numerical_NumericalService_NumericalServiceClient__ctor_ - commentId: Overload:numerical.NumericalService.NumericalServiceClient.#ctor - isSpec: "True" - name.vb: New - fullName: numerical.NumericalService.NumericalServiceClient.NumericalServiceClient - fullName.vb: numerical.NumericalService.NumericalServiceClient.New - nameWithType: NumericalService.NumericalServiceClient.NumericalServiceClient - nameWithType.vb: NumericalService.NumericalServiceClient.New -- uid: numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionary(numerical.Empty,Grpc.Core.CallOptions) - name: GetNcStepGrpcCsvRowDictionary(Empty, CallOptions) - href: api/numerical.NumericalService.NumericalServiceClient.html#numerical_NumericalService_NumericalServiceClient_GetNcStepGrpcCsvRowDictionary_numerical_Empty_Grpc_Core_CallOptions_ - commentId: M:numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionary(numerical.Empty,Grpc.Core.CallOptions) - fullName: numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionary(numerical.Empty, Grpc.Core.CallOptions) - nameWithType: NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionary(Empty, CallOptions) -- uid: numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionary(numerical.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name: GetNcStepGrpcCsvRowDictionary(Empty, Metadata, DateTime?, CancellationToken) - href: api/numerical.NumericalService.NumericalServiceClient.html#numerical_NumericalService_NumericalServiceClient_GetNcStepGrpcCsvRowDictionary_numerical_Empty_Grpc_Core_Metadata_System_Nullable_System_DateTime__System_Threading_CancellationToken_ - commentId: M:numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionary(numerical.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name.vb: GetNcStepGrpcCsvRowDictionary(Empty, Metadata, Date?, CancellationToken) - fullName: numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionary(numerical.Empty, Grpc.Core.Metadata, System.DateTime?, System.Threading.CancellationToken) - fullName.vb: numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionary(numerical.Empty, Grpc.Core.Metadata, Date?, System.Threading.CancellationToken) - nameWithType: NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionary(Empty, Metadata, DateTime?, CancellationToken) - nameWithType.vb: NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionary(Empty, Metadata, Date?, CancellationToken) -- uid: numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionary* - name: GetNcStepGrpcCsvRowDictionary - href: api/numerical.NumericalService.NumericalServiceClient.html#numerical_NumericalService_NumericalServiceClient_GetNcStepGrpcCsvRowDictionary_ - commentId: Overload:numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionary - isSpec: "True" - fullName: numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionary - nameWithType: NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionary -- uid: numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(numerical.Empty,Grpc.Core.CallOptions) - name: GetNcStepGrpcCsvRowDictionaryAsync(Empty, CallOptions) - href: api/numerical.NumericalService.NumericalServiceClient.html#numerical_NumericalService_NumericalServiceClient_GetNcStepGrpcCsvRowDictionaryAsync_numerical_Empty_Grpc_Core_CallOptions_ - commentId: M:numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(numerical.Empty,Grpc.Core.CallOptions) - fullName: numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(numerical.Empty, Grpc.Core.CallOptions) - nameWithType: NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(Empty, CallOptions) -- uid: numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(numerical.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name: GetNcStepGrpcCsvRowDictionaryAsync(Empty, Metadata, DateTime?, CancellationToken) - href: api/numerical.NumericalService.NumericalServiceClient.html#numerical_NumericalService_NumericalServiceClient_GetNcStepGrpcCsvRowDictionaryAsync_numerical_Empty_Grpc_Core_Metadata_System_Nullable_System_DateTime__System_Threading_CancellationToken_ - commentId: M:numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(numerical.Empty,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name.vb: GetNcStepGrpcCsvRowDictionaryAsync(Empty, Metadata, Date?, CancellationToken) - fullName: numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(numerical.Empty, Grpc.Core.Metadata, System.DateTime?, System.Threading.CancellationToken) - fullName.vb: numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(numerical.Empty, Grpc.Core.Metadata, Date?, System.Threading.CancellationToken) - nameWithType: NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(Empty, Metadata, DateTime?, CancellationToken) - nameWithType.vb: NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(Empty, Metadata, Date?, CancellationToken) -- uid: numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionaryAsync* - name: GetNcStepGrpcCsvRowDictionaryAsync - href: api/numerical.NumericalService.NumericalServiceClient.html#numerical_NumericalService_NumericalServiceClient_GetNcStepGrpcCsvRowDictionaryAsync_ - commentId: Overload:numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionaryAsync - isSpec: "True" - fullName: numerical.NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionaryAsync - nameWithType: NumericalService.NumericalServiceClient.GetNcStepGrpcCsvRowDictionaryAsync -- uid: numerical.NumericalService.NumericalServiceClient.NewInstance(Grpc.Core.ClientBase.ClientBaseConfiguration) - name: NewInstance(ClientBaseConfiguration) - href: api/numerical.NumericalService.NumericalServiceClient.html#numerical_NumericalService_NumericalServiceClient_NewInstance_Grpc_Core_ClientBase_ClientBaseConfiguration_ - commentId: M:numerical.NumericalService.NumericalServiceClient.NewInstance(Grpc.Core.ClientBase.ClientBaseConfiguration) - fullName: numerical.NumericalService.NumericalServiceClient.NewInstance(Grpc.Core.ClientBase.ClientBaseConfiguration) - nameWithType: NumericalService.NumericalServiceClient.NewInstance(ClientBase.ClientBaseConfiguration) -- uid: numerical.NumericalService.NumericalServiceClient.NewInstance* - name: NewInstance - href: api/numerical.NumericalService.NumericalServiceClient.html#numerical_NumericalService_NumericalServiceClient_NewInstance_ - commentId: Overload:numerical.NumericalService.NumericalServiceClient.NewInstance - isSpec: "True" - fullName: numerical.NumericalService.NumericalServiceClient.NewInstance - nameWithType: NumericalService.NumericalServiceClient.NewInstance -- uid: numerical.UniversalNcReflection - name: UniversalNcReflection - href: api/numerical.UniversalNcReflection.html - commentId: T:numerical.UniversalNcReflection - fullName: numerical.UniversalNcReflection - nameWithType: UniversalNcReflection -- uid: numerical.UniversalNcReflection.Descriptor - name: Descriptor - href: api/numerical.UniversalNcReflection.html#numerical_UniversalNcReflection_Descriptor - commentId: P:numerical.UniversalNcReflection.Descriptor - fullName: numerical.UniversalNcReflection.Descriptor - nameWithType: UniversalNcReflection.Descriptor -- uid: numerical.UniversalNcReflection.Descriptor* - name: Descriptor - href: api/numerical.UniversalNcReflection.html#numerical_UniversalNcReflection_Descriptor_ - commentId: Overload:numerical.UniversalNcReflection.Descriptor - isSpec: "True" - fullName: numerical.UniversalNcReflection.Descriptor - nameWithType: UniversalNcReflection.Descriptor -- uid: numerical.UniversalNcService - name: UniversalNcService - href: api/numerical.UniversalNcService.html - commentId: T:numerical.UniversalNcService - fullName: numerical.UniversalNcService - nameWithType: UniversalNcService -- uid: numerical.UniversalNcService.BindService(Grpc.Core.ServiceBinderBase,numerical.UniversalNcService.UniversalNcServiceBase) - name: BindService(ServiceBinderBase, UniversalNcServiceBase) - href: api/numerical.UniversalNcService.html#numerical_UniversalNcService_BindService_Grpc_Core_ServiceBinderBase_numerical_UniversalNcService_UniversalNcServiceBase_ - commentId: M:numerical.UniversalNcService.BindService(Grpc.Core.ServiceBinderBase,numerical.UniversalNcService.UniversalNcServiceBase) - fullName: numerical.UniversalNcService.BindService(Grpc.Core.ServiceBinderBase, numerical.UniversalNcService.UniversalNcServiceBase) - nameWithType: UniversalNcService.BindService(ServiceBinderBase, UniversalNcService.UniversalNcServiceBase) -- uid: numerical.UniversalNcService.BindService(numerical.UniversalNcService.UniversalNcServiceBase) - name: BindService(UniversalNcServiceBase) - href: api/numerical.UniversalNcService.html#numerical_UniversalNcService_BindService_numerical_UniversalNcService_UniversalNcServiceBase_ - commentId: M:numerical.UniversalNcService.BindService(numerical.UniversalNcService.UniversalNcServiceBase) - fullName: numerical.UniversalNcService.BindService(numerical.UniversalNcService.UniversalNcServiceBase) - nameWithType: UniversalNcService.BindService(UniversalNcService.UniversalNcServiceBase) -- uid: numerical.UniversalNcService.BindService* - name: BindService - href: api/numerical.UniversalNcService.html#numerical_UniversalNcService_BindService_ - commentId: Overload:numerical.UniversalNcService.BindService - isSpec: "True" - fullName: numerical.UniversalNcService.BindService - nameWithType: UniversalNcService.BindService -- uid: numerical.UniversalNcService.Descriptor - name: Descriptor - href: api/numerical.UniversalNcService.html#numerical_UniversalNcService_Descriptor - commentId: P:numerical.UniversalNcService.Descriptor - fullName: numerical.UniversalNcService.Descriptor - nameWithType: UniversalNcService.Descriptor -- uid: numerical.UniversalNcService.Descriptor* - name: Descriptor - href: api/numerical.UniversalNcService.html#numerical_UniversalNcService_Descriptor_ - commentId: Overload:numerical.UniversalNcService.Descriptor - isSpec: "True" - fullName: numerical.UniversalNcService.Descriptor - nameWithType: UniversalNcService.Descriptor -- uid: numerical.UniversalNcService.UniversalNcServiceBase - name: UniversalNcService.UniversalNcServiceBase - href: api/numerical.UniversalNcService.UniversalNcServiceBase.html - commentId: T:numerical.UniversalNcService.UniversalNcServiceBase - fullName: numerical.UniversalNcService.UniversalNcServiceBase - nameWithType: UniversalNcService.UniversalNcServiceBase -- uid: numerical.UniversalNcService.UniversalNcServiceBase.GetNcStepGrpcCsvRowDictionary(numerical.GrpcNcStep,Grpc.Core.ServerCallContext) - name: GetNcStepGrpcCsvRowDictionary(GrpcNcStep, ServerCallContext) - href: api/numerical.UniversalNcService.UniversalNcServiceBase.html#numerical_UniversalNcService_UniversalNcServiceBase_GetNcStepGrpcCsvRowDictionary_numerical_GrpcNcStep_Grpc_Core_ServerCallContext_ - commentId: M:numerical.UniversalNcService.UniversalNcServiceBase.GetNcStepGrpcCsvRowDictionary(numerical.GrpcNcStep,Grpc.Core.ServerCallContext) - fullName: numerical.UniversalNcService.UniversalNcServiceBase.GetNcStepGrpcCsvRowDictionary(numerical.GrpcNcStep, Grpc.Core.ServerCallContext) - nameWithType: UniversalNcService.UniversalNcServiceBase.GetNcStepGrpcCsvRowDictionary(GrpcNcStep, ServerCallContext) -- uid: numerical.UniversalNcService.UniversalNcServiceBase.GetNcStepGrpcCsvRowDictionary* - name: GetNcStepGrpcCsvRowDictionary - href: api/numerical.UniversalNcService.UniversalNcServiceBase.html#numerical_UniversalNcService_UniversalNcServiceBase_GetNcStepGrpcCsvRowDictionary_ - commentId: Overload:numerical.UniversalNcService.UniversalNcServiceBase.GetNcStepGrpcCsvRowDictionary - isSpec: "True" - fullName: numerical.UniversalNcService.UniversalNcServiceBase.GetNcStepGrpcCsvRowDictionary - nameWithType: UniversalNcService.UniversalNcServiceBase.GetNcStepGrpcCsvRowDictionary -- uid: numerical.UniversalNcService.UniversalNcServiceClient - name: UniversalNcService.UniversalNcServiceClient - href: api/numerical.UniversalNcService.UniversalNcServiceClient.html - commentId: T:numerical.UniversalNcService.UniversalNcServiceClient - fullName: numerical.UniversalNcService.UniversalNcServiceClient - nameWithType: UniversalNcService.UniversalNcServiceClient -- uid: numerical.UniversalNcService.UniversalNcServiceClient.#ctor - name: UniversalNcServiceClient() - href: api/numerical.UniversalNcService.UniversalNcServiceClient.html#numerical_UniversalNcService_UniversalNcServiceClient__ctor - commentId: M:numerical.UniversalNcService.UniversalNcServiceClient.#ctor - name.vb: New() - fullName: numerical.UniversalNcService.UniversalNcServiceClient.UniversalNcServiceClient() - fullName.vb: numerical.UniversalNcService.UniversalNcServiceClient.New() - nameWithType: UniversalNcService.UniversalNcServiceClient.UniversalNcServiceClient() - nameWithType.vb: UniversalNcService.UniversalNcServiceClient.New() -- uid: numerical.UniversalNcService.UniversalNcServiceClient.#ctor(Grpc.Core.CallInvoker) - name: UniversalNcServiceClient(CallInvoker) - href: api/numerical.UniversalNcService.UniversalNcServiceClient.html#numerical_UniversalNcService_UniversalNcServiceClient__ctor_Grpc_Core_CallInvoker_ - commentId: M:numerical.UniversalNcService.UniversalNcServiceClient.#ctor(Grpc.Core.CallInvoker) - name.vb: New(CallInvoker) - fullName: numerical.UniversalNcService.UniversalNcServiceClient.UniversalNcServiceClient(Grpc.Core.CallInvoker) - fullName.vb: numerical.UniversalNcService.UniversalNcServiceClient.New(Grpc.Core.CallInvoker) - nameWithType: UniversalNcService.UniversalNcServiceClient.UniversalNcServiceClient(CallInvoker) - nameWithType.vb: UniversalNcService.UniversalNcServiceClient.New(CallInvoker) -- uid: numerical.UniversalNcService.UniversalNcServiceClient.#ctor(Grpc.Core.ChannelBase) - name: UniversalNcServiceClient(ChannelBase) - href: api/numerical.UniversalNcService.UniversalNcServiceClient.html#numerical_UniversalNcService_UniversalNcServiceClient__ctor_Grpc_Core_ChannelBase_ - commentId: M:numerical.UniversalNcService.UniversalNcServiceClient.#ctor(Grpc.Core.ChannelBase) - name.vb: New(ChannelBase) - fullName: numerical.UniversalNcService.UniversalNcServiceClient.UniversalNcServiceClient(Grpc.Core.ChannelBase) - fullName.vb: numerical.UniversalNcService.UniversalNcServiceClient.New(Grpc.Core.ChannelBase) - nameWithType: UniversalNcService.UniversalNcServiceClient.UniversalNcServiceClient(ChannelBase) - nameWithType.vb: UniversalNcService.UniversalNcServiceClient.New(ChannelBase) -- uid: numerical.UniversalNcService.UniversalNcServiceClient.#ctor(Grpc.Core.ClientBase.ClientBaseConfiguration) - name: UniversalNcServiceClient(ClientBaseConfiguration) - href: api/numerical.UniversalNcService.UniversalNcServiceClient.html#numerical_UniversalNcService_UniversalNcServiceClient__ctor_Grpc_Core_ClientBase_ClientBaseConfiguration_ - commentId: M:numerical.UniversalNcService.UniversalNcServiceClient.#ctor(Grpc.Core.ClientBase.ClientBaseConfiguration) - name.vb: New(ClientBaseConfiguration) - fullName: numerical.UniversalNcService.UniversalNcServiceClient.UniversalNcServiceClient(Grpc.Core.ClientBase.ClientBaseConfiguration) - fullName.vb: numerical.UniversalNcService.UniversalNcServiceClient.New(Grpc.Core.ClientBase.ClientBaseConfiguration) - nameWithType: UniversalNcService.UniversalNcServiceClient.UniversalNcServiceClient(ClientBase.ClientBaseConfiguration) - nameWithType.vb: UniversalNcService.UniversalNcServiceClient.New(ClientBase.ClientBaseConfiguration) -- uid: numerical.UniversalNcService.UniversalNcServiceClient.#ctor* - name: UniversalNcServiceClient - href: api/numerical.UniversalNcService.UniversalNcServiceClient.html#numerical_UniversalNcService_UniversalNcServiceClient__ctor_ - commentId: Overload:numerical.UniversalNcService.UniversalNcServiceClient.#ctor - isSpec: "True" - name.vb: New - fullName: numerical.UniversalNcService.UniversalNcServiceClient.UniversalNcServiceClient - fullName.vb: numerical.UniversalNcService.UniversalNcServiceClient.New - nameWithType: UniversalNcService.UniversalNcServiceClient.UniversalNcServiceClient - nameWithType.vb: UniversalNcService.UniversalNcServiceClient.New -- uid: numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionary(numerical.GrpcNcStep,Grpc.Core.CallOptions) - name: GetNcStepGrpcCsvRowDictionary(GrpcNcStep, CallOptions) - href: api/numerical.UniversalNcService.UniversalNcServiceClient.html#numerical_UniversalNcService_UniversalNcServiceClient_GetNcStepGrpcCsvRowDictionary_numerical_GrpcNcStep_Grpc_Core_CallOptions_ - commentId: M:numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionary(numerical.GrpcNcStep,Grpc.Core.CallOptions) - fullName: numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionary(numerical.GrpcNcStep, Grpc.Core.CallOptions) - nameWithType: UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionary(GrpcNcStep, CallOptions) -- uid: numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionary(numerical.GrpcNcStep,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name: GetNcStepGrpcCsvRowDictionary(GrpcNcStep, Metadata, DateTime?, CancellationToken) - href: api/numerical.UniversalNcService.UniversalNcServiceClient.html#numerical_UniversalNcService_UniversalNcServiceClient_GetNcStepGrpcCsvRowDictionary_numerical_GrpcNcStep_Grpc_Core_Metadata_System_Nullable_System_DateTime__System_Threading_CancellationToken_ - commentId: M:numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionary(numerical.GrpcNcStep,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name.vb: GetNcStepGrpcCsvRowDictionary(GrpcNcStep, Metadata, Date?, CancellationToken) - fullName: numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionary(numerical.GrpcNcStep, Grpc.Core.Metadata, System.DateTime?, System.Threading.CancellationToken) - fullName.vb: numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionary(numerical.GrpcNcStep, Grpc.Core.Metadata, Date?, System.Threading.CancellationToken) - nameWithType: UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionary(GrpcNcStep, Metadata, DateTime?, CancellationToken) - nameWithType.vb: UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionary(GrpcNcStep, Metadata, Date?, CancellationToken) -- uid: numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionary* - name: GetNcStepGrpcCsvRowDictionary - href: api/numerical.UniversalNcService.UniversalNcServiceClient.html#numerical_UniversalNcService_UniversalNcServiceClient_GetNcStepGrpcCsvRowDictionary_ - commentId: Overload:numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionary - isSpec: "True" - fullName: numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionary - nameWithType: UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionary -- uid: numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(numerical.GrpcNcStep,Grpc.Core.CallOptions) - name: GetNcStepGrpcCsvRowDictionaryAsync(GrpcNcStep, CallOptions) - href: api/numerical.UniversalNcService.UniversalNcServiceClient.html#numerical_UniversalNcService_UniversalNcServiceClient_GetNcStepGrpcCsvRowDictionaryAsync_numerical_GrpcNcStep_Grpc_Core_CallOptions_ - commentId: M:numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(numerical.GrpcNcStep,Grpc.Core.CallOptions) - fullName: numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(numerical.GrpcNcStep, Grpc.Core.CallOptions) - nameWithType: UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(GrpcNcStep, CallOptions) -- uid: numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(numerical.GrpcNcStep,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name: GetNcStepGrpcCsvRowDictionaryAsync(GrpcNcStep, Metadata, DateTime?, CancellationToken) - href: api/numerical.UniversalNcService.UniversalNcServiceClient.html#numerical_UniversalNcService_UniversalNcServiceClient_GetNcStepGrpcCsvRowDictionaryAsync_numerical_GrpcNcStep_Grpc_Core_Metadata_System_Nullable_System_DateTime__System_Threading_CancellationToken_ - commentId: M:numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(numerical.GrpcNcStep,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken) - name.vb: GetNcStepGrpcCsvRowDictionaryAsync(GrpcNcStep, Metadata, Date?, CancellationToken) - fullName: numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(numerical.GrpcNcStep, Grpc.Core.Metadata, System.DateTime?, System.Threading.CancellationToken) - fullName.vb: numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(numerical.GrpcNcStep, Grpc.Core.Metadata, Date?, System.Threading.CancellationToken) - nameWithType: UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(GrpcNcStep, Metadata, DateTime?, CancellationToken) - nameWithType.vb: UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionaryAsync(GrpcNcStep, Metadata, Date?, CancellationToken) -- uid: numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionaryAsync* - name: GetNcStepGrpcCsvRowDictionaryAsync - href: api/numerical.UniversalNcService.UniversalNcServiceClient.html#numerical_UniversalNcService_UniversalNcServiceClient_GetNcStepGrpcCsvRowDictionaryAsync_ - commentId: Overload:numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionaryAsync - isSpec: "True" - fullName: numerical.UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionaryAsync - nameWithType: UniversalNcService.UniversalNcServiceClient.GetNcStepGrpcCsvRowDictionaryAsync -- uid: numerical.UniversalNcService.UniversalNcServiceClient.NewInstance(Grpc.Core.ClientBase.ClientBaseConfiguration) - name: NewInstance(ClientBaseConfiguration) - href: api/numerical.UniversalNcService.UniversalNcServiceClient.html#numerical_UniversalNcService_UniversalNcServiceClient_NewInstance_Grpc_Core_ClientBase_ClientBaseConfiguration_ - commentId: M:numerical.UniversalNcService.UniversalNcServiceClient.NewInstance(Grpc.Core.ClientBase.ClientBaseConfiguration) - fullName: numerical.UniversalNcService.UniversalNcServiceClient.NewInstance(Grpc.Core.ClientBase.ClientBaseConfiguration) - nameWithType: UniversalNcService.UniversalNcServiceClient.NewInstance(ClientBase.ClientBaseConfiguration) -- uid: numerical.UniversalNcService.UniversalNcServiceClient.NewInstance* - name: NewInstance - href: api/numerical.UniversalNcService.UniversalNcServiceClient.html#numerical_UniversalNcService_UniversalNcServiceClient_NewInstance_ - commentId: Overload:numerical.UniversalNcService.UniversalNcServiceClient.NewInstance - isSpec: "True" - fullName: numerical.UniversalNcService.UniversalNcServiceClient.NewInstance - nameWithType: UniversalNcService.UniversalNcServiceClient.NewInstance diff --git a/App/zh-Hans/HiMech.resources.dll b/App/zh-Hans/HiMech.resources.dll index 90ded7f86313052f52ad347cb0602e1440590f73..d696dc97e27596b90391a51a427787de15c56f2b 100644 GIT binary patch delta 223 zcmZq3Xvmn*!D7THbZcXe6EowS&F7gFnFKg=FP-1_?~?zl_odS$e3ZI3v1Kt@n&}xZ zFqkqj7#Qmr>KU4vX`7}PC8e4f8W|^=rY0qunpgs{X`-cZqKT1#iJ4)tk%@^xnt_SY z=Edxg>iICuYW3o6j>VG6_if{K?7|a&cRl8TopCZs?p%Y*~z!CVB=8 z45o|>2F7}ZdWNPZ+U914X=X;o<`%}LCW(pWNr^^@mMJObCKf3vX^DvjmZ_D79%oq$A(txB9gE5e20VGWs zOc)Y@(3~L&NE!jLB|{1jnghixz^pW|ya7-=6$lN1x-EdT1%uh-U_(ow@x6w{OaNwC BHc|ip diff --git a/App/zh-Hans/HiNc.resources.dll b/App/zh-Hans/HiNc.resources.dll index cf37908864be2191e7da950f8b4756f8de03c651..cd31789002a8697e7dfbb9b2ba7587b0099735e5 100644 GIT binary patch delta 223 zcmZorX;7Ka!P4_MX5q#jCuYWVo6j=~G6@9z`sU&qJJECUPeZMgu%2I&Kd|n!G|@9) zU@&E5Ffi6L)H5_U(KbmoOS4Q#HAprzH!w9$F-S?YFg8jvN=&p&GfhlMHZe6cFiTA` zO4MNMT52FaYul z8O(vSDT6Uk!~lpB87zQoBcK{1AUhGLG7Tu32$V?%>NW+cHvpQD%8&$=V{ delta 223 zcmZorX;7Ka!7_Je+UAWtPRxvJH=kz~WD@9-%gLA(tLnLQ^@Y!Zs{H|zKd|n!G}bd< zU@&E5Ffi6L)H5_U);6{@H%LrPOG&Y`v@}hzurM_@H#100G&C?WN;FS4Ff~t3GB-0f zvfTWLZ4EQ$S_Vc2W(Ed^wVS7NwK6gqZRAUIFjesx_D3%OlgJhE#lE5m=f#Q~vAM;v*jOTmI3;<3> BH532< diff --git a/App/zh-Hant/HiGeom.resources.dll b/App/zh-Hant/HiGeom.resources.dll index 885cb600fc0221634ac06e9313264c554d03c5d4..9381a4cd77e0dc32d72245c89cad2cfd2c7994db 100644 GIT binary patch delta 229 zcmZorX;7Ka!Q!zxxn*OI6EkDS=JU*wOagz~t9pEzuXt>|V&|JS=hf@UKUn`+nCTfX zFqkqj7#Qmr>KPiFX`7}do28_g86+7Po0u7;8l@Pen4~5qnxz_9rX*Szn;KafC7UOv zZPsH?VCL*#U}RusU|{IjJe^CFiP3EHTAq5wKr;qy22+MqhGYgah7^W0AZfsm1jNP+ zCP20kP{s%-4#Fltb|Mg(fyFF=B8dzZKy{`-SxX>JW-teeq)o2nvt~78&|@&zEGXc@ KxS3JlKO+DHQ8-8d delta 229 zcmW-XF-rqM6olvHa!7)Nvq)i|CIpt<9B+4nou)})VPWrH*lS`TSO?Rcg@uyBpCAYp zVT=3>e@!5j@o@|@4ByOVv>Cm>b`R9u@7}I6YSM3Z*(q)o`^VMS;r9FfdHyucKeosG z&$H416LhJJG9^#U)YsOBDptXG6P;U@Rb*?;EUyp)=XJU25o-u{^!>uw4(Xa)yFV7sZ?s H6({-!oK-ZP diff --git a/App/zh-Hant/HiMech.resources.dll b/App/zh-Hant/HiMech.resources.dll index 70cbc45d7d7a4085db204ab9009bdf0a96885b6c..d4c9bdd41581cd05a4ed0a09ddd9dec502b1f33d 100644 GIT binary patch delta 223 zcmZq3Xvmn*!SZhl-t-?8nfsuikfq`Mp=IJ^wnHbGBH|p0j2AeTxGng`@Fc>i;F{Cn>F&F|_#tex- yu~eW)GLSZ5u!Pd4Kygd3tO-z+0Z;~{J{ib10YU?YG_aV_nzlQtp?Ocb=?#GjZ3w9jd#FoWqX`*Mq zz+lSAU|_6gsAp(uqHS(wm}X{VY;Iv}YLb{}o|I^mXql2?Zeo#=l9rfgV40d~Xl9XW zVYYcO`)d`>SqzK}%nS?+vo=rHdCA0Rvbj;eo-x>jL7Tyx!HmI>Aq_|xF&G1R7C_RJ z!Gs|Z2+bLifTR%+TQZ~op*c|80?bMS%Nqd2Q-RPBsM`WaTQHbS4mPv|8sBSJ%me^* CsW|BX diff --git a/App/zh-Hant/HiNc.resources.dll b/App/zh-Hant/HiNc.resources.dll index a1221ffaeb42d63b00dae146c323f231ed69060b..b3f03246cc17004fa8c2b727edc32b742bd663fe 100644 GIT binary patch delta 223 zcmZoLX)u}4!J^Z>aPP(*CuYWVo6j?EWfHi>S*j>lhdrm>C!t)@`0H)XK>S*jYZ(|Bm>C!t)^46I)XKmswHUh##pja}H4U$b}NCK-c2Z~!xek^JUGG6R4GXP%} BHX8r{

    ! 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 Xzo!P?Vj>sODWPA<|9AO6t_J=WYS;7n literal 432128 zcmd?S34k0`xi(x=)m`1wvm`Y=>7JP+(;;Evp?hWslMuo>!>(ZoAedQ@)u1d=LW2uU zkCE$&fQX6&6L)dP4NO_x}I?{hdtJ zIq!M5^Pcytb?VeH(^os5<2Wh&J@u61+>Sec6LQ`8Wh;`qOLufTpJ@N)Znw7`{mtD@ ze8Jh(6)(CleEx-}zi`Ewr=Nd*c+rY8wye1D;`3LWeg2BWHa&aA3&ZDa8SU!I?QU2f zcevvm-R3#>=U;NCmG+3Ua<`7QHI8$4+HvmJ(5tp1yuxBk=&-BxCY1Wi?-Ac|0O!wh zPJ5N(ESCTA-9$BtGXcIwG5ko{x&1x^Oy2JHoleAe2i~$I{OQ6g94DK=$s+#DM11t3 zEib(Y@i%|o!Sj&n#ND!~`guJ} z&SW=LXR4d7OCrSN*Lcnp?vNXJ7vs7#=lY{Z`@=`73^9ePFV_%u%?#YU+J*{R^<0lLbO9`|^a@@^QmcC_9diYSLpW&e=AoiC zSVvFW&;=;ArC0D`@fbFEeXeAxv&S8}0G3&L1uqtlVU4E(aAhgUAQbR|H==))le1`(xNPc`~0#H z<}J(OvWBuC*Ig+KirJO2pxj+9iz1L&CVjj=C#n$yqYMPfdT=oO2#yQe!~Mke>wNgT zt_MW+YrJaP7fn4NwJ)5-_TumNt$54WJEt40DunYroYdOGQAy~_XFvydCw%$eV86b| zmr1`X_9MfmvtQ(+{XnK&26&I{LNM$iP-_>|1lR>Nz1c2A_G`R0+J)4CGY&2}NOU*omW zE~NH_bJ8w%=Jr3V!7f5L-!7zHz%H+9unXyT#V%yH%XV1~WZGrW+)L)Zg7<5pdPOwY ziCAdch~##s>VhO~+y(G)v~I8)dI+)G^ZemcO+6#AU*lEV?MPG4$jukYx{ce@^fzSh z*LamS4*k$>2)i|k^W_?@L@?P8v5xV#Vq5T@vl^@}V&_|(vRm{+B2?Nw!z7j*t^x_V zC#lmPgDkWtsMD`T84W~rn$mWqj41x;%4i7v6ZLtzHgTw5o2IMB8@d3^`O+(RvHcjs z$$pIbr=4H0uZRBCVaM^+Ymf)EJ0OKzp+mja#)hgxfYs6crG{#}mU8NKNDNm4Y#_br z@+QcjdVLc_sVkZwW9rHXGUty#hw3xHQ(XmUkJHnpU}k@4&L53Z-q4h?XOwbvQwj#V zhT9vPQuc~cu4zco+3aC9=lrn<=}iqtbN<>W<;_hg>!OsmBvaJ2h>2anckc+NIg{(7 zl(#0SL91x*%4)+%oWBhloZZo! zwhii@q|CMl{TSy~fvek;!5*iuM7hXX-`cd_H`j)CUD~K7yj2n2KqDT;0SSIfBeWvW zmS}dZ_#F@-lHb72Vty;0sK!Ih5lk`pCU>Q(}YUSAI|$V^b@(_S`0PN7v!{Ka2(%)uJEtW6Z;Qv&TDua6kuV?q&#Jm7zYpx$qz-ymDK>{ENq4YUk5NjP{#ug zMXec{g4c}19hi;C9Z*7c4od|Mx4bu~P5>8A$JMhD*4guBF%3zDCklX^hT%87dkMes z9C(NHukahK-(tULc%1~&NqCOtr`bJ+Fh~%FbXn2Sx)^vRb)>^-vq82FsMBCHqo6K9 zI7kj&DVoWZH7>`+j1*m;{9t44kB1t6^an@#{Zh~9N=v96lQfl*>nXTmP9#;(53sC_ zG0;BbBG3JJd2V(E(&qdSI#s8UR-M6REBzBA*N>y!px@<6J;^YgDz}xkEss{u2jx~W zfp^nI%lEk#FGuq;Tta<11&DMSEaryDc8+e7^TIQ5Mcbg@b-D0)jJ$ew3vR<*pgD`c z=M#v?3m7?@5z{c8gK!}{mypZVdAQADAeeH8<}xo~7G4NQhy{*Hh#ck0v#un2!;8Em zMy0KnGxdrdhrJlKErJn51YT9OJQ@G)PZH?5$h!?YJ&Eb2tJv!xAsYB>NAEJxoQ~dYq8&PVkBN3Fv|%m!XWgfwe?~8A`ry|h|D_Jw34Z|$*a?48?tSV@ za_?7PmivJEirkl~|0VZj>fhzQTzysUgX(K?hq7PSf!xz|=VJ1KSw+hqpp=mg>bxLK9-5I?Ba^yt@;J^+ z)p-F9#x}0RWgi0Z0G5O(CA9jxm?zkueZgOG=dYoEz6uCl$gA$3ua-Ek z^nl#3blTSlkkv|AQ(h}^UKv-f0kx~H6Ckf4yjyqo>Ush4n!tR!0C|lt4UZcn zh1V#>RW}NdS1tW!iSwEmSFmJFNsn8f^qeEno}f<3xPlp%aRmeMxWZMmKnRb|aX6u4 z6NsITJkbtulEiEhts(3fNV20@B!Pis0!@RKUH?Y&SaXCFZMX1pBaoI7Vg{1Lv{nmZ zF`^}=-CE#?IW5kORsaLB0AySYI-&KDDkGyS+BMWrzr2#Zbp~w8pR2^8iLn*qdTf=j zX|IQo!3kiC&Rl%$^^)t@vOpNH2!yivfLX-8NLyjk2r%5m#7I*%jR2F@Xk{SnWs#Vo zQ1iiD%#5@RHjMzopwZGmI@lsH#V}|zHISZVk(gqTZbWbxX~)?#0<;vVyWT8Z)eb&s zXbwKbk?r7<_TCNlM!y?szPv8UMjBxD9-&!h`WqS*OLn;4r~62-<*qL^9WV&90P zm{{Oq+X&uh-n3t8r+l%eV2dFm>_%H!>_+2Rs8~yQh?xuz41*_N8EvWOFiRL$i>)}W z7VkVBv(CQU>p+$`qh50(<1oQhG!sPrwk>vcNuery*n^@2swGERgU*d1N&nEOKw{L)_g!<_)$us^JY`@#Do!&r;+OV8RLIRWIj{cn-`^#1R| z-Rh<1BUEVvlkJp*g|q?2CjfGCiiNY`6$toT;W$;Af{r`+Z~Xsi!bAIvB}w{zrgZg&XCn&@{J| zqpAgGM$>v`#EOpr@`pjWl}s=*LbK;%l7oyt%_K*LYv%y1aguWw*l?0_JGFs@a$ye& zA)4ec*-UaG3{Gpq^*|%5DBsrIzVq&UtClg1jU&3uG^T^o=yxdnsL2zqF6Ub!|31HZDj0H#lfMYE{0sw5X z013dRtZyhW2PJ~_!%}`gKifbb`W1@mgQy-yeT!pGREJy-628WSex2|i$%KDTB;1=! z_(mcDrSYSxVgW>2KLgYH(j56qrqqUK(E4&yX{1du(n zEgB#J046O!0+?i?oywK>(|1&`2ca2vVi0ViZc06DpqxVh`WT{s{+v+oM0L|bBmls) z1xR4bRgVKxUFQKE>xya{0-6{Z<}-&&c!#}Rucr-b)B`YO&hJ~><%X#0xeVLQT-h(K zbqgIpae=ZFD8;qyZiw2SD^7K~A;v_&yaiVs&Pv!*%YfOyNHfg})Am$aEeAqb>+#Y? zJqBYv-W_po)T3nexYg?Mo(R(o8E(=eX5@wp>*RK|f?DM9%tN30JkD ze6zw*!k)SlMb>4KMT$w5u+jdS(p>ceRL`w{kTLB;+jvXY(Sqj6(?CME?*r)y zs^`_OqR#Jk6)HeQOXkx+9aJ9&jT>t9&QqTt2igbgkO$!2OP>ip3Fz>stA=O|EcqAE zN-qtcKyF>NdLB$zmS;ajR#&+g=`JW&{ShprOx9ajK>sJCq|`GYUVJO#EOs3SOq!)BGB6Y<`NYO}Bllg4W9#L&+ z&5)uDLy|>UjT|)=IJW0AL1%F?-x;70qM^rsg#kwp*>1w0nWk84R*AOAv!yybJ+Tkb?+r=Pjg!M4Un8S7cp3Yrh{i@hL#=PaIv zcZyr(^Wq*skB;>sz;e$o3G$R!7=ml%i$O0VeZdmO`WYTTI>Ji# zC6o>ZuOA9J#Ekis!6I$fmHARonxYrO%~u4Aw*)JugVJPvw;)%O>JgSgZm4)00yugI`ElH}SpjxIOhHSYe8${s^27{UL%_yv3QNAPS z2BbUac0(z{8|lE-`p$%3qa)7Lzly6V+8{UQe+|**vPH((pC5$+!k8?mcA=%m^Oib1 zC*`N>=kw;J)Yn0(zJbfx^^l+%)8kg(#8LdZ7idlw7w+&^^^F{M;@@`bpIFo;&Eib` z95TyzF@H~e6H@9g6d}B-Zy~O~? zCJJjhe048bOO^yy+-oV=N_@`mCX;UiLET4zm3<4HmEr7pevK+lclkB)%Ib`vf{AME zZo=;XJzJba11%bkeO;sS*@o|21iSXpuHOX~?fO03Vb}Y4!w$#q^WJFR9}wi%h#@UW z{f7k9NGP2nw(BJ-ib-G}*D`_KX=B2IW$^&zv?z-QMLw@_Sx`yaWITj$^VJ@t<&m4k&jlX8i?MZs*Wmg4DkPAe#IQfw8;GXGL3(|4ssh zg3Q(DaDnZ5>rWAODcYCZ+>$hUEca5ljt!UQ>ZC!LW}G8Dq{1$4ji8)=cnXHX7{NIe z4Zu|htN;QY(Jv7atkHPj6Q*#{GHR3*rV-!wAHa5X97DBSKHZa683Z~qoo?2xWf7dL zx8vH3lmn~_!wAuI!wlIpqmWO%gS5>lB(5`~8(?z>_7kic<;a9A@4M}8jR@F1Q0v6q zt)Z{T@kwc=POBuLIt&6PglJlkN>-Vv$OUJ@MF3#fjb0mxynQPY>{_E!ITgY6@f>lvxexA9gpQ#D4$L{x*e?0Y6COdlMu9RUW zJ2kHW`x`YXaD{>;i*>sm+%6f@(JMBij+OOX5=|}N@iX5KzW&KK+vcFNNR4v-Lj5@{p6(`4a>QLl$ zF!Ebnr|9Q#of3bQI>iMc)|V@gUZ?*ed=s<6;^?nQQ zT=tZJuG1yR=a>l#Jmiiw+fS2LmPlkcBCna~y^CiHDt>-vuwa!6qb-8RqMK%yaAVB}`IeS1K=#Td3TI4L}cVHa7 z8i^OZ1T*kX_fkT$8MP0XVT`@@M`$WAmT66gE%*Nf-CJAABXsBTV!EWfd2}eN>%fa; zw$0q%X6|q2-Q?qR+&h{7>K@R(PE@y8Ei+6sZK?D~x;WS2Ie5d1Jls^ZLImi%%^Z%K z)ORxVSXUtq8cD(>H&wnK97&-E$lgf1OrPg4N^rgE!9b}C=^5$}gi&gTfq|4-Uw9~a z-(N_ut0EQ4%nF+N)nh3Ca7~4qnRXum!0PfTn#c>Wy9ASh$kfNv6i9sR_`8-2wUd@YXrJmpT>k z*SsUn1IJ<7CR%xl)zxhK5pInzQLMpO8dK6lrzz2?!EQn+#zT#7TSnWhbXFdw<+_mB z+v^;Gn}fo94}`FkVNSWfk9TJ~8Kn$1U;AWc5X>cfbnqB`L^=-bE}RYTe|D&tDcfUVD>t))GKPPw`$44L$)6LDVw z*_Ff4Y{BBFf|1^h&6a!V2f(wTwIYD6)iiUeTPq=!*6PDjUOZW2WKGmIQ9`(xHi3a8 zvNt2w7#`~pF>*{pMI6&mfkFgHE5&t;jnJJxw{{y9IoKQC$7rt`EO?P0PLie0lWx02 zs&2c4ooTzsLfWn~KxNu4@Ma&mKkmD;p1c4_xq-f7bq0YBKU19o^ZLg?StvbE-Gjjb zjD0rJs^Bc|R#eo!=y6w<2bW^q;7srt0w1hBu=EtDebX*!Kx}ykKxL@0#1pMm?W2ef zjTBb9Xzrd*>Tg5lP_9n6ucQH!js!l7`p(~}r&`-<5hsHR{-~I*HAr90e4PUzRsrjn z7NY($Kgh?qZNeMkg!sk2qB;$K1Oe;;g6A0m#z??>i0VrMh7$yz5(3mr zk-!)Ucn?vsBw!fN)kiwix3Lj`&X>Eyt-gec>hbD6C<7&Bpx|`5`duKv=7Rd&a$mwn zJcwVa!D>G#2Z=>iV$u4m`46oZ7=xQVg&j-F4 z!}Qh(VcTYXu)AB+vCdLwj8)+`3Pq5s-yu4>d~gL_m()Ka_e(Wcq2^)hgv1m|s#)jS z?Z9r7O-L)*?C<^qvXO={GNs^ExMgm&26NUwhp1cAS1M8`7j$#`xqOb13NM7{5FWxe z)zw9~j~w6@Q0>UZ&DQVaO{?s>>Hz4x{T#POC=RxJT4ueDyU98!k#)3r$hvqKvVI`5j+H7xk#*kY zmYju-MzSvMh*uQAq+@$g@+(|~yj^Vte0wi58bdSc6@bR&nQ>lRcZw!olN&wgLi2XwQ)}C>hCiJMjWxf{kd0c`C zKJZ4Cc*7WY(Lckt;)1CX!7_lkj&VKt8goNf$5%JoeN?v~KwW)|znE=b-D;EG%_QjH zmyd`ZlWLq94%V(G@;1sCb^AusF5fri5=0HHY6@$Va`*V6q*o`%?Nv9E88Gf81{CMr zBct4~pfR36!&pYok|Y58ag1^J?Vw}GYl4tLAF9ib`^ za=FTyp0?7GqTY(vrm6UvNCk7I??xNz^r)bE11K)R{9H7KTvzJeULyAvh;tRCd*M6D z*$;2TZN%*@`ys%14-KPk^)4VBkIgTQ=4-#QlPFx| zqGSIQDC*y(Exa&@0NCj-IGXI#IF00}Ymy0MYZLIAm)*!HV=Cdj61+RX8|x^2 z?xjBf`lUa_#sAJAHpckdHp?PPY4O-k(Oyy)wvPsX`8@pEXd6glqV0OktsgXFkl|g7 zoVa+U@7=s}UFE~D1y5BV@07DX=3Qy#y=hTflXjc<-icN3ULO3GU(?}~Fl^;7LBA;x z9-K_Z`k2ckpuZU~&Dk7gc&9(zuKj7&<)eSRdBp45MQ)AMo?Ma30;;E^Xt+8gGKi4VAa@vpOhdIt zKnsKXn74HOC%9n?uUA8Jn9^xp4egjg@M>tuQW`7Lb)D#XqS2Li>Ux*f^;2$*5$dfBIr#w%tqWKvbTVv@|zV~kmR9I5~dyM|tUN^&D{HgoVlxYU)y=)5cAmkD7 zSMNil(&1hzk@q8_o5An1xy3*R>r_-KqLGNDkw{A#svglu#L`G4rul)DQ>MLt3NqOH zQQp$^pW%il>e}At>O^hub2W;#__-P}_K&^A<|i4O^G=)pugK<<;?;Pi%_+>2D{W4h zo?NZXMJGwusp_!E=E9OT|EjS$I?l(yK-LW<0KnrGAOQe=ZUGVi;1?Dk0RVn!0TKY< z2@8+_08d(g1b%0S&gwoWf-T$MdO+^JdPwdWwH^0z&Mm_~Shrq_ zJKEvEQ*UB-0WZ&CMOnQ$iX7yrw?vWsJaugp0oq%m$XI1xbe-VMx7j`bE`>Soyj%r) zcfSu{u7VZAA4*`Es~(g<-c=7v!0tBr^HX@3%Dp2mfKHfy21~0S1fwC*Of%=R9?LxZ zkR(!5EyMt*trlhg)L08O0BWs;3qWLEAIZFJ0huEibsY#RX|)Zv5M3Emi>0gU0aXuk zaHf-DJ?16F8mYH6QN_Bcw>KoAz}RQr1U)xI<;Cqnhr>08OK|p&K%-Simfu_(8u%(2 z`kZ)#F43MggO2Usf-YX73%Ca^B&_g2QK!*!bb0q+JJn0lZ1^YpCO@U*bAd{-cXk-N&+yKi7fQCVU(r^+%-4 z{sC07OX>Fr%=u3NR{c+;4sB&hh+!liUks>spm;f6@|>m*- zpf8}i%7vfdrsxd{=e3pd2LV9IiPu6@#chte1%E#MsG8x~4|iRmJ!*T2WD{HdqKOIIteVho*Qx7AjT=5!N>3>y4a~aNrRou)5fHsBTG8&>$@-Sj{Yj3>LHuJ&PHw&LMd# zD;M7!`x7G4Hm2oVto`6C*nf@z5hj3F9*l(|JR+;)Gg&w5sV@NfF2eLS+_7I|r0pL@ zK83E>iq6X}M2C?bpE*SG@IaMvJNzrFkkN_lscSQ$LOzvkM{yQV(tSZHNW1MpI%XQA zu|+!_q%&hb)w@&2zMAE9{6CpPK8=(B0DrUq3E)jGR1a>MNMYiLQugiq5u;=00O}neZzJcDe1<>#-3+n0a^yAS+SW3}6#TJ-7%a6XXRx^8v99u9&qvSfJ1bVrpPsz?4Z4sPxqhmJzo}AT)RUi255fpJGF9l@C!xQ03m!G-b z4a*o?!7)2B{#9p>{R)M_X9cLY+-p3aF8mstAXn-1!>=QtseRcjH}Yh|imY9`D>{99 z>NP}k^rmJlg$A6TR&#N_byze%OP2`F=0UP9039x`RGk3zP2*rADKz+N0KjUEg#4Q* zHc#kuSz-$FF^*niGLQ&ON+Ik`ph+>0 z&tL@g+jX8No=E?uzscNOYa_um&-6rDiD>2;zQ*8l{%-IYT+?Up88P?_uE%mtQPvnH zj6AP+DyFEhP)t!JJ6eOjIFaO0A|v8WFp?(r6tk&aO>;017Mhzt<9_u+ij^jciAJJiSz zS3&g-&zJkA&djFldM}gRYF3< z!Fq{J8&0N;G^ULv(-^VqdM@9EG&ZAS;kh(dcYImbnbvKnD}A-LYXZl5rn4TWO0rxd zz?=*A^v%t&Eskllg*fHT4I<072Bn2nKJ1oP<0!K|q4a9o*0)@Xy+1jMVd*P$3C(M< zVo{sWVl6f$bMJZUyz_YXs+F*AqW=?jONFNZY6oJ;HDHlDkBH3z8lfc7Je_zjwsLo&%^f#zQMLr97R{+@S6bO9CQsAreaiqqloTXk^OP~Yv#!Em^l0v$n5twVpMyx6k7TbiW?kZ!4}><`L^$jdL1+yLM!F%}SYAr^2rZN-ZQj8+c>tF7$uIfU#Y z-&O;J2_($U0ZRr5|3F~Q|2M$Q0D&pd0O9+3fWS6mm&OM&*g71{78oB$`jONOZGbP& z1mOCPqD~8r5BR_#F$8EFAMoKrB2kYI4k=#wG88#JX>xP*7)rzV;BT}G2c8lD;O`b7 zfoQ<+2C*uL+^Pgc+goktDGw>C*G4!V-{``T6a)xnJYWzrq%;&AqV9ZC>FU)Had)aa z-HqctB4XN^b@UKvn}0|6?|C^2>LkVtm4(I(hqj^%{{wC+V}^U__aUkO=`q7`v?9k0 z?})TFVafGbu3{cJ6MHh z5Lt#~gJX~KI8@1w)=Yg07#w|29RvC#K(?Ass5^;3Ih?QXr*UPaT@y$!@eY7N;PSgc zU~oRd+W{3{(fRnV8gD#SIicX-U#_J>lVdXG>$1&I8Qa`5vCku~QxG5Fye12Qnn?-(j9|9eyTvDSC6u`f@(rnU1=%UBF+0H&N0 zc(#5!>sM)#7=S??eIx?Npbk9dkL!~57Kh%s(WQbdY)ILsm30suyWq{X`6zd&o5aoe!|nZS;5sVQayNBcx|6GW-gaX~r% zx6Av>UH`-K#{X;O?HF&ir{g5;`IrA`dGqag1Bx5tz+k?jO&%a_vGs@vIXX$ql(T*0 z!r8oj8-7zqC5Xg#;LRt)o6(dn79IZ66wve3w@xioiGxkORynoV|s zmEhGteq&A$moK+nkz)Yggdp|f(&=natY-Y%)&pVTx*+% zn18YbYiMv1$~E#@Sh>4)YPkg&HdroU-$t&lfnIi7TRh7!Ne8my!A9;?pz`oHRB-bjL0iO3dZ>^G6 zvI+Cn1vwslE%cqYRymLNyk~V3Xr9%zT&twqc|-&@5zW(yYn6CT;i{JcS+7-M_Ynp_ zB2nfH;r#$$ty05oO1MjU|jpX9x!4#zD42QD+$FE^yiuxla z6=r+NtAIP}Vr(MonQaKn`R@SCtYdPV&dK)ikz{>I1tAAd$Yig-sx{S3EZ zyYp(t%R8c7`57<#El{~{Bxlc2T0AksO*Xl+2d4XGq}s z%=zbO{`>T#O7rM$!g=$Hz(CBDHAweOpBK$rr~UJ0WYUuN?Xidpj;C+{h^!j2 z1nr&&f9ws}EI&k5slEl}FQuzh6&3L`kZKn~>>^}La|=UkQL=>* z^{#9v5{x33!ZC-s+5HXL-a7`33N+#+^4pmZohkD>lC&7yC!S~9vS&p^ z8h$&T!rB-Ghfl&ax+>#69=E{ZEGZl+#iqw!&(kp(;xSXqXl5ND40V`$R&WUE1UWV+ z*LK8UKzDM8HJr|xser~zs28@kv2;&k$b+MO+-=c&01dBIr_!Aox-cWR1uF| zdKHcVW0NlHK<{7<@YAiXrygQ$myLkfJ(W{frmPH4VDY{YKAUQ6)7}Y=RqVt=o5mD% zESs}Uyhxi4dXIyTi0^E=k^aV*o+-`r(2rvT?1kdGX;8fd=zLE(3tYSp-%b+tJt9D7 z6fZ8ni%hYbGpF#7wIciN%F(Xokk**>8`Zdp6xhs$Y%qo2Bui!kuM58!7+A|l@p-xY z6#FqPQjePUn9VdYy_rn^AWWH}P9Re}GN@Gl6TtG#eOF!w^A8mw@ARsFfg5nYlL=K{ zL#bz2ce9hBN5<84Ot`!`q1UY2`~{tZ?v_TYZwKa9_Q>qhuOS(Z_oGWPoM=;s)WO~UqSKuw|N8Gyrl*v_?Nrt-Jrt}iuP&Mdk{@Nt>ROt#%FrMEcr}NINfH^ z`W3d;RjSu;;A7;flOl-Va&Kt!bJjxm7g)n9>RX@O8kE-w1Nyc!kuEIZ!)XVlFF&h_ zyy8^q+~(;(mko3`m_-r?ZCbkx=%>}dKc~;M0gL3 z93+gR+kL%_Q12mRnPqkrStQ?~_4mTRg7r}GRDOg{KR_j~zC_$8%5fYTFnyMgIAE{( zJp2W_-d#mw>F9{pS7|Gpmh=4k!oPvFHmw{3#J$rX(AaW-j0SLi*5;h0&FXlE`zF+h zdmsLG$KM+K9e_X0?ozHuluei`2sX@#Fv3*F;z-!wNLX+V!qMsX0SiZ`7f5rCW)?mG z1y^eZCM;i?LIJtz4&ax6>Gi6wB7m(Lda5E-QF~6q^oO#H|3uTDm%ix9@0qO{F>#CO z4{6QxN9qWA5BbgC|4Hd)awwBD^!s)h53Q-n!lki^+r-112{MCN~3S5a39- z_8rS4(!+oalSm~47A9IdK3~|mZd0vwv*0G(0B)t51yiAfZWgSWL~2fH-7e9RJ(+@P zzB*ieKMlJv`eFx8$X8z`D5Btm#!!TxMOahZ=Z>U3e(_ko{ARf8#-42y4iFLLwSv-Y zVL5{Dl>IxH^To{fCuvgZZwV<>UPH7jJOri}MGt|Qo_Gi>X?(WJ2gH)b2*e#COA2~j zL9%HUD`ag#0B6}gu%3rC&3Tqf5Me1FC3DApNqFZ-2HW!vN4-y zJuN z>1G}3mk7=-1+}b04InV*{}wQ_4#gC+4h5C_5R*Zy1OVu_013o{*zFXMQjg$9J<`qu zbU04NF+T##c0E2UKQ!X6uKo$5>6{(i%XnTr3_M?k-Fl3#NA?@>vLJaYvZ?+A7rrX? zQ`|k-A{NImD3J}-ObgdC5+SZjChg70fO;5nld>K9sO{0z?lT+&@kl!yAN6a>%s^-L z9MqoGwDhm2!TS}hC^M>VoB%pUl9kF(6atEGNKhmuu7M?HgK^BUD73HXm=xRzj_0?5nYhTta) z5lET!!!MD8c}w)IcGUVP-`U;ZMpE-vATZ}I0nF5VrbH{yKZR7f;h^<82>?*C013c> zWO7;Urm?bgpm>cMd!-Ew_FK2%aozGZ=U*BiJ7MV+(~vX1j==!C_9pt=%pme&Z-jgsdWC1JKz zm0NM}+oI%e7^l)mV~rtRH&mv1V(K(|$Chx?S! zu>@#R2GO!$(=%$5pNfy)N1werAk)4i^tAP0=z%Op`{bOxv+3UB@$vHG%NeuKg}3*Y z+whL@z45*yjs}$%UHD$k@f8mQ_GtleZJ4;-Dc8>?kjuhZxAi#Zhwpy`UOM~=b@kBa zaF?;futI^LAASSZnT}LCBcpkFW~BRyl+=CH)&S2*NXAzudGF9fo!O|}U*~$|C@&_k zV?3ipWM|}ojv9csVZUd4YdL5TC`a2=-yw&#-4!{s_&hn01v$6eB4Rnt@f-|{#eROyJ+u3 zIPvoVOBJ72Zz0|DWGylfC>#w*N{i)_T0{39kVXZ^yM4L(C~AtdGbLCM^Ao;fh5AOY zub2G%Z8zCNhaPv!7n;t-uo8N>(LtyY+(VbF|0JV`q$zDZryoiU;1-B}YF>~1%qQhRsK26NpVHrUbK zX@i~JT{hU&-ED*2-HU8+QTO7TxKEjOc!AYfch1)IP<{w{4?*Q2YCA+lhp6Ka)f=K_ zLsV)=^cgBqm7x-~7%EYLp%P^el_++oM2Wf#_p`%J9mU5-ON(U{S)GOkRUO7w8dGH% zDKr({kxa|431XeSkOQy(zN0GHQ&@lLL02FSvrPte*6V&z9$2vzSh}v`5rO=g zeWAGm{3~_bI@W(t-L~xhJLYm}HEvxJMyJ1_5SaDduXE3{o z+jW1cBPCzo!$;Mn^~z|5`Z_)BPa2hqCSh8Ona*k<(>A>?PUk8f)49kuJ!RVEDwEEHeqv#7g1q`qiTThZ3RrrldzOJk-%GV1Xc7hg_nx={io&i z3fZPE-6hsg8@$dckyg(ZEzrubAHild2a}e-E7j~N7Ig{WMI4-6fxjs^sG>An2$!MJ z=BXQ|18>i^UoS^j+$6_p;7~(!;NTxJM43*w2VW|AozCUHXpIlKv3bszN7tEc zlQ+qWov1b2^%}uHK|9q)e z2=-?P5q2z~zta4Qjr@w+n)oe^sA)s;Ltd?jh+$XEu&(43|gL5yOrM6fs;BGaS$iS@aDiWZ^fOkj39wq0xw_3tEw+BbM;dH;ty#A~QxjV>?DX6NZeLCM;RPX{AY~ktrjlu`Oe!u`y$& z32TjUlQ+Ft zdcXd$CuABvF!m#tn{u9yRLO$L$YQk|V@|#1k-flmK8FNLVp^QYvl(3yij3{H734b;HM!#hrBSlL0*|bAFcux_Rh&;5=O|(uQ&KOT-H0;QhdDBxo#~q_2l$h*SERF53l1D7HK~j$W71-! ztlXGooEs}Hri+bi>0)^a8~1B5^L2`HZdu1-k+h(?u!%{tVq-d_853HbvAS^`vvje# zNVC=*(CW7ERdkj*ZP_+sx!5I;W|Xpo7_b_oyS|2TWBF(656JyD-R)v--8$v5FCX9U|B8(*_oWcwatmL>PB8@HYxNu_|TQc+| z^K5M8#&mIJEYFxOHnF9PRbgICl`}&ROCRx$GHx}BsFBiS-B@VsrB-Ofkmb{4+?bAD zs`G2@nyBS#;SSbG*-07;#@4loQRYf$SWLBw95H4Zw}w_?Oc=XEL>Nm< zxPu)wSu-~3r8Ts*w$Z(tj2w%O)w0G)5XKp@Tw}udE|JhC;S+XLW;w)V82PZxPTUB^ zR<>zz@y1G7jboN^ZmhVNE;h2Ii{&M4YzBN*aD)_P-Lj6vBBjZ`vDCPUwo)Uq#L&yK zjOpm8jZPdX!UD22&Wu)U^HA@)fj$UkX6FFntHpRxbTw}tx0f`7> zZIBr0YzC?}(~WxReAp%=;Zw0s*u+?Ltd_NMf@z!~D={XdT8(B-NMwdg%T_YOU@JN< zjL6KEdED5{*ElZUSShPYiHx7SfatQykh0!ejt`;^@^~fvPsmzd0A{gGV&~^2E!YzVrQ~N z&?<+qJ6eG;uUPjO%kqkJZ`o^Dy&}uU%Ex|ejTNcYfYelmu~v;ui_WaoDq_`CnKhOb z81ssA7^`J@MY<<)$cm6~Ey}8sAZjk7+7=7C8gBD}ZV)R>#evN@u7yCrD)8Z_%IA$1+va&es z7H7G|F=J;`eT&m&ao~AIVY?cIH6e?|O&!?BT^&a|s?K3!`V*^B^G<-$&bP~yUu_Au znLw8fn0MUpsNF2v=ml}BgMA=uQteaW@~$A-gT)i?Hk`B^vI_}F;v>7Qz0>-jD`)%rTIp7yC0 zmi@u&X`X5w{9$~Zb_;tjZC$ah2)>;4Bv#mX&?GKT|L;-n<5y!Cm+%HG3{C7t3 zA`bQmnlmxe6+K{Um5MhW>{GXv$>|oRGl)1iA@8@aSt2>p!dQu9euH8CBtE^c{@LxT z>?6%}C4=GM_<(jlFR$cF{PbV z6?0zY=i_~8`9*$yanKzs3Klm~Y4!ow2QxtymwZnU1U(H%=?12GKi?ZEonI2NzHT6sTQE=`4*pQ0YXP*9~nm_IMo6)Jt>;u&Vm#NF%-e7SC){B4o}Z(ZKRqw=_^Vmdf~n}I>u*2vhJSgBZk z5wfn{-a5RA!=+;1CfsE=4UWI;DV(!lpXXL$-3AOryp3!HJXe$HBz!mFLAQL0j(F;H z?u zq3R6gWfj$1O(HxA=J(IjJil0enipScFuc|Yuj1<2wFu1luVMByKc*!3{Vc)HckmXI z{7SpokDpLU9tI%ARgfJ5@}-kfZ)ruiJ2XnZ1gl3PEs+MymrU$}WlN-G2FZ*Y`dcCm zs>ehpyKpqn604LmyzKB|X=}7ji)JS9%UYv#TQoBVUEUgPvDMA^_h4(Z9?Q*Cuu^+# zyk3iE9I%vYjaRUErkqM0t?~M-di}aQOP#IpY+;p5X_dNK2ozZTe{(o{08JB+3KN@(nl`fKNMz%`8L>p(WCf-6g2bM1zU9+t|O2f+t=( z3949(L7ShduSW}rr=`zDRChvi{_EL3K7;M+^FYYwsi&;iaN$+QsXYMGJ{y)1oW#q7 zuLkZ`Hml_$)Su82dGbP{svx<1jwhX=TVua6mVD2mj4w@cRN&Sq9%n<#Je2LXc}BY) z&uEA6j5Ztwmg!RY%r^3!a0ChR+|~_85gfZuIwAR@M{evMg-%O)^8+#DdeYmXlYb4ZrpFRye(LV=nxE37oE$cmT^CeqrvN~45+b+yz z{K^DQ@JdzkSs!E3lvru9Gf3fpCPXu1KlchJMyBfGSzpig1AKN&5c7U}b|$^|s=!a} zGbmt#x??=RLD)2`$1}T5tl$H9Ac`1CQhVS}cG)AnGGp)c%lAur=7#G)IJ*J4l6T1V zL150mhPl>VEmPvI7OwL~x(?CG>ld}Df1tZodxJ%JkaN2`VH5Q8ftTCxJ_I8j_=PvL z!z{F{luTEq-P_jgWBsHa)j2q3j%*k{;=Uc_oD4o;@jJ5d)DT=kR@*jr31%AH4dz&UMQv zZwhZz;aohPV^3}TY0<}%Z~YKAJq(0>7Q3mvJKgfr5RSR4ZXbNr6UX0v+xRpl{i{Ck ze*V_L28hrEc>TXIGE*K~b(Z}0op7h|<%tN*p1tQxOh-8tK7XtH>Z}9%SAmb%Z3CE6 zPeZt4+)hgzhx;TA7?a$b+xOh!+Em7$>~Q;LTG=f@I1WX&)U(=?;mdSvfHL^GM_&Dbw;-{%+yZs zryKE8a{A4D{6)fF+GI=ct4#R|?(AXESgQV^2+a9ErQ)1K3~gnKo`LMgjBt{z^U&~4 z%wpGO+9cC_#m7ec6i+gU|ckW5%!U5B0hAd^KC(J{%s`j&D4s)B()efw;uYu>Hp4{aNXc zo`F2zU8%rzg$H-!F7Y$APunpr)Vfa_d)%yX@gRz`Tj=5G?_PG|1gv||l5}OVqaEr& zw4wSaNWWb~Hx}}KWxql`Qz>)h0%tQG1T}{?xd>-OZx5>nzJ#VHHwRFGrz>X0 zzKw66PVy_L?PK@YCf^_XXkhxSTcO)IN!`M6@V)4RI5DKd?eTCn!u`&$yLH5mS7ekx)?a-Sl-HABf5VWTc`eXl*#TPX{4bJ&YA>UqElEKM} zJ~Gh0O`9KY0OZ?)c7N>0K;XxA zhn2w>X~yLK*pGp%G18jJO`rppAYIt=(^8Lp2bGHFtyt9QnK)}z$ImwKD6NQo*onjGvvSTt5V7aC^8Wnp^T=2E+BLfA?V7CJrr~- zS=*tuM`kPJyQyzS(5>}dBw-5EfJk4g?`ePQ2Cwd*TkG5L=6ol#>`3U_sr4157FVG6 zVko6+V4R1U&5|Be_F#Gtr4yGe3o!!;O;2qO0*J)QVP@>UU@?M=gTV#*?`3kvfxlJF~~ckJC#nk;UR#gaTEye;i0&cuTQyig@e&h@C;|X z+?|M+;Ne6&0k8jm92($_b>7t1sm-AI={b-gKNqKW zio7GhcNk=GwZR3c)6&!j51Vv_W%7PM+5nqLUzO?^wO#lCqRq~d#}rf;TX z_RS^sowqRN>6=#eU4)p<`r%CZDtt3Esb07da=TMFCYu4VBKnhbH1wbzrBUkAAUEr6++oL4B=bbne}F|Saxh+8bE2qaAt zgMg($28nG#eoecBs{M3&;Av2kLKc9Pdr6t((mg{~?ld1$*d&d_wSUdVCgCAPQx5sy zNpR%(g=T22VP$D6_|^;&iRB+jo{9`4kEDc~6&*>A1X^T#J}=VBDja3b=wdk+3sA#k z+^T0S5a|^m7s1(>!b*+IW~n1&s$n?W;*Y4UAuVzr)v%ncxr`U_;fl7X$zUJVFlM)D z5oc?jh%?o&#b-HNYO9w)F88>Y(GB2&+nB4q4$qehBi~?z7oHdOBXfU*cdqwft|D_f z&zm;YVev!?Y^IVk;(oiH@#m*DM@xPp2H9vbyiePhs>mR0ulMF>vp9Nvs%j#<6l# zfzva&ls}DEUZ*=z}ZOX^k!!kJ0yd8g%JrJUN#e zCzJ)%-=bD<+;kjt-0XXs>c^tr;DW;Mkf0y#osLdKaYpXSa>RKvlA*Gk_sH?f1?0o8 zz2c-Ge!Z}xvM3{8FT{r&IvXB!XYNx9xm81;+4;E z)q4>cZU-;DWa%nCqqJ?ptD$3+dHp?1jbnZ{u`l=P$Kf{T|G}C+a#UNj*I=Cwl=8zn zUaH3LNnpHP!B-g{a&chPXr-sEG+I;&BQ|~(gX8l(B*C*JbbsrBWX2_4T|o7-^L>37+@@E*1E$WLa~s-OP4@2rD9%i!AZiEDOj{4s;? z`Ncbbc=DMaW3aUMnU9~g8m7yvTK4eq=YHW=uV--ilD#*d`1;q5H!$`yg|Wpn)@k?T zo*3u)!_1@Ve2qC4L73ubP5+o>nDe_^k?5xnkKUq1A? zy^5oVYVSh4f(nH_~ol#|D1!UP41mbSKfB= zMGW>G|Bk*V-0K)TXZI^!@ad=C%iv@C|L9x&zq^IOGarBF;}^ZR&fpm%7aa1F7p-p) z0pCiw`Szkeg&N({{>WtE#Grjk&~E$YpI}$Zb5OWJyE}!y$!RQi&P)mjy&oJRKJ_BV zxieE`UZY}|!q_ZuZrIiK$C+que{dX9#B7(^pT|)etf4PDU{8CX7}}Vr|F^a&8K`>i z_@0R=oHR1f7i|qj7dbnhePn!UGHTTx84vIb$TUQMMUMY3X^3RI+t$B+_lx6P#5Ii% z%RkXLp=SU9KQ`^UH9lbC06eiaMrhdzz3~6~R_MF1NT#r751j%{wQZ(RqyGQfHtm&W zV`Li;XF@knnZjO?b)wbZJZYB*7*1?wQaJDukP0PsA?Jvxc;^V^cRC(mQ9g%G}4Af3V5oEz%d&FUlqReW$b z*O^s60a`eXa8~`4!5IV#T^lX~r}omK>3qt=Q1x}F_1x^pMfj_0}Qky zu#|yZA>Xm#d$17z%O-=4{%Jxx5nCR`x)2+TV%=HwD5alFMKIs~86p|=T*Nd88}m+) zq^^aNx))ALFP!8roP-a>#cI$lK?j!U@%gR(@l_ZqXVqh|%Go5YT&X9P@e7h<1fK8faDaad@!6BZKRxAi3yB@8JM0x0oLjOXMQJY_StY6S*JV!fjPey zFmr%2Q_KO*8{Mjl*<1a1fb>aQa*EjB;L!TpMd~jI;yHaY8Wz?6juag3I!A;{S|C*0 z!C5&xUl+5mr+`+w7GikXIwM|PVm9fm4M`HiYrxb?&Xt#d!IiI;lrPt8deusZ8S&Kv zup&kv!a5b60w4}=e;0N(;iRAW+RFj!2@TJWKdz;Dh!A}W^B*xA{|7YQ65VJY*@Ubi z_8NiZBar5!-5+cE&V;rtuWJ|SuPSOw%a#(Jf02R3xWVKy{aHo*B`JL7gDPm$Njdnw z5dmM%h!LhV!nEOlyQEDwf@chPMuWLG4bS0R)y*Qi8GF;R2n;WGRfEc6iiFDWLGEW^ z`^ffn#fGT^3;KgKn$RAcZoby3Z508_)A*`R0dg?ioFh7~t6x2^_%| zVC}|B0IP06T^ZWS6on;|3R?d>z*~vIqw%+~>~R)*8np!9)jA1aNJXT+nHa121q%XY z?eR6x`z6vZ5QL3w)S|;5_Wk1MQ8=MwiKZ{qX8^Aphix-7WwaFJ)(Afj@1Rfd{=cbv z^Ef+-s&Bm0efOD3m?ihlOn`)h8H#&n0!%^@7D-q{LD`fg3!5mbfmW`da?`_ziV9(u zC1Fhv5Kt6F6hu%I6a+<7RD=P26csnb9c1`@zvonS_njr+^S&|mU)#rgK;mF@9hcRJ`nS!?>#UH z$$JlyHhJ%XGUR&?WM3o+J0%&BFPV1T92mNvgzGI>f55(=;UnNH;yoOevD^S~?7N!u z!Hw~lOR7~CxJH-L4#Dt|&4C7!K=i?E#)LrnUPE5gFsHBg=>uu9er4t`7j-S@;Fz}# zuRPOW>S=uR9n%2EG)*)7^~AvaC|KL`mPy*PW-F0dm)QymGk{ycwSv;yF;_arSD-j> zutt(1Z|CdC=f0#PZ(t6#xdt0E(p^>GK8DGHgJ-Q4W;40NYIA(Wb?+|Hvn9wc%4YJ1 z)q+fLn4dYo%wr~zPtuqEN_YaaeLQ{EEv0gJJ$Ose7pN}*5Q+5!eMIi)Z>{uk_dVK> zGgJqTYR=C2Np{i)+4(*Q8=K@7P(EfuVaOZd*LpH~ZJzJ&<3MY1fefRnO>lZK^+ z9U4k4pQe^~S-`Y7dIcZ5IFvL-E=t<638#>5ViY4gC0$CBhE&*3M4!>hRrC~H#+2wD z5z)QZX3-`@7oH^f`)+(&eQ{JmI{vpp6cUsqi9nL-R@eWTIH{eL6(Y_wQ9KyTBv7yt z<^PdjSstE&==k%8k8W1i?WnG+5m(;`eGEFowc&R(A zJ$(!+-rDfHnsJ7R6AB&r7*wLQ;bWU|782*LQ24$P`pEm2!^bt_?3lzwAA^FZZ)EBo z$3dhMuLiXHr=5uemvRHR)qY2)Htx%!+REDn+|AlmHS!*LAIMd&LB)K0b2N*RXy{`= zQ}$QPf;>NgIMy(ZL07k9x~40!W1=7L4`8DIO@;7OSlaMdpY#WI)FPo}ZbfHC3yhXX zw=jb3mz`PcJHk>67yYosw^*`^1GlGpwwMBwC6yv~ce?d~Io{jr+P&Qu_k(rSa5*Cr zZwym8zg~ke!qy5+y%bKEjWg*!QZJVb!nLS=_w2*q~oky&q{1EHSeRq3Od-DS*f1}Cu_B2zyVgX)DK;2RUtOidRFo4D%l5pmaDf^#N_CKfWFQn{$N$j)R zY@E4{oOuy&jT3M5NSwK*IRBc2Gk@njmp`Wi(KFE(4V zMa=eAjN)2>iOp7S$KKKtFrX`Ax7l{Z9*f-8voibuqiTl@HCJr!R=eAMmK%Cxw5vFf zE84Wii(OFS-LYYWW3?Ud|2+O@L4K_;`6C?X1-+lc#Op-y7>@9*@c$zG@Wf0Ef7neR zdftw_EiZ0q7w6`@3Va87He9ySd=QL39>0AMM3@K2_?hTL8rkS17}b}2JsfWDOx3GW z-G!;LhUh@+St`x|MJ-Z>{aHSI6utqLAY3ZnJ@Hi^^jaC6jMT&e03#NFSTJ;BAaez) zF^n|KIu_|=0I|y}+|5N_T`cl0{YIp3GuBVijStKd)UyUSDg`nHgAK0X8aVl^DestG zfyV7YWW8J_ZFU1;K5jZdvSY*w zQt0yB0PK{avoizqeW~fQyRj`AZ(IO^F}YC58WQlUr~5&9ovH)g3RZ={i@_pmAJ6^< zl6MwCvd!X1wpcXuZ34dQB0tFte+_e5*HLA+p*;5~Hh&HCdDl&W zct8DwI5OrT<}8sWL^6e+#FF+)MI+-?_OJO%rA1DJYAoCvnM%s!K8z#flf=N0^ff5% z=IzLU>ixk0P7sT*Cg0_gV6RAH!;xUGQ0y}-ZH$D4EKI>!sos*e zY~wkmiR-Zdr!<7!oDD{k!E!d(IX$xLybsqcQ-HYgUCHBd5=GolJvDHif%6PvPxi?( z-j0YDb#Qxt{l`4)b1=rnLM{y;*BjCR^0A?Z^RY?ZxztG-dGkvm2dpl0%>Fhi6@D5@ zPYvy6fl?}%S zH$e={a4iVBGK@A&Bke~nQY4$gF~NQ{&C6h#m%%1pD%G6>U*==NV{lJHfA#Emj5yJv zisCRPJJYEcz2-*F>h+pqS-My+9f-7cAb&f&?jGG_fwIR+)AX>z>DeU{9Jjx`8?|+sc>@@>)HdP{am+oN&SuY?s46T?sK~b zw9unRo0ha@xtR;_4DCT^-J6@Wd<<`D-a35qVQ|2wYY`@2@>5ORR6&CAL6YWfsvwzk zkbswRi0lulV5T=Ny_pqeIg*Aw)HKYYOePxhcSA#@;TH=4s~tcr`}*b-VESe?1MzJy zv|Qss;diHi^W`v1d`e&qCEJfIPtPvZ7q^mEFHdGv855E>lnXuk#iHT15qsWHtFynb zbkSz!H&8C~TYTytg`n{O2Kn^Od+^lLVgAGI$zklmTle{2!x70Eo)_| z>5WZ^Z5axgdt;MvHDO5P#CS*b#vnW!d6B#~PtlHtX%P0xE$@TNCC$>wBldVX!H0OZ*PnDC}&+|P_oCbu%*EjH@xJHhW+lud&mG`~zy zOYV&U;2ei+iGR+K%G5VeFyl@3qEl$E2uYdEwtnP9{kog|WGVC@2U7KqBaiw<=wmS4)@_dLH*l?UHp~x`_nt~m{S!be<;+?HY8k~G z2@YEO5cyL$Yo+@POJ1>4hf*BB^E}>17`A>61L6o@9m;(!>^SGv=9f5n4T3xxS)5oAutC$;+Ux_Nj6;orOF91nA}Zyv$+JpLK@W6ZU2ZooE&0Kf|3>*tj zBwB7=ay_tRCvjgcTnB%ZLF^z`v4c!u*ZXbICq2Hp%YPG+ClLi8C4zQcYEdeUK_{w+#Ah#+K*F~I`vn| z$)p#L)?ZEvU8%j*arGqnzB%jK8D6nl_1*UhUhiC2SNYxppo{rgyr*^GdEZA|;gw(k z`#@NEhF8HJUX71+Uju8YwgyejwXn71!=EGW)}SEo;=Eg?&fs89#SZ3_I&iFXalRNn zjUck^BOM58nFmOgn zd*?uYO%iIe5(>hn5W=!N`25uTwtBt&$}edy1}_t6BCR6zAbf&cIHJEBPZam0XdTz; z&Dut3aw_{;1R7!6$EobE!BL$Xl{5M!M&*5ERxx*m*4Q%EH;0#9y zDb42^SjKW+2F&j8pilfn_w&$Vw!vpGBDTR|0ifXkVnO=YXWJJhf4;d9^ajuuq-nm$ z>9w(Lf(Y* zvVKqsf$R+#Sb}M|yE()obw_J-ZYevkIcDV{Q_EQmQpnYBq$=Ko&nVsi)w%+W+1B1% z))nc#uwo2=i?5Q%iZN+;B1*r|(H zAk@3zq03O=XGrM@U)r(CdNt9ma&)JTZVN>FMxeX~t%E$Ig=s>1D?qD+i8V##*|w8-2_9rsQLVW_|~jguXA`jqp2g_j4|Hf_Qi^)qEXU(T^GB zO+-FDqxA67@}xATXUzRVh3Uz7m)P`V26l5)mH2v>GF^46I5)(^eCdWe5S}GE?3l4U z+0gY%n}jV{xjqey=~$o=6NgQ}sgowad`q||?+1*_i*mRGs}1Q$D!6`QJghtDPQ!w5 zz6)gIJ!P_Z&4Vg5>Hx-7@^eYncyXIXI>{Pw6VS!%fEs?2<>)o^WC{^|M|eGH(sXxeoF4u0%P` zczb}KH%fc1>VmG1Sk$1#iMyMHm^5@KKY;sM#3^r`Dm%|Rc3e<3De5F37oG9c1OfU? zD*KwObIHrGmX}~~TGbIN1(gNP;Rw1?;v!0TY{pEuA0INeQRCG2RhcD7j|xD|Nh{b* zD~2RWWV#FJog2%vlq+LOGmxn*%PA(xF|Roe)Q!na2SO8}ot3~mP66%4nn<=tsT-?b z_Gwvmj-32BFFi5dR0(nMHi0x=3(}mr7y5yLyQC-x?|}>TW5QArXV&{0#*%B1)}H!P zXwXZ&Vzj7%3xRl#%6>q>_T+VT*K^MixcEh-+@4wAiHA2Sc^rH zy4pd7@aK@+z-C$8+>!!U8Q2DF&Ef>B1Z+)VV9X-{GkKiMPUuw;F?2oaeM{4awUDHc z4;-_Fy&P7dvSN!XV$B$Oy0{J26)_9%k!x2r_Vp^fvfjdHSvb~is3F}JZoUJCs++s( zXa9iCms~$foU#ksZNp;ygz%VVuZ82fyoogX6u6f<*WL7(Z5a06zyOW>-G}F<=Mq$6>IG&VJ!h$h+kz z3`oF-02WS4Se=R;Ehwirx{wiSuz%Ru4fij!qUgrHus8d*b@)YdJ6VoL579>u-fkB@ z8&=${*A<;Z7tOR8JyggVL2}l%Cp2#TE*oX+y<7Op{Fplgxk1yQPTjB zitFM9g+)Pyw?L&pUt0(ej>MyAVk=(H(D!lCU#49ycJ}LEfCMCs<<8O)7MAuBv!C}d zwU^e#^}|A()NgM|+}qD-_Fr^lv;V^V#b3^sHrZPAX71&8 zI)ZlkqrGFWi2LN*g)zh-SeF26vox09K0|d(d17tWy z1@pvj&?T9HTkTVz3ibquUNH}kP=p@8y&HXxB-6T^Gfjzg_WJF;I2Ay`3Q18K`Z$*L zy=exS>peXU_s+{an(sY0?Y)bg{ab$R&uYhDoyvi>&zCa<=g0Mwo*`hpmYgAw%1O=; zuomVS0#;>G7sJlFIAR?olO}%vhE&-9fCUxyh44UyeK8F1$9s*2P{KH87ldDd*f?D` z2iFwm!@J-LxE+|5`Zo|f{2@f76L*yrLr+ThY#iQCg%4zdHUnbI_LSj=arqW{oH1!Q z(I1VSLO6KW^f*K4T_o{Pi%Nl1UM;yiXQ?eex%_V6 z#LKPDuU@5H*n;c;JW)EZT4Uf4ZunKCDr5ePB(!JSuq;(O482@zm6Ix^7+b^*A2BoL zFT_VTZgoNT6>gHM>+j`Y{Q8s&`k4s+s_PmYb1;$bA zEL70i9nRgLmMOGvvCXnoNV5fDt;W?iuZOg2Dsw~E;;dxAF{F1f(GV1s1C zEc8UW7QVV4hg)MB=bw1D)b>LIBcTOb81frr5B(%@H7#SH<2eD>}m{!Y)DsgY%I* zBqH3AG z6lSQzAz@WNjzOHV9-?ujb`iafJ+VUdwKuyeuftAwvP0D}q;}!wICRI!rQL}tqH;S? zH^bJfTe#+Mw&KVYJF>Y+vq;@oOtSax=zKO-t*6*yrLns`R>~jc5%BzicPYZjLIHY6 zzGl?3Hx#4Wo!v40@m>51@6S`wbF3E>4L6`ogbD}y$7t8bI- zwv5N;c3TGEv*fB&R+17^%8R&ajs7gXkV;OJPBD&ZpaCS9tvq?F08K5zH5 zN?LDmX-!h3APo|xfjt$+uB$nlRbgc;idu9^^J)?%3;+0>R z;DfXbLt*6HCiD#@f(2ZN-m{R5-be z%lXlf@{`@S&W{f93(VF?oF*}l^GYjKDp;|UC@i;}$KVlq^bqU;3M{^DBS8tO{|f!U z>hl&^qDpV(Wr8io6a1JCA6o`(SPr|=`5+^An-yRwMd>-Fp&8UmE}KA$G1pOX*(S6s zAB;ymk4eRx@|11tl2c?k&JB@Vg;#Tg+uCgcQdZcfXB%8D)%vmVavp?oK#&W?T!`E0 z1>yjQaT`&td*})FwF4OsOci#~)L~2Am@^ABsw&p2#g;j&dQ7Zvu|-R%^N7d6FD#wH z!=0aXAyR|h<`AhZ(#;+(oM|I};mmO!uR4!c)uVYg?`#MT0}L8w3w+R-@)eJ3dYb+G z+QOzBHc;%-O>V9-zoIU>S?m|?TNr!YXT8(_E!Ss&^}lJ`GU0{B~R(d9;B-RFD>1TOW@vSejvYb~MXu>}NKf>T(_LC9po# zRxlU~*a|ciSspX1@Jx_z#yI?$!-T&I8zCNoDr6dLe)WtrR@z@#pu98j-O`)xOSIX( zMEb-I-+|LJI8%ulp(qNd>_gB2&7efeN%x)u0Q8vH_2=~_G9b{AfH{it;XKK%(21%0 z@j@Z16f7n5;|Z;%x?UW^{jdAz-(hBx;->rPf+i_R`sm!bCqc1gMeO3wK04{iW--_a z6nnL_rF2^*Q7RT+x~-qIL@J+@lxnw?SQaiMtXEUtR4A!DN0?bb3Vvi#vVaH1${7`VwV3C_;tXW6+tnOS~Lz;30Gk}tbT5?H>{ zS!nJb3d0A1*SLQuj0%MPL;9nCNZ_$`(JEAh34Qbr6Y|R^K|ud7L0F*(s6T}QOz~T( zV5!G?t-e;|3>DGXFC-fJg%bafI(jH#OXC{)qmxH(HpmHIj9n2M*B9nQvT*Yabm8tvS{C#Y%2 zC)O`KZ@3I?SrG5EF9Sl~+OF6R&rs$Ze1%-8h6PW$d~#{=` z^%L1f`4eW>J5S+HF_b?=%P1OoLYP5j;Iv8>l`HyHVU`)ogpUI;ws9bd z`ED1pZR|v5ZdyZF#EzSPgSc`)5q=L*1dZ>@_c46Ug-AXR9*e-;>10w*e4dqwnP15F zm-wm=+Stbbz_mJPpnpu`*EG}<>129OftjlFdoXts=MK(+dE4W^_D0B4IM1rQu#ZYo z*DPiqU}9APrZ=Q7fdCdAO0^OXf-|1J3-kovU8qx5HbJoXPsmAeDtUfkBY62=&Ha3y z0wynPSEfD>EofwQ)6I{dF@Zb}{YT95yq@#WJO}+xWTd$XpY%ECYnZ#2+4IgSFg+8k zqPBJsH_kze4!9X7vg+(a(AlS6^C!+cL00VRaqU>o=A_OAvOwt+)Yl;yY}u6=plu=Z z4m1udh*SHrNH+Omhq9bo4!qYmCn(i|o5M1!7?N{>=fZ_PNZ{QAe$(?=%(Y}bimueW ziOy#UN@_kTX-P|3Jtg5Ou?gV`)D*ED9ycFGxhCQ1nh;)4Qt|T?x@KfkE#yw2lU zW4u03p_71~LZ_eA0jYqk4oKabLVFg)*rBn|J2V!3i^j5jB4o*5Qs1)0Ds)>%k;RO&5d!V-X>D3Hk;6-p7X1Jk{&*>v^#I{HNO;OLutdKAQhD8^_Q72 z{A{0^;U$|m5D^D6gi~#FXqKf1B1wNqugVHfEXwnmt zG~A#`_;1oMVFV@&I~JzkenOzv!}s{1#OdbGs8-Ugz9zZ;1GG_`NARV7e(gMI(L71r z8t~egfiRM`WWF{PW{T7xjQAvB67jPmd>cE$x3k{i#Jc5HCUN9R0fPMo`E-f@gZfzhOtFjkWu?(@x;glay^_cco*XY{!P zkaIby>oORdT$jP<|E;f&Bp!*gpd`WDxW;n5{YAn~i5r@TkL8^K^QLIA*t&B@3 zS%w!4iw7@t38KwrjoB7uX`47d`JrTfk{jdHJs7{G{#$Z^~ySuV0%Mjf7W) zF!{Drq*g!34^}^DU;s_N;GzK+L%<~gu>c?k7|eITMbnHP*=m~6!%_iZ`Y4Q*@9W^H z`lKS+$wJRtFi#mu03FIx43MT^qXyHCVvhz<2Ua}DyEw4okw)aDAxx!qKAI3KF`_KD zI7GMhA{6b~i=!xOFAmWy#0a8Yh;fLr0^$(G;i8tc1+D@GhWV``3^cdxs*JRGsX6H% z0`LFAoU||dQtUi8SE~5wqF1T}DnJY2HK{;Wff?TF zIju^aeEME;2M_7X^*l{?=_E3o=%->39Tq)JFX<^Sr>8T)a7E6tA&Ya(zFeHMzOqjD za60UcDAvjf33CacyXx{mAr(NHf-G(d!nM5SAd7tlp$ra0p7A%i;1*-wyvSyp6w?&# z0*8o#XiEFyrht@|;MqJ@dt8xFf^m%_j;3O-ONzP^p5yRw>xth)DdBpen6jQon*->2 zV$T%oiA`Z;J#q4|zr+HINJ17^Y~M;VK_Q|Kz@ZovLYrT`1q&~n(hwNzoWO8)PFINC zDkaO||Ks+v)U)Y3o}{Gsj^hE2$2{(&$GEBDpTh!n9#o7`H&JhpoCuc3}7U;q`Q}F1rV1 z<4l=z{r};eP|O~#d8(_;gk5tIrbjwwX^fm zOIAv`^H1y<+6#x#gg|hh%wfoFR0H!df99Z4;CU0)0FQ<_sMHYxMg3DAcURSy!57ws zXy_GA(!RZml@orx%f_YSU%izOLHy*TK82f*aeGbxm)CF;AAMamaf_TjtlxhvQ$iy$Zd2S<6&(EwHf< zl|b2ts=k%9Z})iL?zC@Dv#)GaB~kRR8#LFh#=c(Z`{sU4$j7ImZGEK?8Rf%5q z&T~w|eXC54jBI4DY8FocR$s)BX9rj?;n z@{68h-wU$f4|H}`I$cBwq7E9Fs6-f>OlqD1Z{Jc#b0k%{i5k&Q6PE==7o zW;Vik6fQvqSdiDIiF??jq)gA5RuB?#%~6WqW1t{U$B=i)GY=nN25PDY3Y&0rnE_zn!Q5=YZaJqlI9rxvU zd9plf`;zxpa-IPD@} zzwucCe@?!)%lC`;nl>;M{v1`PW$P6oj2%=BvKc-FAG}i$UC$5|@vD?Z2mRTKXR)&E zSv{&LvSk=vQJ-goJ)G7;*<*6G z>`~lF*%L9yo^dKM%O15jV)9|9Dn}F!?9}IoB7&Vt9Z@*2Q?VmT2X-oVL>a+O1&=5x z*s0_ZH?rtnpQR!>5sN6985d1YvYM0s$7`YeMHf`F=yb-^4eiD$4aM5-(MS z?pRg6%n%jvbE+czDOT313I$-(ud32biEz=*>B`ejC%Tdlpsq-CPFEP6=n5VK;d~)< zh1jYq%#TD@go@}2>niFBE31fNgPk>2MA^X3YAd1`U}xPGQ5dk_Pdh~dJL|BBf)SnA z5)@N9@gU$t1 zO+{GoWdzPQxvQ|CPu@NQ&olhSqu|h@Q-4JpF+@v&V&zALivCJy2^KlM8pen*+nt#Lp2J9l!c+e-9h^*hYuXPiCVmJNC$BSC z1n!)Pbel0S<-ip2@E0HAc6|Rpxc{Mie~fRcxT!+CB3W89euHi)Zk;$uRf@jNFctB2 z1x_k%aZJKOe%VuGCwd_)Pu&Q?BRzQWFyKBAOhXKNo( zRl6a13IYOZJj9lGq8DJpfz`jjSb{c=_lA(R-ynh1 z8y(S$g!+x&h$kIV@S?wpTfdTOmI{r8KurwPmu%sXA17rN9ql(5?Le(PKX9;bp^kBq zb}1tTP1)eUPQM|7YfuQvnBS1pH5gxeuD%Df zBl;PAD-m;5Mh~tL^&Y@U$y!NC3>+9@8`$7rWuVCMieqGVv_AT^?VVCO(JqLd`>mwfyF=AgpdI+6pyh58-}e z28;+Z-n0`n!X#9twhDEwMQBeUkh~yhI8@;D#S`1@nTUk^Vnl#a0$BKI15}s*lJHlK zHV4v@2&^Mg4IrT{`w7R%+jr3xq>I8Wc0g`PSyr!>}&F z3}@3Lscp;zU`MGk$)ev7!89lmrRq0?j|Kzce7aPbdHPl&W`IU;0wfWki(^?x@wfkiN}}M$9kvbh5DJ47tuK> zFPwB?dEu-}#5{tXQ!kP6|-R8CT7;W6(*YvoVL>q z%whpxjsu7VfUO)rEC9@P0I>it&jG{&z}5~R76AGjKr8_CJAha?_w+r~$GRtT_Fh}Y zk2UNGHqBY+n`1xbKX~rL?ZM$oj zfVr{Ua-h|BM{mtwcci{gEm*SMt-oX1>_cW3HB0bjHDfg&rsSu|omiSB)6A=}Ab`XK z&VI>!MA5u>WC$-NI`Nv8_M#vXFF)nAhO)^um=3ce8O0F11O|cxM-CbL4GIlOTFE3q zK}+VCI7v24WX9VVNE@z+rPlkk#Da4av(Fwi}GYPzB%c++*_JK{qK>)sJx z;RxUzal$9OBOc3zk0_r6>>xZ9Unhz7K1MKisDSdI{=g$vPxKCJA#&D7p;VEnIlB+kL?jLw#;YkYG87+6}sZCkv$IF?0EwY|W) zihWw%ob#dfX}KA2@;pG2fz{sOU8qXE!{A*P6ut#=SS`66Zp_-Rqk(T1X@t+Og4v-G6ILyf1Y8$nqm9&EIrRZQB?Dw>Dh6)Uvj$5;!wr4?wjWeHgj`@ zqU7xKOp!S&cejJk(5Ms@gd2JcZ)UJILf&O z4Y2VIYy(1_cQY{Ss47b4Sk}Ks<3n0G?`NQO3uu9UDVwV!hf82>$=3kZV#Bu~Yq%UO zA3)=vb@N-|qEefVEAQfa=9aBWF1^bQea|lnJDnLN!z=I#wfUG)lh-A2QQkO0g%qI` z8#v0w%|wOV(4*)&DZ%f?9$*cB?>rfPm>sFvLS!Lb;uHBt^*`cRJV7aBcLeC*F zt)G4m^H%1e`3;ckzs08#{tjOpoO&Kch$@)3@}n`qMM7vPN(TB;8dopyGEmG0g=p1E z%j1fnF!bA4CcG9fS6iM3cR4}p#9N!iRl&l(_WZmzf9{_3FaG3=-4=C=zYX-l()RqS z5WN8`P^RIYCqN`N&x<;3$u10Cp9_BvWZ^h({s3z({G$ViJNy%z%-^iH2kOPoP*-jd z#Z6L=6WuC+==2EU0U@Gb`>QAi}w)|AA2ZDu=e%fju4Dhu$3DhBN5i$l*PnAy1Q z<7HEY+Dc?8u1KW#Fzbt}4_CG4AemxHGJ=svrsyP-hC9h*+l$LFJ7;yJIJ6;W(-F%j zI#?3NZ$U++32l~FP%gTHaw`kUpTVCwn*{|cdbNYBIHl~p6?()U)-1mWRMdX&1Z`9+ z$I{3|$J5A0C(=N*@@_G+(L2P!$XCG&@%0*`c4gd}jsq?SlC%cFWIeblvu*U!3ugr7PR=!*3)f zgO&c_Ww4Cp)>FQJfqeT$=wm)kDWm6s7kJZZBQnMZRLv)dax^}jxQ+H4nBm_D@yi1LL!bxo@%0bD&Z{i``A|ArEkHfa- zhWBpf^h$Dyjx#u=k2x1H546?)O-Lbp2}U*T=;J+VUqEa{a~rYwl`C`0u}j>->`uv*Sh=|h zC@bOBop=cdURTm<#fH9~SgsrTdJ{D9b`*d%3toiTfD+;67KR8NRr16Lw@6XlGNJ0w zggVe>7pEYB7-yH@#{ibPL^(TYUVxEQzi=cq5FFD}@z0L0l32Q-z8BJqj_;g)@3qe@Ee*e^Sr4wF9&9CgK%Y3?c{{J& z{+H)}@Qu6W;@WF=t7!mx_|44}t|o<-g#vxdS}HUyrLFawJO?RTqm4ENXB*z9IrKFQ z&0cTc2z|OmU;4_Hk7t)cFA{s~d)^5(};gmixFRomY7qvgMbVKYLb2kO2t;*?Jo8#J$a7v%aIW5JU?$;c8W5OwY zVqRD}@mrS26!zG6Qcf$0Of9GTH^+5-!YO@HoNC{s=;6*i`K7d>CFcBqW@?{GIHymy zeR%b;C2oJ71MK7gF@Ie>J+nVxJ_-WE2R0MEfkgi!Dn=i3J{1%f8rJ%&x7m98MxwA3 zjG&8{vA~;RpbQBx=tNIUN1NwqSSFqI@0rS76Omt z8hb-9&c19FFMi-yB3S1)IL-*xt*GAUC*8#$2*(iIZ?KOQgs;LLdI7rF)9}IkN8=EI z&jB3S;5QD1QyRzWF)l%VV+C=_>tr^4Lv=pTRsoV(w>-5#aReZCf#N7wQFxm7bJ2g? z+SHv81J|ZbWl-$bAPT~9oa=k({ah{HGbn+#p&jrWM6zpBSa{~z)B`ZEHYE%+j)wPO z3*OHJ?T8Mn2OLAA@h*H_Rs6!4UG+@}mRjqoq0`3oF4=P+5!63}Se0%=s5eeWkcc|(Tfheh zpw{zlYBko(Q&@;?KfyhuRFR}u=Gn> zyQ81M(Bwz>e<#DkH_E*76l5EkaB}Bp78+owT_h2RbPj`8-{72nM~T3(+-E5j={&YY z#3*XxbTnEh6t!5ad2ibB*DbQ;m6=r-LGD z&z8dsYkXFCDW=`3%nbj_uRdRN=ax01)SD`r}f029fNBbY8@ zU6B+IQD{eAm0Q1`KvYXN{>N_GpvGcSoqIN}hicp&mwm10Sbrq-oRoX1=QvPjJ;#xH z#5{ogY}zS!*hgrm=D^N@d&H^$_K(ocEP{QQc9uWb-%mU157<9WJLL@fS+rA6VLyj< zaxZn>{oo)~=UoE0t@AF0mHo@+Hj)VA+Q@H%1l!1s42x=zD3i941+N{-_63m*k!&0J z14M#0@}Dr!M$)7HIgrHUe&aGYA~x-Qp|KJM*G~$CvE1k3uUgg?5nfC>0$0GfA#tv6 zc3ws2@b37gdViOZS`K>EH$opA0+8=@_?lt(g?aed#ca)%z18y4WB3)rZhSZ9%a z*Q(NP@uXG74n4}sib`A62LRChAn84N1;~m2={+VP8i(B?$YKv{QVrUrjq@2m7_OQ$nzBpq+9OUHUF4rgZ6g zz^yLb0P93uBEmRbdW_UV|+omoF2Y%y55^H=~ zzPI2z55DrlCUH2E=^<G~R+?U7|%k`<4 zI-5An{qHfkSO9Q)f$qLL=~E@)ncotd%WuXe`F$pm@ugS>n%|UllHWo_@|&wB%Q?+zCvP+yXAWizNx&w z7tSQ_hxddtRViE!ZfvDMAM6pA@BIvvD24L+io`~xpgUHII~k%PeoiTbE5&k3!DQQ1 zt5W=ga>&U$#2KXJhd)eoA_-2NkjR`)FtWG~xKnh3*s2rEgG48Uis-}>h>ALK7yKiN z3ihwkPJzMxHQFgQ*zcpAGK2jav{N9kf0K5KMfBilP)zB;1AtpS_%^IKsMi%eOc=Jn ztMPLh$ZcYR|Dtzz;CWvb{s}_gImZme{{SjPY*zGU!-2TH`9PF@v_w+B9Wg6yzwsS} z43}cScp9WUOQUKq-c?og@I~1BuZf-eBH5iH%ORt?U*b z!m!-^Jk@tDvcnw1qB;+@mM-l5C&_^YcFPqVZp+p0835hKNw-|J)^ZX{Yez8qD7zUB zQ&dcqISceVg4AX>crZb_87?rbPz>FY1rMgsd9CmK0xvWh_?&%s!}2AN!zs ze66&38N@KN{0eDe0{R8u$fhf?0Pq(F5DWHb{bvG08o1Zo4xv!T1D>ImpXzvEzCdw( z1^aixyYS(2+qDjCS;~;NJoO5fjMVxA^To;Wvg7gY7>DQgS3xeYYK z2~WIJwv1k6G6fC=|5`Y&3eNm`0i2I8TQNyrpQcHZG3)^1xEt{Y^%7cByyT8C5AL_g zhb?f9cI5|fo6ubVy7#cYYExEEx2#TwGZ)U-BypwP=54lxqn-1%+D7fC*QY}w*mCeU z2xu%f1CIJ;pk`VrC``2z9)y3TYdC}V=KXyu!R*;b9dq=-?5SACaYr5O?^``9Gcet^ zzP#w6)@EJD9VPcZV6US39#tL-cpE!1z8!Jl`m(SCraxKn9R52P7{*+Xb|o-n4K}wU zn}08W@e%si;`s$!aSsm^_%AhSdU!W7(R3n)dKZ(n6%%9ii?@PeD{;F-Bl?{L_RSn% z@}Ah42(}hOjA^3Z@?o+62bF3rZaozX0RMCVu>kNd0$~2zd5Fcvy)8^^ib6a4GQ3N< zmV99P!Rq^p=%V5>O+pKKb1@`Y!V7TEIG!g9hbCa^aA4p+jsdZ74kz%QLP5Tl@tX?L z8J3YqoZnJMg@WqFr=(KAhHHBF`DSzAwqTD(FWk-#GYqA076ARDLH{T=g9^dT0a$W8 zBC+l*=srx`vp~e`Jq=e;`Hfe=+S;E0t6RQiOP~!5`D+O8E}Kh`{1j3pLBj2$g4A0P zq|s7wAZNE;s7R&C#JUPu4rha`Z{mnCN0Y?dn-Cp1+!Ebn%!^ZjQ)~~;#sfx-Y-ePL zweCV|m+1v~^gY-hlEDU%jMgUOW!(!GXGrIdu^WC{SOXhk2jqODsjK(Z$)9 z${9SAW9A{jEl;B#iB5HllakdyF9tgFs2m;9a3QcqDjg!7HI+$2j2<=)T;CQV7lHdW z54Iy<3ozuP!J7-Sj-ewmh>Bshg0T8p&DO9NT1Mp!H_aYy^wV{{R`2oAq%J-P9DaSg z9LhEk%zn|ktVxu>0#d4AQ#(GoIKG|U=;C`#xu<11mE6-(baLEzxVB9^-Y z|G$*`>3)4K@=0o1yl;Z~CSu*HT_wEz?rMHlx3ewY0r~U|sb60L>Yxb*(6{M#`O{{w zf33vY{dAaGZ&e~|xA=0~?yNboLHo5?Sc6zk|MxcR%@A&9_lEc3sR>fEUUASy3$+bY(SyifEjSt?eA`r_~-0XTCjKQ|dR@fZN-NrzObr%U?Ls_%%D4&Zht zvjZ&Ft@7}_Exfbf%kpfy_Ym<0{VoXM3gPJd6I(I^GxEXqEtT_H(ZA>`=QdXJ!K&7L za70_7SRV723!Iycv$Y{!R1gU9jhq3g(7nDrho@wNmF>CZ7hUD%Jc6NLxx);Fp@*=6 zx9CFYe%|%%dAz8)68nu2CfU#1j#5E=!|^2VVabbi!sam6Pqe3pB^LDbmLV_eOOUj_ z5&9UM^{r`smGSm%&E$&fmE(?lp%3Rj$R{Gg>15XD+dfaSUFH94**BsrT**zTP@Ee?7e;XOeVKlTm-1+dWaB3HEPwUu&@V@Xscv#4ufSB*GFL)4v zec}EvTCuM;JRm{Z3rJNPfIUJT`)&h19(8=65GxncP>)E&jLTXjyvPi#I?oigOZrQi zur~rR+#8>kCFt&W=%>DkkT>JgT00g(-3PX|9Hv+Hg{32-@yv7pNp)XmCVUHh1M^lG zP^63|1#8DlktT;grX4^UNxBgU_E?k#FUFJU{#Y5y>GnZ*Fta~Ac0L|;B>bk0l{;cT zvpEz-c2(spv%6VlJ98a5;iGRb)8AFghS+I@&J552XCj*5tf7UBvu;nGZxh?1jAi2<+*XwRM)sCO7cYII7>mSpZokcPZ;UINSNc>DZ7qy}Z_ zAQ)ygaKg9Ib|myB7rs5Q9t>;s;vQE;k{YYXIbwF3t!R!&R5DM)G3n!^-@r&dJ(iuR zV_8Dc{^44$iDTLE;bbiPy2D{yKS_LqZaTgsTspo@g+reU>BAI4I==U#3Bg#MP{fC> z#l-ZD4=3@x?r_k)N#Y}P)A1$Y((!F7+z%yvmxZB)M|Aj=dKD!-Lc>e@p@d`n>&8(Ci%A;|D;5BV$|)>N z%czG~0KkNb0>pyy&pzq}Fy~Ot=A)>3!jlo1Z_b4kQ-caR1)zTROV<+G41P7|TUKl0myU3_N3y-krlx{vtw`1Ar*Ao>>7KUx7Ux;B;*0PjmhPePZv&q5~}D zGA7Se!j%Z5wN^8PC0fVr;e284RPwosvDXgDg@?m}Z3gK2(06nuM&9oMg3>62N5GpC zVIKf&paU(}2Zbj|(jp-@EPylU?~iurBWi;;r6&ZiAy{zE#CH(4ZZq%u203fr6&?xt zXcA=Jn76C99OBKK0jKZn?j3QB_Vr%0vONm8gY(mAENiM&^f=}m3joAbBBafB<8YY# zxfGO5gFIEt`NCR~MO`X&ss2?6Hj+jnYzJW_Bnc7ORZq7XGR-LkhKVs@9&nGPM#qN{ zakv~jOS^^&*LwnaibnltBs0Q5GK0swqCqidMi_O%y+*+Xx0Rv!7neDP5(K@E#q^-l zEDJKDD;ChE3>e2xQgLADD{)|i3v*_K@iF62u)*kyanPl4#58`IqJh!6(7;e#Xkctl z8VWYoDGj=m#(GFxHAqSgF4-Ib+mP3JFz}SOSp&1by0>pmgGFR(L`ExZIfHtN6sZfi z9vLBt*oAp`q#83Tnrg8$=X(QliJ8H-2Lt=~<}3uUblyOv>5AB_!(bM}V3C2r?1jN5 z0|skk7*t*utY@+RfJ8BCQwc8+k}{`qMydq01mQcusT3pMumC_IS%y(T^L#PdVM+{o zO98gz26oJ=VsK8UwZk{>gE_dXU&itv5wSr6^C1~u1&nFI4Uq8Yp}3_4P&D5(#%5w$ z>NJ0*4FV#Z7{c|#RQ1tH8~3CLEg@1g$AZDp&St1Nj`9VMI)60Xd)KL6h2?UQMje>r z6@h8twr@=fH3(^;Lg7B-0O9w;|EKZ4IdJj~iqduSPXGZqhjAh-VN-gSN_t5Q>8;XG zr9^r+BE3&<31WVO9!N5cRFXxBZIUMu{|f9j4_T_4^6+8!Jt_Lgng)5uiU<05 ze7-?dmzpr2*ZMlIO?OnGF-KA zJvI0szdS8;tM@0*1V<1n-vX~%LpX45c>a}`QZ{bVZc2z|_rq;Lw{ z2sgieC45JSi0M*LSuMKSkaFr*9h z??J@jd+{-+^79#x!9?ZPrt-fH{+$0v*4c;2P4hZ?Ox-uP0)H*#U9W>Y$73;R-+Z>& zQ`gy1yAOe)v}s}iV1WaO1#{;Nsl-=QlRXZ?e8vcm$%E5m!KN!@IQ8ela(|>m?f|GN zFDwhQK}dW&A}4VK5<*@MV*YLq8MY#S=N$Q)oer9_?IDNUfYyrmoRr5ROUb>rEP-R7 zjQ{sS*bao{h`-y7`0u5h-H2Zpod!h%vHQ{8_&($;%l|GgTV~D_#MXRfS2Rvuxib@Bc6NaK(5<2(tH6FvW}O9m@qlSq?b}IE>)N<3Z0$a;4H&k6}!~r(=79u?IlM*z!=;i#YkHdMlt*-5Y*cS z3eN@viw_tw!4iHP9}xcpjKTFfosG>acB-2qj@PhGiga%I;Q&MSA22QFAkgsc&58U8 zJ)dL}g~w3_v! ztYNpH<5PQc4*RB9k#=TrW7Y&lctzddtd6{8B`>VtdLOI;=Y*T~TuXZftuqb=C~0i2 z_zdc1#!^`!l=(nnI)Qh=OA?q+y_=xCOQ5vL$ARx(gKskzbq|WU-(S~6Yca{yo=z7T!`fcpLT^i{%d!f4AE&FA4M zCko92fK=}e1}kZlzTWUbz}bhaf14rwa$sIYr6>!9lr?303`|T}LmyvIeeBN-zr|I+ z`@(` zv*%>GSJoc}RwKs z+>cfae>yQ$ogiv`;&ina(S`rn6e)A};aQZS3pSB7dG136uad3$!Gsj3ZgQ@RKi_Oi zc~qIGji_5S^J=m4m&gz^5IYBnJU@1BN9Xp=Sv^k6NLh-JEh8gTHS`}|g$9gJ>8rSx z74;V4#^gdf>UicoD(gZ{s_lVHrKRSVTd?Pcc%8ue9q@vILg4&M@W-|rbPM(udVb>o zn%opD7I++JJr1(w+pPI^hbR^x9_#>O0pJh04wygUzC z)O+B|`-cx@%s3L#%YaXT6y7p{73@p9#rZ+Z&$KT=w@zkG;O85X4xa`x?i76*6Ixyu zs?SycQ#)XA9034sq0LB`EW>aKCB4%HRY|L(H=FckqPyV(Qn(aqseA4T+O0Vt^)Thn4d@oOmDY?jM~AStPlbk8@GN z$r6NUvZX28Yby~Wlye%Mw~aS*S1))Oq7nO2%@?jabRs&tm-B2~AcP=+8A9bzv8P*t za68P8Y&6e6?kL@cY1#*A`ZLmmQ&-G6ZVi#Ll{e1mjxqlj|$zsV+o%^?wkI zz8@jNeeki?C9twg{vO2H4hG(~zl}om;Vcb_m7ZhE44CNy5qAhSweLxJlz9 zbkp%A;nMNFcDUmwjgQbx$Crdl$G53)x<}}Q=J?)^iVLNcP{fC2=&AM=CE+B#slq`8 zP6VwgR+Dub$h+Z!{iCQ)qW945R722!P6T#tR?}psMl1lF>;PiHy!|4mN#9_;U+TiD zVc&uQPjPr+0U&e$u>in$b$>=3dNp5k@C_hlPQmdYGz`1IK8T~+|Uvje`|?9Z@L1#bz={fNn)iFv4q#q#EwSliB4@9+~`J?zUGY>J=N z2|qXor(7Hba$suPG*b;~x5V0^dnuY@a_w}hw`h<5Ib?46qK zy(A>S$ZsiC_N^W!&IDkLA;b&n1z_2e8U8WSJ0zi&K9 zdASoCEOr#yd*jQ|`%;)TecWKNn>fpYRE53^8fLvj8L0-ktAZM5cU8O>(My>T3(~|s z#2zsD(}2EV?W#Rs_Q!m)5bl9_*lnZC2=#PMLsXj4XfG&F{?dK7eHDbYc$SyJ-GhO- zzDbKtC~DVmkAhr1QZOFkNAUqX>Yi2YTF=nZZQ@ExK9v$c(-4;2{!Y%}R z^G#hiT)ZB4;UL;BTQ{(x3hhZOWjkTgZBWvLG|5`_1#Iu_7imA)^I#wGww-}&Snqg1 zfKB!y8-Jvpuo@K$D!)HDfLM~X*FRGx8S?_Y(dK5P4~1sC-7G*S#W#O}2c$Jt25gq@ z2wx~3FTw*I)3I_c_Sha$U{(BA5@Y0I0pM>AAeJQZzXOiQ|3UBlgYF}s{uU7?Jbo>>HC_we5#or~f*HN}vJ6zrqO=F&cOEs$>1@p6j-ofW2y43GOXSg)=TjHb z{W9FuW9DfQd*MuHdA0r@dPw;$!}C&>iy(XjK<>l}N~2kRWH9W??2H*6W=7>bj7&J@ zFeh827(N}PYWPekT3DnQhGi_b21;xfDd^L@KjAQC5M`|nw7}fY6mv;L?h(+_(61uO zfg%b8q@Sxnquv7(bK09eIejXSsE;{}a_zZkawo*&djaC;d~*u$*Ww7ho}1==g_yo? z-V0Bb_?ciOIb6Ll-na06P!@d^3-t8^4j>i)KIi~q0bmUQFwdYV`N6qt%)X*udorSv z@ihii^hdM32kJOlZ6$URFfdj+5r)o8 z02!-U2bl!kd%@e^MJCLjffIalJWM^@bD(upkSXr`H!~_Z|7~Sq&wr~QCTW|`e+$9Q zK?5zQ*tekF%F6Q=dUFr;<$lcA|3)1l_f1<)d+O^YQRyw!sPFX_&C^wH?)) z7gE8jA6pu|lz|m54${vu8S_9rP z4`<7`?)_G(iWO3>ihUsMK~Xr5f$9 z1Bit>fTLu-Sr4{!jLvO2`~^FmkFRei2`i8F(6)hwZzvEe76F}L@|3utK!T9pumHdS zsszd<2t_)A`UX=JRLUp_`3*}%#q|&rRS=561Qk;ulvogo+z662BKC#3m-io{J7Y63 zSuhQAjKZh+inP?qp*WPOfyHWut%wT;s4?Hx23u=~S1@-m$TTw@?!n*aTIYT!6?%}L zgoSxWSn?KEzhL50IgX)gFjNq9TZD0sAA=r_s4kNQC|1^y?}idA2Zq8e^g~Lzg|Yb5lQy^`i+Qo zggmlJt-u2}y_>}>^gJ)yZMq4%U+iyNVg~$ugkaw62_7Zf(u5t;hI%|&@eba&lx$E{@$~u_cf<|c zPBY{+RmGMi(2uk1YoSByK)lA~^)Gy_OcqX-+6bZwp5z_misSRq@Uv|sh6TM>sW z!knx?XBecqmgur2$KsNd|30NNW<7n#MJ%-1R2 z>r}pSn{M;jg`U>QrQ2D4Yy1eEZIp$S<%|*qa6W`S006lf``hIbLYb?KhPWmY-3aU_ zM{r?#6F1PhTpI;MozWt}k)s=;xYe*0u^t0l8OFUgfZLww$c=?t-dKUP7n5)ivNH~^ z4fg0%qQQ2?1I{WBJA8Ca!r2hGri3#APAm3IS7dPwp`r6n8Zm ziEH}8k zLYE(^0p>}dcW;CT=Z~$>MCktu^zV%ptf!V;y_j_PT5AsA3%+s8JNIvw6@0UM*J(7L zlG_;KuxxlT9GrT9XKo>Eq^C)8QyJFjxoMhb6XDr3$P>wJMy6A8n`@>mglRgNw#35- zngI}kwt|DeX2QX^D4qp8k=!gYAx@kZsD+EFuc~**-UjHv3|%2lkLH<8o;i5%!){y3 znSpyf;D#@!DV(_mwS6gSo{!qWaJ3hqMs#6OSj6cdS@a9zG^0@HSA;DTo*OV9#MbKE zD@f0jMq<+*a53jOpv(yd=4BevHrD981cJeA0*v0t|1yz{&I@qLaBPM1qR+G`vxM>B ze%G*G83tW2(^#ZSFPBw9(^`lGY5RAg7uS!o5Q?Ui#il!^j~I9!5;5?~gw}m%_MD$Z-m+}w0(3ln=Zpbz zt>cUVW-%Lcd)$l=IAeeWCNu{@bU43v#sFfm3nDG?6aa`_U4#JsNZxM1V|FnybZ-@)2nDPzuzjaV=en#kTJ;%R&;u=CJ%V8q04$B zCTkrq@PqyumUp_lZ!BjocyRW{BPA=oWwAFGMlJ!W1$WWmp3};R^DTrIY~QgrL+&!? z`0N8lwim2-H-Rf-ZL__KG;CjvcEiRg=4jTj9Da5xi&a-R&m3)uy_A7ib!bltxZbv6 zb23ctDDN_42N(AlVnO=DNUWZ+Xvoaj+SJ_MoY|ZsY4(1Um5W$1nr2FGmQVFX??MKN>+gG}F30H?`Px~=abh>bSGQxBTSNHO0sdy}R0KzmpHh5~7 z?{TJ6%^bFAQ`x4W%gv?m_T!Ky>4Y#v@>;`u;y1!1ttd(z|SP z4RvC^SPU0~wd|i91W_3Mv#@oiVWhJRZ<&+9jN?!nMqZF{PKJHTEFMfWDiKef?+?0i z(P=9VfHJt;!SKmrW)6W{6)Bf~NgO8>J*&Y@<5Ctrv3W^Q0%k555+-o@fO~`8$ym zTu*eDxVUmz+}ivd;;ztS`)Q;B))n#1?()KCna76+_A^Z?C{R+K%c8BdaeG<{t^DEO zxA65Bx4QxP*(f4=0#aEE3p{juWu)Bws5NvE|@zCnB37sKZ6*XZ5^<6B(x7?q$uMUP$}bBxR7xi zooN1eIG8DOWy#>aJ>7f#0@YO43E+`$>=Oa>#7@G~Y%3rIp`T35DR|gu>9WmV^cciYLPyUo58=*>^!L=W=+&2~4geVQA?O zKS7jaEaytD!eQRyyoS{Geu9e6)^ePw8L4r4P^vNPS41tTp;P3J33oWAlaTc=^MgJc zjA2CV(|~K~tZKv|RfnGT3{R_)qbEYgyQNNt|&Wh8J| zx274D6;3YG{fr3DpADhv$GUfEsKVl-46Bx~gc3|msIX3lGTmoT%lTpZ5zlV>qt_tY zO`DfsZ23&ktctx&xK>YU)Vn|b2S{F!P=ovIpTo(HBewtMPhch0>1P2;1%Ps*lN$>j>{zQtkK;I ztCPgEtQc|5gXrLLHocpj;;@|UZ*+9kfZ?&{5U*UHXVu_ zkzBTBY%DzzH+eB!-j_jF4-v}lehI5aRMuf7?LR`THT}7Lx`c?+a6m+P*XJvzLnmAm zs)J7W#X~pU5gNp~VeI>74HmX9ATRnz7t&=PRRAFV>>>nUK7R`mDriglBG6iGMEGI= z&LwxC<#SvOaMY#+LY!-WLDH(2 z^A|vvWtNZKxN|MuG_Jx1udFdaJPz={o+W-rv=RR^Qb5ebFz)Z5Da70*0XH$4wTjLwrcuVFDBrTU(Z?0}lByHgU&7gxf#9b_xE*3j@QC zPLW+-(UEPFnX4M+%~j20WjY)UEvEt)fc*lzpsTWVAwkS~KS~)0C397nAf!h((o+P+ zQEzN0))r|T>~=Tf6L#)_BNGT4zz+wUpr<8gnf8|aJf3LhZ{T9U_rm43;(hcbanfhg z^Z_r(_XC~Bc(3%Wo))(@|D?DpG}?Yqq9$+l10ux@5BIR4zL_B5JqQZJdk8MWdssMW zLmeKbni$?AK<6Jd;XP);dqjt)(e_I^JighFi4@)&&xH?t8D1y3bzAW`g*}c}w0Fp% zo8T4^yx`s*Je?;%be_b6C%Zfaw^g?d^p3XS2|6nzNK}GKu(=|yxpTnY%WjW7L!ZT&a86Bg zvMHgfn-YE6hUg|rp)aut^48R_74gw=`#E5ljy#W%t0|7VI5emqN7Zp2Z5;+o>(JHK zX-b!wHRckI1dy~}hbL_y9~-yd02T(KeJt4L(9>L-q(XnbTCbmBTYKg8-r95K^RT^| z{!q29!kg5!0s!%xix9xCRX0Jt_h$bi_Efy0Gb-3FudZdeHY8m|3Z0b|mPz7ZQOdX` z+=4k!a)uq@cjrJ^6Na@nzn&romNepNzY6;{A85})elwVD1Qa3bqk2N6A(bFDIx}{h zb!1)6N@Il8un=FPYlwfs0`w-J))cS;wG7ZB-kDK-aT%x{O4sAw`c{T#tlV4h;Jl58 zTZe5!o!$`y`>TdVPzE{B0>R9)p`kqo52?205!IbnU5~TA;P@u{(_#BvNW*b&A}Z{M zXuk)1Dmx;qw@rEs?*lEohM~gv)UPpnTZa1qm}r5qItpQXTj<@~g~b!5`t`rq{BJe+ zP8kHfu@;jm|ZZPrYV6@~*!HcCRE;rrKm|C5A z5Fu{?L*dd5dp-oWBmi^(Xby9VmfszPaY0e}5R#=q#VbG{UKWCwBzs*rfD0-cRKWfy5-*}|5(?8u2dVwZ@+V|#+#Rx<}s6{^qbzAD=f^c_NIb6gvFhL4ERp_gZ67)fB7 zxjdX08HvT$U*EzPG)+!73Vq@g*}mFhNt~@51IBEJZTooqsZc*0$ALGAiAM=Ivf2vA zjrW9j&$fi)qiidz-{LsxCatAaMO|_3p*G>R_hX5XC@4DM7|ykEd1D?gW;D1rIMMcg zwkDPs)yGN%)m?+rXt4DRYRYn}IA*(d#78SO#&N!czwf`-ZOiFaX98@k{lhJ=6%$K* zMC}@+4wey;D9g=~0L*eTtYKnGTb)d3tnb3pPLU6#2qVklmK(RixRu83ZQMS_tuk)4 zar@GReyn4+6;07b=4yb=lf}y6J13PVms|Yu6p1x$3;{Q$Q6O(jqas#iG*3mW%2=L? zSe5a-1Wfr6oGuv()ieKMwXuvtW#D2kwGIxlY(F@;dOU1&MzV7vvs-E-vmKV2SSLB7 z&Hy}{I68){@cjIO;v6&B6M3&cR(@c^E%lf@%& zx`WdKOnH_yXe$}00N@dDT0cRBi6hZ*gM?X`<=v;%&)i4F-Gcq*=(-bSZX|u_GKUWb zql@0NkjaxMWp0#^hl}=}J69D86Vsl5)=;|TMVsFw! zqFVshIh){_7e!e=qkM!0O8q5nx%OEMKjp^u)M;TW^FyuRql^9^ZPQ z8l)Jh&NA_~F~P}r$QVU?ZVEtf5M3bCnTmIwgfR`SxzC9#IMihmI4!7VC46oUYE5Dx z6Zx{Q7hrk)&!#}iCM}%xzZqaouGpIch&x;0Y1z~9l&c%6P}1bC1FebuI%*N_$o3>4 zUq^XqlD^cSAe;>c=>6ETK5cwx+H$=&!@{Y7Lwj_-X1looEPj0t$AbfRadCgJeX@UY$&yA|$iV5|U(gWYBGhhCAE1bBw#Kakrz( z94!DC=eh_1@Cmd%5SBd;&-oOz1L<(v>FWOPAvzi%t05&~EY$~H*E|K7d{1UK-`gF0 ziP-b$MDtXT?F5;8-W|I9O*992~6EH@X_l1-{O9A+aa6E1cYJc-W}$vn^HCG2OIO#lVTO z7}5f?5(|tj0bHit)sQFnVISb`kd~BwXi|=`^E;S0>27RwTzZ&&6PQ;ABTmj>_p)!Y zI;s1YwU$l2@yh-s$cypT1Ygp@{5$H)cwq+<&619bvnTkp8QbbLD(&nAoXe1Q_7)CC zJn1aK6Ai+ss)#-WFqK8emI0$t*#}Nj6;gvOj$zPoY;Su_a|O*Bg<03s6`HQF0YGDe z{4#Y6+m}%2di*(OhdtK1Qin@C=R7dfid)C`blO2h13(;c+A!GVuK?WT0bQnB1%ke1jomgOFGCY--zwVF&eqb18 zxK79#Q&$x!q2);_!NSK1;K#1j2Py8smGQ}JA7b{~FjQk}MN@Us9Hy1brtB^-%BfrI z83rudH-X}JIOQaIdI9VPxN~bmES~8o;w&_V%qK@f8zFNK*6Do&{4u?M4yN~YOz)MT zHFlF?zXR>;ckw`a9|<(ln?8}=@3{$l6y9;}SmCQl?*PuXdciIBZXWox0GB%&0(CAx z5=bsMh8X58hQ(ZPU{NjzFd*W`g3mb)52jCmxRzW{5cY5C6Cc0Q~_7=Ok3}fiy!kpU^oeiJX)O=A-~;p+UK~PD%+cn~AYdobh!z(lPG5foPcFFIkZ7jaZe( zoi(6kaL{c}dMkJlvU4V+V;z8m5(p%5iG3Co)86X-3vXxB+u9|bvksEXhGDc8LjZ`E zaLIS@Hi*+u_Cd~t$L>@F6WKkn^}v)nkBBlL(%t2F<{o9d?el@zQxkkjf2%=;hle|sj zy%-qsUILfAm%=UJU7{~4z@Shkr4?LTfP?zv4ujTS%?5iJyrL-&^>68g9CER*NEsJg!|pB^23S5$six1TH+1CZ*l%`t$yTKkahT( zC9>tt2#iEKtC)UGR=Cc7#XuPks`sG&8bY_Jo?7z@LjWN9y9fc6cwME{5Qp#KD-dt{ zO^Rm!Xg|ac%2oBtT?sr|IaUkKRe;l@#>E<1G@@%DWJ;fD0Dzv@Kf#o{8cdDdq}U(9 z0QSdt$Qh!R&3dN=y%+&>)p88R^%^F`giF3_qB#936vClsRaVAK1J>xbSeGT$Joz}zSRs-wRkm#`_Mi~jo8 zU`Dms+2HaC;M2b|bmh_ofQP{@LI5C!xCjCK&xM~L0iO%M(23f=Qr`7$8E|&N>O@;O z!p^RQg)QtXA}qWpdFfm)ymDUVM+&ij#xvJK6!V`InuUCewy7%IitW#u3Dfl0pA0_x zTEr7gHRq7TqfjUzKMqd4xZC!w#RAa!Yf*X&H73 z;$%6hwriobn%Djm1xIuahxUffX6?mL?}ol_Sev_RFGPFvIJoxW--QHG-VnYoB#7>Y zP_ifk;ju1s{BZku;eJ&ph2f&*G;+Q!Br#;4^g|(uVf!Sx99Ks~Z(p8fwMN4=FcTJe zh$v#Jb%#bE4h6VHyVP|Jx*nQ(sK*zJ6!+dF{@sKuhE7+DlFLzgg zQe&6n$@N6I!-t5Rg@-NS;w<%I4k9#%sPuqk`$AfjW&0jlFo?`I&0+Tj2$QfpaBU-h z0l!$dR^WH6rb!Xe1OZ3mn0AIIS=`{6=smr33Z%`1K6!L(Y%FG$g+~;w<0B|j9=2t9 z=ug#9dg)6GwLfD?V18sDQkR2zZwV6XORpHvll{3a2Cr}*j9We!pi3ypZ}s+<5Ms*O z7Ge!QUF?S`huapM{m}~Q`$?`tJz=j$4Y8nfUGyf<*)bhL7v;&nr^IfcI+W?HBlSYT z0lpvx?7qJD~ z%Wh*YEii|8oK0Yy8lkPJ_k8)K0=k3;DP#Q z7`0hj?K8Z9P?F%xOM82HsbM{@ZVS|@)Y+9Cs8gw|OZc`h`%Nq$ti4XP`wiFZ}bNECZm1bEWMdR(MEDJkHhAqVBu4hYKSaIG!1S`%B;JKjU z94W8Cic{l)6{o>L0aI}rk6y(&!;<>X(z#$V#A0ECvm0ESc0leDI&v2vHrJBRRQK8E zhUSOcp{r~u;^|;FLe(br3%O^q6)xAjn3KS{52`7Qe>Q) zD;aR_eO)Yme!0CpGF`%7QzwgVct!U+rVi^t7_IP|PL00|Ag-T_VMS9|e3WIos;!L4 z@t8QcAGHt~2d+fYwI!~AoX3}cu^NRZ!;nSQU6!2|Ypw9t>Xc>Ms>2ymGBNWktl9Q$oTBeX59g)Jgt3#=L9$1iOWc5M+h;?}Ky#EqbD3xBl|Z4q&8 zf%RQRUEi*eLR)A(%dp3WTkgsevQnuvl_;^vOxh&s*(6$E6D${#K%xaUi5eZF1vbHf z0PKDg*n~?anFsB=U?=--<}ItG4heq`Ky2HHnJwea-|*gS$<0i2kTWsjHHys&>-uq! zfpx}Q%X%-k@-_(Emo!{l-0LXr3XQhEkTzM~?E5KH=A}kK28ulHcKSPTb{pn|u>Y)c zJ+!kYVa~W$j29H9>?SWuExtXF2+3^~?0j9WN;zOQWPZ4I+~~tCIw*nx#{)5Lxnf}TXw8S zz%`;fj%}nT9e&b&0;;YV!X?M+;)&Z&f(ORa>q5qa7N4)z*YebhGj4X*+QvfD1~|L9l9d*tq+PlB`ZF z)QC8@qO2LwzX&}$6)QhTxeXLtb%pgHc+2evE%GDiF(Yi5)S8W~2JJ<&R9M)Usby;c zSh=2Ry;(=V=$}q8M%yw*?0+*35vX>-1v(DLb z|1K@DGENy!=U9*NE-hAMc}7|K=d zNtwZyacCUk7hZ;2TFrL|BZZ6B@Z@(0^^Zw{y7`e5jo05H^Ba0{Cj*Cm!N#z8V>myB zrr#Lovo(4PzAtujO@0DiO=UNU6zITyH~Rs)z9U0XefI}QVtqH2erxj6=%CsoC;gY! zd(jYfKbv}wT&CXZM7?)A2&hv;4Xbk_it3zvEKZ+EoADN!4ADN(e zS_m*xm51x-y7EkL6r|}Uz?(GP44|8)TOmxHrer{x{@jrn%T{b4&iVLx1g~7Q)>MVo zRN~-0M$od)6KBPiVDG6#*6a@}%%E_jHf3N9rs=0xgLVA*ZB=Xg?HwW>!eTPCcjQO9 zSH?3FPk|yxddzY#=|$Ugemdn^otwjvo51o6m8nF!EVi~p5q&wB>6RyI61f+UE0)72 z1tjbfptAEkP)5<8#XmNac2aTYIZ)6H<~ODAjL?u9cCi{XpW%{(e_ETtjk3tcY9w~+ zw6a>AThItk*ahDN+FV*mZ7rQy&Y=+t+tMF?(DqsEMqV2@O#@3`sQExQ-dZ1KBhlW? zM$}%P)x>U_jB_w$jMSMm`n0Oljs0D0P3+Sv<%WjnhSWwMM z)e1?~%gKV>*@3tocup4hL1|tyS-@|gBalYAe=w-t#)lqepJYzS8w#agcl65tn1*n% zi|IE62x27DZwL^?Vun!Cp@1IL=h**5AAd3+ApbWtT8AI%qulI}Cje>6^=udzO7KtvM85JI!BVtc1t#rJa>{?b;q(GU+-OKu_#Z@R>b5;Nxk@4FKDMiJ+3L?Sx{ICm$KAHIcp?m^^JMaacOA_o<4 z=4oGD0I_gmJ6Z)RHN@pw@@`lJYkl#J|96`HW!NC4lc5YB*17BPZNMXB+LLj)n{Z?` z&W(}l31i9gof|;SZkVW!49e)T5wZ7#2D)rSlDb%wjwiWZ<)j%7v|YkGiT8p}t=EX$ zBhaOrDc#%@ZWtnG+b}E5bJJ7+Aa-yO0sztOA_PF(SY{4{D{ZH~f|n$1kZ{WuRyg+x z;%q;O5CO}AfX4yrYfYab)_wxdwOngTw0o_ozP49O$^C-@DFlr-_m&)l@F&s6vi#yz znmD^P>XFv~VQJlC;KU;E*YW1Ofk(?I9i)rnY5{CD_PI3Ky({u)kRfa}e70VrH-SCv zHb!sA-XWf~Hh&Mjh`Fb9SH>Xg~V}YQa$HQ$kdSb1M zd*iG9678n@%D#R@wtbE~ZpFsTqAND$$w+8-#A7nz!BZg62k4*3;Ybn`Jq}f6Ym!xw z^ZQ0Q?(}ceY3|9DNfed$WBM*ZebHv4{Wc8hyu-)4d|<~iPR-23Wss`QoG8ihMV@;! zh2e$lMc~Q52X2lpzAtV#|ADx*`47cip~?2Q2p#7h@lD^S#!r;hhzdSYc11D5C(0t0 zI9<;8EzO_RHJ>zIW849tC-ypgWjsVfwr9gCcXR~uD!nFtK>^^|C)?jsGp}jjVdcNyi z-_=Gl-M3u>hCtu;;fHnKmg7Wz80^4`a&8Bf8hPJA(>#0V{wuBT_g_Vd^k122*nefN z$?t*(U}l{>O(cEU_rRgYv6o=o@+KnpQ`jRFs~gLK(9ZzNBvt-%Ksen|u!M8}!Xy8M zU?oksN#qOs_d%rqpI?IFd_|tG@xc8de5d6$+?NcU^l7l)0K{%FbFR=w2*&w0xpUy= z@e>EZH3vRWH!Gh1md=Xr@T|s(#OPvVS6?SmNhq^c&?z_!h`u1_V95E6fInVWz?sHW ze%%3Ma1zn^-GH-){Vze+{bta2GT;Ax&;`bya0tG;)-2RR%1i=gG`f07S>u_!#M3Pp zY8DgJNJc=em-MUAi7P2#?g_M6pnr$ey*zO0Oz4j|jK=?FnDKr5%>hb+=UnJp!2MEy z2TBS|B|O&R--35DHqHD{aPMG5?seUic^c;+I^TneTYba!kH{{KDdz{gBk!|a$UsJr z55t3zAP?s}gFL;tSn@|m@fhbtaia>5KLLp~3K8dL0(u;KBlzD8y5RJ6AXC{|96$yD z(`OM;4Oh*UuNi0#Z+*9LZwp2e-auoOZcg}hWIQz3MtQ{VU^EWDLJ%4U+(?>2v1it1O6~J`z<%BchIg?tw8@;=-FxQH5 zRY3;v=Tr))5%esG4orC_@R?+F_6BN`2M`ad5VOGk5Eahe`9Acl1?ix5MQ2xuP*Rr~ zOf}#+mzhAhkm+VHI3Cmf8O5<2ssnqYe9mJb(FrO@(CML}ZH^Y z%)d_M>oYp(p2TI;ED!8wZ3A};FK_8Kk(u0Y6Gf`Di5cM8 zCf32tGcN(|N0^BSxSlXmTH43{0Cc}*YlOi)r1~6fd{jhRqgGE@I21((*xgSWNsr1{ z&H#9dv|&&X=dWjRBaJf<2+TJOf`hw*up^10_#6!y8S&|{D_UF=C7GX{Ai zkSL$m!$C5M7M)EXx3cdv3_zZ5ShR(w%>ClV^sS`DB{65?QNE@Odk}Fm0T!Y|pM*0U z$UL=T{-VgNt+lk9@q&xptD^ZV$r+)dFV^OA8om}#Tc5OS#;`DgI?uHNi#(^tTsI1( zx5Gyne$0RO-KVo1#}p+p+B#`kM~^Au%a&m?$I&%8j`@va(TD>2r1Yut8`HwiZz56h z+X uSUYn(-MH!Crmp@9vcOKAKGnnId~!f5Tjj$06>g!5ds{8nLQv{@x?S2uHK7b zj|14GDgFi^dpvz|PGduITKNg?`$YXdiSP2=J_vEsV{d6QzJOu1jX-v9>fu6+g6z04 zNG3Z@rjThU^izmKV?df)Mt6eT8DcYHkx!@s?lk5g`Y+vtiOSXBrtKEa7c^GEFnm2V8f32eKg2iT-suQAt0Yh__PNzG*QG(}rq^c_eK% z!&^aQHz&LJ&Tl~qBRicqM3yu}mf`wwB@%I^c>{43L2>abaix&_mUtkpq)A+b3B&Yw zcV>`5f|7R=SNbT3E4E%CuJoqkN*(>Uia3cY6PTyvZq&CkS(92qJc4&ENXHVdQwj803|$B`#FM zy|azMpu2=Ko&eDisk7uT%^3Cf|k#fbqR(H zJ@!x@YHD+3|F*6;+-AG~M%Q`i++6UZd~Q!CoSz4$8Q2{(wq0X8h-JUE13IDWR29z6 z7Y1hm9Ar0I9MysqYb?tXj^~*c*#=FCqv>0*mVyRrjo?(b@fwz|JRA~X-q;zlcLq;Wrff~E$xYzK5*!Thv2A}N zj(}X-PBVAtO-Sb!!4qt;3moJldsn)fYpJqXNmtVt+}88?`Q6CC^rqgrEhNgcg>`1_ z$?iaL3}O$sEVtsz4L{fpJ`OqCNIoP}!Po;c=n?p%J-iYQ>LoH*olLftw(L;EouKZB zE+#1>9B9Cn2bjfHt*gM#q}CZwEB1?c$TnG>d>2VbnY;+AbA`3CHPk^17yDnWn1*8< zO%!!QxF--Y?BLD6-haPt|Jdj9C9uyWlH5KQ!($6bSGRz^z4sz5Xm6s5`W|}&MSCxS zOM8p2-?KNF3hccFjC^Xq-eiE)SR%C5wD?~{Jgvre&uaUSJ0mnC!Jf352+&-v)u^ef zXeSGqNlJn`DMe15E2jab(_(}}#H`ZxUJ5VkwznTP?Jb(R_GSpQH{D`;?@Jn+oc#dM zl!Aa+*yij7cednJVv!eFY)qRoO4?WAu~^fABNDQ0Fd#)aY~J(xlbjKm()tLyVUU(q zLKP3Kk4Q^PAJmnu)|EYs1Mr4YdmxE?&*}Gr`0lTwScX^Ak{(P7qjd;zh!$xw*0m6E z(&d;asW37lS|l>!A2)&mFaD$zrGWflcpx5Rka!qQ(wyaFkYGCbG_5FoNO+tZ#)c-; zbM&O!P-^G5p(0HBbt`~pC7OquryA0R9uA-&mfd(Yu{?ql#&RWbh$U&Jzu?D{$Ur@ZwYANfG&@@IXAtAn`Puq&Y{EK?3UJ)5McLym(@x3gSsmI-b806?7YA_M^9 zk1j$0ApS%IvN&Cx#W}aNp_?!53xK!m3-N5@Du3MDCkUdQi}1+Pqa|!;Wznuu*9=zE z;e>2J@~X$68X&WVZEV=N2puqdFIo|SoJ%MI=hf52qAzTvyp+%cp5=KPSnZ$jnW+hv zk-+*u?`_5IjH=w_!10v9E8t@L@|AFMSK)yjXz^Glu~DXbR{TY{raCm2c_SRbkZBJH zDGUk8Xw7yYVH8J>+fKmE?okxSyoVUP9tt zX!n*!@V1Zlmc}s}TC1{bD{e>Ys9Vrp9tq>4^CE=c`~~7FlIfALM5Y7tY{~Q}K<%ll zm1vH|M?G811&{W%V6uOuZE%=oq_HP{9T2(ei4FBKYZ+HSmwD7hLc{fO(I}P1m_T`L zMLf}7w*bqat0JQn@BfHcX=8^QAS69X^Wv&B7>x^M3W!{#UE3ie>$ElPUV(qMlH7I8 zRgtnR7Ic^MmbLR}6ZCIGJ21U(gk+}oO>nVo{bo2;tdkB>{}wp8Tk(k6xOB=*^Y!3Y z>RF_D$VO9?ZOn{L;Pg9=J0dk>&Ta5=guF5T?+gC_B+gY;SS-~s+Qc$}6#d^Lc@@HR zU?}TIG8D3XBBflHZ-4SL7!pfwOraFPkDkJ6Dt~k1bzsZ9w`i-6|u$fi@H!_tm zS#(wAFyV0wNul}56UKZr2vub2!x*e2@fg&scU-iYWRWlyfMrKFk1>R;(&d3La1Ldp zFp!F*354GH~iiUUfl(>c z)$>-YZUPbwzc0Hg;VWHWBCWrPy|!;*7)d|W0(-EIrZ%_|lulK|7tOqvl>3zsH{4Ye z>3R?xvU=hn06npX@ytC!TsJ9Qj}qkK3Qc~D2%@PB{M_ok;$DI6RT(1Gu>l@o+xE z1C`!r?2-8xV6znm`JW#76F{h=N29~al2)Gk6wiuSr%3Ola8&LE`Iq51pW%@n1(Bmh zCeg3e8Qk#2Iz<)n%7&#fUYW3QlSbD09KOJwh<7;uqLeT2NTf$C3Iv8Wv@kfvM+Y}@ zd_t=@5@EVrCO5}A$roE!n9WGvqP!jL`Vu}QHNOJT6Z;xZletOh`X)&JH_1A4lhXBV zko=ubCPnf#cGs2W?P%BcuFoF;^u&IoPo23*>G~;1{+VQ*xk>5zB}nceS!ZriB;39x z+*s&g#Cs9*%&(v^ub}Z|Ch0{doVVaGuY}>|B6!#}@M_}*094v`8jkGZ?G#^~^c1%< zz?xcy-X&?sWeLCbHELVUSB@OPJSFLgEJXK#*T!N8$;58+g@{>}0D58xJmpKIv73~xWRRR9Sr=zgy2^s&a*`{E>m~*Dgk6Wox_Rd^ z28ti+iAvXJZvZ{9K6sjNN$IKzlB-G9;gZtTH%P7_S%*tXS8b4-COJb~Hz{3pL2^Hm z>xE2;R=L)1e+Nqysr%32b*a$n1 zs(PdQ*pp^Y!kL3MAw9~if1)h|a8HK$ros}z(RKQjpB`n|vVs@TTu+tJmO&7RbH;7* zVUNw|dh^atvx;na;Tx!~M~k1ZxY3#w4(jHpoU6ukM0YwIP22VGE&bcdC{lJPDfmrU z&=H_vMQ#DDy^yB!2kuG5fcvh9_rR0Ux#-onYFrfS&-$}9v~gT@wzlhjtS^(ydLMwE z*!gAnMjt}cc9Q~o3;69AAPZ; zV7NkyP1YN+Nqb*UY%;D_MkkBK8auo-x$A+T_&-s+?gEg4*wYtg7Pn;e4U#~sjlXkqR_kEO}~2kU{8L1RkfC1Uo5|0*ONiH zm-~8?Qr*|+-QU%_zkP@&w|`Y%Ew_KM-1@Gkf^x6$<&sieW8@BS z6wCGV^V323SNirKrMlMGW1wq~f%ajZ{DD=qTK>Rd`2)J13Cg|7*PE2;w9$KztM?## zxhHo}Ra(m(0J*L;!^< zU@C%hZa)8{Apb^1{EM*y1t{#w_4p#r6u_9w=$tB)X&wbTKLHCl-6My*9kVv3O?@Vd zVm1>on-_@LqJTr6p42&==O+ESBm>$%S>_m{#SHToJ)`|;?AXb?x4^5Tp#{+U#mav z$e4e*#otAEN^eE`JqdpIfM3iBjKDBn7R%}`1_#Drsx9h(Q9< zO#EdGZbpP7uL&8A23U`Y25N`?lIR!iz#&S4kk^i}QDKUJj$y1=bW}7F<>+trhqeh*JAXbm6GCtBD^hQsPgSbF2n@fQrK zm1UD)FCJ0lA!tk>J;utku|m7U!=BJ5lY+LEvlWyoilm?)aKsu9Z^Zf@ zu`y(Fte<0}{Nda%M6)$2w5X00hlUxsOa~WXRz_rqElpYc z8Mr5@`9G1gRykS9(P=&xVeBn=kQPZr%iN^UL)Che+DnRcj8e-~9v$IV4Q~u=w(895sZ&uo&VJ$lyCTu5}s;1zUuizRYfBW;?$!V;KS0I(!x8#>|qY&wzr96HhbwsbJU zxt+Mt{9JKk`R(DNcq0yRnQ&jq@+~uP5(OMNhKc!BeEQELW300c?M|!{r;wyNaIFrJ zW%{)|I|SpMe$}t*wS-h_&JN&{IY=!a)86(1MxPia%ly9U3R4DGi^C++3p0%{S$~>v zI2;-b=S_sewVqoboc$P%462FZ$ky%DKbyfPeFvcOSXhsxC2SmxhL4tB_5z?=-@;zj zUOnk?IIB=EBt$);*Aey&tv61p-jKiKXd%3q#W*_xl*KqZ5r@S%q%qzJxlb4Q3VlH0 zuofp7%S`+ul$2#hA_H3t>8*2-Ja>`juJYVXp1aF)4?OKQsGFBSI{9psMIr)9Qsox| zncV^Fuqe^l6Avu4BX|)EX0Utt*u4Sfmf(@!he+&Dgd?keL^1J-C9*hggF>_@O9#jN zf#f|?R&LR^tTKap5^gNPP72m7ha;K}(?a5|*9Fm3{<=QhOt0}pAR?=s}LD+4ks%XId*%j9Wa$JIY*Gj zG8qoBrz`Ec@lN)zvr;?}#%ME|6bV;s>zxlIf-yax#U<L99U zeCzPIM^1-F5*G8~ON(*QA{do0u7<I5eS1m!@^;k~C532&nX2t+8RFCnuN$Yqz3q zXSi2S_owV*Xb5asWTA@L$KnmAs8T%L^qY%o_bX;3ePC#M*2P^GFyak))?Mo? zwp_dXuyZPSgKCz@r<~!x9be}UrD8lewS!!{Y5O0v?)ZkC(;%oQ!n%ztv|Cv0_FM6a zIH#9rR4PZ?f7!bAk;U3Y>Ui;T?eFHR-$=)>bH@Kwyja@=6KrkqVm|*(JD>TV=%e>0 z{Fa@iH3+J+R{JoYV?+Bo^Evmj{3mv%oI}GD_(HGL|-9;S(KGA^DCDf@V^IZZ$tOpSd)5oVBmViCr+Pb$K+*(bZ0+(bYe z$B5;JA&9C-|9lhN@tD{Q;q>7OGiejGyS#ByET!xu4|?&Ky3uD0i_-St;HkpQ)g;Kw z4TF}|y)geX4sUk1A#GGjI>L}PE+wrrq{*eEBMoUvDd{Lfnp#Ra+K{G|l8!N?O-e{r zFpI>vf4dmRyfsXk{2DgxN-9+(3lk^VP>?RkhJqwXHWZ{rvY{X$V#$VnnTFO(y4H@s zuK7k<_*m$K>GugGDpkiC+;j0`_B$Z!SwI|oBZ-0&%6y!eV~g3xL7L(7N4T-PB9^gH zPE*aVg`HNoEgAcGaN_P^yhy@EA~P_g*KD5MsVt7O7gxII8JuON-`In$ zm$S_HUFr2PI+@!fSEo5t%>0zLN2A}L86Az){uV!u;#@bs*EjOzH^^ADA3z-f;J7ZY z8bBW<8d{s5e!)O64iL-yo}WQMKMbet_xubE`e8V~>!&T~hv8@g|3-W!1^qA_?dO=G zPd~-qr<2Vf^cRyo4DY&&H6LS+kA8e|Dd2J-Wc=V&pEUikFKpc$F004E{`N^)QplT2 z4~^;V!e305j<^3hwt$53OiTM(wEgxEPacDnzgCBdQr(pKk@@Y-uE)0~kFmn~4ZQD9 z9y7q@mDfneeBWO?&Om1#;d=GMP)~;qDHPfu8Hq%+?!Mr*WF*`k3D57yR=CJ7CWqVS zr(ADSBJ*P%jWLVw2<@fG?e>-^sbxS3P+mal5DZqsCv`BpV(UdOoUqgRM|u7UPkRPD z>wFxRZ*ZLFfbov85i7DjW-QhZN3xM{wwHzR{xQI{0oUf@%3|?$Ppt*z37mTsA6?~Q zLX8#Wa;s!4-hoB+ZfxF~yndo83ZDzIeX61^^ORUeykkKH0&cJ(WBX$ktSY(yLB)qK zIkQnX_fJ{cUY@nXk+C@2l4Q>>&``Mm)n^J;cN=ou6ljLUKI^u?Oj=-uWp52P%PqH*~0d>@laEirow%95-k6roxe7(w6eX!Z>53V{+m=WV|A#Z&OOaLY>z<;h=o2UdM$OxK8f)C zNO9mdF2JJ;n$pvY$W9L-dv`S>i^=+-;Q)GKix7Bj2-g>NlVb0Rh}dUCY0UQS3|cqY zWDYm%?frF2#Qw16Veqy^C>7| z%JbDwkU#Tjzv@z+mx_;foNDwm)x85DI(PDM7asO`(Ef7rxPqTq3)79{WQbw=*#H@r zxfY|eSn(msfnim^PcZ{@YD6o-J&H5OcwH8%jz6Uzf?C8ogMA z)B|1FRIg5kG7UotDgA}gU)?}TwvaMFC2eE z6qY>UqL@L*$ay8T^?We=40I7FV zLxsXjbf}?B>tSe>npUYW4_Hj=t!cg01k$Pk{`zQIAGH-}H33?crd27dr4Qk&PU3CC ztJbt?g?Zy*T3=1;t1$jjtV@li)u=Ag1_or-YFe#Ax6Vrd6CN`W;+|G0(8b{~D}k0# zkC0~4$M|D@0Ne2&1r)KhH(T97Z<7MF;hHvFeN#$n*0g4Yo?@}Ttfpnv(o$NBrnRW6 zN@=Z{)~ensrH#X&{`SfPe z)mW@eduvnIfELVRqqVouLTacFh#aG7V-!~R78kq?G;IU*HfcdikJYrXY9Pk`i)iCC zZJg>TrH$9L@e1D?#r`(bv<($52PmdZ(6kAv0t@eo!kegR6V;Zbv`LyaNgZ8E+ep(k zQrKZpEOTQ`+gM>wNHJ})rcG8GVy>)6mnoVyMJ*#OSY)Sa+Ej(v8LxPmQhl1j zaClJ>+C-B!QRv{{dX&QIc2g~JQ*~j1L{q#r)3nXhl?5~t+U8p1=IX|h(6-Q|Ez}(# z1+(9DEpfWKmlA_j$CjG5rFx3A-T^IVXxa?*I%&adyOj=ZEAU6XXX?soDUTqFiuvalpljf-{N__30 zNjs=5OMJC!QoEW_Lh8_@4z(3X!K^hOB(y#A)ixkC3=gEt0!>?>4kaxZ>xG)OP@P8F z(15=kHElcH__e+G!%fH)N`N(8|$65x1H7V^fn?Oa*?JjQd|wzP#v)3E?VR+ zsv5MQ$X&I!T~%Ltn;7u6oA$Pwngv=gZFbkB-PLSgqS1d3P1-}v0V!yb#X7LXYAypa zb+hrdr}nm|T2kU|FYRqFwJ*Jyey_>Ndu!U>>Lk*F!7b6WCF*k0f<cvvpewwzQ!tLr_5*R%lO>@+@qy?+P{WWcWl}druH;}9cXxag4 zAZZl=+JTyOplT*JGKtt|Zrj~=YfMX@{s2OKFE{+Mx=U0(l)KBl9p#J52q#l(t;cmaA(>GaX5zW+!M+vs2v; zTCk(FLX%b~T)R<}YxA0vSNDSytWml&sY~I;h$4Z9YtrHBai6qOzBp7jzJx%nY7$7{ zY;)J|F`D5B%~0K>2&q@W;ILbnSaT3ko0G$oe#3E! z$3aNVBZv96GaRRS9E8*&a+o&5aQwmJAf%R)!xR|9ahk_LNF7NI(+(Jeo~}8NB!m?9 zak*L6h&aO&K}cakmKPNxg8L_R_9Uck0!J`av9{DO5K_04Fr4i%5K_05Fr4Et5K@0F zVc^)6)`5_^6AY&0870s27znAmN*K=f7znAmeFkF)t{&8BN=V%U1~*Mj7=Q9a5K>Qp zBba+H@E8cG=fDuO)P)`cA@u?nOk-n$z@`clPeSTtFa*={B9DQPT3y0$vByA2y;q{c zB_0DI^#K@yro7Z+Af!GlVYtj=Af!G5LogPXdklosCnXZD@E8cGPfHlC^cV=K&q^4s z@)!uI&r2At_817Me}N&G7T0(Tgw&TM41e($2&u127_Rjg2&sRAA!y0#JO)DQ+Y$-a zdklos_azcIu%`1pA@xIvgd05uLh2_lm^^8+HD?)gwkD)P<$fh%^4!gy2tq0ej$m@$ z;xQ0Xp4%1>A zhC4h4LTV%!f~j$*$3RG}4~AflxXWW8q}sq>Dr6JH-5vuWHMS&(dprh0YFtSWfAbg! zsSQgc-0LwAQWHuf+~+Y6Qj#y<{2&r327@qSO2&r4aV9JJx z#`Bs15hbK<2ZQ@9WH?^%I0&hS$r0?Wyy$TdQqL4{7*o8YIbaGx>Xi~TUiL%~Qm;}( zFsiS3A_%E3d=Vy$e|QXp)K_3I6^V(+tC|5(C8U027{Q3V=5Y{G;RzV@* zA*6bPBba1wcnpM8H5h`qd$q?vNY#NMn0eQD420Bx5(#g5420AWFa-0}TOI=;H4F^F z&c@pw10gk{M2B}g212T>B#3uC2106FiG=q&2106L3B&sy10gjT3_(ME;4u(Vn}H!% zMnBXHNKZm)CK%k|FO%XQc^rfkuG=e4&yO_+(vy(F*#SkV@lTI|kiw>SH&>Y)@rlPk zNMU_qQEGhZF%VK%Ian0LXC4C~g*9_UmiXLbAf!$$k?=2%fsi_*gy9R1fsi_UY5S>|MnONsq4WI%n{#u420CJB@({# z7zn95N*KQP7zn9*N`m;oV<4m+D3S1^$3RFu;xm{$_mgHot|X+M0E0VeXgGfMI0&iN z$q}rSfAKg7sjtal26s%Z>(Ly@w}ccoTLpVfzj_RWRKjO4T7-JJ{YOHo4;YGS!(JW- zA=R&x0|(-mJ}4nIq?9ArjPXr;g!WUsu z6$c}lFbJuYU@#fOFjRO9gw#=B2sR!#ZO%v_q>ckaP>0?g10i+1&tRg_M>8NAgwzRO zaHlbi5>=iELh3AV1S@77M@A(ef{^+XMFbn#z8(i5b$LM`MvWSegOIwB9KmrG93Eyu zA*Ajq4F%_l84g0~L2?9(5zZJh<|3q4fg@-xE??LAhLC!$gaHRq83sb?c`yW%tlncF zq+Tpxz?n@(0wMLX&tOb}lXJ)ba}rYj0E62_Gbw_zfQ$%2>O*jtY+*#;kQ^g|kotro zf+@na89ER`>Kk&H*=rMs(i|v4gw(I#2qrrhYG@IJRIIljh!Mf{8rqtKRBvzudrw@o zp&1CNYA~2mXd=S38#)X^s*Yh85rzY26&MaeY7{w4#xYvp`~edPAvF;k!Io;6$3RF; z0Yk7S$;I(n3qoo-!!QH$CXC^p2tsNBID%?oFS8LrNbN)srphuA$$A`w)Dm(8^~9ET z6A?n{Xg?66MXSd^NF7(gFv4RXq)zl1j1pWAqhm@)okAtdWR>Aq-{T;pZX$ z4X|R%h#;gY!4Wh#7IPT}LaHwqf`uLHy9@&%RSSk-{k);aKuGliL$I0QA|qV_2&smW zASQYYgw$X#1eKiRF%VKsUV%M51dd>OP4h$$Qi~}fI9k7n$3aLPM2_Ip#-<(zA$1Hng0Mvjj zW}6uv10i)oi4t3B1}H&D-9#mV#+vDI5K{M%BRF2MwdQ~+2&rem5zJY$JO)DQMKA=_ z+{R-dr2YYhU=uN0GeAv3>P;#UtT^X*A_%Fkd=bW&+jnfPBUs87dLjs^1r!mS@!HYjAf)yoN3cQN zNpm0<Z^Gh)J`ZJqALmvxH%h$3RFO0S40#GcnyoGayL_sg+bBsOGL72O)JjIfBJ- zH_ZVx38{<05zM~3dklos8crP?yWfx4?^k{a0E-)5>EsnwT2>s5!uHRK}dZIj$r;>>WLtvexitA z&v;)?1R+&j?TIjI?&mQOQkfD4$73L*2KWrd6#Hui7>ke^42Gf>`v6Y_AvFRV!O!3W zJqAK*tj}P=$Y}jPi>jUK}gLdNANr2V9kLfBcygIQR5I# z1R=F|K_JGQhk7CisbwW14)a71QhACnD@j5jt~uWx0|6NGtWwKCKRJdS0^M9|u1*8z z$lJs;c+h5kE$Mo~G*e>cC2-)TNKgl5#f<0yLo=EGf%|Hi#UraXd zQ?#2fZXe^;7`M*2ZyA2yJ^8cSF8c0~8#gX?TS5~zB=6zkx z|2^MxtBza!%A1d${O2QIKkfAsk9zloS5|+q>h)J2KK+zGJaOz3=brV*J0E=d=-VHC z^y8&}yZD#eez^R@58i#}-cR2D?7Lg8yXmtlKfd#cV~#lXndhH6`-Kai`umB;{ORFG zUqAB6Bi}rt`}pHl9ewJtr@i#uC%61?%e$Zc^~N(UzUtOn-~0Z@i$1=r=aP%BxccjB zzWn678{Xd`o>)*>T|TexPN9Vh7VaFKHEsIBLDqoHtyu%AHfx`{#oqhPTD0qumi31m zI%-AJ^254znYeV(e#-S%rckW{s9COObr;j}Kq-&16@S&B*U3lKfe?0k(+<5m{x7>dFRiFO!!RxlJ>Oqsj$L9@5sYT0)4=1reimP*#{v|nd_&t3Lu-E8qe({|f$uPt+X zEuFo8=V5!ajc9Gz{=ocUGX^H3{Zq+sthq88ZrC(lTbUl%P!Zj+s()?u!2Fie57}ox z%SIC$hc@mOU$3pQdGO?+sqyQN->@NDw}D+Ve(=O+o_KB5DW{+Ihxgw5{FxV@c=+-2 zAAj|gS6}=5jW=F=>9oJExqtOFAAk1whi_l|$>*Q`>+2Uk_~$#n-u4@wTTiImcwk$iX49r{@0Rr@HP___4<6ByZRj() zrLJXMLwRD~=CS=Jj&Dp?4f^!+r&c}v(K{di{SQBW_0XC3zxDd3-yZ+wM@K*Q$tOP^ z_4TUmp2t3X*^#9}QEWoO2p2t6XJ81FJ2q<SQDq^>yuif3<-QC@R*!>!>@t>Jd+wC4<97~SynOS5obkh#e4LxNy)<)Va1opGgp6KK6262@$Z&R{IP!6u*okcY+tf^%I4jR zH)cQC(IC8TodIdB>c%yRkFIOmzvY0&YE}0}F%9a4^r;<^*sgZd_-=!e;^I?!W~BD* z7T-T5J)>{+h~!>raT$GjX4LJKb%@N zIWs2yvvJ(aaT{k0*|TTKxFI`Yd-ce2?9zQ;SbU%GxcJ6#z0$geHjQcCEv