{ "source_base_path": "C:/program1/HiAPIs/HiAPI-docfx-2025", "xrefmap": "xrefmap.yml", "files": [ { "type": "Resource", "output": { "resource": { "relative_path": "index.json" } } }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Cbtr.CachedTris.SweepingMode.yml", "output": { ".html": { "relative_path": "api/Hi.Cbtr.CachedTris.SweepingMode.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Cbtr.CachedTris.SweepingMode", "Summary": "

Defines the mode for sweeping operations.

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

Feature-cached triangle for computation.

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

of grids.

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

Encapsulates cube tree construction defect results,\nincluding both defect data and visualization drawings.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Cbtr.CubeTree.DefectNodeInfo.TriWireInfo.yml", "output": { ".html": { "relative_path": "api/Hi.Cbtr.CubeTree.DefectNodeInfo.TriWireInfo.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Cbtr.CubeTree.DefectNodeInfo.TriWireInfo", "Summary": "

A single triangle-wire relation entry within a defect node.

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

Info for a single defect node detected during cube tree construction.

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

Interop struct matching C++ defect_tri_wire_info_interop_t.

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

Info for a single node with inf edge_cuts, containing box and edge indices.

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

Interop struct matching C++ tri_wire_relation_interop_t.

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

Delegate for handling difference responses during geometry comparison.

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

Cube-based data structure. CubeTree has high performance for free-form geometry manipulation include volume removal and addition.

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

Mesh export helpers for .

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

Represents a file containing cube tree data.

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

Represents an attachment with a difference value for cube tree.

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

Cache for geometry boolean operations.

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

Enumeration of geometry boolean cache types.

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

Interface of .

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

Encapsulates inf edge cuts defect visualization for a cube tree,\nincluding defect boxes, edge segments, and flag drawings.

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

Represents a stick convex initialization object.

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

Represents the result of a volume subtraction operation.

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

Cbtr un-highlightable pickable.\nFor initailizing purpose by .

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

Data about the adding behavior of .\nThe dual of .

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

Data about the removing behavior of .

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

For Internal Use Only.\nRepresents a wire cube for display purposes.\nThe edge index follows the C++ cube_node_t pattern:\nedgeIndex = (dir << 2) | (th1 << 1) | th0\nwhere dir is the edge direction (0=X, 1=Y, 2=Z),\nth0 is the position flag in (dir+1)%3 direction,\nth1 is the position flag in (dir+2)%3 direction.

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

Structure representing a node with a difference value.

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

Represents a leaf node in the anchored collidable hierarchy.

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

Represents a pair of anchored collidable objects for collision detection.

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

Collidable Stl.

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

Collision flag.\nThe definition is the same as native collision_flag.

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

Represents a pair of collision indices for collision detection.

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

Utility of tree grid related structure.

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

Represents a function-based implementation of an anchored collidable object.

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

Interface for objects that are based on anchored collidable nodes.

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

Interface for leaf nodes in the anchored collidable hierarchy.\nA leaf node represents a collidable object that doesn't contain other collidable objects.

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

Base interface for anchored collidable nodes in the collision hierarchy.\nDo not inherit this interface directly.\nOnly inherit directly from and .\nIt is acceptable to inherit from and .

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

Interface for stem nodes in the anchored collidable hierarchy.\nA stem node represents a collidable object that contains other collidable objects.

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

Collidable geometry.

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

Dont inherit the interface.\nOnly and inherit the interface.

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

Interface for a topological collision arena that manages collision detection between objects.

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

Interface for collision index objects that provide identification and anchoring for collidable objects.

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

Interface for objects that can provide pairs of anchored collidable objects for collision detection.

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

Interface for objects that can provide a collidable object.

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

Interface for objects that can provide pairs of collision indices for collision detection.

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

Interface for objects that can provide default pairs of anchored collidable objects.

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

Interface of Getter.

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

Represents the result of a mechanical collision detection operation.

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

Utility class providing methods for mechanical collision detection and management.

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

A wrapper provides native tree-grid-based structure.\nIt wraps .

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

Represents a collidable object that is associated with an .

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

Defines a collidable object that has an associated .

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

Utility for handling color. Includes handle of RGB and HSL.

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

A color guide that manages a dictionary of color guides and allows selection of one active guide.

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

A color guide that assigns colors based on discrete quantity values.

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

A color guide that combines a filter color guide with a dictionary color guide.

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

A color guide that uses a function to get a numeric value and maps it to a color using a range color rule.

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

Interface of setting color and the rendering priority.

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

Interface for objects that have a color guide property.

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

Interface of .

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

Interface for retrieving a range color rule.

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

Rgb getter interface

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

Interface of.

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

A color guide that provides a constant color value.

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

A color guide that maps numeric quantities to colors using a range color rule.

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

Defines a rule for mapping numeric values to colors based on a range.

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

Ratio-based RGB function enum.

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

A simple object contains RGB value.

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

Utility class for binary I/O operations.

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

Utility for bit control for integer.

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

Timer use one task and delay each event call.\nThe delay time is , counted from the previous trigger to the nest trigger.\nThe first function call does no intending delay.\nIf the execution time is over the , no delay between the triggers.

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

Utility class for byte array operations and memory size conversions.

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

Utility class providing extension methods for dictionary operations.

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

Utility class providing extension methods for enumerable collections.

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

Utility of Fixed Size Concurrent LinkedList.

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

A singly-growable linked list that can lazily materialize nodes\nfrom an source.

\n

\nWithout a source it behaves like a regular append-only linked list.\nWith a source, nodes are pulled on demand when\n is accessed on the tail,\nor when is accessed on an empty list.\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Common.Collections.LazyLinkedListNode-1.yml", "output": { ".html": { "relative_path": "api/Hi.Common.Collections.LazyLinkedListNode-1.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Common.Collections.LazyLinkedListNode", "Summary": "

Node for .\nAccessing on the tail node automatically\nmaterializes the next item from the list's source (if any).

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

Utility methods for working with linked lists.

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

Provides an enumerable wrapper for a list that iterates over a specified range of indices.

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

Provides an enumerator that iterates over a specified range of indices in a list.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Common.Collections.ListUtil.OuterPolationMode.yml", "output": { ".html": { "relative_path": "api/Hi.Common.Collections.ListUtil.OuterPolationMode.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Common.Collections.ListUtil.OuterPolationMode", "Summary": "

Defines the mode for handling values outside the range of a collection during interpolation.

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

Provides utility methods for working with lists and collections.

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

Specifies the search method to use when looking for values in a sorted list.

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

Specifies the seek direction for sorted list operations.

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

Utility class providing extension methods for SortedList operations.

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

Represents a sub-list view of a source list within a specified index range.

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

Thread-safe List.

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

Thread-safe utility for measuring and tracking execution time across multiple tasks.

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

Utility class for console window operations.

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

Internal Use Only.

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

Internal Use Only.

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

Utility class for parsing and processing CSV input data.

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

CSV output toolkit.\nToolkit for getting Comma-seperated Csv lines.

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

Provides utility methods for working with CSV (Comma-Separated Values) data.

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

Object that can be two-way converting between CSV row.

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

Interface of .\nIt suits for CSV output.

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

Declares one culture's text for one vocabulary key on the member carrying\nthe attribute — the static wording of command titles and labels, owned by\nthe declaring library as a DEFAULT: a GUI layer may override it or add\ncultures the library never declared (see\n), and a culture left undeclared\nis not an error — lookups fall back toward the English key.

\n

\nThe key defaults to the member's own display name: its\n value when\npresent, otherwise the member name spaced into words\n(). Set to declare\na word the member does not itself name (a shared switch word, a mode\nlabel). Apply the attribute once per culture.\n

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

The English culture the engine formats and parses with, and the one call\nthat pins a thread to it.

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

Utility methods for duplication operations.

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

Utility class for enum operations.

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

Run enumerable with , and etc. functions.

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

Event arguments for when a file processing begins.

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

Event arguments for when a file processing ends.

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

Represents a character-level position within a file by file index, line index, and character index.\nAll indices are 0-based.

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

Represents a character-level segment within file(s).\n is inclusive, is exclusive: [Begin, End).

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

Represents a location in a file by its file index and line number.

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

Utility of .

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

Utility to manage files.

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

Interface for supporting file change events.

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

Interface of file line.

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

Interface for a character-level position within a file: file, line, and character index.\nAll indices are 0-based.

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

Interface of file number and line number.

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

Interface of .

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

Interface for objects that can provide a file line.

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

Interface for a file line with associated file and line index information.

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

Interface for objects that support line change events.

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

Represents a file with an associated index.

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

Represents a line of text from a file with associated file and line information.

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

Represents a character-level position within a file, with associated file path context.\nAnalogous to but at character granularity.

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

Event arguments for when line processing begins.

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

Event arguments for when line processing ends.

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

Interface for objects that provide an abstract description or note.

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

Interface for binary input/output operations.\nExtends to provide both read and write capabilities.

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

Interface for objects that can clear their internal cache.

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

A culture-bearing vocabulary commands compose their titles and labels\nfrom: it maps a vocabulary key — the English default text — onto that\nculture's text. The CALLER picks the source, so the presentation layer\nowns the language (no thread culture involved); the command keeps its\ncomposition and degradation rules. Presentation layers can implement\ntheir own source or take the engine-default one from\n ([CultureText] declarations\noverlaid by registrations).

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

Interface for objects that support deep cloning/duplication.

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

Interface for retrieving a quantity value using a string key.

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

Interface for objects that can provide a name for selection purposes.

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

Interface for objects that have a name and note property.

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

Interface for objects that can specify a preferred file name.\nGenerally used to suggest a name when generating or saving files.

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

Interface for progress reporting functionality.

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

Interface for objects that have a source file.

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

Interface for converting objects to presentation DTOs (Data Transfer Objects) for JSON serialization.

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

Interface for objects that can update themselves based on their content.

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

Interface for retrieving a URI string.

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

Interface for writing binary data.

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

Represents a segment of indices with a beginning (inclusive) and ending (exclusive> point.\nUsed for defining segment of data in collections or arrays.

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

Generic version of that works with a specific value type.

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

Converts dictionaries with string keys to dictionaries with integer keys for more efficient storage and lookup.

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

Exception that represents an internal error that should never occur during normal operation.\nUsed to indicate programming errors or unexpected states that require developer attention.

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

Utility class for method invocation operations.

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

Helper utilities for reading and writing JSON files.

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

Delegate for actions that accept a merged cancellation token.\nThe merged token combines the runner's disposal token with an optional external cancellation token.

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

Provides a mechanism for running actions asynchronously in a loose manner.\nOnly the most recent action is executed and previous pending actions are discarded.

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

Utility class for handling manual and documentation files with culture support.

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

Utility for bits masking.

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

Lightweight that delegates to an .\nUnlike , does not capture\n\nand invokes the handler synchronously on the caller's thread.

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

Bootstrap theme colors for UI styling.

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

Classification of an — the “what kind of concern” axis, orthogonal to the\n importance axis it pairs with. Applies to every on\nthe channel (lifecycle / progress notices, configuration checks, NC-pipeline diagnostics, …),\nnot only NC messages.

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

Debug utility provides functions: pause process, count execution time and show the count.

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

Provides utility methods for handling exceptions.

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

Common contract for a single reportable item on an \nchannel — an NC diagnostic, a step-anchored notice, a simple message, or a progress\nfraction. Consumers (GUI / log) treat every kind uniformly through this view, while each\nconcrete kind is still stored by its own owner (e.g. NcDiagnostic by\nNcDiagnosticProgress, ClStripPos by ClStrip) rather than being mixed\ninto one shared collection.

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

Marker for an that is itself a container of messages (a batch\nproduced over the course of some scoped work) rather than a single leaf notice. A sink may give\nit special treatment — unrolling its accumulated children, in order, instead of storing the\ncomposite object itself.

\n

\nEmpty by design: the contract is purely the marker. The children are exposed by the concrete\ntype (e.g. StepScopedProgress.MessageList) and drained at the point that owns the\nordering guarantee, so a consumer that does not recognize simply\ntreats the composite as an opaque .\n

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

Utility class for displaying messages on a message board.

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

A minimal of that buffers every\nreported message into . Intended as a per-call / per-request\nsink: a caller injects it into a have-both function (one that takes an\nIProgress<IMessage> messageProgress), runs the operation, then reads the\ncollected messages back — e.g. to return them in an HTTP response so a REST / AI\ncaller sees progress, success, and error notifications inline.

\n

Unlike the session / strip sinks (SessionProgress, StepDiagnosticProgress) it\nfires no events and holds no session or pipeline state; it is cheap to create and\ndiscard for the lifetime of a single call.

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

Enumeration of common message types used for system notifications.

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

Extension helpers for reporting records onto an\n of sink — the -channel\ncounterpart of NcDiagnosticProgress's shorthand methods. Every helper is named\n{Category}{Severity} and is id-first; the structured id is used for\nfiltering / suppression. All overloads are null-safe on host.

\n

\nEach helper has a {Category}{Severity}Fmt sibling taking a\n: it keeps the interpolated template and values\n( / ) so a client can\nre-render the message in another language, while the notification stays the invariant\nEnglish rendering. The sibling must be opted into by name — an interpolated string literal\npassed to the helper binds to and is not captured.\n

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

Importance level of an . Combined with to form\nthe full meaning (e.g. Validation + Warning). Promoted from the former\nNcDiagnosticSeverity so non-NC messages (simple notices, progress fractions) share a\nsingle scale.

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

Delegate for showing message board notifications.

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

A plain with no anchor: severity, category, id, notification text and\noptional detail. This is the default carrier for ad-hoc messages that have no other home.\nWhen step context is available, a step-anchored decorator wraps a \nto add the StepIndex / SentenceCarrier without the producer needing to know it.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Common.Messages.yml", "output": { ".html": { "relative_path": "api/Hi.Common.Messages.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Common.Messages", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Common.MinMaxUtils.IndexedMinMaxPos-2.yml", "output": { ".html": { "relative_path": "api/Hi.Common.MinMaxUtils.IndexedMinMaxPos-2.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Common.MinMaxUtils.IndexedMinMaxPos", "Summary": "

Represents a position with an index, key, and a range of values.

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

Provides utility methods for finding minimum and maximum values in collections.

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

Utility class for handling object names and display names.

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

Native implementation of the progress report interface.

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

Native structure for progress monitoring.

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

Delegate for reporting progress from native code.

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

Represents an entity that can be controlled by the pace player.

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

Controls the pace execution of a task.

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

Editable pair values.

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

Parallel bulk reader that provides efficient data access with caching capabilities.\nManages reading data in parallel with forward and backward caching to optimize performance.

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

Parallel bulk writer that efficiently processes and writes data in parallel.\nThe writing data is buffered and processed on a separate task to improve performance.

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

Delegate for reading a bulk of data from a specified range.

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

Sequential bulk reader that provides efficient data access with caching capabilities.\nUnlike , this reader processes data sequentially.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Common.ParallelBulkUtils.yml", "output": { ".html": { "relative_path": "api/Hi.Common.ParallelBulkUtils.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Common.ParallelBulkUtils", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Common.PathUtils.ExtendedNamedPath.yml", "output": { ".html": { "relative_path": "api/Hi.Common.PathUtils.ExtendedNamedPath.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Common.PathUtils.ExtendedNamedPath", "Summary": "

Represents a path with a named base path and an optional extended path component.

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

Utility class for HTTP operations such as URL validation and content retrieval.

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

Provides language-related utilities for path handling.

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

Represents a file system path with an associated name or alias.

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

Utility class for path manipulation and management.

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

Represents a progress report implementation. Also exposes an view\n(explicitly implemented) so a progress fraction can ride the unified message channel uniformly\nalongside SimpleMessage / NcDiagnostic: +\n, with as the notification and \nas the detail payload.

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

This cacher suits scattered IO with repeatity.

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

This cacher suits scattered IO with repeatity.

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

Range from to .

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

File-name convention that marks a shipped resource item as a system-owned\ndefault: a file carries the token before its final extension\n(AlTiBN.default.CoatingMaterial), a folder-shaped resource carries it\nas a folder-name suffix (MachineTool/Table-B1.default/) with the\nfiles inside left untouched.

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

Provides the relative folder paths that make up the shipped resource tree.

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

Utility class for working with resource managers and localized strings,\nand the home of the attribute-declared command vocabulary: the\n declarations of an assembly, exposed as\n“type/member + culture → text” queries and as\n instances, with GUI-layer overrides\nlayered on top ().

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

Block the thread to the given delay from the previous block.

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

Represents the result of a search operation.

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

Represents a sequence pair containing previous and current values.\nUsed to track sequential state changes of a value.

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

Utility class for SeqPair operations.

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

Configuration for server file explorer functionality.

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

Provides localization functionality for strings using resource managers.

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

Utility for managing text.

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

Utility class for Task-related operations.

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

A utility counts the average/total time consume between the areas.\nThe count of time consume for the given key starts at the first time (and the odd time) calling ;\nstops and accumulates at the second time (and the even time).

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

A class that combines an XML-serializable data object with its source file path.

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

Interface for objects that can be serialized to XML format.

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

Interface of .\nWhich can be represented by a single .

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

Carries the API version read from a project file's XML attribute\nthrough the deserialization pipeline via the\nobject[] res parameter.\nConsumers retrieve it with res?.OfType<ProjectApiVersion>().FirstOrDefault().

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

Delegate for setting the file path during XML operations.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Common.XmlUtils.XFactory.XGeneratorDelegate.yml", "output": { ".html": { "relative_path": "api/Hi.Common.XmlUtils.XFactory.XGeneratorDelegate.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Common.XmlUtils.XFactory.XGeneratorDelegate", "Summary": "

Delegate for generating an object from an XML element with relative\nfile path context.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Common.XmlUtils.XFactory.XmlExceptionDelegate.yml", "output": { ".html": { "relative_path": "api/Hi.Common.XmlUtils.XFactory.XmlExceptionDelegate.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Common.XmlUtils.XFactory.XmlExceptionDelegate", "Summary": "

Delegate for handling XML exceptions during generation.

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

Factory for generating objects from XML elements using registered generator\nfunctions.

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

Utility for managing XML.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Common.XmlUtils.yml", "output": { ".html": { "relative_path": "api/Hi.Common.XmlUtils.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Common.XmlUtils", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Common.yml", "output": { ".html": { "relative_path": "api/Hi.Common.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Common", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.CutterLocations.ClPath.ClCircleArc.yml", "output": { ".html": { "relative_path": "api/Hi.CutterLocations.ClPath.ClCircleArc.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.CutterLocations.ClPath.ClCircleArc", "Summary": "

Cutter location path of circle arc.

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

Cutter location path by linear interpolation.

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

Cutter location path.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.CutterLocations.ClPath.yml", "output": { ".html": { "relative_path": "api/Hi.CutterLocations.ClPath.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.CutterLocations.ClPath", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.CutterLocations.ClStrips.ClStrip.yml", "output": { ".html": { "relative_path": "api/Hi.CutterLocations.ClStrips.ClStrip.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.CutterLocations.ClStrips.ClStrip", "Summary": "

Represents a CL (Cutter Location) strip for 3D display.\nThis class manages the display and interaction of cutter location points and lines.

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

Represents a position in a cutter location strip, containing program coordinates and state information.

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

Delegate for getting RGB color from a source object.

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

Interface of get CL (Cutter Location).

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

Represents a simple cutter location with position and normal vector.

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

Runtime rendering data for each iteration in rendering loop.\nIt manipulates geometry transformation, such as moving, rotatingand scaling.\nIt also deal with color and picking.\nA bind_t object is generated by rendering in the every beginning of each rendering iteration.

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

Delegate for expanding a native boxable object to a box3d.

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

Utility and Extension of .

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

A displayee implementation that delegates display functionality to a function.

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

For .

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

HiAPI display engine.

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

Configuration class for display engine.

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

Utility class for display frame management.

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

A combination of and .

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

Display Utility

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

The most efficient elemental 3D rendering unit.

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

ColorScaleBar.\nFor Covering mode.

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

Draw a Cartesian Coordinate.

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

A drawing class for cubical flag visualization.

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

DimensionBar.\nFor Covering mode.

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

Utility class for display covering functionality.

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

A displayee implementation that delegates display functionality to function delegates.

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

Native opengl functions wrapper.

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

An object which can be displayed in .

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

Interface fo getting .

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

Get interface.

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

Bridge of Native OpenGL Context.

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

A disposable class that manages push and pop operations on a matrix stack.

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

Stack-based Matrix.

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

Relation between mvpBox and an AABB

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

Picking event handler for rendering.\nNote that it has to be disposed manually or the object occurs memory leak.

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

Call for in .\nThis function is only for test purpose.\nSince the just expand the translation part of the mat to the target box.\nThis function should be use with .

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

Call for in .\nThis function is only for test purpose.\nSince the just expand the translation part of the mat to the target box.\nThis function should be use with .

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

Utilities for converting geometry segments to renderable drawings.

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

Show pick events in console.

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

Data scope of the double array for .

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

An to draw string.\nMulti-line text is supported: ‘\\n’ starts a new line.

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

A utility class for temporarily changing the line width and restoring it when disposed.

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

Object for set line width of opengl drawing.

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

A utility class for temporarily changing the point size and restoring it when disposed.

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

Object for set point size of opengl drawing.

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

A utility class for temporarily changing the RGB color and restoring it when disposed.

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

A displayee that sets the RGB color in the binding context.

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

A wrapper displayee that applies an RGB color to the wrapped displayee.

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

A wrapper displayee that applies a transformation matrix to the wrapped displayees.

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

Utility and Extension of .

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

Utility and Extension of .

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

A wrapper class for IDisplayee that allows customizing display and bounding box behavior.

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

Represents a table of Fanuc variables used for CNC machine control.

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

Represents a value for Fanuc variable that can be interpreted as either an integer or a double.

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

Utility class for array operations.

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

Axis(3d) and angle(1d)

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

Flag for calling .

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

Lightweight 2d box.\nAn orthogonal box which the edges are all parallel with Cartesian Coordinate.\nThe data contains in a is and .

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

Flag for calling .

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

Lightweight 3d box.\nAn orthogonal box which the edges are all parallel with Cartesian Coordinate.\nThe data contains in a is and .

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

3d Geometry of Cylindroid.

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

Dual Vec3d with p() and n().

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

Enumeration of coordinate axis directions in 3D space.

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

An extensible cylinder geometry that generates a corresponding by the start section and the total length.

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

Represents a 3D plane defined by a unit normal vector and its signed distance from the origin.\nThe plane equation is: Ax + By + Cz + d = 0, where (A,B,C) is the normal vector and d is the distance to origin.

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

Pure C# unlimited precision fraction.

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

Status flags for Fraction and .\nCorresponds to IS_PACKED_MASK and IS_EVALUATED_MASK in C++ fraction_base_t.

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

A class that manages multiple STL sources as a single source.

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

Utility of Geometry.

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

Object that can be expanded to a .

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

Object that can be expanded to a .

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

Interface for a 3D plane that provides an anchor point and a normal vector.

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

Interface for generating STL geometry with a resolution.

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

Interface for objects that have a geometry property.

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

Interface for retrieving STL geometry data.

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

Interface for retrieving Z-R contour data for rotational geometries.

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

Interface for getting a list of Z-R pairs.

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

provider with xml support.

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

Interface for 3D triangles.

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

Interface for vector types with generic element type.

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

Provides a source for obtaining an .

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

Specifies the indexing method for matrix construction from vectors.

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

4x4 Matrix.

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

Utility class for MathNet.Numerics operations.

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

Math Utility.

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

Native wrapper for C++ fraction_t<0> (unlimited precision fraction).\nA fraction consists of a numerator and denominator using unlimited precision integers.

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

Native Stl. For purpose of efficient swept volume.

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

Wavefront OBJ writer for RGB-coloured triangle buffers.

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

Value pair of Z and R.

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

Utility class for working with PairZr objects

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

Stanford PLY writer for RGB-coloured triangle buffers.

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

Represents a point in 3D space using polar coordinates

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

Interface for objects that control STL resolution parameters for both linear and angular measurements.

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

Provides a property for the source of polar resolution.

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

Polar resolution for generating geometry in polar coordinate.

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

Represents a 3D line segment defined by two endpoints.

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

Utility class providing binary solving methods for one-dimensional functions.

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

Represents the status of a binary solving process.\nContains information about the current state of the solver including best solutions and error metrics.

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

Represents the status of a deep solving process with multiple parameters.\nContains detailed information about the solving process including iterations, convergence, and Jacobian matrix.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Geom.Solvers.NumericalSolver.GetRepondsDelegate.yml", "output": { ".html": { "relative_path": "api/Hi.Geom.Solvers.NumericalSolver.GetRepondsDelegate.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Geom.Solvers.NumericalSolver.GetRepondsDelegate", "Summary": "

Delegate for getting response values from the system being solved.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Geom.Solvers.NumericalSolver.SetParasDelegate.yml", "output": { ".html": { "relative_path": "api/Hi.Geom.Solvers.NumericalSolver.SetParasDelegate.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Geom.Solvers.NumericalSolver.SetParasDelegate", "Summary": "

Delegate for setting parameter values in the system being solved.

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

A numerical solver for systems of equations using the Jacobian matrix.

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

Utility class providing advanced numerical solving methods for systems of equations.

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

Represents the result of a solving process.\nContains detailed information about the solution including parameters, biases, and convergence metrics.

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

Enumeration of possible statuses for solving results.

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

Enumeration of solving terms or methods used in geometric solvers.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Geom.Solvers.yml", "output": { ".html": { "relative_path": "api/Hi.Geom.Solvers.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Geom.Solvers", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Geom.Stl.StlType.yml", "output": { ".html": { "relative_path": "api/Hi.Geom.Stl.StlType.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Geom.Stl.StlType", "Summary": "

Stl file format.

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

STL (stereolithography). Composed by Triangles.\nProvide Stl File R/W.

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

Represents an STL file with loading and saving capabilities

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

A class that hosts a function to generate STL geometry.

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

Utility for .

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

What a carve boolean did to the workpiece container.

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

Result of one carve boolean step. On failure the workpiece is untouched\nand the step may simply be skipped.

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

A triangle mesh that can be carved: an exact-fraction topology graph with\nan incrementally maintained spatial index, mutated in place by exact\nboolean steps ( /\n). Unlike\n (build-once sweeping input), this object is\nlong-lived and accumulates cut geometry step after step; sharp edges and\nexact planar faces survive the booleans exactly. Not thread-safe.

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

Native TopoStl with element type double.

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

Native TopoStl with element type fraction.

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

Topological 3D line (directed edge) with coordinates.\nMaintains connectivity to adjacent reversed line and owning triangle.\nCorresponds to C++ topo_line3wfr_t.

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

Stock (pool) of topological lines with deduplication based on endpoint identity.\nCorresponds to C++ topo_line3wfr_stock_t.

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

Topological 3D point with coordinates.\nMaintains connectivity to adjacent lines and triangles.\nCorresponds to C++ topo_point3wfr_t.

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

Stock (pool) of topological points with deduplication based on fraction coordinates.\nCorresponds to C++ topo_point3wfr_stock_t.

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

Pure C# topological STL (triangle mesh) with coordinates.\nHfr: High-Precision (decimal) FRaction.\nProvides unlimited-precision exact arithmetic for geometric computations\nwithout relying on native (C++) interop.\nCorresponds to C++ topo_stl3wfr_t.

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

Flat-shaded displayee for .\nRenders flat triangle faces (one normal per triangle) and all unique edge lines.\nCorresponds to C++ topo_stl3::_flatDraw + all-lines draw.

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

Smooth-shaded displayee for .\nRenders smooth faces (per-vertex averaged normals) and sharp edges only.\nAll rendering-related cached data (adjacent cos², smooth normals) is stored\nin this class via dictionaries, keeping the source clean.\nCorresponds to C++ topo_stl3::_smoothDraw + _edgeDraw.

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

Topological 3D triangle with coordinates.\nMaintains connectivity to points and lines.\nCorresponds to C++ topo_tri3wfr_t.

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

Stock (pool) of topological triangles.\nCorresponds to C++ topo_tri3wfr_stock_t.

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

3D vector with elements.\nProvides unlimited-precision exact arithmetic for geometric computations.\nCorresponds to C++ vec3<wfr_t>.

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

Represents a geometric transformation that can be applied to a geometry object.\nThis class combines a transformer with a target geometry to produce transformed geometric results.

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

Basic 3D Triangle.

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

Utility of .\nInclude generator of triangles from points.

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

Represents physical units used in the system.

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

Attribute for associating a string value with an enum value or other element.

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

Provides utility methods for converting between different physical units and their string representations.

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

Basic 2D point (or vector).

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

Basic 2D point (or vector).

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

Basic 3D point (or vector).

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

Enumeration of base path types used in the HiNC system.

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

Rich HiNC Service.\nHost class for HiNC functionality that provides project management, path resolution, and DB integration.

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

Local application initialization and cleanup utilities.

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

Configuration for host-related settings.

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

Configuration for proxy-related settings.

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

Seeds the shipped default resources (Resource/** from the\nHiNc-Resource content package, next to the executable) into the\nadmin resource directory, honoring the \nownership convention:

\n
  • Marked items (X.default.Ext files, Name.default/\nfolders) are system territory — they are copied in, refreshed when the\nshipped bytes change, and deleted when no longer shipped.
  • Unmarked items belong to the user and are never touched.
\nA version stamp file at the destination root records the last-seeded\nHiNc-Resource version; when it matches, the whole pass is skipped,\nso steady-state startup cost is one small file read.\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.HiNcKits.yml", "output": { ".html": { "relative_path": "api/Hi.HiNcKits.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.HiNcKits", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Licenses.AuthFeature.yml", "output": { ".html": { "relative_path": "api/Hi.Licenses.AuthFeature.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Licenses.AuthFeature", "Summary": "

Internal Use Only.

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

Event arguments for authorization failure events.

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

Block type.

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

License of this module.

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

Defines the types of licenses available.

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

Represents a freeform cutting tool that can be used in machining operations.\nThis cutter type supports complex geometries for both the noble (upper) part and the shaper (cutting) part.

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

Interface of cutter.

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

of cutter.

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

Interface of Get .

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

Interface for machining tools that combine a holder and a cutter.

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

Only inherit from and .

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

Defines the components of a machining setup that can participate in collision detection.

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

Interface for objects that can provide access to a machining equipment instance.

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

Machining equipment.

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

Machining Equipment. Include the machining chain, workpiece, tool and fixture, etc..

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

Represents a collision index for machining equipment components.\nThis class manages collision detection between different parts of the machining equipment.

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

Source of .\nThe adjacent solids will not be added to the s.

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

Utility methods for working with machining equipment.

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

Tool House.

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

Represents a snapshot of the machining motion state.

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

Handles the machining volume removal process and related operations.

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

Provides functionality for interpolating between two transformation matrices.

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

Defines the relationship between two matrices.

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

Utility methods for determining relationships between matrices.

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

Sweptable geometry.

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

Util for .

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

Exception thrown when a tool with the specified ID is not found.

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

Marks a session-scoped controller action as callable without an active session, exempting it\nfrom . Use on the session lifecycle entry points\n(BeginSession / EndSession), which by definition run when no session exists yet.

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

Marks a project-level controller action as callable without a loaded project, exempting it\nfrom . Use on the endpoints that create or load a\nproject (which by definition run when no project is open yet).

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

The shared outcome envelope for a web-API action: whether it succeeded and the messages\nit reported, in order. Returned by the project-level surface\n() and, on the no-active-session boundary, by\nthe session-scoped surface ( via\n). A REST / AI caller therefore reads the\nprogress / success / error notifications inline in the HTTP response instead of\nonly out-of-band via the SignalR sinks, and can branch on without\nparsing severities.

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

Delegate for configuring a milling step with additional arguments.

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

Interface for objects that can provide a MachiningProject instance.

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

Interface for services that manage machining projects.

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

Delegate for machining project changed events.

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

Root(Local) project service.\nApply absolute file path.

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

HTTP controller exposing the project-level (session-independent) operations of\n — the lean API-user surface, parallel to\n (which mirrors the session-scoped\n). A controller mirrors exactly one body; project-level\nsettings belong here, not bolted onto the session controller.

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

Delegate for configuring a step with previous and current step information.

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

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

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

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

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

Represents a bundle of tasks related to a milling step.

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

Represents the result of a subtraction operation.

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

Represents a parallel processing system for milling operations that manages various tasks\nsuch as sweeping, subtraction, force calculation, and physics simulation.

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

Represents a milling project that manages the execution, simulation, and analysis of NC programs.

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

Represents a machining session that manages the execution and optimization of machining operations.\nProvides functionality for controlling the machining process, handling optimization options,\nand managing session state. Implements to clean up\n on session end.

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

One reported , flattened for JSON transport.

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

Provides utility methods for milling calculations and operations.

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

Kind of an NC program file — selects which of the session's runners plays\nit ( /\n /\n).

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

helpers.

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

NC pipeline state held on a and shared across multiple\n calls within that session. The per-layer\n are extended via \nfor each subsequent file so that Previous/Next connectivity (and thus\nModalCarrySyntax deep-clone) crosses file boundaries.

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

Thrown when a project-file operation (New / Load / Save / SaveAs / Reload) is\nrequested while another one is already in progress. The newcomer is cancelled\nrather than queued; controllers surface this as HTTP 409 Conflict.

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

Delegate (User-based) Project Service.\nApply relative file path from .

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

Flags that control which elements are rendered in the visualization.

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

Action filter for the session-scoped web-API surface: before a guarded action runs,\nverifies a machining session is active ( is\nnon-null). When none is active it short-circuits with HTTP 409 and an\n envelope, so a REST / AI caller gets a helpful\n“call BeginSession() first” notice instead of a null-reference 500. Apply at the controller\nlevel; exempt the session lifecycle entry points (BeginSession / EndSession) with\n.

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

Action filter for the project-level web-API surface: before a guarded action runs,\nverifies a project is loaded ( is\nnon-null). When none is loaded it short-circuits with HTTP 409 and an\n envelope, so a REST / AI caller gets a helpful\n“create or load a project first” notice instead of a null-reference 500 (the project-level\nmembers — MachiningActRunner.Config, workpiece, runners — are null until a project is\nopen). Apply at the controller level; exempt the endpoints that create or load a project\nwith .

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

End-user-facing facade for a machining session: aggregates session lifecycle,\nNC playback, optimization, geometry I/O, and scripting infrastructure into a\nsingle delegation surface. Used as the C# script globals object and as the\nconcrete target of implementations.

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

HTTP controller exposing over the web API.\nEach action delegates to the underlying instance owned by .

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

Controller for setup operations of machining projects.

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

Append-only, thread-safe sink for session-level routine / lifecycle messages on the\n channel — one of the partitioned message homes.

\n

\nThis is partitioned by message kind, orthogonal to the other sinks: plain\n notices that belong to the session as a whole (cache reset, file\nload / save progress, session start/done) live here; messages tied to a particular machining\nstep live in ; NC-pipeline diagnostics live in\nNcDiagnosticProgress.\n

\n

\nAppend-only: session-routine messages are emitted sequentially, so report order already is\nexecution order — there is no per-step anchor and no stable-index bookkeeping.\n

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

Represents cached spindle speed information.

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

An produced while constructing a ,\nanchored to the step's execution-order and (when available) its NC-source\n.

\n

\nDecorator over an inner — the five members delegate\nto it — so a plain emitted during step processing can be upgraded to a\nstep-anchored diagnostic without the producer needing to know the step context.\n

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

Bridges a step-anchored sink (e.g.\n) back to the generic surface, so\nout-of-step-pipeline producers can keep using the id-first shorthands\n(ValidationError, ConfigurationWarning, …) and still land a\n on the sink.

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

Append-only, thread-safe sink for step-anchored diagnostics on the \nchannel.

\n

\nThis sink stores only : every message is anchored to a motion step.\nPer-step batches arrive via ; out-of-pipeline emits\n(e.g. stroke-limit / tooling diagnostics) anchor themselves with\n before reporting. Data that already has\nanother owner is not duplicated here — NC diagnostics live in NcDiagnosticProgress,\nplain session-level notices live in , cutter positions live in the\nCL strip.\n

\n

\nBecause every carries its own \nanchor, ordering is recovered downstream by sorting on that anchor. Producers therefore only ever\n (append) — even from parallel step-processing tasks — and never insert at a\ncomputed position.\n

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

A per-step of that accumulates the\nmessages emitted while one step is built, upgrading any plain message to a\n anchored to this step's /\n. An already step-anchored is kept\nunchanged. (NC diagnostics are not seen here — they live in their own\n, not on this channel.)

\n

\nIt does not forward to a downstream sink as messages arrive; instead it collects them into\n and is drained once via at the step's\nsequential post-physics stage. Because that stage runs strictly in step order, the\nper-step batches land in execution order with no position-scanning insert.\n

\n

\nNo locking: a single step's construction is a data-dependency chain (substraction → physics →\npost-physics), so only one task writes at a time; parallelism across\nsteps writes to different scopes. Each parallel step task therefore holds its own\ninstance — never a shared mutable \"current step\" on , which would\nrace.\n

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

temperary design for showing flag text.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.MachiningSteps.IMachiningService.yml", "output": { ".html": { "relative_path": "api/Hi.MachiningSteps.IMachiningService.html" } }, "version": "", "Uid": null, "IsMRef": true, "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.IMotionStepIndex.yml", "output": { ".html": { "relative_path": "api/Hi.MachiningSteps.IMotionStepIndex.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.MachiningSteps.IMotionStepIndex", "Summary": "

Abstraction for an object that carries a — the 0-based\nordinal of a machining motion step in execution order. Used as a cross-object\nalignment key so a step (), its cutter-location\nposition (ClStripPos), and the messages anchored to it\n(StepDiagnostic, StepScopedProgress) can be matched by the same\nordinal without depending on a concrete type.

\n

\nDistinct from : that ordinal counts\nNC source blocks, whereas this one counts produced motion steps —\na single source block (e.g. a canned cycle) can fan out into several steps.\n

\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", "output": { ".html": { "relative_path": "api/Hi.MachiningSteps.MachineMotionStep.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.MachiningSteps.MachineMotionStep", "Summary": "

MachiningStep has spindle information.\nNote that the spindle information is only for milling behavior.

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

A pair of collided keys that indicates two entities are in collision.

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

Represents a machining step enriched with physics, mapping and source metadata.\nThe duration-based step property is based on the duration from previous-step to current-step.

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

Utility class for milling step related constants and helper methods.

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

Provides a value accessor bound with its metadata.

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

Attribute for presenting property information with localization support.

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

Provides access to properties of a milling step with presentation information.

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

Wall-clock stamp of a machining step end — the controller-recorded timeline,\nas opposed to the simulated machine timeline\n(). Grouped into one optional\nsub-object so scenes that never map measured data (pure NC simulation,\ncollision check, optimization) carry a single null reference per step.\nA CSV play stamps only the first step built after each row/idle boundary\nwith the controller instant; the steps in between receive values\nextrapolated from the latest stamp along the machine timeline and are\nmarked .

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

Internal Use Only.\nExpands the -annotated properties of\n into the stable presentation-key dictionary\n(vector properties fan out to .X/.Y/.Z, the cutter\nlocation to .X/.Y/.Z/.I/.J/.K).

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

Represents a numerical control step loaded from a CSV file, with support for interpolation and arithmetic operations.

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

Provides mapping between files and time shot data with caching capabilities.\nThis class manages the loading and caching of time shot data from measurement files.

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

Interface for objects that represent acceleration measurements at a specific time point.\nExtends the ITimeShot interface to include acceleration data in multiple units.

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

Interface for objects that represent force measurements at a specific time point.\nExtends the ITimeShot interface to include force vector data.

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

Interface for objects that represent moment (torque) measurements at a specific time point.\nExtends the ITimeShot interface to include moment vector data.

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

Interface for objects that represent a snapshot of data at a specific time and support arithmetic operations.\nThis interface provides a foundation for time-series data with vector operations.

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

Shared CSV column tags and physics-related column prefixes for mapping simulator or\nlogged controller data onto rows.

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

Defines the cycle sampling modes for mapping time shots to machining steps.\nThe sampling mode determines how time shots are aligned with machining cycles.

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

Delegate for retrieving time shots from a file.\nImplementations should handle file reading, parsing, and error handling.

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

Utility methods for working with time-based shots (measurements) and mapping them to machining steps.

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

Provides mapping between machining steps and time-based measurements (shots).\nIt is one step to many data mapping (one-many).

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

(B) Time window expressed in absolute only.

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

(C) Time window carrying both forms. The timecode form is authoritative for\nmapping (timecode-first); the absolute form is retained for the anchor and\nfor projecting to a single-form section (new FileTimecodeSection(c) /\nnew FileDateTimeSection(c)) when the two forms do not agree.

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

(A) Time window expressed in relative timecodes only.

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

A file plus the time window of it that maps onto a range of machining steps.\nThe window is expressed in whichever form the referenced sensor file uses —\na relative timecode, an absolute ,\nor both. Concrete forms: (A),\n (B), (C).

\n

\nThese are pure data carriers — turning an absolute form\ninto a relative timecode is done once at the mapping boundary against the\nproject-scoped mapping anchor, not by a method here.\n

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

General Mechanism.

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

Provides functionality to retrieve a dictionary mapping anchors to their corresponding solids.

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

Provides functionality to retrieve a machining chain instance.

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

Represents a machining chain with two ends, connecting a tool and a workpiece.

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

Provides XML serialization/deserialization capabilities for objects.

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

Utility methods for machining chains.

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

A coordinate system using in kinematic chain.

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

Provides an anchor through a function delegate.

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

Represents an object that is both anchored to a root point and can expand to a 3D box.

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

Represents a displayable object that is anchored to a specific point in a topology.

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

Collection of and .

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

Render all s of the \nin form of .

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

The linkage between two objects.

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

A data pack contains and a boolean .

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

Utility of topology.

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

Dynamic Freeform transformer.

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

Dynamic rotate transformer.

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

Dynamic translate transformer

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

Represents a general transformation that combines scaling, rotation, and translation.

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

Interface for objects that can be displayed and are anchored to a root point in a topology.

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

Dynamic Regular Transformer

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

Topology joint that applies a single-axis rotation about by .

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

Dynamic Transformer.

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

Interface to get the key .

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

Interface for getting a list of anchored displayable objects.

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

Interface of Getting a key .

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

Interface of .

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

Interface for objects that can provide their inverse transformer.

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

interface of or .

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

Static Transformer

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

Defines an interface for displaying topological elements that combines assembly, anchoring, and display capabilities.

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

Represents a topology object that can be displayed and has an anchor.

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

Interface of single transform matrix manipulation.

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

Interface for objects that have a transformer property.

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

Static Identity Transformer.

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

Represents a transformer that maintains a stack of transformations.

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

Static Freeform transformer.

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

Static Rotation.

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

Static Translate.

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

Implements a displayable topological element that manages a collection of anchored displayees within an assembly.

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

Provides utility methods for displaying and manipulating topological displayees.

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

Clone and provide map between source topology and cloned topology.

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

Utility of handling .

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

Utility for .

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Mech.Topo.yml", "output": { ".html": { "relative_path": "api/Hi.Mech.Topo.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Mech.Topo", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Mech.yml", "output": { ".html": { "relative_path": "api/Hi.Mech.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Mech", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Milling.Apts.AptDerivative.yml", "output": { ".html": { "relative_path": "api/Hi.Milling.Apts.AptDerivative.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Milling.Apts.AptDerivative", "Summary": "

Apt derivative.

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

Ball End Apt.

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

Bull Nose End APT.

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

Column End APT.\nThe composition is identical to the .\nHowever, the nose radius is generally smaller than the .

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

Cone End APT.

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

Column End APT.

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

APT standard milling cutter geometry.

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

Interface for APT objects with alpha angle.

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

Interface for APT-based objects.

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

Interface for APT objects with beta angle.

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

Interface for APT objects with corner radius.

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

Interface for APT objects with round radius.

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

Interface for APT objects with Z-axis round center distance.

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

Interface for objects that can provide an APT-based object.

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

Interface of .

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

Taper End APT.

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

Native apt.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Milling.Apts.yml", "output": { ".html": { "relative_path": "api/Hi.Milling.Apts.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Milling.Apts", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Milling.Cutters.AptProfile.yml", "output": { ".html": { "relative_path": "api/Hi.Milling.Cutters.AptProfile.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Milling.Cutters.AptProfile", "Summary": "

Represents an APT (Automatically Programmed Tool) based profile for a milling cutter.\nThis profile uses APT definitions to describe the cutter geometry.

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

Represents a constant ratio profile for a milling cutter.\nThis profile maintains a constant ratio between inner and outer radii.

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

Represents a custom spinning profile for a milling cutter.\nThis profile allows for custom geometry to be used as the cutter profile.

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

Utility class providing extension methods for cutter operations.

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

Provides display functionality for flute contours in milling cutters.\nThis class handles the visualization of both front and back surfaces of flute contours.\nInternal Use Only

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

Represents a flute number dependent ratio profile for a milling cutter.\nThis profile determines the ratio between inner and outer radii based on the number of flutes.

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

Interface defining the shape profile of a cutter flute.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Milling.Cutters.MillingCutter.IntegralModeEnum.yml", "output": { ".html": { "relative_path": "api/Hi.Milling.Cutters.MillingCutter.IntegralModeEnum.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Milling.Cutters.MillingCutter.IntegralModeEnum", "Summary": "

Defines the integral mode of the cutter.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Milling.Cutters.MillingCutter.MassAssignmentMode.yml", "output": { ".html": { "relative_path": "api/Hi.Milling.Cutters.MillingCutter.MassAssignmentMode.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Milling.Cutters.MillingCutter.MassAssignmentMode", "Summary": "

Defines the mass assignment mode for the cutter.

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

Represents a milling cutter with its geometric and physical properties.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Milling.Cutters.MillingCutterEditorDisplayee.ShapeModeEnum.yml", "output": { ".html": { "relative_path": "api/Hi.Milling.Cutters.MillingCutterEditorDisplayee.ShapeModeEnum.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Milling.Cutters.MillingCutterEditorDisplayee.ShapeModeEnum", "Summary": "

Display shape mode for the cutter.

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

Represents a displayable editor for milling cutter visualization.\nThis class handles the rendering of cutter geometry, including flutes, profiles, and inner structures.\nInternal Use Only

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Milling.Cutters.yml", "output": { ".html": { "relative_path": "api/Hi.Milling.Cutters.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Milling.Cutters", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Milling.Engagements.BitwiseMillingEngagement.yml", "output": { ".html": { "relative_path": "api/Hi.Milling.Engagements.BitwiseMillingEngagement.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Milling.Engagements.BitwiseMillingEngagement", "Summary": "

Represents a bitwise milling engagement that uses bit arrays to efficiently store engagement information.

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

Represents a layer of engagement between a tool and workpiece.

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

Engagement slice.

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

Interface for classes that support bitwise milling engagement.

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

Interface of .

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

Milling Engagement.

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

Utility of .

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Milling.Engagements.yml", "output": { ".html": { "relative_path": "api/Hi.Milling.Engagements.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Milling.Engagements", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Milling.FluteContours.ConstHelixSideContour.yml", "output": { ".html": { "relative_path": "api/Hi.Milling.FluteContours.ConstHelixSideContour.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Milling.FluteContours.ConstHelixSideContour", "Summary": "

Represents a constant helix side contour for milling cutters.

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

Represents a flute contour for milling tools.

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

Provides utility methods for working with flute contours in milling tools.

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

A milling cutter's fluting in which every flute is defined individually —\neach flute carries its own contour, so spacing, helix and rake need not\nrepeat. Use when one baseline contour repeated\nevenly around the cutter is enough.

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

Represents a freeform bottom contour for milling tools, allowing arbitrary contour shapes.

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

Represents a freeform side contour for milling tools, allowing arbitrary contour shapes.

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

Represents a bottom flute contour for milling tools.

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

Interface that requiring a FluteNumSource property.

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

A milling cutter's fluting: the complete set of flute contours that do the\ncutting. Either one shared baseline repeated evenly around the cutter\n() or one individually defined contour per flute\n() — every flute is definable on its own.\n“Fluting” is the machining noun for a cutter's flute geometry and carries no\nsize of its own, so it describes the flute set of a 4 mm end mill exactly as\nwell as that of a large face mill.

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

Provides a method to get the number of flutes.

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

Represents a side flute contour for milling tools.

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

Represents a working contour for cutting operations in milling tools.\nThis interface is implemented by both side contours () and bottom contours ().

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

Represents a working contour that has been shifted by a specified angle.\nThis class wraps another working contour and applies an angular transformation to it.

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

Represents a displayable side contour.

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

Represents a slide bottom contour for milling cutters.

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

Represents a position in 4D space (r, theta, z, radial angle) for contour spans

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

A milling cutter's fluting built from one shared baseline contour repeated\nevenly around the cutter: every flute has the same geometry, spaced at equal\nangles. Use when the flutes need to be defined\nindividually.

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

Interface for objects that provide diameter information.

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

Interface for objects that provide flute height information.

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

Interface for retrieving milling geometry brief information.

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

Interface for objects that provide radial relief angle information.

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

Interface for accessing and modifying milling geometry brief information.

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

Brief of milling geometry.

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

Utility for milling removal.

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

Represents a central stick milling tool that combines a holder and a cutter.

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

Defines reference points for anchoring milling tools.

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

Display host for a milling tool composed of a cutter and a holder.

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

The scalar physics derivations of one tool (and one cutting-parameter set), computed\nonce on a sequential boundary and frozen. The per-step force build, the sequential\nphysics, and the step/shot writers read these values thousands to millions of times\nper play; the tool and cutter objects themselves expose them as deliberately\nuncached pure computations, so hot session paths read this pack instead —\ncallers outside a session simply pass null and the pure computation runs on\nuse. Owned per session by MachiningSession, keyed by tool id. A pack is never\nupdated in place: the paths that change tool/cutter/para state invalidate the\nsession's packs explicitly (run-op start, tool change — see\nMachiningSession.InvalidateToolPhysicsPacks), and \nre-keys on object replacement.

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

Provides utility methods for working with milling tools.

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

Represents the capability of a spindle, including power, torque, and thermal characteristics.\nInternal Use Only

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Milling.yml", "output": { ".html": { "relative_path": "api/Hi.Milling.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Milling", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.MillingForces.Fittings.CuttingParaUtil.yml", "output": { ".html": { "relative_path": "api/Hi.MillingForces.Fittings.CuttingParaUtil.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.MillingForces.Fittings.CuttingParaUtil", "Summary": "

Utility methods for working with cutting parameters.

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

Interface of milling parameter.\nThe milling parameter is trainable.

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

Interface of .

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

Represents a category for milling force samples with step and division information.

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

Flags representing different types of force and moment samples in milling operations.

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

Utility methods for working with sample flags.

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

Represents a sample instance with step and local division indices for milling force analysis.

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

Represents a force measurement at a specific time point.

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

Represents force data in the frequency domain after Fourier transformation.

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

Represents a time series of force measurements.

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

Utility class for reading and processing time-based force measurement data.

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

Represents a time series of force measurements with compensation capabilities.

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

Represents a time series of torque measurements with compensation capabilities.

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

Represents a training sample for milling force prediction models.

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

Interface of .

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

Interface of .

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

Milling force.

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

Provides license information and management for the milling force calculation functionality.

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

Represents a container for milling force data and calculations.

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

Utility class for milling force calculations and related operations.

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

Instant Physics brief on rake face for milling.

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

Provides utility methods for physics calculations in milling operations.

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

Interface of getting .

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

Milling parameter of altintas model.

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

Represents a mapping of milling parameters for profile milling operations.\nThis class manages cutting parameters for both side and bottom milling operations.

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

Keys for milling parameters in radial-tangential-axial (RTA) coordinate system

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.MillingForces.ProfileMillingParas.yml", "output": { ".html": { "relative_path": "api/Hi.MillingForces.ProfileMillingParas.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.MillingForces.ProfileMillingParas", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.MillingForces.RakeFaceCuttingParas.IRakeFaceCuttingPara.yml", "output": { ".html": { "relative_path": "api/Hi.MillingForces.RakeFaceCuttingParas.IRakeFaceCuttingPara.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.MillingForces.RakeFaceCuttingParas.IRakeFaceCuttingPara", "Summary": "

Defines cutting parameters on the rake face for force modeling, supporting XML IO and duplication.

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

Utility class for milling physics calculations.

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

Represents a multi-form rake face cutting parameter set that can handle multiple flute forms.\nInternal Use Only.

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

Represents a 2D cutting parameter for rake face cutting operations.

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

Represents local ECN (Edge-Cross-Normal) cutting parameters for rake face cutting.\nE: cutting edge direction\nC: Cross vector, along the rake face cross line, perpendicular to cutting edge\nN: rake face normal direction\nInternal Use Only.

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

Represents a map of rake face cutting parameters.

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

Defines reference points for tool observation measurements.

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

Snapshot of the most recent milling-parameter training call\n(LocalProjectService.TrainMillingPara / ReTrainMillingPara) —\nthe queryable training outcome that otherwise only lands in the output\n.mp file's Note. Held by\nLocalProjectService.LastMillingParaTrainResult (service lifetime,\nlast-wins) so callers such as the webservice can read it after a run\nwithout touching the file system.

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

Provides utilities for milling force training and parameter identification.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.MillingForces.Training.yml", "output": { ".html": { "relative_path": "api/Hi.MillingForces.Training.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.MillingForces.Training", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.MillingForces.yml", "output": { ".html": { "relative_path": "api/Hi.MillingForces.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.MillingForces", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.MillingProcs.MillingGuide.yml", "output": { ".html": { "relative_path": "api/Hi.MillingProcs.MillingGuide.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.MillingProcs.MillingGuide", "Summary": "

Provides guidance and configuration for milling visualization and analysis.

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

Configuration for ClStrip charts.

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

Configuration for an individual ClStrip chart item.

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

Flags representing different force cycle types.

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

Configuration for force cycle line division display and analysis.

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

Specifies the mode for vertical range in line charts.

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

Configuration for spindle moment cycle line division display and analysis.

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

Configuration for Y-axis settings in time charts.

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

Instance of milling in a .

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

Represents additional data associated with a milling step.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.MillingSteps.yml", "output": { ".html": { "relative_path": "api/Hi.MillingSteps.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.MillingSteps", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Motion.MatValves.ClMachiningValve.yml", "output": { ".html": { "relative_path": "api/Hi.Motion.MatValves.ClMachiningValve.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Motion.MatValves.ClMachiningValve", "Summary": "

Optimize the sequential transformation matrixes step by step for machining.\nFiltering the unnecessary transformation matrixes.\nAccept milling mode by .

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

Optimize the sequential transformation matrixes step by step by filtering the unnecessary transformation matrixes.

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

Optimize the sequential transformation matrixes step by step by filtering the unnecessary transformation matrixes.\nThe steps in the middle of each linear cut are filtered.

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

Optimize the sequential transformation matrixes step by step by filtering the unnecessary transformation matrixes.\nAll step will be pumped.

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

Cutter location utility.

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

Represents a source that can be used to create and control stop tokens.

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

Represents a token that can be used to request cancellation of operations.

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

A kit that manages the lifecycle of a StopToken and its associated resources.

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

Utility class for working with stop tokens.

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

Runtime rendering data for each iteration in rendering loop.\nIt manipulates geometry transformation, such as moving, rotatingand scaling.\nIt also deal with color and picking.\nA bind_t object is generated by rendering in the every beginning of each rendering iteration.

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

Native box3d.

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

Native implementation of a 3D bounding box structure for interop scenarios.

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

Delegate for expanding a bounding box.

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

Native key event.

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

Native key table for native function transform_view_by_key_pressing.\nKey values follow W3C KeyboardEvent.key standard (e.g. “Home”, “ArrowLeft”, “Shift”).

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

Native mat4d.

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

Native mat_stack_t.

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

Native mouse button event.

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

Mouse button table for native function of transform_view_by_mouse_drag.

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

Native mouse move event.

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

Native mouse wheel event.

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

Native panel state.

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

Internal Use Only.

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

Internal Use Only.

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

Native tri3d.

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

Native ui event.

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

Native vec2d.

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

Native vec3d.

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

Native vec3f.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Native.yml", "output": { ".html": { "relative_path": "api/Hi.Native.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Native", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcMech.Fixtures.Fixture.yml", "output": { ".html": { "relative_path": "api/Hi.NcMech.Fixtures.Fixture.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcMech.Fixtures.Fixture", "Summary": "

Represents a fixture used to hold workpieces during machining operations.

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

Displayee for fixture visualization and editor overlays.

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

Configuration settings for fixture editor display features.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcMech.Fixtures.yml", "output": { ".html": { "relative_path": "api/Hi.NcMech.Fixtures.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcMech.Fixtures", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcMech.Holders.CylindroidHolder.yml", "output": { ".html": { "relative_path": "api/Hi.NcMech.Holders.CylindroidHolder.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcMech.Holders.CylindroidHolder", "Summary": "

Represents a cylindrical tool holder for machining operations.

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

Represents a freeform tool holder with customizable geometry.

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

Displayee for holder editor that provides visualization functionality.

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

Interface for tool holders in NC machining.

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

Interface that provides access to collision index pairs and XML serialization capabilities.\nExtends with XML serialization support.

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

Interface for retrieving solid geometry objects.\nProvides a standardized way to access solid models.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcMech.Solids.Solid.RenderingModeEnum.yml", "output": { ".html": { "relative_path": "api/Hi.NcMech.Solids.Solid.RenderingModeEnum.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcMech.Solids.Solid.RenderingModeEnum", "Summary": "

Rendering mode for solids.

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

Represents a solid geometry object with display, collision detection, and STL capabilities.\nProvides thread-safe access to geometry data and caching mechanisms.

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

Provides a function-based source for solid geometry objects.\nAllows dynamic generation of solid models through a delegate function.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcMech.Solids.yml", "output": { ".html": { "relative_path": "api/Hi.NcMech.Solids.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcMech.Solids", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcMech.Topo.INcStroke.yml", "output": { ".html": { "relative_path": "api/Hi.NcMech.Topo.INcStroke.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcMech.Topo.INcStroke", "Summary": "

Nc capability include key char, stroke and speed limit.

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

Transformer for NC motion axis.

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

Interface that represents a topological brick in NC machining.\nCombines solid geometry, display capabilities, and collision detection functionality.

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

Represents a rotational transformer for NC machine tool axes.\nProvides functionality for rotational motion with stroke and speed limits.

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

Represents a translational transformer for NC machine tool axes.\nProvides functionality for linear motion with stroke and speed limits.

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

Represents a topological brick that sources its geometry from a solid model.\nImplements display, collision detection, and content update capabilities.

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

Represents a topological brick that sources its geometry from an STL file.\nImplements display, collision detection, and content update capabilities.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcMech.Topo.yml", "output": { ".html": { "relative_path": "api/Hi.NcMech.Topo.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcMech.Topo", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcMech.Workpieces.Workpiece.yml", "output": { ".html": { "relative_path": "api/Hi.NcMech.Workpieces.Workpiece.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcMech.Workpieces.Workpiece", "Summary": "

Workpiece configuration data model.

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

Displayee for visualizing workpiece raw/ideal/meshed geometry and anchors.

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

Configuration settings for workpiece editor display.

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

Runtime service for .

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcMech.Workpieces.yml", "output": { ".html": { "relative_path": "api/Hi.NcMech.Workpieces.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcMech.Workpieces", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcMech.Xyzabc.CodeXyzabcMachineTool.yml", "output": { ".html": { "relative_path": "api/Hi.NcMech.Xyzabc.CodeXyzabcMachineTool.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcMech.Xyzabc.CodeXyzabcMachineTool", "Summary": "

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

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

Represents a URI-based container for CodeXyzabcMachineTool.

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

General implementation of an XYZABC machine tool.

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

Interface of .

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

Interface for XYZABC machine tools that combines chain, display, collision and other functionalities.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcMech.Xyzabc.yml", "output": { ".html": { "relative_path": "api/Hi.NcMech.Xyzabc.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcMech.Xyzabc", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcMech.yml", "output": { ".html": { "relative_path": "api/Hi.NcMech.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcMech", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcOpt.CuttingVelocityOptLimit.yml", "output": { ".html": { "relative_path": "api/Hi.NcOpt.CuttingVelocityOptLimit.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcOpt.CuttingVelocityOptLimit", "Summary": "

Represents optimization limits for cutting velocity parameters.

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

Represents fixed feed-per-cycle optimization limits.\nProvides implementation for feed-per-cycle optimization with fixed minimum and maximum values.

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

Represents fixed feed-per-tooth optimization limits.\nProvides implementation for feed-per-tooth optimization with fixed minimum and maximum values.

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

Interface for hosts that contain cutter optimization limits.\nProvides access to cutter optimization limit settings.

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

Interface for cutter optimization limits.\nCombines feed-per-tooth optimization capabilities with duplication and XML serialization support.\nInherits from , , and .

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

Interface for cutting velocity optimization limits.\nDefines methods to get minimum and maximum cutting velocity values.\nImplements for XML serialization and for object duplication.

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

Interface for feed-per-tooth optimization limits.\nDefines methods to get minimum and maximum feed per tooth values.\nImplements for XML serialization and for object duplication.

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

Represents NC optimization option for milling cutters.

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

Represents the optimization options for NC operations.

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

Embedded log mode for NC optimization.

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

Represents optimization limits based on cutter shape parameters.

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

Writes the built-in brand controller presets out as standalone\n resource files.

\n

\nA controller resource file is one serialized — the\nwhole pipeline (dependencies, segmenter, initializers, syntaxes, semantics)\nthat decides how a brand's NC code is interpreted. The shipped copies live\nunder Resource/Controller/ so the Object Management Load\nbrowser starts populated; they are regenerable snapshots, not the source of\ntruth — the brand properties on are.\n

\n

\nWriting needs no registration. Reading a file back\ndoes: call first, otherwise\nXFactory.GenListSkippingUnloadable drops every unregistered pipeline\nentry and hands back a silently hollow runner.\n

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

Axis type: linear (translation), rotary (rotation), or spindle (speed/positioning dual mode).

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

Explicit CNC controller brand identifier carried in\n.\nUse ncDependencyList.OfType<CncBrandDependency>().FirstOrDefault()\nto retrieve the brand.

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

Base class for brand-specific controller parameter tables.\nProvides shared data structures, XML IO, and

\n
    \n
  • implementations.\nSubclasses define brand-specific parameter numbers, XML attribute names,\nand derived convenience properties.
  • \n
\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Fanuc.CutterCompensationType.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Fanuc.CutterCompensationType.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Fanuc.CutterCompensationType", "Summary": "

Fanuc #5003: Cutter compensation startup/cancellation type.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html" } }, "version": "", "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 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", "source_relative_path": "api/Hi.NcParsers.Dependencys.Fanuc.FanucParameterTable.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Fanuc.FanucParameterTable.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Fanuc.FanucParameterTable", "Summary": "

Fanuc controller parameter table.\nStores system parameters (single value) and axis parameters (per-axis value)\nfollowing real Fanuc parameter numbering.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Fanuc.FanucParameterTableProxy.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Fanuc.FanucParameterTableProxy.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Fanuc.FanucParameterTableProxy", "Summary": "

Get-or-create for \n(the Fanuc / Mazak family parameter table): a placeholder in the shared\n that resolves the host project's own\nparameter table. Unlike the pure per-case proxies, the Fanuc-family parameter\ntable mixes machine config (axis types / reference positions / rapid / stroke)\nwith per-case work-coordinate offsets (#5221+ / #7001+), so the\nproxy carries a fixed machine-config that is serialized into\nthe shared runner file. On wire, the host receives a deep clone of the seed only\nwhen it has no yet; a loaded project's own full\ntable wins. The resolved host table holds everything (machine config + per-case\ncoordinates) and is fully serialized on the project.

\n

\nThe proxy deliberately does not implement the machine-config interfaces\n( etc.) — every machine-config consumer must go\nthrough so it sees the\nresolved host table, never this placeholder.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Fanuc.FanucPositionVariableLookup.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Fanuc.FanucPositionVariableLookup.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Fanuc.FanucPositionVariableLookup", "Summary": "

Fanuc-style position system variables read from the previous block's\nruntime-state JSON sections:

\n
  • #5001-#5003Block-end position X/Y/Z (workpiece) → previous block's .
  • #5021-#5023Current machine position X/Y/Z → previous block's .
  • #5041-#5043Current absolute position X/Y/Z → previous block's .
\n

\nStateless. Configured on\n rather than\nNcDependencyList because the read needs the block node for\n access — there is no\nlong-lived dependency object that owns this data.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Fanuc.FanucToolOffsetVariableLookup.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Fanuc.FanucToolOffsetVariableLookup.html" } }, "version": "", "Uid": null, "IsMRef": true, "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", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Fanuc.RetainedCommonVariableTable.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Fanuc.RetainedCommonVariableTable", "Summary": "

Fanuc-style ISO controller common variable table for the retained range\n#500-#999. These variables survive a power cycle (in real hardware\nthey live in NV-RAM) and are serialised into the project file.

\n

\nExcluded by design:\n

  • 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. , tool offset / WCS tables).
\n\n

\nVacant (Fanuc <vacant>) is represented by null: either the dictionary\nhas no entry for the key, or the entry maps to null. Both are treated identically by .\n

\n

\nNaming rationale: Fanuc official documentation calls #500-#999 \"retained common variables\"\n(and #100-#499 \"non-retained common variables\"). The umbrella term \"macro variable\" was\navoided because it conflicts with Custom Macro B's call-frame concept (G65/G66 push a frame\ncontaining the local #1-#33); using RetainedCommonVariableTable reserves \"macro\"\nfor the call-frame topic.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Fanuc.RetainedCommonVariableTableProxy.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Fanuc.RetainedCommonVariableTableProxy.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Fanuc.RetainedCommonVariableTableProxy", "Summary": "

Get-or-create for :\na placeholder in the shared that\nresolves the host project's own per-case retained common variables\n(#500–#999).

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Fanuc.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Fanuc.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Fanuc", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Generic.FallbackConfig.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Generic.FallbackConfig.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Generic.FallbackConfig", "Summary": "

HiNC-specific fallback dependency that provides default values\nfor all optional configuration interfaces.

\n

\nShould be placed as the last element in\n so that brand-specific\nparameter tables (which appear earlier) take priority via\nOfType<T>().FirstOrDefault().\n

\n

\nWhen a brand table (e.g., )\nimplements the same interface, its values are used instead.\nThis class serves as a safety net for brands that do not define\ncertain parameters (e.g., Siemens/Heidenhain have no system\nparameter for G83 peck retraction — it is per-call).\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Generic.GenericBlockSkipConfig.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Generic.GenericBlockSkipConfig.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Generic.GenericBlockSkipConfig", "Summary": "

Default . Mirrors the typical Fanuc\nfactory default: layer 1 (bare / prefix) is ON, other layers\nare OFF. Each layer can be toggled individually.

\n

\nXML form:\n

<GenericBlockSkipConfig>\n  <EnabledLayers>1,3</EnabledLayers>\n</GenericBlockSkipConfig>
\nWhen EnabledLayers is absent the default is layer 1 only.\n\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Generic.IsoCoordinateTable.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Generic.IsoCoordinateTable.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Generic.IsoCoordinateTable", "Summary": "

Coordinate table for NC controller.\nThe dictionary key is a G-code coordinate name (e.g. “G54”, “G59.2”);\nthe dictionary value is machine coordinate offset.

\n

\nBrand-agnostic standalone implementation of .\nBrand parameter tables (Fanuc, Syntec, Siemens, Heidenhain) provide\nhardware-faithful alternatives that map to real controller parameters.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Generic.IsoCoordinateTableProxy.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Generic.IsoCoordinateTableProxy.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Generic.IsoCoordinateTableProxy", "Summary": "

Get-or-create for :\na placeholder in the shared that\nresolves the host project's own per-case work coordinate offsets (G54–G59…).

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Generic.MachineAxisConfig.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Generic.MachineAxisConfig.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Generic.MachineAxisConfig", "Summary": "

Brand-neutral backed by a plain axis→type\nmap, for pipelines that have no controller parameter table (e.g. the NX\nCLSF runner). Typically populated from the machine chain via\n; rotary axes default\nto modular ( inherited),\nmatching the cyclic shortest-path treatment of\n.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Generic.SubProgramFolderConfig.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Generic.SubProgramFolderConfig.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Generic.SubProgramFolderConfig", "Summary": "

Folder lookup configuration for\n: where to find an\nO<n> file when the host program executes M98 P_ L_\n() or M198 P_\n(, modelling Fanuc's external storage call —\nmemory card, USB, DNC drive — whose only difference from M98 is the\nsearch root).

\n

\nEither path may be absolute or relative; when relative, it resolves\nagainst the host file's parent directory at lookup time. Either may\nbe null — a null falls back to\n; a null \nfalls back to the host file's parent directory.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Generic.ToolOffsetRow.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Generic.ToolOffsetRow.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Generic.ToolOffsetRow", "Summary": "

Single row of a .\nStores geometry (ideal) and wear components for height and radius.\nMatches Fanuc Memory C layout where H and D share the same row.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Generic.ToolOffsetTable.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Generic.ToolOffsetTable.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Generic.ToolOffsetTable", "Summary": "

Integer-keyed tool offset table implementing .\nSuitable for Fanuc (H/D), Heidenhain (tool number), Mazak, Okuma,\nand other ISO-compatible controllers.\nKey = offset number (Fanuc H or D number).

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Generic.ToolOffsetTableProxy.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Generic.ToolOffsetTableProxy.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Generic.ToolOffsetTableProxy", "Summary": "

Get-or-create for :\na placeholder in the shared that\nresolves the host project's own per-case tool offsets. The shared runner file\nholds only this proxy, never the offset data.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Generic.ToolingMcConfig.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Generic.ToolingMcConfig.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Generic.ToolingMcConfig", "Summary": "

HiNC-specific: machine position axes move to during tool change (M06).\nNot a standard Fanuc parameter — in real Fanuc, tool change motion\nis programmed in the macro program (O9006).\nEach axis value: a position to move to, or to stay.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Generic.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Generic.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Generic", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Heidenhain.HeidenhainGotoIterationDependency.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Heidenhain.HeidenhainGotoIterationDependency.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Heidenhain.HeidenhainGotoIterationDependency", "Summary": "

Watchdog for Heidenhain FN 9–12 GOTO LBL jumps — the\nlabel-keyed sibling of the Siemens\n, with the same\n“soft-cap + runtime counter + session-init ”\nshape. Kept per-brand for diagnostic clarity and because klartext\ntargets are LBL numbers-or-names, matched in their canonical\nform (“01”1 on a TNC, quotes stripped).

\n

\nThe counter key is (FileName, Label) where FileName is\nthe source-level file path of the jump host (the relative form carried\non ) and Label is the normalised\ntarget. Klartext has no direction mnemonic — a backward jump is the\nlanguage's loop primitive, a forward jump can only fire once per\narrival — so all jumps to one label share one bucket and the cap stays\ngenerous.\n

\n

\nThe consuming syntax\n()\ncounts after the condition gate and before the label scan; above\n the jump warns\nHeidenhainGoto--IterationLimitExceeded and falls through. A\nmissing dependency disables the cap (Fanuc parity) — the brand preset\nwires one by default.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Heidenhain.HeidenhainParameterTable.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Heidenhain.HeidenhainParameterTable.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Heidenhain.HeidenhainParameterTable", "Summary": "

Heidenhain TNC/iTNC machine parameter table.\nStores machine parameters (MP numbers) as system and per-axis values.

\n

\nMP100–MP199: General machine configuration.\nMP400–MP499: Axis-specific parameters.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Heidenhain.HeidenhainParameterTableProxy.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Heidenhain.HeidenhainParameterTableProxy.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Heidenhain.HeidenhainParameterTableProxy", "Summary": "

Get-or-create for\n: a placeholder in the shared\n that resolves the host\nproject's own machine parameter table. Like the Fanuc-family parameter\ntable, the Heidenhain MP table mixes machine config (axis types /\nreference positions / rapid rates / tool axis direction) with per-project\nedits, so the proxy carries a fixed machine-config that\nis serialized into the shared runner file. On wire, the host receives a\ndeep clone of the seed only when it has no\n yet; a loaded project's own full\ntable wins, so a same-brand re-flash re-binds to the project's parameters\ninstead of resetting them. The resolved host table is fully serialized on\nthe project.

\n

\nThe proxy deliberately does not implement the machine-config\ninterfaces ( etc.) — every machine-config\nconsumer must go through\n so it sees the\nresolved host table, never this placeholder.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Heidenhain.HeidenhainQParameterTable.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Heidenhain.HeidenhainQParameterTable.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Heidenhain.HeidenhainQParameterTable", "Summary": "

Heidenhain Q-parameter table for the ranges that persist on a real TNC:\nfree parameters Q0-Q99 (survive power cycles) and the permanent\nQR0-QR499 range (nonvolatile, backed up with the machine). Like\nthe Siemens sibling , this\ntable is not session-reset and is serialised into the project file.

\n

\nThe other Q ranges deliberately live elsewhere: Q100-Q199 are\ncontroller-written system parameters — returns\nnull for them (read fail-soft, no fabricated values) and the\nreading syntax refuses writes; Q200+ are volatile cycle/user\nparameters carried block-to-block in Vars.Volatile (JSON\ndataflow, cleared at program end) — also returns\nnull so the evaluator's chain falls through to\n.\n

\n

\nReads flow through (registered\nautomatically because the table sits on the runner's effective\nNcDependencyList); writes flow through\n,\nwhich consumes literal Parsing.Assignments.Qn entries after\n has normalized\nexpression RHS to literals.\n

\n

\nVacant is represented by null: either the dictionary has no entry\nfor the key, or the entry maps to null — both read identically. A\nvacant read failing loud (Variable--Vacant via the evaluator) surfaces\nmissing setup data instead of silently machining with 0.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Heidenhain.HeidenhainQParameterTableProxy.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Heidenhain.HeidenhainQParameterTableProxy.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Heidenhain.HeidenhainQParameterTableProxy", "Summary": "

Get-or-create for :\na placeholder in the shared that\nresolves the host project's own per-case Q parameters (Q0–Q99 + QR0–QR499).

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Heidenhain.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Heidenhain.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Heidenhain", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.HeidenhainDatumTable.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.HeidenhainDatumTable.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.HeidenhainDatumTable", "Summary": "

Heidenhain datum preset and datum shift tables.\nCYCL DEF 247 Q339=N reads from ,\nCYCL DEF 7 #N reads from .\nEach table maps an integer ID (1–20) to a Vec3d offset.

\n

\nOn real Heidenhain controllers, preset and datum tables are separate\ndisk files (e.g. TNC:\\table\\preset.pr, *.d) — distinct\nfrom MP-prefixed Machine Parameters (held by\n). HiNC mirrors that separation\nby keeping this dependency independent of HeidenhainParameterTable.\n

\n

\nImplements by mapping the ISO/DIN\nG54–G59 codes to preset rows 1–6, the conventional Heidenhain\ncompatibility mapping for ISO/DIN programs running on a Heidenhain.\n

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

Get-or-create for :\na placeholder in the shared that\nresolves the host project's own per-case datum preset / datum shift tables.

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

Runtime state of the controller's Block Delete / Block Skip switches.\nPresent in exposes this to\nthe runner so that blocks whose head carries / or /N\n(parsed by into\n) are skipped at semantic time.

\n

\nLayers are 1..9; Layer 1 corresponds to the bare / prefix.\nControllers (Fanuc / Syntec / Mazak / Siemens) let each layer be\ntoggled independently via panel switches or system parameters.\n

\n

\nWhen this dependency is absent from\n, no block is skipped\n(safest default: simulate the full machining). The syntax still\nconsumes the / prefix so no UnparsedText--Remaining\ndiagnostic is produced.\n

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

Canned cycle configuration parameters.\nImplemented by brand-specific parameter tables\n(e.g., for Fanuc #4002,\n for Syntec Pr4002)\nand by as a safety net.

\n

\nSiemens and Heidenhain specify peck clearance per-call\n(CYCLE83 parameter / CYCL DEF), so their tables do not implement\nthis interface. The provides\nthe default value in those cases.\n

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

G28 first reference position (home machine coordinate) per axis.

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

Indexing-axis position table: maps 1-based indexing position numbers to\naxis coordinates for axes that only take up discrete stations (Hirth\ncouplings, indexing rotary tables, turret-style workholders). Consumed\nby the coded-position coordinate functions (Siemens\nCAC()/CIC()/CDC()/CACP()/CACN() —\nunwrapped by ,\nresolved by /\n via\n).\nImplemented by using the\nSiemens machine data (MD30500 $MA_INDEX_AX_ASSIGN_POS_TAB per\naxis; global tables MD10910/MD10930; equidistant MD30501–MD30503).

\n

\nPositions are expressed in the axis' native units (degrees for rotary,\nmm for linear) in the coordinate frame the axis word itself is written\nin — machine coordinates for rotary words, program coordinates for\nlinear words. Position numbering is 1-based: number 1 is the first\ntable entry (the Siemens machine-data help and alarm texts count this\nway; the 0-based value range printed in some programming-manual\neditions describes the machine-data array index, not the programmable\nnumber).\n

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

ISO work coordinate offset provider.\nMaps a G-code work coordinate id (e.g. “G54”, “G59.2”, “G54.1P1”)\nto a machine-coordinate offset Vec3d.

\n

\nImplementations include\n (brand-agnostic standalone storage),\n / \n(parameter-table integration via real Fanuc/Syntec parameter numbers\n#5221+ for G54–G59 and #7001+ for G54.1 P1–P48),\n (Sinumerik $P_UIFR frames),\nand (Heidenhain preset rows).\n

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

Machine-declared M-code map: what each machine-specific (OEM/PLC) M-code\ndoes, as — possibly several effects per code\n(tool change, spindle direction, coolant) plus a note for behavior this\nsimulation does not model. Consumed by\n, which expands declared\ncodes into the canonical ISO flags ahead of the regular consumers.\nMachine-level (per-case parameter table) rather than brand vocabulary —\nimplemented by , alongside the\nnarrower face over the same storage.

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

Machine axis configuration: which axes exist and their types.\nCompatible with Fanuc, Siemens, Heidenhain, Mazak, Okuma.

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

Marker interface for objects that participate in the NC dependency list resolved by the soft-NC runtime.

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

Hosts a per-case list that\n placeholders in a shared\n resolve their data against. Implemented by the\nobject owning both the shared runner and the varied setting data —\ne.g. MachiningProject.

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

An placeholder that resolves the real\ndependency lazily at pipeline-build time instead of carrying the data\nitself. Lets a shared hold only the fixed\npipeline logic while the frequently-varied data lives on the owning\n (e.g. a MachiningProject).

\n

\n\"Maker and taker\": either constructs the\ndependency on demand (maker) or fetches one from the host wired by\n (taker). A get-or-create proxy does\nboth — it takes the host's instance when present and otherwise makes one,\ninstalling it into the host list so it persists and is editable per case.\n

\n

\nA proxy may carry runtime-only state (the wired host, a memoized resolved\ndependency). That state is host-wired per run and MUST NOT be written by\n — same\nruntime-only posture as .\n

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

Marks an that holds volatile state which must be cleared\nwhen the controller performs a power reset (power off then on).

\n

\nImplementers should clear only the volatile subset they own (e.g. Fanuc common volatile\nmacro variables #100-#499), and leave persistent state untouched\n(e.g. #500-#999, controller parameters).\n

\n

\nCall-frame local state (Fanuc #1-#33, Heidenhain Q200-Q1199) is NOT in scope —\nthat lives in the SyntaxPiece JSON dataflow and is bounded by call activation, not power cycle.\n

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

Provides per-axis rapid traverse feedrate for motion semantics.\nImplemented by using\nbrand-specific parameter numbers (e.g., Fanuc #1420, Siemens MD32000,\nHeidenhain MP1010).

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

Machine-specific spindle control codes: maps custom spindle direction\nM-codes to — e.g., an ultrasonic spindle\nstarted by M203 (CW) and stopped by M205 (STOP) instead of\nISO M03/M05. Consulted by\n in addition to the\nbuilt-in ISO defaults (M03/M04/M05), which always stay in effect;\na configured code wins over its ISO meaning when both match.\nMachine-level (per-case parameter table) rather than brand vocabulary —\nimplemented by as a\nspindle-direction face over its\n storage\n(the multi-effect map), so one\ncode is never half-recognized by two separate maps.

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

Per-axis stroke (travel) limits.\nUnit is mm for linear axes, deg for rotary axes.\nImplemented by using\nbrand-specific parameter numbers (e.g., Fanuc #1300/#1320,\nSiemens MD36100/MD36110, Heidenhain MP420/MP430).

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

Machine-level tool-change trigger mode. Machining centers with a\nmagazine treat a bare T word as pre-selection only (the magazine\nrotates, no feed axis moves) and change the tool on the trigger M-code;\nlathes/turret machines index the turret — and thereby change the tool —\non the T word itself. Real controllers declare this per machine\n(e.g. Siemens MD22550 $MC_TOOL_CHANGE_MODE, where 0 means the\nT word performs the change). Consulted by\n; machine-level (per-case\nparameter table) rather than brand vocabulary — implemented by\n. Custom trigger M-codes are\nthe separate concern\n().

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

Tool offset configuration indexed by a single integer offset number.\nApplies to Fanuc (H/D numbers), Heidenhain (tool number), Mazak, Okuma,\nand other ISO-compatible controllers where one integer selects the offset row.

\n

\nFor Siemens (840D/Sinumerik) where offsets are addressed by\n(tool number, cutting edge D number), see\n.\n

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

Machine position axes move to during tool change (M06).

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

Fanuc-style ISO coordinate parameter address mapping.\nG54–G59 → #5221+ (stride 20, three consecutive numbers per entry for X/Y/Z),\nG54.1 P1–P48 → #7001+ (stride 20).\nShared between (which calls these\n“ParamId”) and (which calls them\n“PrId”) because both follow the same numeric scheme.

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

What one machine-declared M-code does. Real-machine OEM M-codes are\nfrequently composite — e.g. an M13 that means “spindle CW +\nflood coolant on” — so a declaration carries every effect the code\nperforms rather than a single meaning, and additionally an\n for the parts this simulation does not\nmodel. Declaring only the known parts and staying loud about the rest\nkeeps a composite code from being half-consumed silently.\nStored per machine in\n and\nconsumed by , which\nexpands the declared code into the canonical ISO flags the regular\nconsumers already understand.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Siemens.ISiemensToolOffsetConfig.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Siemens.ISiemensToolOffsetConfig.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Siemens.ISiemensToolOffsetConfig", "Summary": "

Siemens (840D/Sinumerik) tool offset configuration.\nOffsets are addressed by (tool number T, cutting edge D number),\nunlike where a single integer selects the row.

\n

\nSiemens stores up to 25 data fields per cutting edge ($TC_DP1..$TC_DP25),\nincluding three independent length components (L1/L2/L3 for Z/X/Y directions),\nradius, and corresponding wear values.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Siemens.SiemensFrameTable.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Siemens.SiemensFrameTable.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Siemens.SiemensFrameTable", "Summary": "

Sinumerik settable work coordinate frames ($P_UIFR[n]).\nModels G54–G57 (ISO-compatible), G505–G599 (extended Siemens),\nand G500 (cancel — always zero).

\n

\nOn real Sinumerik, $P_UIFR is a frame array containing translation,\nrotation, scale and mirror per entry. HiNC currently consumes only the\ntranslation component, so this table stores per id.\n$P_UIFR is NOT in the machine data table — therefore this is a separate\ndependency from (which holds\nMD-prefixed OEM machine data such as MD30300 axis type, MD34010 reference\nposition, etc.).\n

\n

\nDeliberately not : settable frames\nare setting data on the control — a $P_UIFR write from the\nprogram survives reset and power-off, so a replayed session must see\nthe values the previous run wrote.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Siemens.SiemensFrameTableProxy.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Siemens.SiemensFrameTableProxy.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Siemens.SiemensFrameTableProxy", "Summary": "

Get-or-create for :\na placeholder in the shared that\nresolves the host project's own per-case settable work frames ($P_UIFR,\nG54–G57…).

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Siemens.SiemensGotoIterationDependency.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Siemens.SiemensGotoIterationDependency.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Siemens.SiemensGotoIterationDependency", "Summary": "

Watchdog for Siemens GOTOF/GOTOB jumps — the\nlabel-keyed sibling of the Fanuc\n, with the same\n“soft-cap + runtime counter + session-init ”\nshape. Kept per-brand (rather than widening the Fanuc dep's int-keyed\nbucket) for diagnostic clarity and because Siemens targets are named\nlabels, not N-numbers.

\n

\nThe counter key is (FileName, Label) where FileName is\nthe source-level file path of the jump host (the relative form\ncarried on ). Source-level keying\nmeans multiple inline invocations of the same subprogram pool their\ncounts, while two files each jumping to their own LBL1 stay\nisolated. Forward and backward jumps to the same label share one\nbucket — only the backward direction can loop, but a shared bucket\nkeeps the accounting simple and the cap generous.\n

\n

\nThe consuming syntax\n() counts\nafter the condition gate and before the label scan; above\n the jump warns\nSiemensGoto--IterationLimitExceeded and falls through. A\nmissing dependency disables the cap (Fanuc parity) — the brand preset\nwires one by default.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Siemens.SiemensLoopIterationDependency.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Siemens.SiemensLoopIterationDependency.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Siemens.SiemensLoopIterationDependency", "Summary": "

Watchdog shared by all four Siemens loop constructs\n(WHILE/ENDWHILE, FOR/ENDFOR, REPEAT/UNTIL,\nLOOP/ENDLOOP) — construct-neutral by design, unlike the Fanuc\nsibling () which\nonly has WHILE to guard. Same “soft-cap + runtime counter +\nsession-init ” shape.

\n

\nSiemens loop constructs carry no LoopId, so the counter key is\n(FileName, BeginLineNo) — the loop-entry line recorded in the\nactive frame identifies the construct uniquely within its file, and\nthe file path isolates identically-numbered lines across files (and\nacross inlined subprograms).\n

\n

\nThe consuming syntax\n() counts at\nthe back-jump step (the loop terminator / falsy UNTIL), so a\nloop whose condition is false from the outset consumes zero\niterations. Above the terminator\nwarns SiemensLoop--IterationLimitExceeded, pops the frame and\nfalls through. A missing dependency disables the cap for the\ncondition-bearing constructs (Fanuc parity) but hard-blocks the\nENDLOOP back-jump — LOOP has no exit condition, so an\nuncapped back-jump would hang the pipeline deterministically.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Siemens.SiemensMachineDataTable.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Siemens.SiemensMachineDataTable.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Siemens.SiemensMachineDataTable", "Summary": "

Siemens Sinumerik machine data table.\nStores machine data (MD numbers) as system and per-axis parameters.

\n

\nMD10000–MD19999: General machine data.\nMD20000–MD29999: Axis-specific machine data.\nMD30000–MD39999: Axis-specific machine data (extended).\n

\n

\nDeliberately not : machine data is\ncontrol configuration a part program cannot mutate, so there is no\nsession-scoped state to clear.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Siemens.SiemensMachineDataTableProxy.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Siemens.SiemensMachineDataTableProxy.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Siemens.SiemensMachineDataTableProxy", "Summary": "

Get-or-create for\n: a placeholder in the shared\n that resolves the host\nproject's own machine data table. Like the Fanuc-family parameter table,\nthe Siemens machine data mixes machine config (axis types / reference\npositions / velocities / indexing tables) with per-project edits, so the\nproxy carries a fixed machine-config that is serialized\ninto the shared runner file. On wire, the host receives a deep clone of the\nseed only when it has no yet; a\nloaded project's own full table wins, so a same-brand re-flash re-binds to\nthe project's machine data instead of resetting it. The resolved host\ntable is fully serialized on the project.

\n

\nThe proxy deliberately does not implement the machine-config\ninterfaces (,\n, etc.) — every machine-config\nconsumer must go through\n so it sees the\nresolved host table, never this placeholder.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Siemens.SiemensRParameterTable.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Siemens.SiemensRParameterTable.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Siemens.SiemensRParameterTable", "Summary": "

Sinumerik R-parameter table (R0-R999). R parameters are the\nSiemens arithmetic-variable surface (R63=100.5, C=R61,\nR26=(558.5+14)/2); on real hardware they live in retentive memory\n(sized by MD28050) and survive program end and power cycles, so — like\nthe Fanuc sibling — this\ntable is not session-reset and is serialised into the project file.

\n

\nReads flow through (registered\nautomatically because the table sits on the runner's effective\nNcDependencyList); writes flow through\n,\nwhich consumes literal Parsing.Assignments.Rn entries after\n has normalized\nexpression RHS to literals.\n

\n

\nVacant is represented by null: either the dictionary has no entry\nfor the key, or the entry maps to null — both read identically.\nReal Sinumerik default-initialises every allocated R to 0, but a vacant\nread failing loud (Variable--Vacant via the evaluator) surfaces missing\nsetup data instead of silently machining with 0.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Siemens.SiemensRParameterTableProxy.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Siemens.SiemensRParameterTableProxy.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Siemens.SiemensRParameterTableProxy", "Summary": "

Get-or-create for :\na placeholder in the shared that\nresolves the host project's own per-case R parameters (R0–R999).

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Siemens.SiemensToolEdgeOffset.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Siemens.SiemensToolEdgeOffset.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Siemens.SiemensToolEdgeOffset", "Summary": "

One Siemens cutting-edge offset row ($TC_DP fields for a (T, D) pair):\ngeometry lengths L1/L2/L3 ($TC_DP3/4/5), radius ($TC_DP6) and the\ncorresponding wear values ($TC_DP12/13/14/15) as typed properties (all\nmm), plus for every other $TC_DP index —\nsame split as 's well-known-MD\nproperties over a generic parameter bag. A typed property means the\nsimulation consumes the field; a bag entry means the value is stored\nand round-tripped but not interpreted.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Siemens.SiemensToolOffsetTable.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Siemens.SiemensToolOffsetTable.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Siemens.SiemensToolOffsetTable", "Summary": "

Per-case Siemens tool offset table — the first concrete\n ($TC_DP model): one\n row per (tool number T, cutting\nedge D), each carrying the three length components + radius with their\nwear counterparts, plus a verbatim bag for the remaining $TC_DP\nindices (round-tripped, not consumed — see\n). Effective\nvalues are geometry + wear —\nSinumerik wear ($TC_DP12..15) is additive; a worn-down tool carries a\nnegative wear value. Unconfigured (T, D) pairs return 0 per the\ninterface contract.

\n

\nAlso carries the map ($TC_TP2 analog,\ncase-insensitive) so Siemens string tool calls (T=\"D8R1\")\ncan resolve to the int-keyed act chain — consumed by\n.\n

\n

\nPer-case editable data — reaches the pipeline through\n on the host's\n, never as a\nconcrete instance baked into the shared runner. Deliberately separate\nfrom (MD-prefixed machine-fixed\nOEM data) — same split rationale as .\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Siemens.SiemensToolOffsetTableProxy.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Siemens.SiemensToolOffsetTableProxy.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Siemens.SiemensToolOffsetTableProxy", "Summary": "

Get-or-create for\n: a placeholder in the shared\n that resolves the\nhost project's own per-case Siemens ($TC_DP) tool offset table.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Siemens.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Siemens.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Siemens", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Syntec.SyntecParameterTable.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Syntec.SyntecParameterTable.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Syntec.SyntecParameterTable", "Summary": "

Syntec controller parameter table.\nStores system parameters (single value) and axis parameters (per-axis value)\nfollowing Syntec Pr-prefixed parameter numbering.

\n

\nSyntec is largely Fanuc-compatible in parameter numbering,\nbut some parameters differ in unit or interpretation.\nFor example, Pr4002 (peck retraction) is stored in microns\nwhereas Fanuc #4002 stores in mm.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Syntec.SyntecParameterTableProxy.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Syntec.SyntecParameterTableProxy.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Syntec.SyntecParameterTableProxy", "Summary": "

Get-or-create for :\nthe Syntec sibling of . Like Fanuc,\nthe Syntec parameter table mixes machine config with per-case work-coordinate\noffsets, so the proxy carries a fixed machine-config \nserialized into the shared runner file. On wire, the host receives a deep clone\nof the seed only when it has no yet; a loaded\nproject's own full table wins. The proxy does not implement the machine-config\ninterfaces — consumers go through\n.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.Syntec.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.Syntec.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.Syntec", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.html" } }, "version": "", "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 —\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", "source_relative_path": "api/Hi.NcParsers.Dependencys.SystemWired.MappingAnchorDependency.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.SystemWired.MappingAnchorDependency.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.SystemWired.MappingAnchorDependency", "Summary": "

Narrow NC-pipeline dependency that lets a CSV semantic convert an absolute\ncontroller instant to a run-relative timecode against the project mapping\nanchor, without reaching the whole \nsurface (cf. ). The host wires\n to TimeMapping.ToTimecode, whose\nset-once ??= seeds (lazily builds) the anchor on first use.

\n

\nRuntime-only: the provider is wired per host and not persisted; serialization\nwrites only the empty element so the dependency survives an XML round-trip.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.SystemWired.NcKinematicsDependency.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.SystemWired.NcKinematicsDependency.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.SystemWired.NcKinematicsDependency", "Summary": "

Provides as an \nfor ..

\n

\nThe actual kinematics instance is resolved at runtime via\n. This supports scenarios where\nthe machine tool is loaded or changed after the runner is configured\n(e.g., XML config loaded first, kinematics assigned later).\n

\n

\nConsumed by ,\n, and\n via\ndependencyList.OfType<IMachineKinematics>().\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.SystemWired.NcLineSourceDependency.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.SystemWired.NcLineSourceDependency.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.SystemWired.NcLineSourceDependency", "Summary": "

In-memory line source for NC “files” with no disk backing — inline\nNC-code plays whose is a\ncommand-title pseudo-path (e.g. “NC Code”). Control-flow\nre-segmentation (WHILE reverse jump, backward GOTO, M99 P{seq}\ncaller re-entry — every \nscan) re-reads the host file by path; an inline play's pseudo-path never\nexists on disk, so without this source those jumps fall through (loops\nthat do not loop) or error with a *FileNotFound diagnostic.\n registers the play's\nraw lines under its pseudo-path before running;\n consults this source first\nand only falls back to disk.

\n

\nEntries persist for the runner's lifetime, the latest registration of a\npath winning — deliberately NOT : the\nsession-reset sweep runs inside the first\n of a fresh session, which would\nwipe the registration made moments earlier for that very play. A\nregistered pseudo-path shadows an identically-named disk file during\nre-segmentation, so inline command titles should not mirror real\nproject-relative NC paths.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.SystemWired.ProjectFolderDependency.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.SystemWired.ProjectFolderDependency.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.SystemWired.ProjectFolderDependency", "Summary": "

Exposes the absolute base directory of the project that owns this\nrunner. Resolved at runtime via ;\nthe host (e.g. LocalProjectService, a test harness) wires the\nprovider to its known project root after the runner is constructed,\nbecause itself does not retain the\nbaseDirectory argument it sees during XML deserialization.

\n

\nConsumed by syntaxes that need to resolve a project-relative path\nto an absolute file system location — e.g.\n for O<n>\nsubprogram lookup under\n.\nReading is not a substitute: that\npath is relative and resolving it via Path.GetFullPath would\nanchor against the process working directory, not the project root.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency.html" } }, "version": "", "Uid": null, "IsMRef": true, "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.SentenceIndexCounterDependency.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.SystemWired.SentenceIndexCounterDependency.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.SystemWired.SentenceIndexCounterDependency", "Summary": "

Per-session monotonically-increasing \nallocator. Holds the counter as a private field; \nreturns the next unused value and increments. \nrewinds to 0 — the owning \ninvokes it via the sweep on the same\nedge that initializes a fresh ,\nso a controller power-reset clears both the syntax-piece pipeline and\nthis counter in lock-step.

\n

\nThis dependency exists to fix the sentence-index double-booking bug:\nbefore it, the host file's lazy enumerator numbered pieces from\nlayers[0].Count captured at file-append time while subprogram /\nmacro / control-flow re-segmentation numbered from\nlayers[0].Last.Value.SentenceIndex + 1 — two independent\nsequences that overlap as soon as a call is inlined mid-stream\n(host blocks after M98 and the inlined body shared the same\nindices). With this counter, \nallocates one value per piece at materialization time, which the lazy\npipeline pulls in execution order — indices are session-globally\nunique and strictly increasing along the executed stream, at the cost\nof no longer being contiguous per file (eager label scans discard\ntheir pre-label prefix, leaving gaps).\n

\n

\nValues are never negative, preserving the -1 \"not in pipeline\"\nsentinel used by and\n.\nWhen this dependency is absent from the pipeline list,\n falls back to the\ncaller-supplied begin-index numbering — the legacy colliding behavior.\nOnly code-built runners can hit that fallback: XML rehydration back-fills\na missing instance (the SoftNcRunner XML constructor's\nsystem-wired back-fill), because saves that predate this dependency\nnever self-heal by round-tripping — re-saving stamps a new\nApiVersion on the same incomplete list.\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", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency", "Summary": "

Exposes the per-session layer chain (one\n per pipeline stage, owned by\n) to syntaxes that need\nto inject additional source pieces mid-pipeline — most notably\n, which inlines a subprogram\nfile's blocks back into layers[0] immediately after the M98 host\nnode so the entire syntax pipeline naturally re-processes them.

\n

\nThe actual layer list is resolved at runtime via\n; \nwires the provider to the active session's\n at\nthe start of each call. Index 0 is the source layer (init seed +\nsentence-derived pieces); indices 1..N are post-NcSyntax layers — same\nconvention as .\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.SystemWired.ToolHouseDependency.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.SystemWired.ToolHouseDependency.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.SystemWired.ToolHouseDependency", "Summary": "

Exposes the project's to NC pipeline\ncomponents — the narrow counterpart of\n for syntaxes / semantics that\nonly look up or register tools (e.g. the CLSF pipeline's\nTLDATA-driven tool creation).

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.SystemWired.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.SystemWired.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys.SystemWired", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Dependencys.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Dependencys.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Dependencys", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.CallStackUtil.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.CallStackUtil.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.CallStackUtil", "Summary": "

Push / pop helpers for the per-block section.\nBoth produce a fresh deep-cloned ready to\nstamp onto an inlined piece (push site) or onto an M99 return block\n(pop site); the caller is responsible for deep-cloning again if it\ndistributes the same stamp across multiple pieces of an L-repetition.

\n

\nPairs with at the\nLogic stage: explicit push / pop writes seed the section at frame\nboundaries, ModalCarry copies it forward to every block in between\nso each block is self-contained for cache-dump readers and downstream\nconsumers (notably M99 P{seq} reading the top frame's\n).\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.EvalResult.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.EvalResult.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Evaluation.EvalResult", "Summary": "

Outcome of evaluating an . Either a successful\nnumeric value, or a failure with an error code matching the diagnostic\ncatalogue used by reading / evaluator syntaxes.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.IRuntimeVariableLookup.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.IRuntimeVariableLookup.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Evaluation.IRuntimeVariableLookup", "Summary": "

Stateless variable lookup that needs per-block runtime context — the\ncurrent node (for \ntraceback into runtime-state sections like MachineCoordinateState\n/ ProgramXyz) and the dependency list (so the lookup can read\nfrom sibling dependencies without holding a static reference).

\n

\nDistinguished from : that one is for\nlong-lived dependencies that already hold their own data (parameter\ntables, tool-offset wrappers, retained-variable tables) and need no\nblock context. IRuntimeVariableLookup is for context-sensitive\nresolutions configured declaratively on\n.\n

\n

\nImplementations should be brand-specific (e.g. Fanuc #5001-#5043\nposition reads) and return null for keys outside their range so\nthe evaluator's chain can fall through to the next lookup.\n

\n

\nImplementations are XML-serialised as part of\n's round-trip: each impl exposes a\nstatic XName, registers itself with ,\nand implements . Since impls\nare stateless, the typical body is just an empty element carrying the\ntype name; brand identity is restored by XFactory dispatch.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.IVariableLookup.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.IVariableLookup.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Evaluation.IVariableLookup", "Summary": "

Resolves a Custom Macro B variable reference to its current numeric value,\nor null for vacant (Fanuc <vacant>) and out-of-scope alike.

\n

\nThe key is the raw source token — Fanuc \"#124\", Heidenhain\n\"Q1\", Siemens \"R1\" — so the interface itself is brand-agnostic.\nImplementations are typically narrow (one per id range / per brand prefix)\nand parse the prefix locally; chain them at the call site by trying each\nin priority order until one returns a non-null value.\n

\n

\nA returned null is treated by \nas vacant and surfaces as a Variable--Vacant failure when the\nvalue is consumed in arithmetic context.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.LocalVariableLookup.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.LocalVariableLookup.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Evaluation.LocalVariableLookup", "Summary": "

Reads Fanuc-style local macro variables (#1-#33) from\nVars.Local on the current JSON,\nfalling back to the immediately previous block when they share the\nsame id. Self-gates the id range\nso the evaluator's\n chain can\nfall through to the next lookup for out-of-range keys.

\n

\nTwo-step lookup (mirrors ): the\ncurrent block sees writes that \nstamped at inline time (the call-line argument bindings) and writes\nthat \napplied on this block before the lookup runs; the previous block\n(frame-checked) supplies body-internal writes from the prior block in\nthe same macro frame. Looking past the previous block is unnecessary\nbecause the reader carries forward block-by-block within a frame.\n

\n

\nFrame isolation via : a previous\nblock whose frame id differs from the current block's is skipped —\na macro body's body-internal locals are invisible to the caller after\nreturn, and the caller's main-frame locals are invisible inside the\nmacro. M98/M198 subprogram inlining\n() deliberately\ndoes not stamp on its\ninlined blocks, so the callee inherits the caller's frame and sees\nthe caller's locals — matching real Fanuc M98 semantics.\n

\n

\nStateless and dependency-free — instances are interchangeable.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcBinaryExpr.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcBinaryExpr.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcBinaryExpr", "Summary": "

Binary operation on two operands. Covers arithmetic\n(+ - * / / MOD), comparison\n(EQ NE GT GE LT LE, yielding 1.0 / 0.0), and\nlogical bitwise (AND OR XOR, operands truncated to\n).

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcBinaryOp.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcBinaryOp.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcBinaryOp", "Summary": "

Binary operators allowed in Fanuc Custom Macro B value expressions.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpr.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpr.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpr", "Summary": "

AST root for a Fanuc Custom Macro B value expression. Concrete leaves\nand combinators sit alongside ; walking\nis the job of .

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionDialect.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionDialect.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionDialect", "Summary": "

Selects which brand expression grammar a syntax parses value expressions\nwith. All dialects produce the same AST and are\nevaluated by the shared — the dialect\nonly decides tokenization/grammar (Fanuc #nnn + brackets vs\nSiemens Rn/named/$ + parentheses).

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionDialectUtil.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionDialectUtil.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionDialectUtil", "Summary": "

Dispatch helpers over so shared\nsyntaxes (, the assignment/tag\ncapture syntaxes) stay brand-agnostic: they hold a dialect value and\nroute through here instead of hard-coding a parser type.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionEvaluator.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionEvaluator.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionEvaluator", "Summary": "

Walks an AST and produces an .\nResolves #nnn via an ; built-in function\nnames are matched case-insensitively against a fixed table.

\n

\nPhase-1 supports: SIN COS TAN ASIN ACOS ATAN SQRT ABS ROUND FIX FUP LN\nEXP POW. Trigonometric arguments and results are in degrees, matching\nFanuc Custom Macro B convention. Unknown function names surface as\n; arity mismatches as\n; division / MOD by zero and domain\nerrors (e.g. SQRT[-1]) as ; vacant\noperands as .\n

\n

\nNumeric domain & type conventions. All values are IEEE 754\n — there is no separate bool / int type at runtime.\nComparison ops (EQ NE GT GE LT LE) yield 1.0 (true) or\n0.0 (false), using strict double equality / ordering (NaN\ncompares as IEEE specifies — NaN EQ NaN is 0.0). Logical\nops (AND OR XOR) truncate each operand to a 64-bit signed\ninteger ( then cast to\n) before applying the bitwise operation; non-finite\nor out-of-range operands surface rather\nthan silently wrapping. Truthiness at caller-side IF / WHILE\ngates is value != 0 — any non-zero value (bit, float, comparator\nresult) is true.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionParser.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionParser.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionParser", "Summary": "

Recursive-descent parser for Fanuc Custom Macro B value expressions.\nPure: takes a string, produces an AST. Performs no\nvariable lookup and no evaluation.

\n

Grammar (lowest precedence at top):

\n
expr     := or-expr\nor-expr  := and-expr (('OR' | 'XOR') and-expr)*\nand-expr := cmp-expr ('AND' cmp-expr)*\ncmp-expr := add-expr (('EQ' | 'NE' | 'GT' | 'GE' | 'LT' | 'LE') add-expr)*\nadd-expr := term (('+' | '-') term)*\nterm     := factor (('*' | '/' | 'MOD') factor)*\nfactor   := ('+' | '-')? primary\nprimary  := number\n         | '#' integer\n         | '#' '[' expr ']'\n         | '[' expr ']'\n         | ident '[' arglist ']' ('/' '[' expr ']')?\narglist  := expr (',' expr)*
\n

\nFunction names and keyword operators (MOD, EQ NE GT GE LT LE,\nAND OR XOR) are case-insensitive (SIN = sin,\nEQ = eq); each keyword requires a non-identifier character\non its right boundary so EQ1 is not the EQ operator\nfollowed by 1. Whitespace is skipped between tokens. The\n'/' '[' expr ']' tail captures the dual-bracket form Fanuc uses\nfor ATAN[a]/[b]; non-ATAN callers that happen to use it produce a\nfunction with an extra arg, which the evaluator rejects with an arity\nerror.\n

\n

\nOperator precedence intentionally puts boolean / logical layers below\narithmetic so #1 + 1 GT 0 parses as (#1 + 1) GT 0 and\n#1 GT 0 AND #2 LT 10 parses as (#1 GT 0) AND (#2 LT 10),\nmatching the Fanuc Custom Macro B spec for IF [..] GOTO /\nIF [..] THEN / WHILE [..] DO conditions.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcFunctionExpr.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcFunctionExpr.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcFunctionExpr", "Summary": "

Built-in function call like SIN[x], SQRT[x], ATAN[a]/[b].

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcIndirectVariableExpr.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcIndirectVariableExpr.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcIndirectVariableExpr", "Summary": "

Indirect variable reference #[expr]. The inner expression is\nevaluated and truncated toward zero to obtain an integer; the lookup key\nis then concatenated with that integer\n(e.g. Prefix="#", computed 124"#124").

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcLiteralExpr.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcLiteralExpr.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcLiteralExpr", "Summary": "

Numeric literal (e.g. 1.5, 15., .5, 1e-3).

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcUnaryExpr.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcUnaryExpr.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcUnaryExpr", "Summary": "

Unary + or - applied to an operand.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcUnaryOp.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcUnaryOp.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcUnaryOp", "Summary": "

Unary operators allowed in Fanuc Custom Macro B value expressions.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcVariableExpr.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcVariableExpr.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcVariableExpr", "Summary": "

Direct variable reference; is the raw source token\n(e.g. "#124") passed verbatim to .

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.VolatileVariableLookup.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.VolatileVariableLookup.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Evaluation.VolatileVariableLookup", "Summary": "

Reads Fanuc-style non-retained common variables (#100-#499)\nfrom Vars.Volatile. Self-gates the id range so the evaluator's\n chain can\nfall through to the next lookup for out-of-range keys.

\n

\nSingle-step lookup: already\ndict-merges every block's Vars.Volatile into the next block, so\nthe entry — if it exists — must be on the current block (when this\nlookup runs after the reader) or on the immediately previous block\n(when this lookup runs before the reader on the same block, which is\nthe Fanuc preset's order — evaluator first, reader second). No\narbitrary walk-back: such a walk would be defensive overkill given\nthe reader's carry guarantee.\n

\n

\nStateless and dependency-free — instances are interchangeable. Reads\nstay decoupled from the reader (read side here; write side in the\nreader).\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.html" } }, "version": "", "Uid": null, "IsMRef": true, "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", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax.html" } }, "version": "", "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 — \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", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucIfThenSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucIfThenSyntax.html" } }, "version": "", "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\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", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucLocalVariableReadingSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucLocalVariableReadingSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucLocalVariableReadingSyntax", "Summary": "

Routes literal-RHS assignments to Fanuc-style local macro variables\n(#1-#33) from Parsing.Assignments into Vars.Local\non the current block, carrying the previous block's Vars.Local\ndict forward when both blocks share the same\n id. Mirrors\n for the\n#100-#499 range, with two differences:

\n
  • Carry is gated by equality, so a\ncaller block after a G65 return does not inherit the macro body's\nfinal locals.
  • Writes outside a macro frame (a main-program block doing\n#11 = 5) emit\nLocalVariable--MainFrameWriteUnsupported and consume the\nassignment without persisting — real Fanuc allows main-frame local\nwrites but this simulator only tracks locals inside G65/G66 call\nframes; surfacing the gap as a diagnostic is more informative than\na silent\n hit.
\n

\nPipeline placement: Evaluation bundle, after\n (so any expression RHS such as\n#11 = #1 + 1 has already been normalised to a literal by the\ntime this reader runs) and after the other range readers\n(,\n) so they all share a\nsimilar Reader-stage shape.\n

\n

\nOnly literal numeric RHS values are consumed here; non-literal\nentries (which can only persist if\n failed to resolve them) are\nleft untouched and surface via the evaluator's own\nVariableExpression--Unevaluated diagnostic plus\n.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroArgumentMap.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroArgumentMap.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroArgumentMap", "Summary": "

Fanuc Custom Macro B Type-I argument-letter map: which call-line letter\nbinds to which Vars.Local id (#1-#26) inside the macro body.\nReserved letters (G, L, N, O, P) are\nabsent — they are consumed by the call itself, not passed through.

\n

\nUsed by (G65, one-shot) and\n (G66, modal) to translate the\nargument letters captured by \n/ into the\n#nnn bindings the macro body's expression evaluator can read.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroCallSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroCallSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroCallSyntax", "Summary": "

Inlines a Fanuc Custom Macro B one-shot call (G65 P_ L_ [letter\nvalue …]) into the source layer and binds the call-line argument\nletters to Vars.Local #1-#26 per the Type-I map (see\n). Every inlined block carries the\nbinding dict, a clone of the diagnostic\nrecord, and a id stamp — so\n resolves arg references in a\nsingle-block lookup, a cache dump landing on any block immediately\nshows which call it belongs to, and downstream\n carries body-internal\n#1-#33 writes forward only within the same frame. The host\nblock itself records but stays in the\ncaller's frame (no stamp) and emits no\nmotion act; after the macro body's last inlined block the pipeline\ncontinues naturally into the caller's next block (the inlined pieces\nsit ahead of the host block's successor in layers[0]).

\n

\nFrame isolation works on two layers. Statically, caller blocks\nhave no stamp (frame id 0 by\n), so the inlined frame ids (allocated\nfresh per L-repetition) never collide with main. Dynamically,\n and\n compare frame ids\nbefore carrying any Vars.Local entry across a block boundary\n— a macro body's body-internal writes therefore stay inside the\nmacro and never leak back into the caller's frame.\n

\n

\nFilename lookup mirrors :\nO{P:D4}.NC, O{P}.NC, O{P:D4}, O{P},\n{P:D4}.NC, {P}.NC — first match wins. The lookup root\nis (G65 has no\n\"external storage\" variant; M198's external root is M98/M198-only).\n

\n

\nL > 1 inlines the same macro L times in series. Each\nrepetition is a fresh segmentation pass (so each block gets its own\n JSON object — the downstream pipeline\nmutates JSON in place and would clobber sibling repetitions if\ninstances were shared) and gets a fresh FileIndex (so\n(FileIndex, LineIndex) pairs stay unique across the\nL-copies of the same source lines).\n

\n

\nPipeline placement: ahead of inside\nthe Fanuc Evaluation \nso a hypothetical G65 P_ + M98 P_ on the same block\nexpands the G65 macro first (would be an unusual but legal\ncomposition). Detection is on the Parsing.G65 sub-object\nwritten by \n(a ) — the\nkeyword \"G65\" never reaches Parsing.Flags because the\nparameterized match has already consumed the text by the time\n runs.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucModalMacroSyntax.SyntaxPhase.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucModalMacroSyntax.SyntaxPhase.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucModalMacroSyntax.SyntaxPhase", "Summary": "

Identifies which pipeline phase the instance runs in. The two\nvalues correspond to the Evaluation-bundle and PostLogic-bundle\nregistrations of this same syntax class.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucModalMacroSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucModalMacroSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucModalMacroSyntax", "Summary": "

Handles Fanuc Custom Macro B modal-call lifecycle (G66 setup,\nG67 cancel, and per-motion-block implicit macro invocation).\nThe same class is registered twice in the pipeline via\n — once in the Evaluation bundle\n(, captures G66/G67 edges and carries\nthe state block-to-block) and once in\nthe PostLogic bundle (, on every\nmotion block within an active G66 modal, inlines the macro body via\nthe same mechanism uses).

\n

\nKeeping both phases in one class makes the pairing visually explicit:\nreaders see \"G66 in one file\" and the two methods (DoSetup,\nDoExpansion) make the lifecycle obvious. The two factory\nhelpers (, ) mirror the\nModalCarrySyntax.Logic / .PostLogic pattern already in\nthe codebase.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucSystemControlVariableSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucSystemControlVariableSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "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 anchored\n overload with\n from the WHILE\nhost line — sequential loops reuse LoopIds, so only candidates below\nthe host line may match. The probe runs the brand-default\n on each candidate, predicate\nmatches 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", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Fanuc", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Heidenhain.HeidenhainExpressionParser.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Heidenhain.HeidenhainExpressionParser.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Heidenhain.HeidenhainExpressionParser", "Summary": "

Recursive-descent parser for Heidenhain klartext FN value expressions.\nProduces the same AST as the Fanuc\n so \nis reused unchanged. Pure: no variable lookup, no evaluation.

\n

Grammar (lowest precedence at top):

\n
expr     := add-expr\nadd-expr := term (('+' | '-') term)*\nterm     := factor (('*' | '/' | 'DIV') factor)*\nfactor   := ('+' | '-')? primary\nprimary  := number\n         | '(' expr ')'\n         | 'Q' digits | 'QR' digits | 'QL' digits | 'QS' digits\n         | func primary                    → prefix form \"SQRT 4\" (FN 5)\n         | func '(' arglist ')'            → paren form \"SQRT(Q2)\"
\n

\nDialect notes: Q-family tokens are canonicalised to uppercase\n(q1Q1) so Parsing.Assignments keys, table\nlookups and same-block references agree. (Caveat shared with the\nSiemens R canonicalisation: a lowercase-captured Assignments key\nkeeps its raw spelling in the evaluator's same-block dictionary, so\na later same-block reference resolves to the pre-block value instead\n— klartext posts emit uppercase, corpus-zero.) DIV is the FN 4\ndivision spelling (FN 4: Q4 = +8 DIV +Q2) and maps onto the\nshared divide operator. Function names are limited to the klartext\nmath vocabulary (SQRT SIN COS TAN ASIN ACOS ATAN ABS INT FRAC SGN\nNEG LN LOG EXP); INT normalises to the evaluator's\nFIX (truncate toward zero), names the shared evaluator lacks\n(FRAC/SGN/NEG/LOG) parse fine and fail\nsoft at evaluation. Any other identifier is a parse error — klartext\nhas no named variables, and rejecting bare words keeps the\nevaluator's Parsing-tree pass from touching non-expression strings\n(MM, MAX, tool-axis letters). Comparison/logical\noperators are deliberately absent: FN 9–12 jump conditions are\npre-normalised by\n\ninto separate value operands plus a shared comparison word — never\nparsed here.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Heidenhain.HeidenhainGotoSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Heidenhain.HeidenhainGotoSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Heidenhain.HeidenhainGotoSyntax", "Summary": "

Resolves Heidenhain FN 9–12 conditional jumps — the\n pattern with klartext LBL\ntargets and a structural condition. Triggered by\nParsing.HeidenhainGoto (written by\n); decides whether to fire,\nand on fire calls\n on\nlayers[0] with the re-segmented file content starting at the\ntarget label line (inclusive — the definition marker is consumed by\n downstream).

\n

\nThe condition is compared here, not by the expression grammar: the\nparsing owner pre-normalised the statement into two value operands\nplus a shared comparison word (the P2 decision that keeps the\nHeidenhain dialect free of comparison/logical layers). Each operand is\nread polymorphically — numeric (typed at capture for literals, or\nsubstituted in place by for\nresolved Q references) fires the comparison; a still-string operand\nmeans unresolved (the FN 18 SYSREAD target staying vacant is the\ndesigned source) and the jump warns\nHeidenhainGoto--ConditionNotEvaluated and falls through — no\nfabricated values, both endings stay fail-soft.\n

\n

\nThe label scan is whole-file first-match through the runner's own\nsegmenter () with the P4 call-path\nprobe stack — klartext has no direction mnemonic and a TNC label is\nunique per program, so the anchored directional overloads would add a\ndistinction the language does not have. Numeric labels canonicalize\n(\"01\"1); GOTO LBL 0 targets the\nend-of-subprogram sentinel and is refused\n(HeidenhainGoto--Lbl0Target, the\n precedent). Jumps hosted\ninside a P4 inlined body (CALL LBL/CALL PGM splice or a\nREP section pass) are recognized but not simulated — the\nredirect would discard the pending inline tail\n(HeidenhainGoto--InlinedContextUnsupported, the Siemens P5\nguard).\n

\n

\nPipeline placement: tail of the Heidenhain Evaluation bundle, after\n (operand substitution) and the Q\nreader. The watchdog\ncaps fired jumps per (file, label); a missing watchdog disables\nthe cap (Fanuc parity).\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Heidenhain.HeidenhainQParameterReadingSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Heidenhain.HeidenhainQParameterReadingSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Heidenhain.HeidenhainQParameterReadingSyntax", "Summary": "

Obtains values for Heidenhain Q parameters by consuming literal numeric\nassignments from Parsing.Assignments.Qn/QRn and routing\nthem by id range — one reader for the single Q key shape, range\nrouting inside (the Heidenhain analogue of the Fanuc range-routed reader\ntrio):

\n
  • Q0-Q99 free range\n(hincproj-persisted; the table is the single source of truth — no JSON\nmirror).
  • QRn → the same table's permanent QR store.
  • Q100-Q199 → controller-written system parameters: the write\nis consumed but not applied, with a\nHeidenhainQ--SystemReadOnly warning (no fabricated values).
  • Q200+ → volatile range: dict-merged into\nVars.Volatile with canonical Q+id keys, carried\nblock-to-block like the Fanuc ;\ncleared at program end by .
\n

\nThe carry of the previous block's Vars.Volatile happens on every\nblock regardless of assignments, so the single-step traceback contract of\n holds.\n

\n

\nOnly literal numeric RHS values are consumed\n(Q1 = 5000 ✓; Q1 = Q1*.75 ✗). Non-literal RHS entries are\nleft untouched in Parsing.Assignments;\n resolves them to literals earlier\non the same block, so by the time this syntax runs, every evaluable RHS\nis literal. The two syntaxes are decoupled.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Heidenhain.HeidenhainSubProgramCallSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Heidenhain.HeidenhainSubProgramCallSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Heidenhain.HeidenhainSubProgramCallSyntax", "Summary": "

Consumes the Parsing.CALL record captured by\n and executes the three klartext\ncall mechanisms over the shared M98 inline machinery:

\n
  • CALL LBL n / CALL LBL \"name\" (subprogram):\nthe host file is re-segmented through the runner's own segmenter\n(), scanned for the matching\nLBL definition with and the\n, truncated at the first following\nLBL 0 (inclusive — its consumption pops the frame), and\nprepended into layers[0] with a pushed \nframe. A subprogram without LBL 0 is a structured safe-skip\n(inlining to EOF would double-execute the file tail).
  • CALL LBL n REP m (program-section repeat — TNC\nsemantics: the section from LBL n up to, not including, the\ncall line runs m extra times): m fresh re-segmentation passes of that\nslice are prepended. A loop, not a call — no new \nframe is pushed, but the host block's stack propagates onto the\nrepeated pieces so nested calls inside the section still accumulate\ndepth against the rail; the repeat count itself is a literal bound.\nAny LBL 0 passed inside the section is a no-op for the return\nsyntax (null-safe pop).
  • CALL PGM name: resolved through\n with the\n chain ({0}.h{0}.H →\n{0}) and inlined whole — the\n mechanism verbatim,\nincluding resolve-miss safe-skip\n(HeidenhainCall--Skipped). The callee's END PGM pops\nthe frame via\n; a unit switch inside\nthe callee is not restored on return (recorded limitation).
\n

\nRecursion rail: like the Siemens call path, a self-recursive\nCALL LBL/CALL PGM would splice forever; a call whose\nhost block already carries \n frames is consumed as a safe-skip with\nHeidenhainCall--DepthLimitExceeded. No \nis stamped — klartext subprograms share the caller's Q scope.\n

\nPipeline placement: head of the Heidenhain Evaluation bundle\n(the Fanuc discipline — call/inline ahead of all variable machinery).\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Heidenhain.HeidenhainSubProgramReturnSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Heidenhain.HeidenhainSubProgramReturnSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Heidenhain.HeidenhainSubProgramReturnSyntax", "Summary": "

Consumes the two klartext return spellings and the standalone label\nmarkers:

\n
  • LBL 0 — end-of-subprogram sentinel: stamps\n (Term: \"LBL 0\") and pops the\n frame (null-safe: an LBL 0 reached in\nthe main flow — the 1.H head layout — is a no-op). Like the Fanuc\nM99, the \"return\" itself is structural: the call syntax truncated the\ninlined slice at this block, so the caller's tail follows\nnaturally.
  • LBL n / LBL \"name\" — definition markers:\nconsumed into a block-root record (no\nmotion; keeps the label visible for dumps and the P5 jump\nfamily).
  • END PGM with a non-empty —\nthe return of a CALL PGM callee: consumes Parsing.PGM\nbefore the Logic program-header syntax can treat it as a real program\nend (which would clear the volatile Q store mid-stream), stamps\n (Term: \"END PGM\"), and pops the\nframe. The main file's END PGM (empty stack) is untouched.
\nPipeline placement: directly after\n at the head of the\nEvaluation bundle.\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Heidenhain.HeidenhainVolatileQLookup.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Heidenhain.HeidenhainVolatileQLookup.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Heidenhain.HeidenhainVolatileQLookup", "Summary": "

Reads Heidenhain volatile Q parameters (Q200+, the cycle/user\nrange that resets at program start) from Vars.Volatile. Self-gates\nthe id range so the evaluator's\n chain can\nfall through for other keys (Q0-Q99/QRn resolve on the\n further\ndown the chain; Q100-Q199 stay vacant by design). Sibling of the\nFanuc with the same\nsingle-step traceback contract:\n dict-merges every block's\nVars.Volatile into the next block, so the entry — if it exists —\nis on the current block or the immediately previous one.

\n

\nKeys are stored canonically as Q + id by the reader; this lookup\nre-canonicalises the incoming key the same way, so lowercase raw\ncaptures still resolve. Stateless and dependency-free.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Heidenhain.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Heidenhain.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Heidenhain", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.LabelScanDirection.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.LabelScanDirection.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.LabelScanDirection", "Summary": "

Scan region and match policy for the anchored\n overload. Forward scans take the first\nmatch below the anchor line; backward scans take the nearest match\nabove it.

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

Shared “re-segment a file and skip pieces until a label matches”\nscan, used by both\n (unconditional GOTO redirect)\nand (M99 P{seq} jump\ninto the caller file). Reads the file via\n, segments through the\nprovided , runs the\ncaller-supplied probe syntaxes on each candidate block to\nextract IndexNote.Number, and returns the slice from the\nfirst matching block to EOF.

\n

\nReturns null when no block matches — the caller's\nresponsibility to surface the appropriate diagnostic. The probes\nare idempotent because the downstream Parsing bundle re-runs the\nsame syntaxes on the yielded pieces with no-op effect (the regex\npatterns no longer match once the N-prefix is consumed and the\nparenthesised comment stripped).\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile", "Summary": "

Tri-form resolution result. is the bare\nmatched name; is that name joined with the\nfolder portion of the dependency (relative when the folder is\nconfigured relative, absolute fallback when it isn't);\n is the fully-resolved I/O target.

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

Shared subprogram-/macro-file resolver for Fanuc-style O<n>\nlookups consumed by (M98 / M198)\nand (G65). Single helper so the three\npath forms — file name, project-relative path, absolute path — are\nproduced together at one site and each caller gets exactly the form\nit should consume:

\n
  • — bare O####.NC form\nthe resolver matched. Stored in JSON sections (FanucMacroCall,\nSubProgramCall) as the structural NC-language identifier;\nindependent of which folder the dependency happened to be pointing\nat, so the JSON stays portable across environments.
  • — relative path against the\nproject base directory (e.g. \"NC/O1234.NC\"). Used as the\n label so diagnostics on inlined blocks\nalign with the relative form already used for the main file label.
  • — absolute path. Used only\nat the call site for actual disk I/O; never\npersisted, never returned to JSON. Lives inside the resolver's stack\nframe and the segmenter's enumeration.
\n

\nFilename lookup order (first match wins) mirrors real Fanuc fallback:\nO{P:D4}.NC, O{P}.NC, O{P:D4}, O{P},\n{P:D4}.NC, {P}.NC. Case-insensitive match is delegated\nto the host filesystem (Windows is, Linux is not).\n

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

Shared inline mechanism for Fanuc Custom Macro B body expansion —\nused by both (one-shot) and\n's expansion phase (modal trigger). Both\ncallers do the same three things on every produced\n: stamp a \nclone, stamp a fresh id, and stamp\nargument bindings into Vars.Local. Centralising lets the two\ncall sites stay in lock-step — frame allocation, file-index\nallocation, and the inline-piece JSON shape are guaranteed\nidentical.

\n

\nFrame ids share the same \ncounter as file indices — both just need within-session uniqueness\nand the counter is rewound on session start in lock-step with the\npipeline. The main NC file is allocated index 0 first, so all\ninline frame ids land at > 0 and never collide with main.\n

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

Obtains values for Fanuc-style retained common variables (#500-#999)\nby consuming literal numeric assignments from Parsing.Assignments.#nnn\nand writing them straight to a registered\n.

\n

\nNo SyntaxPiece JSON mirror is created — the table is the single source of\ntruth for retained values, and reads\nfrom the table directly. The hincproj round-trip preserves writes across\nproject sessions.\n

\n

\nOnly literal numeric RHS values are consumed by this syntax\n(#500 = 1.234 ✓; #600 = #500 + 1 ✗). Non-literal RHS entries\nare left untouched in Parsing.Assignments; \nresolves them and writes the result through the same table. The two\nsyntaxes are decoupled.\n

\n

\nIf no is registered on the\nrunner's NcDependencyList, this syntax is a no-op.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensAcIcSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensAcIcSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensAcIcSyntax", "Summary": "

Recognizes the Siemens per-word coordinate function family on axis\nwords — AC(...) (absolute), IC(...) (incremental),\nDC(...) (rotary shortest-path), ACP(...) /\nACN(...) (rotary directional approach), and the coded-position\n(indexing axis) counterparts CAC(...) / CIC(...) /\nCDC(...) / CACP(...) / CACN(...) — e.g.\nX=AC(400), C=IC(360/17), C=DC(47.296),\nB=CAC(2) — unwraps the inner\nexpression so the downstream \nresolves it through the normal Siemens expression machinery, and\nrecords the per-word positioning override in a block-root\n section keyed by word name\n( /\n /\n /\n /\n, and the\nCoded* values for the coded-position verbs).

\n

\nSiemens semantics: the wrapper forces the interpretation of that one\ncoordinate word for that one block, regardless of the modal G90/G91\nstate. The positional conversion itself stays with the same consumers\nthat honor the modal state —\n for linear axes and\n for rotary axes (both treat\nevery non-Incremental override as an absolute write), while the\nrotary shortest/directional resolution stays with the\n tail-pass — this\nsyntax only normalizes the text and stamps the override; it never\nreads machine position (the Evaluation stage is not the place for\nposition-state reads).\n

\n

\nScope: axis words (per ,\nfalling back to X/Y/Z/A/B/C) accept the full family, except that the\nrotary-only verbs DC/ACP/ACN are unwrapped only\non rotary axes (per ,\nfalling back to A/B/C) — on a linear axis they are invalid Siemens\nand are left untouched so they surface as unevaluated residue\ninstead of being silently mis-read. The interpolation parameters\nI/J/K accept AC/IC only (Siemens circle centers are\nincremental by default; I=AC(...) switches that one component\nto an absolute center coordinate, consumed by\n) —\nthe rotary verbs are meaningless there and are left untouched.\nThe coded-position verbs (their argument is a 1-based indexing\nposition number, not a coordinate) are unwrapped only on axes\nthat reports as\nusable indexing axes — CDC/CACP/CACN\nadditionally require the axis to be rotary. Everywhere else (a\nnon-indexing axis, no indexing config on the list, I/J/K) they stay\nuntouched, mirroring the Siemens alarm 17500 (\"axis is not an\nindexing axis\") with loud unevaluated residue. The number→coordinate\nlookup happens at the write stage\n( /\n via\n), not here — the\nEvaluation stage neither reads machine position nor resolves tables.\nPositioning-axis forms (POS[C]=DC(...) / SPOS=) never\nreach the word path and are out of scope. Values whose parentheses\ndo not balance around the wrapper (e.g. IC(1)+AC(2)) are also\nleft untouched.\n

\n

\nMust be placed in the Evaluation bundle before\n (the unwrapped inner text is a\nplain Siemens expression the evaluator numeric-ifies on the same\nblock). Inside REPEAT / subprogram splices each re-fed piece runs the\nfull bundle again, so the unwrap happens on every iteration.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensExpressionParser.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensExpressionParser.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensExpressionParser", "Summary": "

Recursive-descent parser for Sinumerik value expressions. Produces the\nsame AST as the Fanuc\n so \nis reused unchanged. Pure: no variable lookup, no evaluation.

\n

Grammar (lowest precedence at top):

\n
expr     := or-expr\nor-expr  := and-expr (('OR' | 'XOR') and-expr)*\nand-expr := cmp-expr ('AND' cmp-expr)*\ncmp-expr := add-expr (('==' | '<>' | '>=' | '<=' | '>' | '<') add-expr)*\nadd-expr := term (('+' | '-') term)*\nterm     := factor (('*' | '/' | 'MOD') factor)*\nfactor   := ('+' | '-')? primary\nprimary  := number\n         | '(' expr ')'\n         | 'R' digits                      → variable \"R63\" (canonical uppercase)\n         | '$' name ('[' indexlist ']')?   → variable \"$P_UIFR[1,X,TR]\" (canonical)\n         | name '(' arglist ')'            → function call\n         | name '[' indexlist ']'          → variable \"_RENC[35]\" (canonical)\n         | name                            → variable \"_X_HOME\" (case preserved)\nindexlist := (integer | name) (',' (integer | name))*\narglist   := expr (',' expr)*
\n

\nDialect differences from the Fanuc parser: parentheses group and call\n(Fanuc uses brackets); comparisons are spelled == <>\n>= <= > < (Fanuc uses\nEQ NE .. words); bare identifiers are named-variable references\n(Fanuc rejects an identifier without [); R63 is\ncanonicalised to uppercase so table lookups and\nParsing.Assignments keys agree. Indexed accesses\n($P_UIFR[1,X,TR], _RENC[35]) require literal index\nelements (integers, bare letters, or keywords like TR) and are\nemitted as a single whose key is the\ncanonical uppercase-indexed token — the whole token routes through\n, keeping the AST brand-agnostic.\nFunction-name aliases are normalised where Sinumerik and the shared\nevaluator spell the same math differently: ATAN2ATAN\n(both are two-arg atan2 in degrees), TRUNCFIX\n(truncate toward zero). Unknown functions (e.g. the rotary positioning\nform DC(...)) parse fine and fail later in the evaluator, which\ncallers treat as fail-soft.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensGotoSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensGotoSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensGotoSyntax", "Summary": "

Resolves Siemens GOTOF/GOTOB control flow — the\n pattern with named-label targets\nand explicit direction. Triggered by Parsing.SiemensGoto\n(written by ); decides whether\nto fire, and on fire calls\n on\nlayers[0] with the re-segmented file content starting at the\ntarget label line (inclusive — a Siemens label may prefix code).

\n

\nDirection comes from the mnemonic and drives the anchored\n overload: GOTOF takes the first\nmatch strictly below the host line, GOTOB the nearest match\nstrictly above it — never the whole-file first match, which would\nsilently mis-target duplicate label texts. Targets may be a named\nlabel (LBL1: line, matched Ordinal-exact on the block-root\n record) or an N<num> block\nnumber (matched on ).\n

\n

\nThe conditional forms (IF <cond> GOTOF <label>)\nlean on 's pass-2 tree walk;\n (a dialect-neutral\nnumeric-JSON reader despite its home) reads the resolved node.\nTruthy fires; zero falls through silently; unresolved warns\nSiemensGoto--ConditionNotEvaluated and falls through. Because\nthe label field is an ordinary Parsing string, a label name that\ncollides with a set named variable may have been substituted to a\nnumeric by the evaluator — the original text is then recovered from\nthe Formula.SiemensGoto.Label mirror.\n

\n

\nPipeline placement: Evaluation bundle, in the control-flow group\nafter . The\n watchdog caps fired\njumps per (file, label); a missing watchdog disables the cap\n(Fanuc parity).\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensIfSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensIfSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensIfSyntax", "Summary": "

Resolves the Siemens IF ... [ELSE ...] ENDIF block\nconditional. Three phrases dispatched by\n, none of which needs a frame stack:

\n
  • IF — reads the resolved condition via\n (dialect-neutral numeric-JSON\n reader). True falls through into the then-branch; false\n forward-jumps to just after the matching ELSE (else-branch\n executes) or after the matching ENDIF when no else exists;\n unresolved warns SiemensIf--ConditionNotEvaluated and falls\n through (no redirect on unresolved input — the then-branch\n executes, and the ELSE rule below then skips the else-branch,\n which keeps the two branches mutually exclusive even on the\n fail-soft path).
  • ELSE — reached in the normal stream only when the\n then-branch just executed (a false IF jumps past the ELSE line\n directly), so it unconditionally forward-jumps past the matching\n ENDIF.
  • ENDIF — consumed no-op (stamped for cache dumps).
\n

\nBoth forward scans run on the anchored \noverload from the host line, with a nesting-depth predicate: each\nnested block-IF increments the depth, each ENDIF at\ndepth > 0 decrements it, and the match fires only at depth 0. The\nprobe stack replays the Parsing statement owners the depth counter\ndepends on — including ahead\nof , so a nested single-line\nIF cond GOTOF lbl is claimed by the GOTO owner and never\nmiscounted as a block-IF.\n

\n

\nPipeline placement: Evaluation bundle control-flow group, after\n (condition substituted) and\nbefore the variable readers.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensInlineContextUtil.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensInlineContextUtil.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensInlineContextUtil", "Summary": "

Detects whether a block executes inside a P4 inlined body — an\nL/name-call subprogram splice or a REPEAT label section\nrepetition. Both are PrependSource inlines whose “return to\nthe caller / to the line after REPEAT” is the natural pipeline tail;\nthe P5 control-flow redirects (ReplaceSource with a\nre-segmented host-file slice) would silently discard that pending\ntail — and, for a section repeat, re-execute the REPEAT\nstatement itself, which has no watchdog (its count is eagerly known)\nand therefore no bound. The P5 jump syntaxes consult this guard and\ndegrade to a structured warning + fall-through instead: control flow\ninside an inlined body is recognized but not simulated (corpus count\nzero; true support needs return-frame machinery, a future work\nitem).

\n
  • Subprogram context: the call syntax stamps a pushed\n on every inlined piece — any frame on the\n stack marks callee context.
  • Section-repeat context: \n stamps every inlined piece with a \n clone carrying a 1-based ;\n the REPEAT host block itself never carries that field.
\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensLoopSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensLoopSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensLoopSyntax", "Summary": "

Resolves the four Siemens loop constructs against one shared frame\nstack — WHILE ... ENDWHILE, FOR ... ENDFOR,\nREPEAT ... UNTIL (the label-less post-test loop) and\nLOOP ... ENDLOOP — the\n template (frames-in-JSON +\nModalCarry tracked key + forward scan to the terminator + back-jump\nto the recorded entry line), adapted to constructs that carry no\nLoopId: frames stack in nesting order on the block-root\n section, and every terminator\nvalidates that the innermost frame carries its own construct\n and file. A single shared stack\nis what makes mixed-construct nesting (a FOR inside a WHILE inside a\nLOOP) pair correctly.

\n
  • WHILE — pre-test: truthy pushes a frame (first\n arrival) and falls through; falsy/unresolved pops its own frame\n and forward-jumps past the matching ENDWHILE\n (depth-counted). ENDWHILE back-jumps unconditionally; the\n WHILE line re-evaluates.
  • FOR — counting: first arrival resolves the bounds\n once (Sinumerik semantics), assigns the loop variable by lifting\n into Parsing.Assignments (the reader syntaxes downstream\n persist it exactly as a written assignment), and pushes a frame\n carrying Var/End/Value; each re-arrival increments\n Value until it exceeds End, then pops and jumps past\n ENDFOR.
  • REPEAT/UNTIL — post-test: REPEAT pushes and\n always falls through; UNTIL exits on truthy (pop), warns\n and exits on unresolved, back-jumps to the REPEAT line on\n falsy.
  • LOOP/ENDLOOP — endless: ENDLOOP back-jumps\n while the watchdog\n allows; the watchdog is a hard requirement here (no exit\n condition exists), so a missing dependency suppresses the jump\n with a configuration error instead of hanging the pipeline.
\n

\nBack-jump counting happens at the back-jump step only (a loop whose\ncondition is false from the outset consumes zero iterations), keyed\n(FileName, BeginLineNo) on the watchdog. All scans use the\nanchored overload from the host line —\nnever the whole-file first match, which would pair a terminator with\nan earlier sibling construct of the same kind.\n

\n

\nPipeline placement: Evaluation bundle control-flow group, after\n (conditions and bounds\nsubstituted) and before the variable readers (the FOR lift must\nreach them on the same block).\n

\n

\nKnown limitation — stack pairing vs lexical pairing. Real\nSinumerik pairs loop constructs lexically at block preparation; this\nsyntax pairs them dynamically on the carried frame stack. A\nGOTOF/GOTOB that leaves a loop body strands that\nloop's frame (only the FOR head detects and drops a stale frame, via\n), so a jump from an\ninner loop into an enclosing loop's body can mispair the\nenclosing terminator with the stale inner frame. Sinumerik itself\nforbids jumping into control structures; all such shapes stay\nbounded here by the watchdog and surface loud diagnostics. Scan\nprobes also mirror the Fanuc convention of not replaying\nBlockSkipSyntax — a /-prefixed terminator is invisible\nto the exit scans.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensNamedVariableLookup.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensNamedVariableLookup.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensNamedVariableLookup", "Summary": "

Reads Sinumerik named program variables (_X_HOME) from\nVars.Named. Self-gates on the named-identifier key shape so the\nevaluator's \nchain can fall through for other keys. Sibling of the Fanuc\n with the same\nsingle-step traceback: \ndict-merges every block's Vars.Named into the next block, so the\nentry — if it exists — is on the current block or the immediately\nprevious one.

\n

\nStateless and dependency-free — instances are interchangeable.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensNamedVariableReadingSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensNamedVariableReadingSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensNamedVariableReadingSyntax", "Summary": "

Obtains values for Sinumerik named program variables (GUD/LUD\nidentifiers such as _X_HOME, declared via DEF REAL or\nassigned directly). Reads literal numeric assignments from\nParsing.Assignments.<ident>, dict-merges them with the\nprevious block's state, and writes the resulting per-block dictionary\ninto Vars.Named — the same carry-forward pattern as the Fanuc\n.

\n

\nLifetime is bounded by MachiningSession: within one session the\ndictionary carries forward block-by-block; session restart abandons the\nSyntaxPiece JSON dataflow and starts fresh. This matches LUD scoping\nwell (program-local) and under-persists real GUD (globally retentive) —\nacceptable until a GUD definition-file feature exists.\n

\n

\nOnly literal numeric RHS values are consumed\n(_X_HOME = 155.5 ✓; _A = R1+5 ✗ — the evaluator resolves\nthose to literals earlier on the same block). String-valued RHS (quoted)\nnever reaches Assignments — the quote-guard syntaxes quarantine it in\nthe Parsing bundle.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensRParameterReadingSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensRParameterReadingSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensRParameterReadingSyntax", "Summary": "

Obtains values for Sinumerik R parameters (R0-R999) by consuming\nliteral numeric assignments from Parsing.Assignments.Rn and\nwriting them straight to a registered .\nSibling of the Fanuc .

\n

\nNo SyntaxPiece JSON mirror is created — the table is the single source of\ntruth for R values, and reads from\nthe table directly (the table implements ).\nThe hincproj round-trip preserves writes across project sessions.\n

\n

\nOnly literal numeric RHS values are consumed by this syntax\n(R63 = 100.5 ✓; R26 = R64-14/2 ✗). Non-literal RHS entries\nare left untouched in Parsing.Assignments; \nresolves them to literals earlier on the same block, so by the time this\nsyntax runs, every evaluable RHS is literal. The two syntaxes are decoupled.\n

\n

\nIf no is registered on the runner's\neffective NcDependencyList, this syntax is a no-op.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensRepeatSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensRepeatSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensRepeatSyntax", "Summary": "

Executes the Siemens REPEAT StartLabel EndLabel [P=n] section\nrepeat: the host file is re-segmented from the top, the\n[StartLabel: … EndLabel:) slice is cut out (start-label line\nincluded — it may carry trailing code; end-label line excluded), and\nthe slice is prepended into layers[0] once per repetition via\n. “Return to the line\nafter REPEAT” is the natural pipeline tail — the M98-inline pattern —\nso no return frame or rewind is needed (Siemens end labels are\npassive, unlike Fanuc's END m which actively fires a syntax).

\n

\nLabel scanning reuses 's predicate overload\nwith a Siemens probe stack ( +\n + ) and\nmatches on the block-root record. Each\nrepetition is its own segmentation pass with a fresh fileIndex —\ndownstream syntaxes mutate block JSON in place, so repetitions must\nnot share piece instances. Every inlined block is stamped with a\n clone carrying its 1-based\n.\n

\n

\nFail-soft paths (consume + structured warning + no motion): missing\nend label in the statement (single-label form — corpus count zero,\nnot simulated), start/end label not found in the file, a slice that\ncontains the REPEAT line itself (would re-fire forever — real\nSinumerik programs place REPEAT after the end label), and missing\nruntime dependencies. The repetition count is known eagerly, so no\niteration watchdog is needed.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensSubProgramCallSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensSubProgramCallSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensSubProgramCallSyntax", "Summary": "

Consumes the Parsing.SiemensCall sub-object captured by\n and\neither inlines the called subprogram or safe-skips the call:

\n
  • Resolved — the callee file (looked up through\n with the\n chain, default {name}.SPF →\n{name}.MPF{name}) is segmented and prepended into\nlayers[0] — the (M98)\nmechanism verbatim, including the P-times repetition loop,\nper-repetition file indices, and a pushed \nframe that pops on\nM17/RET. Like M98 (and unlike G65), no is\nstamped — callee blocks share the caller's variable scope; DEF-local\nisolation is a later work item.
  • Unresolved — the corpus norm: OEM / measuring cycles\n(HQ_FC, Renishaw L9810, L_ZYM91) whose\ndefinition files ship with the machine, not the NC program. The call\nis consumed whole with a block-root record\n(Skipped: true) and a single structured\nSiemensCall--Skipped warning — motion state untouched,\nreplacing the raw UnparsedText--Remaining noise.
\n

\nPipeline placement: head of the Siemens Evaluation bundle\n(the Fanuc discipline — call/inline ahead of all variable and motion\nmachinery). Argument binding to PROC parameters is not implemented:\na resolved call carrying arguments emits\nSiemensCall--ArgsNotBound and inlines without bindings.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensSubProgramReturnSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensSubProgramReturnSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensSubProgramReturnSyntax", "Summary": "

Consumes Siemens subprogram-end words — M17 (subprogram end)\nand RET (return without function output) — and pops one\n frame. Like the plain-M99 half of\n, the actual “return” is the\nnatural pipeline tail: the inlined body's last block is followed in\nlayers[0] by the caller's next block, so this syntax only\nconsumes the trigger (keeping\n quiet), stamps a\n section, and writes the popped stack.

\n

\nM17 in the main frame (no caller) is the norm in practice —\npost-processors commonly end a main .MPF with M17 — and is\nconsumed silently\nwith no pop and no warning, mirroring how a plain M99 tolerates the\nmain frame. Sinumerik's M17 has no P-jump form, so there is no\nredirect path here.\n

\n

\nTriggers: M17 arrives in Parsing.Flags via\n; RET via the\n word table.\n

\n

\nKnown limitation — early return. Because the return is the\nnatural pipeline tail, an M17/RET in the middle\nof a body (e.g. inside an IF branch) pops the frame but does\nnot truncate the remaining inlined blocks — they still execute.\nHonoring a mid-body return needs body-boundary bookkeeping (a future\nwork item alongside PROC parameter binding); the corpus places every\nreturn at the body end.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensSystemVariableSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensSystemVariableSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensSystemVariableSyntax", "Summary": "

Consumes writes to Sinumerik $ system variables the pipeline does\nnot simulate ($TC_DP… handled elsewhere aside, e.g.\n$AC_TIME, $SC_…, non-TR $P_UIFR components).\nSiemens counterpart of the Fanuc record-only\n pattern:

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensUifrVariableLookup.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensUifrVariableLookup.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensUifrVariableLookup", "Summary": "

Reads Sinumerik settable-frame translations\n(R100=$P_UIFR[1,X,TR]) from the \non the runner's effective dependency list. Self-gates on the\n$P_UIFR[n,axis,TR] key shape so the evaluator's\n chain can\nfall through for other keys (non-TR components fall to the record-only\n path as unevaluable reads).

\n

\nState-from-deps flavour: the table is resolved from the call's\ndependencies list on every call — never held as a field —\nso the lookup survives XML round-trip without a rebind path (the wrapper\nanti-pattern ban on ).\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensUifrWritingSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensUifrWritingSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensUifrWritingSyntax", "Summary": "

Consumes Sinumerik settable-frame translation writes\n($P_UIFR[5,Z,TR]=R102-281.48, probing programs' workpiece\nre-referencing idiom) by routing literal numeric assignments from\nParsing.Assignments into the on\nthe runner's effective dependency list — the write is thereby fully\nsimulated: a subsequent G54/G505+ selection reads the updated\noffset through the existing CoordinateOffset path (X/Y/Z), and\n$P_UIFR reads see it via .

\n

\nOnly literal numeric RHS values are consumed;\n normalizes expression RHS to\nliterals earlier on the same block. Only the TR component is\nbridged — other components (RT, FI) stay in Assignments\nand fall to the record-only ,\nwhich must run after this syntax. Writes to $P_UIFR[0,..]\n(G500) are consumed but ignored, matching\n.\n

\n

\nIf no is registered, this syntax is a\nno-op (entries stay visible as unconsumed residue).\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.Siemens", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.SubProgramCallSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.SubProgramCallSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.EvaluationSyntaxs.SubProgramCallSyntax", "Summary": "

Inlines a Fanuc-style subprogram into the source layer when an M98 or\nM198 host block is reached. M98 P_ L_ reads the matching\nO<P> file from ;\nM198 P_ reads from \n(Fanuc external-storage call — same mechanism as M98, different lookup\nroot). The file is segmented through the host runner's segmenter\n() and the resulting\ns are prepended into layers[0] via\n; the rest of the\npipeline picks them up through ordinary walkNode.Next\ntraversal as if they had always been part of the host file.

\n

\nPipeline placement: first child of the Fanuc Evaluation\n. By the time this runs,\n /\n\n(each a ) have written a\nParsing.M98 / Parsing.M198 sub-object carrying the\ncaptured P / L parameters. Note: those sub-objects\nare this syntax's only trigger — \"M98\" / \"M198\"\nnever reach Parsing.Flags, because the parameterized\nmatch has already consumed the text by the time\n runs.\n

\n

\nFilename lookup uses a fallback chain:\nO{P:D4}.NC, O{P}.NC, O{P:D4}, O{P},\n{P:D4}.NC, {P}.NC — first match wins. Case-insensitive\nmatch is delegated to the host filesystem (Windows is, Linux is not).\n

\n

\nL > 1 inlines the same subprogram L times in series. Each\nrepetition is a fresh segmentation pass so each block gets its own\n with an independent JSON object — the\ndownstream pipeline mutates JSON in place and would clobber sibling\nrepetitions if instances were shared.\n

\n

\nNot yet supported: M99 P{seq} early return inside a\nsubprogram and partial-program calls (M98 P{seq}{prog} split\nencoding). Custom Macro B argument-binding calls (G65 /\nG66 / G67) live in and\n — those handle the\nargument-letter-to-#1..#26 binding and the macro-call frame\nisolation that M98 deliberately does not provide.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.SubProgramReturnSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.SubProgramReturnSyntax.html" } }, "version": "", "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.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", "source_relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.html" } }, "version": "", "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

\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 values produce no Formula entry — the\nParsing value is already the original text. In the tag pass the same\nholds for the Heidenhain dialect only (literal strings short-circuit\nthere because klartext readers consume them as strings); Fanuc /\nSiemens literal-string tags are numeric-ified as they always were\n(int-typed capture fallbacks and constant conditions depend on it)\nand thus carry a Formula entry. Evaluation failures (parse error,\nvacant variable, non-finite result) produce no Formula entry — the\noriginal string is still in Parsing.* untouched, no\npreservation needed.\n

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

Obtains values for Fanuc-style non-retained common variables\n(#100-#499). Reads literal numeric assignments from\nParsing.Assignments.#nnn, dict-merges them with the previous block's\nvolatile state, and writes the resulting per-block dictionary into\nVars.Volatile.

\n

\nLifetime is bounded by MachiningSession: within one session the\ndictionary carries forward block-by-block via this syntax; session restart\nabandons the SyntaxPiece JSON dataflow and starts fresh. Program-end\n(M02/M30) clearing is handled by .\n

\n

\nOnly literal numeric RHS values are consumed by this syntax\n(#124 = 15. ✓; #100 = #1 + 5 ✗). Non-literal RHS entries\nare left untouched in Parsing.Assignments; \nresolves them and writes the result into the same per-block dictionary.\nThe two syntaxes are decoupled — the evaluator's lookup tracebacks via\nSyntaxPiece linkage so it does not depend on having run before\nor after this syntax.\n

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

Abstraction for a source that carries a .

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

Carries a reference to a source together with its\nexecution-order . Used as the\ncross-process alignment carrier for diagnostics, messages, ClStripPos,\nMachiningStep, etc. — both the source content (via\n) and the execution-order position\n(via ) are available without\nneeding two separate references.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ISentenceIndexed.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ISentenceIndexed.html" } }, "version": "", "Uid": null, "IsMRef": true, "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 the (FileIndex, LineIndex) source order\nis not enough because SubProgram inline reorders blocks relative to\nsource order.

\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.Initializers.HomeMcInitializer.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Initializers.HomeMcInitializer.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Initializers.HomeMcInitializer", "Summary": "

Sets the initial on the first\nSyntaxPiece from and\n. Every declared axis is written —\nrotary axes without a configured home seed at 0 deg, the same value\nthe runtime's begin/reset teleport re-homes the machining chain to —\nso the first motion contour interpolates from the pose the machine\nactually holds at t=0 instead of a per-axis “never set” hole.

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

Populates the init-block JSON sections (e.g. home position, static defaults)\nbefore the soft-NC runtime processes any source NC syntax. Implementations\nsuch as and \nwrite into the supplied .

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

Merges a fixed JSON snippet into the init-block\nJSON. Used to seed brand-default sections (e.g. G54, G80)\nbefore any source NC syntax is processed.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Initializers.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Initializers.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Initializers", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.InspectionSyntaxs.CleanupSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.InspectionSyntaxs.CleanupSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.InspectionSyntaxs.CleanupSyntax", "Summary": "

Removes indicated JSON keys from \nafter upstream syntaxes have consumed them.\nUseful for cleaning up runtime-derived intermediate data\n(e.g., )\nthat should not persist in the final output.

\n

\nPlace at the end of the syntax list, after all consumers have read the keys.\n

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

Debug / observability back-fill: writes\n onto blocks that did not have it\nwritten by upstream logic syntaxes (e.g. \nblock, chain-change blocks that only updated MC via a rotary-only path),\nonly when the effective program position has changed from the\nlast block that stored a .

\n

\nSkips the block entirely when either of these holds:\n

  • The block already has \n written — e.g. by ,\n ,\n ,\n ,\n , or\n .
  • The effective value equals the last stored value (modal-only\n block such as pure F / S / M / plane-select — no program motion).
\n\n

\nOnly back-fills the root block; \nitems are intentionally skipped (they are managed by\n and per-cycle\nsyntaxes that already write the right per-item ProgramXyz).\n

\n

\nPlacement: end of , after\n. Runs purely as a\nbookkeeping pass — no other syntax / semantic in the default pipeline\nreads the additional back-fill values it emits, so the runtime output\n( stream) is unchanged whether\nthis syntax is present or not. The only observable effect is\nadditional ProgramXyz entries in the cached\nsyntax-pieces dump, which makes block-to-block debugging\nand diffing easier.\n

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

Debug-time JsonObject capture: deep-clones every key on the current\n (except the\n envelope itself) into\njson[][],\nleaving the rest of the block untouched.

\n

\nInsertable at any position in —\nplacement determines what stage the dump captures (e.g. drop after\nthe Parsing bundle for \"after-parsing\", drop after the Logic bundle\nfor \"after-logic\"). Two instances with different\n values can coexist on the same pipeline and\ntheir dumps end up under sibling keys of the same\n envelope, so a single cache file shows the\ndata at every captured stage in one place.\n

\n

\nExcluding the envelope from the clone keeps\neach captured section flat: it reflects \"everything else on the block\nat that stage\", and re-running through additional\n instances never nests past one level.\n

\n

\nSet = false to keep the configuration\nin place but skip the capture (no JSON mutation, no allocation) —\nconvenient for toggling a debug pipeline without removing the entries.\n

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

Emits diagnostic warnings for content remaining after all upstream\nsyntaxes have run: unconsumed entries\nand non-empty .\nFlags listed in are silently ignored.\nMust be placed at the end of .

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.InspectionSyntaxs.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.InspectionSyntaxs.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.InspectionSyntaxs", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.BlockSkip.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.BlockSkip.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.BlockSkip", "Summary": "

Optional block skip marker extracted from the head of an NC block.\nISO 6983 / Fanuc calls this feature Block Delete (BDT switch);\nSiemens / Syntec / Mazak use the same / prefix with matching\nbehaviour.

\n

\nThe section is only present on blocks that carry a / prefix.\nWhether the block's NC commands are actually skipped at runtime\ndepends on :\n

  • Config absent or the bit OFF → the /\nprefix is consumed, is left null, and the rest of\nthe line parses as a regular NC block (comments still take effect).
  • Config present and the bit ON → the rest\nof the line is moved into and cleared from\nUnparsedText, so downstream parsing syntaxes see nothing and\nno NC action is emitted. Comment syntaxes run before this one so\ncomments (and any embedded CsScript) still take effect.
\n\nNot a comment: a comment is static metadata, block skip is a runtime\ntoggle that can change per machine/operator setting.\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.CallFrame.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.CallFrame.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.CallFrame", "Summary": "

One entry in . Holds the caller-side\ninformation consumers need to “unwind” or “look back” — currently\nonly the relative file path of the caller, used by\n on\nM99 P{seq} to locate the caller's N{seq} block.

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

JSON-section data shape representing the active call-frame stack on\na block — pushed by call-and-inline syntaxes\n( for M98/M198,\n for G65, and\n's expansion\nphase for G66 implicit triggers) and popped by\n on M99. Every\nblock between push and pop carries the section forward via\n; the caller's blocks\nbefore push and after pop carry the surrounding stack state\n(typically empty when running from the main file).

\n

\nThe section is wrapped in a rather than\nexposed as a bare so it fits ModalCarry's\n\"deep-clone JsonObject\" carry pattern — the array of frames lives\ninside .\n

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

Section key holder + concrete implementation for .

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

Comment extracted from an NC block.\n identifies the comment style;\n holds the content without the symbol.\nDownstream syntaxes (e.g., ) may\nfurther trim after extracting embedded markers.

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

Section key holder + concrete implementation for .

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

Section key holder + concrete implementation for .

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

Work coordinate offset state written by\n.\nProperty names are used as JSON keys via nameof.

\n

\nManaged commands (ISO): G54, G55, G56, G57, G58, G59, G59.1–G59.9.\nSiemens: G54–G57 + G505–G599 (extended), G500 to cancel.\nHeidenhain: CYCL DEF 247 (Datum Preset) / CYCL DEF 7 (Datum Shift).\n

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

Section-key holder for inline C# scripts attached to an NC block. Carries\n (run before the block's acts) and\n (run after). Resolved by\n and\n.

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

Section key holder + concrete implementation for .

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.Fanuc.FanucKeywords.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.Fanuc.FanucKeywords.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.Fanuc.FanucKeywords", "Summary": "

Fanuc-specific G-code and M-code constants.\nFor ISO standard codes shared across brands, see .

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.Fanuc.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.Fanuc.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.Fanuc", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.FanucGoto.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.FanucGoto.html" } }, "version": "", "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

\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", "source_relative_path": "api/Hi.NcParsers.Keywords.FanucIfThen.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.FanucIfThen.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.FanucIfThen", "Summary": "

Fanuc Custom Macro B IF [<cond>] THEN <body>\nsingle-block conditional record. Stamped on the host block by\n after the gate\ndecision; produced earlier by\n as a parsing-stage\nsub-section (Parsing.FanucIfThen) carrying the raw captured fields\nplus an internal PendingAssignments sub-object harvested from the\nbody text.

\n

\nSpec: IF [bool-expr] THEN <stmt> executes <stmt>\nonly when the condition is truthy. Unlike 's\nconditional form there is no jump — the body affects the current block\nonly, no source splice, no label scan, no iteration watchdog. The most\ncommon body shape is a single Custom Macro B assignment\n(#nnn = <expr>); multiple assignments in one body are also\naccepted and lifted together.\n

\n

\n is held as a string at parsing time so\n's pass-2 tree walk can substitute\nit to a numeric in place;\nthe FanucIfThenSyntax tail then reads the resolved node polymorphically\nvia the same ReadCondition shape used by\n.\n

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

One-shot custom-macro-call record written by\n. Lives on both the\nG65 host block (the caller) and every inlined block of the\nmacro body — so a cache-dump reader can land on any block inside the\nmacro and immediately see “this block belongs to a G65 call of\n with these argument bindings” without back-walking\nto find the host.

\n

\nEach inlined block additionally carries the resolved\nVars.Local #1-#26 bindings derived from \n(see ), so\n\nresolves macro args in a single-block lookup. Frame isolation is\nstructural: caller blocks never have Vars.Local written, so\nafter the macro body ends, the next caller block reads null\nfor any #1-#26 without any explicit frame marker.\n

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

Modal-macro-call record left by\n. Carries Fanuc\nG66 setup state forward block-to-block until cancelled by\nG67. The section is also written on the G67 block itself\n(with = “G67”) so cache dumps show the cancel\nedge; subsequent blocks then carry no section at all.

\n

\nPer-block expansion of the modal call into an actual macro inline at\nevery positioning move is not yet implemented — a\nFanucModalMacro--NotExpanded warning is emitted on the setup\nblock to flag the simulation gap. The setup state itself is captured\nfaithfully so external tooling can detect \"this block sits inside a\nG66 modal\" via the carried section.\n

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

Section data holder for .

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.FanucProgramNumber.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.FanucProgramNumber.html" } }, "version": "", "Uid": null, "IsMRef": true, "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", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.Feedrate.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.Feedrate", "Summary": "

Section key holder + concrete implementation for .

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.Generic.IsoKeywords.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.Generic.IsoKeywords.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.Generic.IsoKeywords", "Summary": "

ISO/RS274 standard G-code and M-code constants.\nShared across Fanuc, Mazak, Okuma, and other ISO-compatible controllers.\nBrand-specific codes belong in their own keyword classes\n(e.g., , Siemens, Heidenhain).

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.Generic.MotionForm.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.Generic.MotionForm.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.Generic.MotionForm", "Summary": "

Motion interpolation form constants used in .\nEach form corresponds to a specialized \nthat resolves the motion into sequences.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.Generic.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.Generic.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.Generic", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.Heidenhain.HeidenhainCall.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.Heidenhain.HeidenhainCall.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.Heidenhain.HeidenhainCall", "Summary": "

Block-root record left on a CALL LBL/CALL PGM host block\nby .\nInlined callee blocks are stamped with a clone of the same record.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.Heidenhain.HeidenhainCyclCall.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.Heidenhain.HeidenhainCyclCall.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.Heidenhain.HeidenhainCyclCall", "Summary": "

Block-root record left on a cycle-call host block by\n,\nmaking the consumed call visible in cache dumps and carrying the\ndeferred M140 retract hand-off for\n.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.Heidenhain.HeidenhainGoto.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.Heidenhain.HeidenhainGoto.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.Heidenhain.HeidenhainGoto", "Summary": "

Heidenhain FN 9–12 conditional jump record\n(FN 12: IF +Q1 LT +5 GOTO LBL n). Two lifetimes share the shape:

\n
  • Parsing.HeidenhainGoto — written by\n for\nall four opcodes, in both the spaced standard spelling and the\ncompressed post spelling (FN12:IF+Q94 LT+1GOTOLBL\"NAME\").
  • block-root HeidenhainGoto — stamped by\n after\nthe control-flow decision, with flipped true on a\nsuccessful redirect.
\n

\nUnlike the Fanuc / Siemens jump records the condition is not one\nexpression string: the klartext jump grammar is strictly\n<value> <comparator> <value>, and the\nHeidenhain expression grammar deliberately has no comparison layer\n(its bare-word rejection is what keeps the evaluator's Parsing-tree\npass off non-expression strings). The parsing owner therefore\npre-normalises the statement: / are\ncaptured as separate value operands (pure literals typed numeric at\ncapture, Q references kept as strings for the evaluator's pass-2\nsubstitution) and the comparator spelling is normalised to the shared\ncomparison words (EQUEQ; NE/GT/LT\nas written). The comparison itself happens in the evaluation syntax.\n

\n

\nKlartext has no unconditional jump statement and no direction\nmnemonic — a TNC label is unique per program, so the consumer scans\nthe whole host file and takes the first matching definition\n(LBL n / LBL \"name\"), forward or backward alike.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.Heidenhain.HeidenhainLbl.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.Heidenhain.HeidenhainLbl.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.Heidenhain.HeidenhainLbl", "Summary": "

Block-root record left on a consumed LBL marker block by\n.\nA plain definition marker produces no motion; the record keeps the\nlabel visible for cache dumps (and the P5 jump family).

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.Heidenhain.ICyclDef.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.Heidenhain.ICyclDef.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.Heidenhain.ICyclDef", "Summary": "

JSON section schema for Heidenhain CYCL DEF blocks. The\n string captures either the cycle title (e.g.\n“DATUM SETTING”) or a parameter line (e.g. “Q339=+1”).

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.Heidenhain.MachiningCycleDef.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.Heidenhain.MachiningCycleDef.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.Heidenhain.MachiningCycleDef", "Summary": "

Block-root section carrying the stored Heidenhain machining-cycle\ndefinition (the CYCL DEF 2xx “setup half”). Written by\n on\nevery block (self-carrying modal state, the P1 datum-shift pattern) —\na klartext definition never executes by itself; execution is gated on\nCYCL CALL/M99 (call-once) or M89 (modal call on\npositioning blocks), which convert this store into a direct ISO cycle\nsub-section under Parsing.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.Heidenhain.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.Heidenhain.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.Heidenhain", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.IArcMotionDef.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.IArcMotionDef.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.IArcMotionDef", "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", "source_relative_path": "api/Hi.NcParsers.Keywords.ICannedCycleDef.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.ICannedCycleDef.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.ICannedCycleDef", "Summary": "

Canned cycle modal state (Group 09). Captures which cycle is\ncurrently active, its return mode (G98/G99), and the resolved\nabsolute parameter set used for modal lookback.

\n

\nWritten by on\nevery block that belongs to the canned-cycle group:\ncycle code present (G81/G82/G83/G73/G84/G74/G85/G86/G89/G76/G87),\nmodal repeat (cycle still active, only coordinates given), or\nexplicit cancel ().\n

\n

\n = \"G80\" is the explicit-cancel sentinel\nused by \nto terminate modal lookback without ambiguity; regular blocks\n(e.g. G00 X.. Y..) simply omit the section entirely.\n

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

Compound motion section definition for commands that produce\nmultiple sub-operations (G28, G53.1, G81, G82, etc.).\nContains a array resolved by\n.

\n

Item types (discriminated by key presence):

\n
  • — rapid/feed linear motion\n ( + )
  • — pause ( in seconds)
  • — spindle direction change\n ()
  • — oriented spindle stop (OSS)\n ()
\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.ICoolantDef.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.ICoolantDef.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.ICoolantDef", "Summary": "

Coolant state (M07 mist / M08 flood / M09 off).\nWritten by .\nModal — persists until changed.

\n

\n is the on/off convenience flag (true for M07 and\nM08, false for M09). carries the abstract kind\n( / /\n) for consumers that need to distinguish\nflood vs mist.\n

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

Dwell/pause section definition for use inside Sequence items.\nResolved by into\n.

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

Fanuc-specific path smoothing state written by\n.

\n

\nExtends with the Fanuc G05.1 R argument\n(precision / smoothness level number, R1..R10 mapping to controller-internal\ntuning macro variables). Q is binary in current Fanuc firmware (Q0 disable /\nQ1 enable), so covers it directly\n— no raw Q field is stored.\n

\n

\nJSON section key remains nameof(PathSmoothing) so generic readers\n(cache dumps, modal carry, UI) can cast to \nacross all controller brands; brand-specific readers cast to\n for the extra fields.\n

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

Feedrate state written by .\nProperty names are used as JSON keys via nameof.

\n

\nISO standard: F command + G94 (per minute) / G95 (per revolution).\nSupported by all major CNC brands.\n

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

JSON section schema describing the modal/non-modal flags that take effect\non an NC block. Each entry in is a brand-specific\nkeyword recognized by the soft-NC runtime.

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

Modal machine-coordinate state — absolute six-axis machine position\nafter the block has executed. Written on every block by motion-related\nLogicSyntaxs (,\n,\n,\n,\n,\n); seeded on the init\nblock by ; carried across\nnon-motion blocks — and per-key completed on partially-written blocks\n(an XYZ-only motion block receives the carried modal rotary values) —\nby .

\n

\nOnly configured axes appear as keys (X/Y/Z/A/B/C). Non-existent axes\n(e.g., A/B/C on a 3-axis machine) are omitted rather than written\nas NaN sentinels.\n

\n

\nAfter the PostLogic carry the section is a MODAL record: key presence\nmeans \"state known\", never \"this block commanded the axis\". Consumers\nneeding \"commanded\" must read the block's Parsing words or compare\nvalues against the previous block (see\nLinearMotionUtil.HasRotaryMotion). The only presence-as-commanded\ncarve-out is CompoundMotion.Items[*] item-level sections, which\nthe carry never touches.\n

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

One-shot motion event — present on every block whose source programmed\na motion command, regardless of whether the resulting displacement is non-zero.\nA redundant G01 X10 on a block already at X10 still gets a\n; the motion semantics\n(,\n, )\nthen early-return on distance <= 0 and emit no\n. NOT carried forward across blocks.

\n

\nReason for the \"programmed, not displaced\" definition: Fanuc G66 modal\nmacro fires once per programmed motion command (per Fanuc spec —\nno distance gate), so .Expansion uses\n presence as its trigger. Suppressing the section\non zero-distance moves would silently change G66 behaviour. The modal\nsibling separately latches the Group-01 mode for\nreaders that only need to know \"what G-code is active\".\n

\nProperty names are used as JSON keys via nameof.\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.IMotionStateDef.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.IMotionStateDef.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.IMotionStateDef", "Summary": "

Modal motion state — Group 01 G-code mode (G00 / G01 / G02 / G03 ...).\nWritten on every block by /\n; carried across non-motion\nblocks by . Property names are\nused as JSON keys via nameof.

\n

\nUnlike sibling modal sections (, ,\n) which carry both a brand-specific Term\nand a brand-neutral conventional field, intentionally\nkeeps only : the brand-neutral semantic (\"what kind of\nmotion happened\") lives on the sibling one-shot \n( = McLinear / McArc / ClLinear / ClArc).\nState here is purely the modal latch of the last Group-01 G-code so\ndownstream FindPrevious* can resume motion-mode bookkeeping.\n

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

JSON section schema carrying the raw, brand-specific parsing trace for an\nNC block. The node holds intermediate parser output\nused by downstream syntaxes and diagnostics.

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

Path smoothing state. The base interface is brand-agnostic; controller\nbrands extend it with their own argument fields (e.g.\n for Fanuc G05.1 R precision-level).\nFanuc-flavour writes are produced by\n.

\n

\nISO/Fanuc G05.1 Q1 (enable) / G05.1 Q0 (disable):\nhigh-precision contour control / AICC / Nano Smoothing.\nController-internal interpolation black box — simulation records\nthe state but does not alter the tool path.\n

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

Active plane selection state written by\n.\nProperty names are used as JSON keys via nameof.

\n

\nISO: G17/G18/G19. Heidenhain: implicit from L/CC syntax.\n carries the brand-specific G-code; \nstores the conventional, brand-neutral axis-pair name (XY/ZX/YZ).\n

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

JSON section schemas for Fanuc Polar Coordinate Interpolation (G12.1/G13.1).\nProperty names are used as JSON keys via nameof.

\n

\n is the modal valve: its presence on a\nblock means polar interpolation is active there. It is written by\n on the G12.1 block and\nre-materialized onto every following block until a G13.1 block ends the\nmode (single-step lookback carry, same pattern as\n — not registered on\n).\n

\n

\n is the per-block polar position, relative to\nthe G12.1 anchor (). Rxcz axes:\nX = radius-direction linear axis in mm (the NC word X is a diameter\nand is halved on parse), Y = hypothetical rotary-substitute axis in mm,\nZ = real Z in mm. The absolute (rotation-center-origin) position used by\nthe math is InitRxcz + ProgramPolarRxcz, mirroring HardNc\nPolarEntry.CentralProgramPolarRxcz.\n

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

Modal positioning state — ISO Group 03 (G90 absolute / G91 incremental).\nWritten by , consumed by\n, canned cycle\nsyntaxes, and .\nProperty names are used as JSON keys via nameof.

\n

\n is the brand-specific G-code (Fanuc/ISO G90/G91);\n is the conventional, brand-neutral name\n( / ).\n

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

Program end marker (M02/M30).\nWritten by .\nOther syntaxes (e.g. )\nread this section to reset modal state instead of detecting M30 directly.

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

Program-stop marker (M00 unconditional / M01 optional).\nWritten by on each\nblock that carries an M00/M01 flag. Non-modal: the section appears\nonly on the exact block where the stop code is present.

\n

\nDistinct from (M02/M30, end of program).\n

\n

\nM00 halts execution unconditionally; the operator must press Cycle\nStart to resume. M01 is an optional stop gated by the operator's\n\"Optional Stop\" panel switch — ignored when the switch is off.\nThis parsing-layer section records the NC intent; runtime /\nsemantic layers decide whether to actually pause.\n

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

JSON section schema carrying the program-coordinate position commanded on\nthe current block. Written by \nbefore the chain\ncomposes it into machine coordinates.

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

Radius compensation state written by\n.\nProperty names are used as JSON keys via nameof.

\n

\nManaged commands (ISO): G41 (left), G42 (right), G40 (cancel).\nHeidenhain Klartext maps RL → G41, RR → G42, R0 → G40.\nWhen active, the tool path is offset perpendicular to the programmed path\nby ; determines left vs right.\nThe root ProgramXyz retains the user-programmed position;\nMachineCoordinate is overwritten to reflect the compensated path.\n

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

Spindle control item for use inside \narrays. Resolved by \ninto .

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

Oriented spindle stop item for use inside\n arrays.\nCommands the spindle to stop at a specific angular position (OSS).\nResolved by \ninto .

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

Spindle speed and direction state written by\n.\nProperty names are used as JSON keys via nameof.

\n

\nISO: S command for speed, M03/M04/M05 for direction.\nHeidenhain: M3/M4/M5. Siemens: M3/M4/M5 or SPOS.\nDirection is stored as the conventional \nenum name (CW/CCW/STOP), not as brand-specific M-codes.\n

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

Tilt transform state written by tilt transform syntaxes.\nProperty names are used as JSON keys via nameof.

\n

\nManaged commands (ISO/Fanuc): G68 (2D rotation), G68.2 (tilted work plane), G69 (cancel).\nSiemens equivalent: CYCLE800, ROT/AROT (handled by separate syntax).\nHeidenhain equivalent: PLANE SPATIAL / PLANE RESET (handled by separate syntax).\n

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

Tool height compensation state written by\n.\nProperty names are used as JSON keys via nameof.\nThe JSON section can be deserialized to an instance implementing this interface.

\n

\nManaged commands (ISO/Fanuc): G43, G44, G49.\nFanuc extension: G43.4 (TCPM — parsed only in Fanuc syntax list).\nSiemens equivalent: TRAFOOF/TRAORI (handled by separate syntax).\nHeidenhain equivalent: TOOL CALL / M128/M129 (handled by separate syntax).\n

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

Chain of named ProgramXyz → MachineCoordinate transformation entries.\nStored as a of entries, each with\n“Source”, “Kind”, and “Mat4d” keys.\nEach contributing adds or replaces its own\nentry by source name.\n\ncomposes entries in order: McXyz = ProgramXyz * T[0] * T[1] * ... * T[n].

\n

\nKind contour-validity classification. Each entry is either:\n

  • \"Static\" — the Mat4d is valid for any point along the contour.\nTilt, coord-offset, and the kinematic pivot in non-RTCP / rotary-stable\nblocks are all Static.
  • \"Dynamic\" — the Mat4d is a block-endpoint snapshot of a\nrotary-state-dependent transform (RTCP rotary-dynamic). Composition still\nyields a correct endpoint MC, but the matrix is not contour-valid:\nintermediate CL-point positions cannot be derived by applying it to an\ninterpolated ProgramXyz. The semantic layer\n() handles per-step IK\nseparately.
\nUse to detect\nthe presence of any Dynamic entry on this block.\n\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.IUnitDef.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.IUnitDef.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.IUnitDef", "Summary": "

Unit-system state (ISO Group 06: G20 inch / G21 metric).\nWritten by . Modal.

\n

\nHiNC's NC pipeline works exclusively in millimetres. G21 is therefore\na no-op confirmation of the default; G20 is reported as an\nUnsupported Error and callers are expected to pre-convert the NC\nprogram to metric before loading.\n

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

JSON section schema carrying the residual block text that was not consumed\nby any registered syntax. Used for diagnostics and round-trip preservation.

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

JSON-section data shape pairing a single-character address symbol\n(e.g. ‘O’, ‘N’) with its numeric index, used to annotate\nprogram/sequence numbers on an NC block.

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

ISO/Fanuc-family local coordinate offset state (G52) written by\n.\nProperty names are used as JSON keys via nameof.

\n

\nG52 X Y Z installs a local coordinate-system shift that stacks on top of\nthe active G54-G59 work offset. The cancel mechanism is to write\nG52 X0 Y0 Z0 (or hit M30 / reset) — there is no separate G code\nfor \"cancel\". The offset vector is therefore always modal: zero is a\nvalid modal value, not a \"disabled\" state, so the section is recorded\non every block.\n

\n

\nBrand-specific kin: Siemens TRANS/ATRANS (which can also\ncarry rotation/scale/mirror) and Heidenhain TRANS DATUM are\nhandled by their own syntaxes and write to their own sections — they\ndo not share this key, because their data shapes are richer.\n

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

Section key holder for .

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

Top-level integer marker stamped onto a 's JSON\nto identify which call frame the block belongs to. Brand-agnostic by\ndesign — written by \ntoday, reusable by any future call-inlining syntax (Fanuc G66\nmodal expansion, Heidenhain LBL CALL, …) that needs\nlocal-variable isolation across call boundaries.

\n

\nSemantics: the value is an opaque id; only equality matters. Two\nblocks with the same id share a call frame\n(locals visible across them via single-step carry); two blocks with\ndifferent ids do not. The id 0 is reserved for the main\nprogram frame and is returned by when the field is\nabsent — so a plain caller block needs no stamp and yet compares\ndistinct from any inlined frame.\n

\n

\nStored as a top-level JSON int (not an object section) so it stays\nlightweight on every inlined block. Decoupled from\n: that section is a diagnostic record of\nthe call (what file, what args), while MacroFrame is the\npurely functional marker the local-variable I/O syntaxes consult.\n

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

Section key holder + concrete implementation for .

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

Section key holder + concrete implementation for .

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

Section key holder for .

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

Section key holder for .

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

Inner-key constants of the\n section.

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

Section key holder + concrete implementation for .

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

Per-word positioning override — a non-modal block-root section keyed\nby word name (axis words and the I/J/K interpolation parameters)\nwhose values are /\n /\n /\n /\n, plus the coded-position\n(indexing axis) family /\n /\n /\n /\n.\nOverrides the modal G90/G91 state (and, for\nI/J/K, the default incremental center reading) for the listed words\non this block only.

\n

\nWritten by\n when a\nword carries one of the Siemens per-word coordinate function\nwrappers AC() / IC() / DC() / ACP() /\nACN() or their coded-position counterparts CAC() /\nCIC() / CDC() / CACP() / CACN().\nConsumed by\n (linear axes) and\n (rotary axes) — both treat\nevery non-Incremental value as an absolute write, and both resolve a\ncoded entry's indexing position number through\n and rewrite the entry to\nits plain counterpart in place — by\n (the directional\nwindow for /\n and the non-modular-axis\nboundary warning; it never sees a coded value), and by\n\n(absolute I/J/K center components); words without an entry keep the\ndefault behavior unchanged. The section is not listed in any\nModalCarry key set — it never carries to later blocks.\n

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

Section key holder for .

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

Section key holder + concrete implementation for .

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

Section key holder + concrete implementation for .

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.Siemens.ISiemensPathSmoothingDef.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.Siemens.ISiemensPathSmoothingDef.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.Siemens.ISiemensPathSmoothingDef", "Summary": "

Siemens path-control / smoothing modal registers recorded by\n under the\nbrand-invariant section key. Record-only —\nsimulation does not alter the tool path; the registers exist for\nbidirectional NC-text reconstruction and UI display.

\n

\nEach property mirrors one orthogonal Sinumerik modal group; a property\nis absent from the JSON section until its group is first programmed.\n is derived: true while a\nCYCLE832 high-speed setting is armed ( present)\nor a continuous-path mode (G64/G641/G642) is active.\n records the token that last\nchanged the path-control state (a G code or CYCLE832).\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.Siemens.Msg.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.Siemens.Msg.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.Siemens.Msg", "Summary": "

Block-root section recording a Siemens MSG("...") operator\ndisplay message, written by\n. A section\nwithout records the bare MSG() clear form.\nRecord-only: simulation ignores it; the section exists for\nbidirectional NC-text reconstruction and UI display.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.Siemens.SiemensCall.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.Siemens.SiemensCall.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.Siemens.SiemensCall", "Summary": "

Siemens subprogram-call record. Two lifetimes share the shape:

\n
  • Parsing.SiemensCall — written by\n when a\nwhole-line call statement is captured (L9810, L123 P3,\nHQ_FC(1,2)). Carries , optional verbatim\n, optional .
  • block-root SiemensCall — written by\n on\nthe host block and on every inlined body block once the call is\nconsumed. records the resolved subprogram file;\n marks the safe-skip outcome (no file found —\nOEM / measuring cycles like HQ_FC, Renishaw L9810) where\nthe call is consumed with zero motion effect and a structured\nwarning replaces the raw unparsed-text noise.
\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.Siemens.SiemensFor.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.Siemens.SiemensFor.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.Siemens.SiemensFor", "Summary": "

Siemens FOR <var> = <start> TO <end> ... ENDFOR\ncounting-loop record. The Parsing capture stores the start expression\nas a single-entry Init map ({ “R1”: 0 }) — the variable\nname is a JSON key, which the evaluator's pass-2 tree walk\nnever rewrites (values only), so a loop variable whose name matches a\nset named variable is not clobbered; the start/end values are\nsubstituted normally. The block-root stamp records the loop variable\nand its per-iteration .

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.Siemens.SiemensGoto.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.Siemens.SiemensGoto.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.Siemens.SiemensGoto", "Summary": "

Siemens GOTOF/GOTOB jump record. Two lifetimes share the\nshape:

\n
  • Parsing.SiemensGoto — written by\n for both\nthe bare jump (GOTOF LBL1) and the single-line conditional\n(IF R1==1 GOTOF LBL1).
  • block-root SiemensGoto — stamped by\n after the\ncontrol-flow decision, with flipped true on a\nsuccessful redirect.
\n

\nUnlike Fanuc's numbered GOTO n, the target is a named label\n(LBL1: line) or an N<num> block number; direction\nis explicit in the mnemonic — GOTOF scans forward from the host\nline, GOTOB scans backward to the nearest label above.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.Siemens.SiemensIf.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.Siemens.SiemensIf.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.Siemens.SiemensIf", "Summary": "

Siemens IF/ELSE/ENDIF block-conditional record.\nParsing.SiemensIf carries the captured phrase; the block-root\nstamp written by \nadds the gate outcome. Unlike the loop family there is no frame stack:\nan ELSE reached in the normal stream always means the true\nbranch just finished (a false condition jumps past the ELSE\nline directly), so ELSE unconditionally skips to its matching\nENDIF and ENDIF itself is a consumed no-op.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.Siemens.SiemensKeywords.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.Siemens.SiemensKeywords.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.Siemens.SiemensKeywords", "Summary": "

Siemens Sinumerik G-code and M-code constants.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.Siemens.SiemensLabel.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.Siemens.SiemensLabel.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.Siemens.SiemensLabel", "Summary": "

Block-root record for a Siemens label line (LBL1:), written by\n. Labels are\npassive jump targets — the record only makes the consumed token\nvisible to cache dumps and lets\n's scan\nprobe match candidates.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.Siemens.SiemensLoop.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.Siemens.SiemensLoop.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.Siemens.SiemensLoop", "Summary": "

Siemens LOOP ... ENDLOOP endless-loop record. The construct has\nno exit condition — real programs leave it via GOTOF/GOTOB\nor a subprogram return; offline replay is bounded by\n,\nwhich is therefore a hard requirement for the ENDLOOP back-jump\n(a missing watchdog suppresses the jump instead of hanging the\npipeline).

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.Siemens.SiemensLoopFrame.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.Siemens.SiemensLoopFrame.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.Siemens.SiemensLoopFrame", "Summary": "

One entry on the stack. Identity is\n(Kind, FilePath, BeginLineNo) — the file path disambiguates a\nloop line in the main program from the same line number inside an\ninlined subprogram, and lets the terminator refuse a cross-file\nmismatch.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.Siemens.SiemensLoopFrames.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.Siemens.SiemensLoopFrames.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.Siemens.SiemensLoopFrames", "Summary": "

Block-root carrier for the active Siemens loop-construct stack,\nmutated by at\nthe Evaluation stage and carried block-to-block by\n's Logic tracked-key\nlist (plus an eager previous-block clone inside the loop syntax\nitself, mirroring the Fanuc WhileFrames pattern). Wrapped in a\nJSON object ({ “Frames”: [ ... ] }) rather than a bare array so\nthe ModalCarry deep-clone JsonObject carry applies — the same reason\n wraps its frame list.

\n

\nA single shared stack (rather than one per construct kind) is what\nmakes mixed-construct nesting work: a FOR inside a\nWHILE pushes on top of the WHILE frame, and each terminator\nvalidates that the innermost (last) frame carries its own\n.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.Siemens.SiemensPathSmoothing.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.Siemens.SiemensPathSmoothing.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.Siemens.SiemensPathSmoothing", "Summary": "

Section data holder for .

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.Siemens.SiemensProc.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.Siemens.SiemensProc.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.Siemens.SiemensProc", "Summary": "

Block-root record for a Siemens PROC declaration header,\nwritten by .\nThe declaration is consumed whole (parameter binding is a later work\nitem); keeps the verbatim remainder visible.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.Siemens.SiemensRepeat.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.Siemens.SiemensRepeat.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.Siemens.SiemensRepeat", "Summary": "

Siemens REPEAT record. Parsing.SiemensRepeat carries the\ncaptured label pair; the block-root section written by\n adds the\nfiring outcome, and every inlined repetition block is stamped with a\nclone carrying so cache-dump readers can see\nwhich pass a block belongs to.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.Siemens.SiemensRepeatUntil.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.Siemens.SiemensRepeatUntil.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.Siemens.SiemensRepeatUntil", "Summary": "

Siemens REPEAT ... UNTIL <cond> post-test loop record.\nThe bare REPEAT line (no label — the labelled forms belong to\n) opens the loop; UNTIL evaluates\nthe exit condition after each pass.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.Siemens.SiemensWhile.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.Siemens.SiemensWhile.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.Siemens.SiemensWhile", "Summary": "

Siemens WHILE ... ENDWHILE pre-test loop record.\nParsing.SiemensWhile carries the captured phrase; the block-root\nstamp adds the per-arrival gate outcome. Loop state lives on the\nshared stack managed by\n.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.Siemens.Stopre.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.Siemens.Stopre.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.Siemens.Stopre", "Summary": "

Block-root section recording a consumed Siemens STOPRE\n(stop preprocessing / block-search buffer sync), written by\n. STOPRE has no\neffect in offline simulation — the section exists solely so the token\nsurvives for bidirectional NC-text reconstruction.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.Siemens.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.Siemens.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.Siemens", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.SpindleControl.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.SpindleControl.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords.SpindleControl", "Summary": "

Section key holder + concrete implementation for .

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

Section key holder + concrete implementation for .

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

Section key holder + concrete implementation for .

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

Subprogram call record left by\n on the M98 /\nM198 host block and on every inlined body block. The call itself\nemits no motion act; this section is bookkeeping so cache dumps and\ndiagnostic readers can see "this block triggered (or sits inside)\nan inline of program P".

\n

\nM98 and M198 share the exact same section shape. The\ndifference between them is purely environmental — which folder the\nresolver looks in (SubProgramFolderConfig.InternalFolder vs\nExternalFolder) — and that lives on the dependency, not in\nthis JSON record.\n

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

Subprogram return record left on the M99 host block by\n. Return blocks\nproduce no motion acts; this section makes the consumed M99 visible\nin cache dumps and surfaces the M99 P{seq} jump decision.

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

Tape leader / trailer line — the literal % that historically\nmarked the start and end of a punched paper-tape program. ISO-style\ncontrollers (Fanuc, Mazak, Syntec, Siemens) all preserve it as a\nfile-level boundary marker. Distinct from a comment: the controller\nuses it as a tape/file delimiter, not as embedded operator text.

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

Concrete class for section serialization.

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

Section key holder for .

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

Section key holder + concrete implementation for .

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

JSON section schema for per-block variable storage. Each sub-property\nnames a sub-section that holds a { “#nnn”: value } dictionary\nkeyed by Fanuc-style variable id.

\n

\nThe sub-sections partition the variable space by lifetime:\n

\n
  • #1-#33, scope: macro call frame\n(pushed/popped by G65 / G66 / M99).
  • #100-#499, non-retained common;\ncarries block-to-block, cleared by ProgramEndCleanSyntax on M02 / M30.
  • #3000-#3999, controller-side\nsystem variables; offline-only round-trip record (real controller\neffects such as clock reset / alarm trigger / message pause are not\nsimulated).
\n

\nThe property types are rather than strongly-typed\ndictionaries because each sub-section's keys are dynamic Fanuc variable\nids (#100, #5001, …) discovered at parse time, not a fixed\nschema. This class exists solely to give the section name and sub-keys\nstable nameof() targets — instances are never constructed at\nruntime.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Keywords.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Keywords.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Keywords", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.BackBoringSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.BackBoringSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.BackBoringSyntax", "Summary": "

G87 back boring cycle. Supports modal repetition.\nCuts upward from Z to R — used to bore the back side of a workpiece.

\n

\nCycle sequence:\n

  1. Oriented spindle stop (OSS) at current position
  2. Rapid (shifted) to init position, then down to bottom Z\n — tool enters pre-drilled hole without contacting bore wall
  3. Shift back to hole center at bottom
  4. Spindle start (CW)
  5. Feed upward from Z to R-point (back boring cut)
  6. Oriented spindle stop at R
  7. Tool shift, rapid retract (shifted) to final Z
  8. Shift back to center, spindle restart
\n\n

\nQ specifies the lateral shift distance (mm).\nShift direction defaults to +X (OSS angle 0°).\n

\n

\nReads absolute coordinates from the cycle section, which is\nresolved by before this\nsyntax runs.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.BareG28Behavior.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.BareG28Behavior.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.BareG28Behavior", "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", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.BoringCycleSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.BoringCycleSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.BoringCycleSyntax", "Summary": "

G85/G86/G89 boring cycles.

\n

\nCycle sequence:\n

  1. Rapid to init position (target XY, previous Z)
  2. Rapid from init to R-point
  3. Feed from R-point to bottom Z
  4. [G86 only] Spindle stop at bottom
  5. [G89 only] Dwell P seconds at bottom
  6. Retract: G85/G89 → feed retract, G86 → rapid retract
  7. [G86 only] Spindle restart (CW) after retract
\n\n

\nG85: feed to Z, feed retract — smooth bore finish.\nG86: feed to Z, spindle stop (implicit), rapid retract.\nG89: feed to Z, dwell P, feed retract — like G85 with bottom dwell.\n

\n

\nReads absolute coordinates from the cycle section, which is\nresolved by (modal repetition,\nG91 conversion, missing-axis fallback) before this syntax runs.\nMust be placed after and before\n in the syntax chain.\n

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

Resolves the canned-cycle Group-09 state for the current block\nand writes the result to the section.

\n
  • Active cycle (direct G81..G89 or modal repeat): merges\nParsing overrides with previous-cycle stored params, applies\nG91 incremental-to-absolute conversion and missing-axis fallback,\nwrites with ,\n, and\n. The resolved cycle sub-section\nis left in Parsing under the cycle code for downstream cycle\nsyntaxes (, etc.) to read.
  • Explicit cancel (G80 flag present on a non-cycle block):\nconsumes the G80 flag and writes\n = { Term: \"G80\" }, acting as a hard\nsentinel for modal lookback.
  • No Group-09 activity: leaves the block untouched.
\n

\nMust be placed after and before\nthe individual cycle syntaxes in the chain.\n

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

Writes motion for circular commands\n(ISO G02/G03).\nDetects motion mode from , reads\nI/J/K center offsets or R radius from ,\ncomputes arc center in program coordinates, and writes a one-shot\n (form + arc params) plus a modal\n (Term).

\n

\nG02/G03 mode is modal (Group 01) — persists across blocks via\n. Arc parameters (I/J/K/R) are\nper-block and must be present in every arc block.\n

\n

\nMust be placed before in the\nsyntax chain. Both share the Group 01 motion slot; whichever\nwrites a first claims it.\n

\n

\n switches the I/J/K reading to absolute\ncenter coordinates (Heidenhain DIN/ISO — the ISO twin of the\nKlartext CC pole; the Heidenhain list sets it, every other brand\nkeeps the offset default). In that mode the center is modal: letters\nnot written in a block inherit the previous absolute pole\n(, carried by the brand's\n), a letter never\nwritten falls back to the arc start's component, a letters-free\nblock that commands an endpoint continues the modal arc off the\npole (a flags-only block stays motionless), a G91 block reads\noffsets again and breaks the pole chain, and the plane-normal letter\nis a center coordinate — never the per-turn helix pitch. Behavior\nmirrors HardNcLine.BuildArcNcArg +\nArcNcArg.GetCenterOrCenterOnBeginPlane (HiUniNc 3.1.152.2)\nbit for bit.\n

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

Shared coded-position resolution for the write-stage consumers\n( for rotary words,\n for linear words): turns a\nper-word entry of the coded family\n( /\n /\n /\n /\n — stamped by\n for\nCAC()/CIC()/CDC()/CACP()/CACN())\nplus the evaluated position number into an axis coordinate via\n, and names the plain override\nvalue the caller rewrites the entry to — so the\n tail-pass and every other\ndownstream reader only ever see the established non-coded vocabulary.

\n

\nFailure semantics mirror the Siemens alarms as far as a simulator can:\nan invalid position number (alarm 17510) or a missing table reports an\nerror diagnostic and resolves to \"hold\" — the caller writes the anchor\nso the axis does not move. CIC(0) also resolves to hold, by\nspecification (\"the indexing axis is not traversed\") and silently.\nA CIC from between two indexing positions advances to the n-th\nnext position in the programmed direction. On a cyclic indexing axis\nthe incremental sign becomes a directional\n( /\n) approach; increments spanning\nmore than one revolution reach the correct position but collapse the\nextra full turns (the tail-pass windows cover one revolution).\n

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

Consumes M07 (mist ON), M08 (flood ON), and M09 (coolant OFF) from\n and writes the \nsection with both (convenience flag)\nand (abstract mode name:\n / /\n).\nModal — persists via backward lookback.

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

Shared utilities for all coordinate offset syntaxes\n(ISO, Siemens, Heidenhain). Handles section IO,\nbackward lookback, and composition.

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

G81/G82 drilling cycle (rapid retract). Supports modal repetition.\nG82 covers G81 — the only difference is an optional dwell (P) at the bottom.

\n

\nCycle sequence:\n

  1. Rapid to init position (target XY, previous Z)
  2. Rapid from init to R-point
  3. Feed from R-point to bottom Z
  4. [G82 only] Dwell P seconds at bottom
  5. Rapid from bottom to final (G98 → init Z, G99 → R)
\n\n

\nReads absolute coordinates from the cycle section, which is\nresolved by (modal repetition,\nG91 conversion, missing-axis fallback) before this syntax runs.\nMust be placed after and before\n in the syntax chain.\n

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

Consumes the non-modal G4/G04 dwell sub-section captured by\n\n(Parsing.G4 / Parsing.G04) and emits a\n with a single item,\nwhich resolves into\nan of the dwell duration.

\n

\nArgument dialects are configured per brand preset:\n

\n
  • Fanuc-family default — =\nX/U (seconds), =\nP (milliseconds), = S\n(spindle revolutions).
  • Siemens — G4 F<seconds> / G4 S<revolutions>:\nthe preset sets = F, clears the\nmilliseconds list, keeps S revolutions.
\n

\nBecause the capture layer owns the whole argument (the F/X/P word\nlands inside the dwell sub-section, never in Parsing.F /\nParsing.X), a dwell block cannot poison the modal\n and its X-word cannot mint a ghost motion —\nstructural fixes for the G04 F60000 feed-poison and\nG04 X0.5 ghost-motion hazards.\n

\n

\nSpindle-revolution dwell needs the modal spindle speed: this syntax\nmust be placed after in the Logic\nbundle so the block's own modal section is\nalready written. When no positive rpm is known the dwell is consumed\nand recorded via an Unsupported Message (Dwell--SpindleRevUnresolved)\ninstead of being time-simulated — no act is emitted.\n

\n

\nWhen several recognized argument prefixes appear on one block the\nresolution priority is seconds → milliseconds → revolutions; every\nrecognized key is consumed either way. Unrecognized keys inside the\nsub-section are left in place so they surface through\n.\n

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

Consumes Fanuc G05.1 (high-precision contour / AICC II / Nano Smoothing)\nand records the modal state in the JSON\nsection using the schema. Q1 enables,\nQ0 disables; the optional R{n} precision-level is preserved as\n. The simulation does not\nalter the tool path — this is a controller-internal interpolation black\nbox; the captured state exists for bidirectional NC-text reconstruction.

\n

\nModal carry to subsequent blocks is handled by\n, which already tracks the\nPathSmoothing section key and deep-clones it forward.\n

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

Consumes F (feedrate) from and\nG94/G95 mode from .\nBoth are modal — persist across blocks via backward node lookback.\nWrites resolved state to a section.

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

G76 fine boring cycle. Supports modal repetition.

\n

\nCycle sequence:\n

  1. Rapid to init position (target XY, previous Z)
  2. Rapid from init to R-point
  3. Feed from R-point to bottom Z
  4. Oriented spindle stop (OSS)
  5. Tool shift by Q in +X direction (clear bore wall)
  6. Rapid retract (shifted) to final Z
  7. Tool shift back to center
  8. Spindle restart (CW)
\n\n

\nQ specifies the lateral shift distance (mm) to avoid dragging\nthe tool across the finished bore surface during retract.\nShift direction defaults to +X (OSS angle 0°).\n

\n

\nReads absolute coordinates from the cycle section, which is\nresolved by before this\nsyntax runs.\n

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

Handles G43.4 RTCP (Rotary Tool Center Point) activation. Writes\nthe section and the\n entry\nin — a\ntool-normal · offset_mm translation at the block endpoint ABC. The\nchain entry is tagged \nwhen RTCP is active and ABC changes across the block, and\n otherwise.

\n

\nThe RTCP kinematic rotary part (Pn→MC rigid transform) is orthogonal\nto this syntax and is written by \non every block, because rotary state remains in effect beyond\nthe RTCP modal (e.g. a non-RTCP G01 after G49 still\ninherits the last ABC from the program).\n

\n

\nThe \"rotary dynamic\" distinction lives on the chain entry's\n alone and is read via\n by\n to pick\n vs .\n

\n

\nG43.4 is used by Fanuc, Mazak, Syntec, and Okuma. Siemens (TRAORI) and\nHeidenhain (M128) are handled by separate syntaxes. Must be placed\nafter (to override the\nToolHeightCompensation entry when RTCP is active) and before\n (which runs last in the chain).\n

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

G53.1 — non-modal, one-shot rotary axis positioning.\nPositions the rotary axes (A/B/C) to align the physical tool axis\nwith the active tilted work plane defined by G68.2.\nXYZ position is unchanged; only rotary axes move via rapid traverse.

\n

\nRequires (or equivalent) to have\nwritten the tilt transform. Uses \nto solve for the target A/B/C via inverse kinematics.\n

\n

\nMust be placed after \n(needs tilt data) and before \nin the syntax chain. Writes A/B/C into\n.\nMotion is handled by via modal G00/G01.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCannedCycleSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCannedCycleSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCannedCycleSyntax", "Summary": "

Bridges the klartext machining-cycle vocabulary onto the shared ISO\ncanned-cycle machinery. Owns the self-carrying\n store (single-step lookback + rewrite\non every block — the P1 datum-shift pattern) and the call-once vs\nmodal split:

\n
  • Definition (Parsing.MachiningCycle from\n): mapped to ISO slots at\ndefinition time — 200 → G81/G82/G83 (peck when Q202 < |Q201|),\n232 → G81 (start point Q225/Q226/Q227, end Q386, feed Q207),\n251/252/253 → G81/G83 (surface Q203, clearance Q200, depth Q201,\nplunge feed Q206, step-down Q202). A definition never executes by\nitself. Unsupported numbers (19, …) are recognized-but-not-simulated:\nconsumed whole with HeidenhainCycl--Unsupported, stored\nunarmable so a later call warns instead of moving. Required\nparameters that are missing or non-literal make the store unarmable\nwith HeidenhainCycl--ParamsNotLiteral.
  • Call-once (CYCL CALL [POS] record from\n, or an M99 flag on a\npositioning block — the TNC block-wise call, unrelated to the Fanuc\nreturn M99): writes the mapped cycle as a direct Parsing.G8x\nsub-section on this block, which\n resolves and the shared cycle\nsyntaxes expand into a . POS coordinates\noverride the stored X/Y; the POS Z is a pre-position, recorded but\nnever fed into the hole-bottom slot. The ISO modal-lookback branch is\ndeliberately bypassed: it has no positioning gate, so an armed\n would re-execute on flag-only blocks —\nwrong for klartext.
  • Modal (M89): sets ;\neach subsequent block carrying root axis words (and no\nCArc statement) fires the same direct-section path with the\nblock's X/Y consumed into the cycle. M99 fires once and\nclears the modality; a new CYCL DEF replaces the store.
  • Seal: on every non-firing block whose previous block\ncarries an active term, a G80 flag\nis injected (the P0 G00/G01 injection pattern) so\n writes the cancel sentinel —\nthe one-shot execution never leaks into ISO modal repetition.
\n

\nKnown divergences (recorded, corpus-benign): the cycle's mapped feed\nenters the modal section during expansion (ISO\nsemantics; the Siemens MCALL precedent accepts the same leak); the\nfinal retract plane is the ISO G98 initial level, not Q204's second\nset-up clearance (Q204 is recorded in the definition store only).\n

\nMust run after the tilt/RTCP family and immediately before\n.\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCircleCenterSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCircleCenterSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCircleCenterSyntax", "Summary": "

Heidenhain-specific: turns the Parsing.CC record into the\nmodal HeidenhainCircleCenter { X, Y, Z? } section (absolute\nprogram coordinates). Self-carrying every block (PlaneSelect pattern\n— detected ?? previous), so the arc syntax's single-step read always\nworks without ModalCarry involvement; a CC with partial axes merges\nthe missing components from the previous center. Must run before\n.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCircularMotionSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCircularMotionSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCircularMotionSyntax", "Summary": "

Heidenhain circular motion — the Klartext half of the brand's two\narc syntaxes. The shared (with\n set) runs right\nafter it for the DIN/ISO dialect: the two gates are per-block\nexclusive (a klartext arc has CArc and no I/J/K/R; an ISO arc\nthe reverse) and both honor the single Group 01\n slot.\nGated by the Parsing.C statement marker (klartext arcs\ncarry no G02/G03 and no modal arc continuation): the endpoint comes\nfrom the block's resolved ProgramXyz, the center from the\nmodal section (implicit\ncenter = current position when no CC was ever given), and the\ndirection from DR- (CW → G02) / DR+ (CCW → G03). A\nclosed arc on the active plane is a full circle. A missing DR warns\n(Arc-DR–Missing) and degrades to the modal linear move to the\nendpoint (chord).

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCoordinateOffsetSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCoordinateOffsetSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCoordinateOffsetSyntax", "Summary": "

Heidenhain-specific: resolves coordinate offset from\nCYCL DEF 247 (Datum Preset) and CYCL DEF 7 (Datum Shift).

\n

\nCYCL DEF 247 Q339=N: selects datum preset table entry N — written to\nthe shared section (kept alive\nmodally by via\n synthetic-id resolution).\n

\n

\nCYCL DEF 7 (#N table row or direct X/Y/Z) is additive on top\nof the active preset (TNC semantics; HardNc oracle composes\n-preset + shift): it is written to its own DatumShift\nsection with a separate ProgramToMcTransform entry\n() so preset and shift compose\nin the transform chain instead of replacing each other. The shift is\ncarried modally by this syntax itself: on blocks without a CYCL DEF,\na numbered row re-resolves from the table and a direct shift carries\nits values forward. Cancelling is a zero shift\n(CYCL DEF 7.1 X+0 Y+0 Z+0).\n

\nFor DIN/ISO compatibility (G54–G59), use \nin addition to this syntax in the Heidenhain syntax list.\nUses replace-by-source so both syntaxes coexist without double-composing.\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCyclePrePositionSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCyclePrePositionSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCyclePrePositionSyntax", "Summary": "

Lifts the expanded cycle's initial plane to the recorded TNC\npre-position Z. A CYCL CALL POS … Z±n (and an M99/M89\npositioning block's own Z word) positions the spindle BEFORE the cycle\nruns; the shared ISO expansion instead anchors its initial plane — the\nfirst rapid and the G98 final retract — on the PREVIOUS block's Z.\nLeft unlifted, a call that climbs to a safe Z before drilling would be\nsimulated traversing at the stale old Z (phantom collisions through\nfixtures) and G98 would plunge the tool back to that stale Z after the\nhole.

\n

\nMechanics: when the record carries a\nnumeric Z and a was expanded, the\nfirst item (the initial-plane rapid — both shared cycle syntaxes emit\nit first) and, under G98, the final item and the block's final\nProgramXyz are re-anchored to the pre-position Z. G99 finals\n(R-plane) are untouched. Runs after the shared cycle syntaxes and\nbefore (whose appended M140\nretract builds on the lifted final point).\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCycleRetractSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCycleRetractSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCycleRetractSyntax", "Summary": "

Consumes the Parsing.M140 record that\n deferred on a may-fire-cycle\nblock — a CYCL CALL [POS] host (… M140 MB+n is a real\nhouse.H shape), an M99/M89 flag block, or any block\nunder armed M89 modality.\n destroys any\npre-written , so the retract is appended\nafter the cycle expansion instead:

\n
  • Cycle expanded — a rapid item to (final X, final Y, retract Z)\nis appended to the items and the block's\nfinal ProgramXyz is lifted to the retract plane. The MB math is\n verbatim.\nThe real TNC runs M140 at block start (retract, then position + cycle);\nappending it is a transient-only divergence — the endpoint chain\nre-anchors on the next command point (the P3 PLANE MOVE precedent) and\nthe appended order is the safer trajectory. An F on the M140 is\nrecorded on the item but the appended retract stays rapid\n(corpus M140-on-call blocks are all F-less).
  • Cycle did not expand (call consumed without motion) — the plain\n retract behavior runs here\nunchanged, so a fail-soft call never silently drops the retract.
\nMust run after the shared cycle syntaxes\n(/)\nand before .\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainMFunctionSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainMFunctionSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainMFunctionSyntax", "Summary": "

Heidenhain-specific M-function semantics for the near-universal corpus\nfamily:

\n
  • M126/M127 — shortest-path rotary traverse on/off.\nWrites the modal RotaryWrap { Shortest } section consumed by\n (absent = shortest, the shared\ndefault); the Heidenhain preset's Logic ModalCarry tracks the\nsection.
  • M128/M129 — owned by \nsince P3 (full RTCP on the ToolHeightCompensation section);\nthis syntax no longer touches them.
  • M140 MB — tool-axis retract. Executes a machine-coordinate\nmove along +Z (the corpus machines are table-tilting, so the tool\naxis stays machine +Z; a head-machine generalization is a recorded\nP6 backlog item):\nMB+n retracts by n mm, MB MAX retracts to the positive\nZ stroke limit (; unresolvable limit\nwarns M140--NoStrokeLimit and skips). The retract runs at the\nmodal feed (the statement's F is recorded on the MotionEvent as\nRetractFeedrate, not folded into the modal feedrate).
\nMust run before (RotaryWrap) and\nbefore /\n(M140 occupies the block's MotionEvent).\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainMirrorTransformSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainMirrorTransformSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainMirrorTransformSyntax", "Summary": "

Simulates the Heidenhain DIN/ISO G28 MIRROR IMAGE function\n(the CYCL DEF 8 twin): consumes the statement list\n recorded under\nParsing.MirrorImage, keeps the modal mirror set in the root\n section (each statement REPLACES the set —\ncourse 62192's four-quadrant idiom relies on G28 Y after\nG28 X Y leaving only Y mirrored; bare G28 resets), and\nwrites the sign-flip matrix into\n as the\n entry.

\n

\nMust run before every other transform writer\n( downward) so the mirror\nentry is the chain's first — the mirror flips program\ncoordinates about the current datum inside the active working plane,\ni.e. innermost: tilt, tool-height and coordinate-offset entries\ncompose after it and are never themselves mirrored. Because every\nmotion semantic resolves contours in program coordinates and maps\neach interpolated point through the composed chain\n(),\nthe arc-handedness flip (G02↔G03) and the radius-compensation side\nflip (G41↔G42) a real control performs under a single-axis mirror\nemerge from the pointwise mapping — no re-tagging of\n or the compensation side happens,\nand none is needed.\n

\n

\nTwo statement shapes stay recognized-but-not-simulated:\na rotary axis letter ( — a rotary\nmirror is not representable in the XYZ transform chain; the letter is\ndropped from the set, the statement still replaces) and the\nFanuc-shaped valued form ( — the\nmanual's mirror idiom is bare letters, so G91 G28 X0 Y0 Z0 in\na mislabeled .I file must not arm a full-XYZ mirror; the\nstatement is consumed with zero effect).\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainMotionModeSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainMotionModeSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainMotionModeSyntax", "Summary": "

Heidenhain-specific: maps the klartext L statement marker\n(written by ) onto the shared ISO\nmotion-mode vocabulary. An L block carrying the one-shot\nFMAX flag becomes a rapid (G00) block; every other L\nblock is a feed move (G01) driven by the modal feedrate. The injected\nG00/G01 flag is consumed downstream exactly like a DIN/ISO block —\nby on ordinary moves and by\n on machine-coordinate (M91)\nmoves — so no shared syntax needs Heidenhain-specific behavior.

\n

\nFMAX is one-shot on the real TNC: because every klartext motion is an\nL statement and this syntax stamps a mode per statement, the\nrapid mode never leaks into the next block — the following L\nwithout FMAX is stamped G01 again. FAUTO (feed from cycle) is\nconsumed as a feed move. Must be placed at the top of the Logic bundle,\nbefore and\n.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainPathSmoothingSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainPathSmoothingSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainPathSmoothingSyntax", "Summary": "

Heidenhain-specific: consumes the structured CYCL DEF 32 TOLERANCE\nrecord () into the shared\nmodal PathSmoothing section (tracked by the Logic ModalCarry):\na positive tolerance arms smoothing\n({IsEnabled:true, Term:“CYCL DEF 32”, Tolerance, HscMode?, Ta?});\na bare or zero-tolerance cycle cancels it. Untouched blocks are left\nto ModalCarry; the stream's first block seeds a conservative\n{IsEnabled:false} (Siemens sibling shape). Replaces the dead\nFanucPathSmoothingSyntax in the Heidenhain list (it read\nParsing[“G05.1”], which no Heidenhain capture produces).

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainPivotTransformationSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainPivotTransformationSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainPivotTransformationSyntax", "Summary": "

Heidenhain pivot gate over the shared engine\n(): writes the\n entry on blocks\nwhere commanded XYZ needs the Pn→MC kinematic rigid transform — an\nactive tilted plane ('s\nPLANE SPATIAL term, or a mixed-dialect G68/G68.2 term), an\nactive RTCP modal ( on\nthe section — the term check\ncovers RTCP blocks whose rotary state is stable, which the\nDynamic-entry branch alone would miss), or a Dynamic chain entry.

\n

\nThe third sibling gate after \n(ISO/Fanuc) and ;\nall write the identical JSON vocabulary through the shared engine and\nonly one gate is registered per brand pipeline. Heidenhain has no\nplain-geometry-frame exclusion (klartext datum shifts use their own\nchain sources, never ). Same\nchain-position contract: after all Pn-frame writers, so the\nPivotTransform entry lands last.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainPlaneTiltSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainPlaneTiltSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainPlaneTiltSyntax", "Summary": "

Heidenhain PLANE consumer — the Heidenhain sibling of\n (Fanuc G68.2) and\n both XmlDocs promise.

\n
  • PLANE SPATIAL — composes the tilted work plane\nRx(SPA)·Ry(SPB)·Rz(SPC) (row-vector, degrees; the HardNc\noracle's HeidenhainPlaneSpatialArg matrix verbatim) into\n as the shared\n entry with\nTerm = \"PLANE SPATIAL\".
  • MOVE / TURN — the implicit rotary positioning (the\nCYCLE800 \"G53.1 half\"): with wired\nthe plane orientation is solved to machine ABC (full-orientation IK\nfirst so a pure in-plane SPC under TABLE ROT still turns the\ntable; tool-axis-normal fallback for machines with fewer rotary DOF;\nno identity short-circuit — the explicit zero-angle\nPLANE SPATIAL SPA+0 SPB+0 SPC+0 TURN is the klartext idiom\nfor returning the rotaries to 0, oracle parity)\nand written into \nplus a non-modal with\nTerm = \"PLANE SPATIAL\". MOVE's DIST (tool retract\nradius during the swivel) and the TCP-preserving XYZ compensation\nare recorded but not simulated — the machine XYZ stays at the\nprevious position like TURN, a transient-only divergence from the\nHardNc oracle (endpoints re-anchor at the next commanded point);\nMOVE's F is recorded on the event as MoveFeedrate.
  • COORD ROT is honored only when the plane rotates purely\nabout the tool axis (,\nTNC manual rule; HardNc parity): the coordinate system rotates and\nthe rotaries stay. Any other rotation — or TABLE ROT, or neither\nword — positions the rotary axes on MOVE/TURN.
  • SEQ± is recorded in the section; when the IK solution's\nmaster rotary (first declared rotary axis) violates an explicit SEQ\npreference the preference is not applied and\nCoord-Tilt--007 warns (solution-family selection is not\nmodeled; the HardNc ±2π window wrap would be undone by\n's shortest-cyclic tail pass, and\nthe corpus never exercises SEQ with MOVE/TURN).
  • PLANE RESET — the shared inactive sentinel\n(Term = \"G69\" + identity entry). The rotary axes are not\nre-positioned on reset (CYCLE800 cancel precedent; corpus programs\nfollow with explicit rotary moves).
  • PLANE VECTOR / PROJECTED / EULER / POINTS / RELATIV /\nAXIAL — recognized-but-not-simulated: consumed,\nHeidenhainPlane--Unsupported warns, and the previous tilt\nstate carries unchanged (the HardNc oracle instead reuses a stale\nspatial arg here — SoftNc deliberately exceeds it).
\n

\nOwns the once-per-block modal carry for\nthe Heidenhain list ().\nMust run before /\n (their translation follows\nthe tilt entry's normal — the oracle's tool-normal-tiltable rule)\nand before / the coordinate-offset\nsyntaxes (chain order: tilt entry ahead of CoordinateOffset,\nmirroring the Siemens frame slot; implicit MC rotary values must\nland before McAbc's per-axis lookback).\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainProgramHeaderSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainProgramHeaderSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainProgramHeaderSyntax", "Summary": "

Heidenhain-specific: consumes the Parsing.PGM record\n(BEGIN|END PGM name MM|INCH) — the unit word is pushed into\nParsing.Flags for the instance\nconfigured with InchCodes=[“INCH”], MetricCodes=[“MM”] (which\nmust run after this syntax), and END PGM writes the shared\none-shot ProgramEnd section (existence-checked by its\nconsumers exactly like M30). Consuming PGM also removes the\nprogram-header unconsumed noise every klartext file used to emit.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainRadiusCompSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainRadiusCompSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainRadiusCompSyntax", "Summary": "

Heidenhain-specific: maps the klartext radius-compensation words\ncaptured by (RL/RR/R0\nboolean Parsing-root records) onto the shared vocabulary consumed by\nthe radius-compensation pass: RL → Parsing.G41 {D: toolId},\nRR → G42, R0 → G40 flag. The offset id is the current\ntool number (klartext has no D word; IToolOffsetConfig documents\nthe offset id as the Heidenhain tool number), resolved by walking back\nto the most recent ToolChange section. A missing or non-numeric\ntool id degrades to mode-only injection (radius 0 — the compensation\npass records the state but applies no geometric offset) with an\nRadiusComp–ToolUnresolved warning.

\n

\nMust run before the PostLogic radius-compensation pass (any Logic\nposition works — PostLogic sees completed Logic output) and after\n so a same-block TOOL CALL is\nvisible.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainRtcpSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainRtcpSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainRtcpSyntax", "Summary": "

Heidenhain RTCP (M128/M129, FUNCTION TCPM/FUNCTION RESET TCPM): the\nHeidenhain sibling of and\n. While RTCP is active the\n section carries the\nactivating term ( or )\nand the ToolHeightCompensation chain entry becomes a\ntool-normal · offset translation at the block endpoint ABC\n(), tagged\n when the rotary state\nchanges across the block — the signal that routes the block to\n per-step IK.

\n

\nTool length ownership stays with the TOOL CALL machinery\n( — table height + DL, which\nruns earlier in the bundle): activation adopts the compensation\nalready resolved on this or the previous block and records the\nadopted owner in ;\na TOOL CALL during the modal re-takes the section with the fresh\noffset; M129 / FUNCTION RESET TCPM hands the section back to the\nrecorded owner (default —\nklartext tool-length compensation survives RTCP deactivation). The\nTOOL CALL Delta_mm (DL) rides along so the hand-back restores\nit. A deactivation with no active RTCP (the corpus' ubiquitous\nprogram-head M129) is consumed silently. Same-block\ncontradiction (M128 with M129): the off state wins conservatively\n(the P1 rule, kept for continuity).\n

\n

\nThe M128 feed limit (M128 F6000., or an FQn token the\nevaluator could not resolve) is recorded on the section as\n — recorded, not simulated. FUNCTION TCPM\nbehavior arguments are recorded by the parsing syntax and warn\nTcpm--ArgsNotSimulated on activation.\n

\n

\nMust run after /\n and the coordinate-offset\nsyntaxes (mirroring the Fanuc G43.4 / Siemens TRAORI slot) and\nbefore ,\nwhose gate recognizes the and folds the\nkinematic pivot. Silently degrades to a plain UnitZ · offset\ntranslation when is absent.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainStockDeclarationSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainStockDeclarationSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainStockDeclarationSyntax", "Summary": "

Heidenhain-specific: consumes the Parsing[“BLK FORM”] record\n(workpiece blank declaration, present in virtually every klartext\nfile) into the brand-neutral StockDeclaration section —\nrecognized and recorded, not simulated. The simulation stock always\ncomes from the project's own workpiece setup, mirroring the HardNc\noracle which recognizes-and-skips the same lines; the structured\nrecord keeps the declared blank readable for a future stock consumer\nwithout feeding geometry today.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainToolChangeSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainToolChangeSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainToolChangeSyntax", "Summary": "

Heidenhain-specific: consumes the Parsing[“TOOL CALL”] record\n(written by )\ninto the shared section so\n fires the tooling act. A\nklartext TOOL CALL always performs the change — no separate M06\ntrigger exists — so is always\ntrue with Term = “TOOL CALL”.

\n

\nThe spindle-speed word (S) is relocated to the root of\n so the shared\n — which must run after this syntax in\nthe Logic bundle — records it modally. Numeric tool ids are written as\nints (the act chain is int-keyed); non-numeric ids stay strings and\nresolve (or warn) at the semantic layer.\n

\n

\nP0 limits recorded as diagnostics: non-Z tool axis\n(ToolChange--AxisUnsupported), non-zero DL/DR deltas\n(ToolChange--DeltaUnsupported; zero deltas are consumed\nsilently), and a TOOL CALL without a tool id\n(ToolChange--MissingToolId, e.g. a variable tool number the\nparser could not capture).\n

\n

\nKnown P2 limitation: a quoted tool NAME that happens to spell a Q\ntoken (TOOL CALL \"Q1\" Z) loses its quotes at capture, so the\nevaluator substitutes the Q parameter's value and the numeric branch\nbelow treats it as a tool number. Corpus-zero (real names are\n\"B40R\"-style); fixing it needs the capture to preserve the\nquoted-ness, which would change the P0-pinned record shape.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainToolOffsetSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainToolOffsetSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainToolOffsetSyntax", "Summary": "

Heidenhain-specific: klartext TOOL CALL always applies tool-length\ncompensation (there is no cancel word — HardNc compensates\nunconditionally). On TOOL CALL blocks the effective height =\n(tool id) +\nthe TOOL CALL's DL delta; the shared ToolHeightCompensation\nsection is written (Term = “TOOL CALL”, OffsetId = tool id —\nthe offset id is documented as the Heidenhain tool number) and the\ntranslation composes into the transform chain via the shared\nToolHeightCompensation source (mutual exclusion with the ISO\nG43 sibling by same-source replace).

\n

\nModal: on following blocks the section is re-resolved per block from\nthe table (mirroring the Siemens D sibling — give-way when a same\nblock ISO term took ownership; carry Term/OffsetId/Delta_mm\notherwise). Must sit after (the\nISO anchor — last writer wins on mixed-dialect blocks) and after\n (reads its ToolChange\nsection), before the pivot/tilt syntaxes.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.Heidenhain.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.Heidenhain", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.HighSpeedPeckCycleSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.HighSpeedPeckCycleSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.HighSpeedPeckCycleSyntax", "Summary": "

G73 high-speed peck drilling cycle (chip breaking). Supports modal repetition.\nDrills in increments of depth Q, partially retracting by\n between strokes\n(instead of fully back to R like ).

\n

\nCycle sequence:\n

  1. Rapid to init position (target XY, previous Z)
  2. Rapid from init to R-point
  3. For each stroke: feed Q deeper, rapid retract by d
  4. If remainder exists: feed to bottom Z, rapid retract by d
  5. Rapid to final (G98 → init Z, G99 → R)
\n\n

\nReads absolute coordinates from the cycle section, which is\nresolved by (modal repetition,\nG91 conversion, missing-axis fallback) before this syntax runs.\nMust be placed after and before\n in the syntax chain.\n

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

Resolves G91 incremental axis values to absolute in-place\nwithin and its sub-sections.\nReads written\nby .

\n

\nPer-word override: a block-root\n section (written by\n for the\nSiemens per-word coordinate functions) beats the modal\nterm for the listed axes on this block only: an\n entry converts that word even\nunder G90, an entry skips it even\nunder G91 — as does, deliberately, every other non-Incremental value\n(the rotary-family /\n /\n entries are absolute targets;\ntheir swing resolution lives in ,\nnot here). A coded-position entry\n( /\n — Siemens\nCAC()/CIC() on a linear indexing axis) carries an\nindexing position number instead of a coordinate: the number\nis resolved through \nvia , the word\nis rewritten to the resolved absolute coordinate, and the entry to\n; a failed resolve reports an error\nand holds the last program position. Axes without an entry follow the\nmodal term unchanged, so brands that never write the section\n(Fanuc/Heidenhain/...) keep the exact legacy behavior.\n

\n

\n specifies which JSON paths\ncontain axis values that need incremental-to-absolute conversion.\nDefault: [[\"Parsing\"], [\"Parsing\", \"G28\"]].\nAll matching paths are converted.\n

\n

\nCanned cycle paths (Parsing.G81, G82, G83, …) are intentionally\nexcluded — their Z/R incremental semantics differ from normal axes\n(R is relative to init level, Z is relative to R-point).\nResolution is handled by\n\ninside each cycle syntax class, which runs before this syntax.\n

\n

\nUses to determine\nwhich tags are motion axes. Traces backward nodes for last known\n to resolve incremental values.\nAfter this syntax, all axis values in the working paths are absolute —\n can consume them without\nincremental logic.\n

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

ISO/Fanuc/Mazak/Okuma/Syntec: resolves G54–G59.9 work coordinate offset.\nReads G54/G55/.../G59.9 from ,\nlooks up offset Vec3d via dependencies\n(e.g. brand parameter table or ),\ncomposes into .\nModal — active coordinate persists via backward lookback.\nDefault coordinate ID is set by .

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

ISO/Fanuc: resolves G68 (2D coordinate rotation) and G69 (cancel).\nComputes a rotation around the active plane normal\nand composes it into .

\n

\nNo dependency needed —\nG68 is pure geometric rotation.\n

\n

\nManaged commands: G68, G69 (idempotent with ).\n

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

ISO/Fanuc: resolves G68.2 (tilted work plane) and G69 (cancel).\nComputes a tilt from I/J/K euler angles\n(Fanuc ZXZ convention) and composes it into\n.

\n

\nManaged commands: G68.2, G69 (idempotent with ).\nSiemens equivalent: CYCLE800 (separate syntax).\nHeidenhain equivalent: PLANE SPATIAL (separate syntax).\n

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

ISO G52: Local coordinate system offset (additive to G54-series).

\n

\nG52 X10 Y20 Z5 → sets local offset.\nG52 X0 Y0 Z0 → cancels (resets to zero).\nM30 (program end) → also cancels.\n

\nReads Parsing.G52 (from ),\nwrites section,\nand adds an \"IsoLocalCoordinateOffset\" entry to the transformation chain.\nModal — persists via backward lookback until changed or cancelled.\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.LinearMotionSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.LinearMotionSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.LinearMotionSyntax", "Summary": "

Writes motion for linear commands\n(ISO G00/G01, Heidenhain L/LN). Detects motion mode from\n, writes a one-shot\n section (form + isRapid) plus a modal\n section (Term) when\n exists on the block.

\n

\n discriminates between\nXYZ-only and XYZABC motion by checking whether rotary axis values\nare present in .\n

\nMust be placed after in the syntax chain.\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.MCodeExpansionSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.MCodeExpansionSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.MCodeExpansionSyntax", "Summary": "

Expands machine-declared M-codes (\non the controller parameter table) into the canonical ISO flags the\nregular consumers already understand: tool change → M06, spindle\ndirection → M03/M04/M05, coolant →\nM07/M08/M09. Must run ahead of\n, , and\n — expanding early is what lets one\ncomposite OEM code (e.g. M13 = spindle CW + flood coolant) feed\nseveral downstream consumers without any of them fighting over who\nremoves the original flag. Same rewrite-into-shared-vocabulary pattern\nas (RL/RR/R0 →\nG41/G42/G40).

\n

\nTwo deliberate boundaries keep the rewrite faithful. Declarations whose\nsole content is a spindle direction\n() are NOT expanded —\n resolves them in place via\n, which keeps\nlegacy <SpindleMCode> configs bit-identical and avoids the\nexpansion product being re-translated by that same custom-first map\n(e.g. a mirrored M03↔M04 remap would otherwise flip direction).\nExpansion codes are inserted at the declared flag's own position, and a\ncode whose raw twin also appears un-declared elsewhere in the block is\nnot emitted — the block's textual order keeps deciding last-wins\nconflicts exactly as it did before.\n

\n

\nDeclared-but-unmodeled behavior stays loud: a declaration carrying an\n emits one\nDeclaredMCode--UnmodeledEffects informational diagnostic per\noccurrence — a declaration replaces the raw Parsing--Unconsumed\nwarning with an explanation, never with silence. A declaration with no\neffects and no note consumes its code silently by explicit intent.\nUndeclared codes are untouched and keep falling through to\n.\n

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

Handles machine coordinate selection — non-modal, one-shot.\nThe axis values (X/Y/Z) in the block are interpreted as machine\ncoordinates, bypassing all work offsets, local coordinates,\ntool height compensation, and coordinate rotations.\nIf G91 (incremental) is active, the code is ignored per ISO standard.

\n

\nDefaults to ISO G53. Brands with additional one-shot\nmachine-coordinate codes widen — the\nSiemens preset adds G153 and SUPA (both suppress every\nactive frame for one block; in this pipeline all of those reduce to\n\"bypass the composed \",\nwhich the ProgramXyz back-derivation below already models). The\nmatched code is stamped verbatim into\n for bidirectional source recovery.\nRotary words on the same block (e.g. SUPA G0 B0) are left to\n — same behavior as ISO G53, where rotary\naxes flow through the normal rotary path.\n

\n

\nMust be placed before in the\nsyntax chain. When a supported code is active, this syntax consumes\nX/Y/Z from and writes\n directly,\npreventing from processing them\nas program coordinates.\n

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

Resolve modular rotary axes to the shortest cyclic path relative to the previous node.\nUses to determine which axes\nwithin need cyclic resolution.\nFalls back to hardcoded A/B/C if no is available.\nMust be placed after in .

\n

\nTwo stages, mirroring :\n

  1. Root MachineCoordinateState — anchored at the previous\n block's modal rotary state.
  2. .[*]\n — sequential walk through items, anchoring item 0 at the previous\n block's modal state and item i > 0 at item i-1's\n post-cycle value (per-axis chain). Items without a rotary\n MachineCoordinateState are skipped.
\nThe items pass enables rotary motion (e.g. G28 ABC intermediate /\nhome stages) to surface as motion \nsegments rather than a single root-MC stamp.\n\n

\nPer-word directional override: a block-root\n entry (stamped by\n) valued\n (Siemens ACP()) or\n (ACN()) swaps that\naxis's window for this block only: [anchor, anchor+360°) /\n(anchor-360°, anchor] instead of the default ±180° — the approach\ndirection is forced even when it is the longer way around. A target\ncongruent with the anchor (within an ULP-scale epsilon) keeps the\nanchor value verbatim — no move, never a spurious full turn, and no\ndeg→rad→deg drift. (DC())\nis the default window and needs no special path here. The override\nis read from the current block only (it is one-shot, never carried —\ndeliberately unlike the modal RotaryWrap gate's one-step\nprevious fallback) and applies to the root MC stage only, not to\n items (G28/G74/G75 expansions capture\ntheir words in sub-objects the stamping syntax never sees, so an\noverride can only ever describe a root word). Directional/shortest\nentries keyed by an axis outside the modular set are reported as\nCoord-McAbc--003 — the promise cannot be honored there and\nsilence would mis-read the program's intent; an entry with no anchor\nto resolve against (first rotary value in the stream) is reported as\nCoord-McAbc--004 and adopted unwrapped, matching the default\npath.\n

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

Writes rotary axis values (A/B/C) into\n from\n and modal lookback.

\n

\nOnly active when declares rotary axes.\nWorks for both 3+2-axis (no )\nand simultaneous 5-axis configurations.\n

\n

\nThis syntax is intentionally ABC-only. When the block is rotary-only\n(no ProgramXyz, e.g. G00 A30.) the section is created\nwith ABC but without X/Y/Z. \n— placed after — copies X/Y/Z from the\nprevious block's \nto finish the section. Splitting the XYZ fill out lets this syntax\nrun before (and before\n) without accidentally filling X/Y/Z\nfrom prev and thereby short-circuiting\n.\n

\n

\nMissing rotary axes are filled from previous\n lookback,\nunless the current section already has the value\n(e.g., from ).\nValues are stored in degrees (matching ).\n

\n

\nPer-word override: a block-root\n section (written by\n for the\nSiemens AC()/IC() coordinate functions) marks a rotary\nword : the parsed value is then\nadded to the previous modal value of that axis (previous\nMachineCoordinateState lookback, falling back to a value\nalready present in the current section, then 0) instead of being\nwritten as an absolute angle. The accumulated raw degrees stay\nmonotonic across iterations — each per-block step is well inside the\n±180° window, so the tail-pass\nkeeps it as net rotation instead of re-normalizing it away. An\n entry (from AC()) matches\nthe default write and needs no special path — and so, deliberately,\ndo the rotary-family entries \n(DC()) / \n(ACP()) / \n(ACN()): this syntax writes the raw absolute target and the\nshortest/directional swing is resolved by the\n tail-pass, which owns the wrap\nmath. Brands that never write the section keep the exact legacy\nbehavior.\n

\n

\nCoded-position overrides (Siemens\nCAC()/CIC()/CDC()/CACP()/CACN())\ncarry an indexing position number instead of an angle: the\nnumber is resolved through via\n and the override\nentry is rewritten to the plain vocabulary\n( /\n /\n /\n — a cyclic CIC keeps\nits programmed direction through the directional values) before the\ntail-pass runs, so the tail-pass never sees a coded value. A failed\nresolve (invalid number, missing table) reports an error and holds\nthe axis at its previous value.\n

\n

\nMust be placed before so syntaxes\nthat need the current-block ABC to compute transforms\n(e.g. ) can see it; and before\n and .\n

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

Fills missing X/Y/Z on an ABC-only\n section.\nBehaviour depends on whether the block is under RTCP with rotary\nmotion, as indicated by\n:

\n
  • \nNon-dynamic (no RTCP or RTCP with ABC stable) — the\nprogrammed tool tip stays put in MC while rotary axes (if any) are\nunchanged, so we simply copy X/Y/Z from the previous block's\n. This matches\nNC modal XYZ carry-forward for rotary-only blocks such as\nG00 A30. (non-RTCP pivoting).\n
  • \nDynamic (RTCP active + ABC changing) — the programmed tool tip\nmust stay fixed in program coordinates while MC XYZ shifts to\ncompensate the new rotary state. Looks up the last\n and re-derives\nMC = inheritedProgramXyz × composedTransform, where the\ncomposed transform is the block's endpoint chain (now including\n as a full\nrotation+translation Mat4d, so the chain already encodes the\nkinematic IK). The carried ProgramXyz is also stamped onto\nthe current block so downstream consumers see a consistent\nProgramXyz + MC pair.\n
\n

\nPair with , which runs early to write ABC\nbut deliberately leaves X/Y/Z empty so can\nstill derive MC XYZ from ProgramXyz via the transform chain\nwhen the block carries linear motion. If \nhas nothing to derive (no ProgramXyz), this syntax completes\nthe MC section as described above.\n

\n

\nDoes nothing when the section already carries all three of X/Y/Z\n(normal linear-motion blocks), or when there is no section at all\n(pure parse-only block that introduces no MC). Must be placed\nafter and before\n / .\n

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

Derives from\n by applying the composed\n.

\n

\nProcesses two stages:\n

  1. Root ProgramXyz → root MachineCoordinate
  2. .[*]\n — derives MachineCoordinate from ProgramXyz for items\n that have ProgramXyz but no MachineCoordinate
\nMust be placed after syntaxes that write ProgramXyz\n(e.g., )\nand before syntaxes that read MachineCoordinate\n(e.g., ).\n\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.PeckDrillingCycleSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.PeckDrillingCycleSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.PeckDrillingCycleSyntax", "Summary": "

G83 peck drilling cycle. Supports modal repetition.\nDrills in increments of depth Q, fully retracting to R between strokes.

\n

\nCycle sequence (per stroke):\n

  1. Rapid to init position (target XY, previous Z)
  2. Rapid from init to R-point
  3. For each stroke: rapid to clearance above previous depth,\n feed Q deeper, rapid back to R
  4. If remainder exists: feed to bottom Z, rapid to R
  5. Rapid from R/bottom to final (G98 → init Z, G99 → R)
\n\n

\nRetraction distance is read from \n(Fanuc #4002 / Syntec Pr4002, or \nfallback).\n

\n

\nReads absolute coordinates from the cycle section, which is\nresolved by (modal repetition,\nG91 conversion, missing-axis fallback) before this syntax runs.\nMust be placed after and before\n in the syntax chain.\n

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

Shared engine for the brand pivot-gate syntaxes\n( — ISO/Fanuc family,\n — Siemens).\nEach brand syntax owns only its gate (which modal terms mean\n“commanded XYZ needs the Pn→MC kinematic rigid transform”); the\nendpoint-ABC resolution and the PivotTransform chain entry\ncomposition live here so every brand writes the identical JSON\nvocabulary.

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

ISO/Fanuc-family pivot gate: writes the\n entry\ninto on blocks\nwhere the controller is interpreting commanded XYZ in a frame that\nneeds the Pn→MC kinematic rigid transform — namely active RTCP\n(G43.4) or active tilted plane (G68/G68.2). On plain-mode blocks\n(no RTCP, no tilted plane), the controller treats commanded XYZ as\nmachine-frame directly, so the indexed rotary angle is a positioning\nvalue only and must not fold into the linear axes; this\nsyntax skips those blocks and leaves the chain at identity (or\nwhatever non-kinematic offsets earlier syntaxes contributed).\nBrand variants with their own modal vocabulary gate the same shared\nengine (): Siemens TRAORI/CYCLE800 →\n; Heidenhain\nM128/PLANE SPATIAL would follow the same pattern.

\n

\nMirrors real Fanuc semantics: plain G43 offsets along the active\ntilted-plane normal (or machine Z when no tilt is active), and\nplain XYZ moves map directly to machine axis registers regardless\nof indexed table/head rotary position. Only G43.4 follows the live\ntool vector and only G68.2 redefines the work-plane orientation —\nboth of which this guard detects via the existing chain markers.\n

\n

\nChain position: must run after all Pn-frame writers\n(, ,\n, ,\nbrand-specific coord offset syntaxes) so the guard sees the\nfinalised mode markers and the PivotTransform entry — when\nemitted — naturally lands as the last chain element. Must\nrun before /\n so they see the completed chain.\n

\n

\nSilently no-ops when is absent\n(3-axis configurations without rotary kinematics).\n

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

Consumes G17/G18/G19 plane selection from \nand writes section using conventional\naxis-pair names (XY/ZX/YZ).\nModal — persists via backward lookback. Default is XY (G17).

\n

\nDownstream consumers (,\n) call\n to read the resolved plane.\n

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

Warns on G-codes that Fanuc disallows during Polar Coordinate\nInterpolation (G12.1), per the manual whitelist mirrored from HardNc\nIsGCodePolarModeCompatible\n().

\n

\nPlaced FIRST in the Logic bundle so the scan sees\n Flags before the mode/plane/offset\nsyntaxes consume their codes — at the old in-place check position,\nG17/G18/G19, G20/G21, G49, G53.1 and G68/G69 cancels had already been\neaten and passed silently. Polar-active detection needs no valve of its\nown: the PREVIOUS block's\n is already\nfinal (the whole Logic bundle ran for it) unless this block exits with\nG13.1; a block entering with G12.1 is checked too.\n

\n

\nResidual blind spot (documented): codes captured as Parsing sub-objects\nby ParameterizedFlagSyntax in the Parsing bundle (G28, G43/G44,\nG43.4, G05.1, G52, G54.1, G68/G68.2, canned cycles) never reach Flags\nand stay outside the scan. They cannot corrupt the polar trajectory —\nthe plane normal is fixed by the polar pair — so the gap is\ndiagnostic-only, same as HardNc's own per-code parse-time check.\n

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

Maintains the modal Polar Coordinate Interpolation valve section\n() for Fanuc\nG12.1/G13.1.

\n

\nOn a G12.1 block: consumes the flag, reads the block's own X/C words as\nthe anchor (; the X word is a\ndiameter and is halved), converts the previous program position\n(program X/Z + machine C angle) onto the polar hypothetical plane via\n, and\nwrites both the state section and the entry\n position.\nMirrors HardNc HardNcLine case 12_100.\n

\n

\nOn a G13.1 block: consumes the flag and stops carrying the state — the\nblock itself is already Cartesian, matching HardNc case 13_100.\n

\n

\nOn other blocks: re-materializes the previous block's state section\n(single-step lookback carry, the pattern),\nand warns FanucPolar--IncompatibleGCode for G-codes outside the\nFanuc polar-mode whitelist (mirrors HardNc\nIsGCodePolarModeCompatible).\n

\nMust be placed before so the downstream\n can consume the hypothetical C word before\nit is interpreted as a rotary machine axis.\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.PositioningSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.PositioningSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.PositioningSyntax", "Summary": "

Detects G90/G91 positioning mode from \n(or by modal lookback) and writes a section\n(, )\nto the block JSON.

\n

\nFanuc/ISO: reads G90/G91 from (global modal).\nHeidenhain: would need a separate implementation reading I-prefix per axis.\nSiemens: the AC()/IC() per-word override rides on top of this modal\nstate — \nwrites a section the\ndownstream consumers (,\n) honor per axis.\n

\n

\nDoes NOT convert incremental values — that is handled by\n which can be placed later\nin the syntax chain, after canned cycle syntaxes have consumed\ntheir parameters with cycle-specific G91 semantics.\n

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

Clears the per-block Vars.Volatile dictionary on blocks that\ntriggered program end (M02 / M30, identified by the\n section written by ).

\n

\nReal Fanuc clears non-retained common variables (#100-#499) on program\nend + reset; this syntax models that behaviour at the simulator level.\nThe clear happens on the same block that carried M02/M30 — the next\nblock's carry then sees an\nempty dictionary on the predecessor and starts fresh.\n

\n

\nPipeline placement: must run after both \n(which writes the section this syntax checks)\nand (so the carry has\nalready happened on this block; this syntax overwrites the result).\n

\n

\nRetained common variables (#500-#999, owned by\n) are\nuntouched — they survive program end on real hardware (NV-RAM).\nLocal variables (#1-#33, scope: macro call frame) are also\nuntouched here; their lifecycle belongs to G65/G66/M99 push/pop, not\nprogram end.\n

\n

\nAlso clears any active on the same\nedge: a G66 modal that was still active when M02/M30 hit is\nimplicitly cancelled, matching real Fanuc reset behaviour. The\nsection is overwritten with a G67-shaped cancel marker so\nthe carry mechanism in\n sees the boundary\nand does not propagate the modal past the program-end edge.\n

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

Consumes M02/M30 (program end) from \nand writes section.

\n

\nDownstream syntaxes that need to reset modal state on program end\n(e.g. for G52 reset)\nshould read the section rather than\nscanning for M30 in Flags directly.\n

\nMust be placed before syntaxes that depend on the ProgramEnd section.\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.ProgramRxczSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.ProgramRxczSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.ProgramRxczSyntax", "Summary": "

Polar-mode sibling of : while the\n valve section\nis present, consumes the block's X/C/Z words as polar hypothetical-plane\ncoordinates (X = diameter, halved; C = hypothetical axis in mm) and writes:

\n
  1. — the\nanchor-relative polar position (G90/G91 resolved against the previous\nblock's position, mirroring HardNc NcGroup03.GetNcFromSyntax);
  2. — the derived ordinary\nprogram position (radius, previous program Y, Z), so the downstream\n derives machine XYZ through the normal\ntransform chain — itself naturally\nno-ops because the axis words are already consumed;
  3. the machine C angle (degrees) into\n —\nplaced before , which then preserves the\nvalue instead of treating C as a directly-commanded rotary word;
  4. on motion-programmed blocks, and a\n with \n(G00/G01) or (G02/G03 with R or\nI/J/K resolved on the hypothetical plane).
\nThe G12.1 entry block is skipped (its position was anchored by\n). Angle-branch resolution mirrors\nHardNc: chained from\nthe previous machine C angle.\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.ProgramStopSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.ProgramStopSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.ProgramStopSyntax", "Summary": "

Consumes the program-stop words in \n(default M00 unconditional / M01 optional) from\n and writes a\n section on the block that carried the\nflag. Non-modal: the section is written only on the exact block\nwhere the stop code appears.

\n

\n is ordered by priority: when several\nlisted words share a block the first listed one wins and stamps\nTerm with its literal; every listed word is removed from the\nblock either way. A brand preset widens the list for its own\nvocabulary (the Heidenhain STOP word — the\n precedent).\n

\n

\nSiblings with (M02/M30) which handles\nend-of-program, not in-program stops.\n

\n

\nThe parsing layer only records NC intent. Whether M01 actually\npauses the run is a runtime/semantic decision gated by the operator's\n\"Optional Stop\" switch (analogous to\n for block skip).\n

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

Resolves ProgramXyz (leaf coordinate) from syntax XYZ tags.\nWrites sub-object to\n..\nMust be placed after since it uses\ncross-node lookback for last position.

\n

\n (placed after this in the chain) reads\n and writes\n.\n

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

Shared utilities for and\n lookback and\nresolution. Used by ,\n, and semantic resolvers that need\nposition lookback.

\n

\nTwo strategies for \"what's the program coordinate at a block's\nendpoint?\" — both invert an MC value through an\n chain,\nbut they pick the chain from different nodes:\n

\n
  • \nBy current-state transform\n() — modal anchor is\n. Re-expresses an\nMC value (typically a predecessor's modal MC) into the current\nblock's program frame using the current block's chain. Suitable for\nchain-change blocks where the spindle physically stays put while the\nchain (G54 swap, G68.2 activation, G43.4 toggle, tool-height change,\n...) re-anchors the program frame; mirrors legacy\nHardNcLine.RebuildProgramXyzByMc.\n
  • \nBy corresponding-state transform\n() — modal\nanchor is . Recovers the\nprogram coordinate that nodeCarryingMc was originally commanded\nat, by inverting that same node's own transform on its own MC.\nSuitable for RTCP rotary-dynamic inheritance, where the modal\ninvariant is \"tool tip in workpiece frame stays put while rotary axes\nturn\" — the recovered Vec3d carries forward as the next rotary block's\nmodal ProgramXyz unchanged, regardless of how its\nPivotTransform differs.\n
\n

\nBoth strategies yield the same Vec3d when prev and current share the\nsame chain modal state; they only diverge across chain boundaries\n(RTCP toggle, coord-system swap, tilt activation) and at rotary motion\n(PivotTransform difference). Pick the wrong one and the result lands\nin a stale frame:\n

\n
  • \nNon-RTCP using \"corresponding\" — leaves the pre-chain-change values,\nso a block emitted right after G43.4 H03 would inherit\nProgramXyz still in the G49 frame and the next motion's MC.Z drifts\nby the introduced tool-height offset. (This was the 2026-04-25\nSoftNc / HardNc divergence found on a five-axis sample program.)\n
  • \nRTCP using \"current\" — double-counts the rotary\nPivotTransform difference, so the inherited workpiece anchor\nrotates by the C delta on every rotary block.\n
\n

\nDirect callers of the two strategy helpers are rare — typically you\ncall the dispatcher (block's own\nMC vs predecessor lookback, picks strategy from\n) or\n (pure predecessor lookback).\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.ReferenceReturnSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.ReferenceReturnSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.ReferenceReturnSyntax", "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", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.RotaryAxisUtil.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.RotaryAxisUtil.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.RotaryAxisUtil", "Summary": "

Shared utilities for rotary axis (A/B/C) resolution.\nUsed by ,\n, ,\nand other syntaxes that read or write rotary axis values.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.Siemens.SiemensCircularMotionSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.Siemens.SiemensCircularMotionSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.Siemens.SiemensCircularMotionSyntax", "Summary": "

Siemens variant of (replaces it in\nthe Siemens preset — do not run both): writes\n motion for G02/G03 blocks from\nI/J/K center offsets or the Siemens signed radius CR=\n(captured as Parsing.CR by an equals-form\n), with the helix\nturn count from TURN= (Parsing.TURN).

\n

\nDifferences from the Fanuc/ISO parent, per the corpus-driven plan:\n

  • CR replaces R — same math\n (;\n negative CR selects the >180° arc), but a CR full circle\n (start ≈ end on the plane) is invalid on Sinumerik and the chord\n collapse would produce a NaN center — rejected with\n Arc-CR--ClosedChord, params left visible.
  • TURN=N means N additional full circles:\n AdditionalCircleNum = TURN + (closed ? 1 : 0)no −1\n (the legacy HardNc path treated TURN like Fanuc L and silently\n undercounted Siemens helices by one turn; deliberately not ported).\n The closed-loop +1 stacks on the same closure heuristic used when\n TURN is absent, because the downstream angle wrap yields 0 rad for\n closed arcs and the whole loop count must come from\n AdditionalCircleNum.
  • No L and no K-as-pitch reading — Siemens L{n} is a\n subprogram call and helix travel is endpoint + TURN driven.
  • Per-word absolute center: an I=AC(...) /\n J=AC(...) / K=AC(...) wrapper (unwrapped by\n into a\n numeric Parsing value plus a PositioningOverride\n entry) switches that one component from the default incremental\n offset-from-start to an absolute center coordinate\n ();\n components without an entry — and IC()-wrapped ones —\n keep the incremental reading. Blocks without the section take the\n legacy \n path byte-for-byte.
\n\n

\nMust be placed before (shared\nGroup 01 motion slot).\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.Siemens.SiemensCoordinateOffsetSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.Siemens.SiemensCoordinateOffsetSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.Siemens.SiemensCoordinateOffsetSyntax", "Summary": "

Siemens Sinumerik: resolves work coordinate offset from G54–G57 (ISO-compatible),\nG505–G599 (extended Siemens), and G500 (cancel — machine coordinate mode).\nReads from ,\nlooks up dependency,\ncomposes into .

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.Siemens.SiemensCutCompModeSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.Siemens.SiemensCutCompModeSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.Siemens.SiemensCutCompModeSyntax", "Summary": "

Consumes the Siemens CUT3DC flag (3D circumferential cutter\ncompensation mode, used with TRAORI) from\n and records a non-modal block-root\n section. The offline\n only models\nthe 2D plane modes, so a SiemensCutComp–Unsupported warning\nis emitted: a later G41/G42 in this program simulates\nas plane compensation, not as the control's 3D surface-normal\noffset — recognized, visibly not simulated, never a half-guess.

\n

\nCapture side: CUT3DC is a bare word collected by the Siemens\npreset's word list.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.Siemens.SiemensCycle800TiltSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.Siemens.SiemensCycle800TiltSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.Siemens.SiemensCycle800TiltSyntax", "Summary": "

Siemens CYCLE800 (swivel cycle): resolves the tilted work plane from\nthe positional arguments captured by\n and composes it into\n as the shared\n entry — the Siemens\nsibling of its XmlDoc promises.\nUnlike Fanuc G68.2 (plane only), CYCLE800 also positions the rotary\naxes implicitly (the G53.1 half): with\n wired, the tilt normal is solved to\nmachine ABC and written into\n, and\nthe block gets a non-modal rapid with\nTerm = “CYCLE800” (mirroring\n).

\n

\nArgument layout (HardNc reference NcArgCycle800):\nCYCLE800(FR, TC, ST, MODE, X0, Y0, Z0, A, B, C, X1, Y1, Z1, DIR\n[, FR_I, DMODE]) — 15- and 16-arg post variants both occur in\nthe corpus. MODE is bit-coded: bits 7-6 select the swivel\nmode (00 axis-by-axis, 01 solid angle, 10 projection angle,\n11 direct rotary), bit pairs 1-0/3-2/5-4 select each angle's axis\n(01=X, 10=Y, 11=Z). The motion-convention matrix is\nT(X1,Y1,Z1) · R · T(X0,Y0,Z0) (row-vector; the post-rotation\nzero offset applies innermost). ST units digit 1 composes\nadditively onto the current programmable frame; FR/FR_I\nretraction and DIR solution preference are recorded in the\nsection but not simulated (DIR = 0 suppresses the rotary\npositioning, per the control's frame-only variant).\n

\n

\nCancel forms — bare CYCLE800, empty parentheses, the\nsingle-argument CYCLE800(0), or swivel-data-record name\nTC = \"0\" — reset the tilt to the shared inactive sentinel\n(Term = \"G69\" + identity entry, HardNc's convention). An\nin-between argument count (1–9 with a live TC) is treated as a\ntruncated/unmodeled capture, not a cancel — warning + visible\nresidue, so a mis-parsed call can never silently drop an active\nswivel. The rotary axes are not re-positioned on cancel: the\nretract/re-orient behavior depends on the machine's swivel data\nrecord, which does not exist offline; corpus programs follow the\ncancel with explicit G0 A.. C.. moves anyway.\n

\n

\nFail-soft: a non-numeric argument (machine-runtime variable) leaves\nthe Parsing.CYCLE800 residue visible and applies no transform\n(Coord-Tilt--003); an IK failure keeps the euler tilt and\nskips positioning (Coord-Tilt--004); a rotating CYCLE800 on a\nmachine without kinematics/rotary axes keeps the tilt and warns\n(Coord-Tilt--005).\n

\n

\nMust run before \n(which owns the once-per-block modal\ncarry and composes additive AROT/ATRANS onto this cycle's fresh\nmatrix) and before the coordinate-offset syntaxes (chain order:\nframe entry ahead of CoordinateOffset).\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.Siemens.SiemensFixedPointReturnSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.Siemens.SiemensFixedPointReturnSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.Siemens.SiemensFixedPointReturnSyntax", "Summary": "

Consumes the Siemens G74 (reference-point approach) /\nG75 (fixed-point approach) statement captured into\nParsing.G74 / Parsing.G75 by the Siemens preset's\ndedicated \ninstance, and emits a one-shot machine-coordinate move for the\nparticipating axes.

\n

\nSiemens semantics honored here: non-modal; only the axes written in\nthe block participate; the numeric axis value is a dummy\n(conventionally 0) and is discarded; the motion happens in MACHINE\ncoordinates ignoring every active frame; the F word in the block does\nnot change the modal feed (the machine travels at its own rapid).\nThe frame bypass reuses the \nmechanism — write \ndirectly and back-derive \nthrough the inverse of the composed\n — so a G54/G505\noffset or programmable frame shifts the recovered program coordinate,\nnever the machine target.\n

\n

\nTarget position: G74 (reference-point approach) reads the per-axis\nmachine reference from \n(MD34010 on a Siemens table; 0 when the axis has no configured home).\nG75 (fixed-point approach) reads the fixed-point table MD30600\n$MA_FIX_POINT_POS via\n,\nfalling back per axis to the same reference position when no fixed\npoint is configured — so machines whose fixed point differs from the\nreference retract to the right place. Only fixed point 1 is modeled;\na FP= word in the block emits Coord-FixPoint--003 and\nuses fixed point 1. Non-participating linear axes keep the previous\nmachine position; rotary axes participate only when written and\nconfigured rotary (their target lands in the shared MC section,\nwrapped shortest-path later by ).\n

\n

\nPlacement: after (the G28 slot) —\nbehind every coordinate-offset / frame syntax so the composed\ntransform is complete for the ProgramXyz back-derivation, and before\n / (the\nstamped makes the motion syntaxes skip the\nblock; a G0/G1 word on the block is claimed into the modal\n exactly like\n does). Without an\n dependency the statement stays in\nParsing and surfaces as unconsumed residue.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.Siemens.SiemensModalCycleSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.Siemens.SiemensModalCycleSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.Siemens.SiemensModalCycleSyntax", "Summary": "

Maps Siemens MCALL CYCLE8x(…) modal drilling calls onto the\nshared canned-cycle machinery — the “setup half” of the Fanuc\nG66-style modal pattern; the “expansion half” needs no new code\nbecause 's previous-block modal\nlookback already re-triggers the armed cycle at every subsequent\nblock carrying X/Y words, exactly Sinumerik's MCALL semantic.

\n
  • MCALL CYCLE81/82(RTP,RFP,SDIS,DP,DPR[,DTB]) → an armed\nCannedCycle section (Term G81/G82) with\nParams.R = RFP + |SDIS|, Params.Z = DP (or\nRFP − DPR), dwell P = DTB for G82.
  • MCALL CYCLE83(…,FDEP,FDPR,DAM,DTB,DTS,FRF,VARI,…) →\nG83 (VARI≠0, full retract) or G73 (VARI=0, chip-break) with\nQ = |RFP − FDEP| or |FDPR|. The FDEP/DAM decreasing\npeck chain is approximated by that constant first-peck depth.
  • MCALL CYCLE85(…,DTB,FFR,RFF) → G89 (DTB>0, dwell) or\nG85, feed-in F = FFR; the separate retract feed RFF has no\nslot in the shared expansion (retract reuses F).
  • bare MCALL → the G80 cancel sentinel\n().
\n

\nThe MCALL block itself must NOT execute the cycle (Sinumerik arms\nonly), so no Parsing.G8x section is written here — the armed\nsection rides the \nCannedCycle tracked key to the following motion blocks.\nReturn plane: ReturnMode = G98 (previous-block Z); RTP has no\nslot in the shared expansion — programs that park at RTP before the\nfirst trigger get exactly RTP back, the corpus shape.\nFail-soft paths (consume + structured warning + no arm): non-literal\narguments (R-parameter args — cycle args bypass the P2 evaluator),\nmissing RFP / depth / peck values, and any callee outside the CYCLE8x\nmap (MCALL L123 modal subprogram calls are not simulated).\nPipeline placement: before in\nthe Siemens Logic bundle.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.Siemens.SiemensPathSmoothingSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.Siemens.SiemensPathSmoothingSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.Siemens.SiemensPathSmoothingSyntax", "Summary": "

Records the Siemens path-control / smoothing modal registers into the\nbrand-invariant PathSmoothing section (fields per\n): the G-code groups\nG60/G64/G641/G642 (path control) and G601/G602 (exact-stop criterion)\nfrom , the bare modal words\nFNORM / SOFT / BRISK / FFWON / FFWOF / COMPCAD / COMPON / COMPOF /\nUPATH / SPATH (captured by the preset's\n word list), and the\nParsing.CYCLE832 call sub-object (captured by\n) whose first argument arms the\nhigh-speed tolerance (0 / empty parentheses cancel it).

\n

\nRecord-only — simulation does not alter the tool path (same contract\nas the Fanuc G05.1 sibling ,\nwhich this class replaces in the Siemens preset: that one reads only\nthe Parsing[\"G05.1\"] sub-object no Siemens capture produces).\n is derived — true while a\nCYCLE832 tolerance is armed or the path-control group sits on a\ncontinuous-path mode (G64/G641/G642).\n

\n

\nModal behavior: a block touching any group starts from a clone of the\nprevious block's section, applies the touched groups and rewrites the\nsection; untouched blocks write nothing and\n (whose\nTrackedKeys already contain PathSmoothing) carries the\nprevious section forward. The stream's first block stamps a\nconservative { IsEnabled: false } default — the actual\ndelivered state of a real control is machine-data dependent, so no\nterm is invented for it.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.Siemens.SiemensPivotTransformationSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.Siemens.SiemensPivotTransformationSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.Siemens.SiemensPivotTransformationSyntax", "Summary": "

Siemens pivot gate over the shared engine\n(): writes the\n entry on blocks\nwhere commanded XYZ needs the Pn→MC kinematic rigid transform —\nactive TRAORI RTCP ('s\nToolHeightCompensation.Term), an active swivel/tilt\n(CYCLE800, or a mixed-dialect G68/G68.2 term), or a Dynamic chain\nentry. The Siemens-specific exclusion: a plain geometric frame\n(TRANS/ATRANS/ROT/AROT,\n) transforms\ncoordinates only and implies no physically positioned rotaries, so\nit must not open the gate — a corpus TRANS X0 Y0 Z0\nreset would otherwise leave the modal term folding the pivot on\nevery later plain-mode block.

\n

\nThe ISO/Fanuc sibling gate is\n; both write the identical\nJSON vocabulary through the shared engine, and only one of them is\nregistered per brand pipeline. Same chain-position contract: after\nall Pn-frame writers, so the PivotTransform entry lands last.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.Siemens.SiemensProgrammableFrameSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.Siemens.SiemensProgrammableFrameSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.Siemens.SiemensProgrammableFrameSyntax", "Summary": "

Siemens programmable frame (TRANS/ATRANS/ROT/AROT incl.\nRPL=, plus the solid-angle forms ROTS/AROTS): consumes\nthe structured\nParsing.<keyword> sub-objects captured by\n, accumulates the\nprogrammable-frame matrix across blocks, and composes it into\n as the shared\n entry — the same\nSource CYCLE800 writes, so the two stay mutually exclusive via\nAddOrReplaceTransform's in-place replacement (on a real\nSinumerik, CYCLE800 itself writes the programmable frame chain, so\nsingle ownership mirrors the control).

\n

\nSemantics follow the Sinumerik programmable-frame rules (HardNc\nreference: HardNcLine.ParseSiemensFrameTransform +\nNcArgSiemensFrame): the absolute forms TRANS/ROT\nreset the whole programmable frame and set only their own\ncomponent; the additive forms ATRANS/AROT compose onto\nthe current frame with the new operation applied first\n(M = M_op · M_prev, row-vector convention — an AROT\nafter a TRANS rotates inside the translated frame). A bare\nkeyword (any of the four) resets the programmable frame entirely —\nwritten as the shared inactive sentinel Term = \"G69\" plus an\nidentity chain entry (the same convention HardNc's CYCLE800 reset\nuses). Multi-axis rotation in one statement applies the Sinumerik\nRPY order (intrinsic Z → Y′ → X″, i.e. row-vector\nRx·Ry·Rz); RPL rotates about the active G17/G18/G19\nplane normal and composes after the axis angles.\n

\n

\nThe solid-angle forms ROTS/AROTS follow the Sinumerik\nrules (Programming Manual Fundamentals 03/2010 §12.5, \"ROTS and\nAROTS behave in the same way as ROT and AROT\"): at most two solid\nangles orient a plane, composed first-named axis first with the\nsecond rotation about the original (extrinsic) axis — the\npair X,Y keeps the new X axis in the old Z/X plane (row-vector\nRx·Ry), Y,Z keeps the new Y axis in the old X/Y plane\n(Ry·Rz), Z,X keeps the new Z axis in the old Y/Z plane\n(Rz·Rx). A single angle is identical to ROT/AROT;\nRPL= alone rotates in the active plane. Three angles, or\nRPL mixed with axis angles, fall outside the documented\ngrammar: the statement is left unapplied with a\nSiemensFrame--SolidAngleInvalid warning plus the visible\nParsing--Unconsumed residue — never a guessed frame.\n

\n

\nCROTS/SCALE/ASCALE/MIRROR/AMIRROR (zero corpus occurrences;\nCROTS references the control's frame database which has no offline\ncounterpart, SCALE/MIRROR would inject non-rigid matrices whose\nremaining breakages are the radius-compensation magnitude, the\nprogram-space path length feeding durations, and the writeback Euler\ndecomposition) are consumed recognized-but-not-simulated with a\nSiemensFrame--Unsupported warning and zero transform effect.\nA structured keyword whose capture fell back to the verbatim\nStatement shape, or whose value is an unevaluated variable\nexpression, is left in Parsing — the\nVariableExpression--Unevaluated diagnostic plus the visible\nParsing--Unconsumed residue is the correct fail-soft (P2\nacceptance doctrine); the frame is not partially applied.\n

\n

\nMust run after (this\nsyntax owns the once-per-block modal\ncarry: it carries only when no earlier syntax authored the section\non this block) and before the coordinate-offset syntaxes, so\nthe frame entry lands ahead of\nCoordinateOffset in the chain\n(McXyz = ProgramXyz · M_frame · M_offset · … — the\nprogrammable frame applies to program coordinates first, then the\nsettable G54 frame, matching the Sinumerik frame chain).\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.Siemens.SiemensStopreSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.Siemens.SiemensStopreSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.Siemens.SiemensStopreSyntax", "Summary": "

Consumes the Siemens STOPRE flag (stop preprocessing — the\ncontrol's look-ahead buffer sync) from \nand records a non-modal block-root section.\nSTOPRE has no effect in offline simulation (there is no preprocessing\nbuffer to flush), so an Stopre–NoOp Unsupported Message is\nemitted: recognized, intentionally not simulated, safe offline.

\n

\nCapture side: STOPRE is a bare word collected by the Siemens\npreset's word list.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.Siemens.SiemensToolOffsetSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.Siemens.SiemensToolOffsetSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.Siemens.SiemensToolOffsetSyntax", "Summary": "

Siemens cutting-edge tool offset activation: consumes a standalone\nD word (D1 activates edge 1 of the active tool,\nD0 cancels compensation), resolves the effective length via\n\n($TC_DP3, geometry + additive wear) for the (active tool, D) pair —\na pair without a $TC_DP row falls back to the generic\n height for the tool number (with a\nSiemensToolOffset–TcdpRowMissing configuration warning), so\nan unfilled per-case table follows the ToolHouse-fed source instead\nof silently machining with offset 0 — and writes\nthe same downstream state as the ISO sibling\n: the\n section (with\nTerm = “D”) plus the ToolHeightCompensation entry in the\n chain — sharing\nthe transform Source keeps the two brands' compensation mutually\nexclusive via AddOrReplaceTransform's in-place replacement.

\n

\nThe active tool number comes from the block's (or previous block's)\nToolChange section; a string tool name resolves through\n. Modal\nownership follows the same yield protocol as the ISO sibling: blocks\nwithout a D word re-resolve only when the previous section's\nTerm is ours (\"D\"); an ISO term (G43/G44/G49) leaves the\nsection to — real Siemens files\nmix both dialects (G43H1 headers next to D1 blocks).\nMust therefore be placed after \n(and after ) in the Logic bundle, and\nbefore the brand pivot gate (\nin the Siemens list) so the pivot entry\nstays at the chain tail.\n

\n

\nConsuming Parsing.D here (Logic) intentionally precedes\n (PostLogic):\non Siemens, D selects the cutting edge — it is not the Fanuc\nG41 D5 radius argument, and radius state derives from the same\n(T, D) edge ($TC_DP6; wiring the radius value is a follow-up).\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.Siemens.SiemensTraoriSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.Siemens.SiemensTraoriSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.Siemens.SiemensTraoriSyntax", "Summary": "

Siemens TRAORI/TRAFOOF (orientation transformation = RTCP): the\nSiemens sibling of . While TRAORI is\nactive, the section carries\nTerm = “TRAORI” and the ToolHeightCompensation chain\nentry becomes a tool-normal · offset translation at the block\nendpoint ABC (),\ntagged when the rotary\nstate changes across the block — the single signal that routes the\nblock to per-step IK.

\n

\nTool length ownership stays with the (T,D) machinery: on real\nSinumerik, TRAORI uses the active D edge's length. Activation adopts\nthe compensation the D edge (or a mixed-dialect ISO G43) has already\nresolved — runs earlier in the\nbundle, so an explicit D1 on any TRAORI-modal block first\nresolves Term = \"D\" and this syntax re-takes the section with\nthe fresh Offset_mm. The adopted owner is recorded in\n; TRAFOOF hands the section back to it\n(default \"D\"), because plain length compensation survives\nTRAORI deactivation on the control — TRAFOOF only ends the\norientation-following. A TRAFOOF with no active TRAORI (the corpus'\nubiquitous defensive preamble) is consumed silently.\n

\n

\nMust run after /\n / the coordinate-offset\nsyntaxes (mirroring 's Fanuc slot) and\nbefore , whose gate\nrecognizes the TRAORI term and folds the kinematic pivot.\nSilently degrades to a plain UnitZ · offset translation when\n is absent.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.Siemens.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.Siemens.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.Siemens", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.LogicSyntaxs.SpindleSpeedSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.LogicSyntaxs.SpindleSpeedSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.LogicSyntaxs.SpindleSpeedSyntax", "Summary": "

Consumes S (spindle speed) and spindle direction M-codes\nfrom .\nBoth are modal — persist across blocks via backward node lookback.\nWrites resolved state to a section.\nDirection is converted from M-codes to the conventional\n enum at this layer.

\n

\nDirection M-codes: the ISO defaults M03 (CW) / M04 (CCW) / M05 (STOP)\nalways apply; a machine that starts/stops its spindle with custom\nM-codes (e.g., ultrasonic M203/M205) declares them on an\n dependency\n(), which this\nsyntax consults first — mapped flags are consumed like the ISO ones.\n

\n

\nFallback: an S > 0 with no direction ever issued is contradictory\n(physics would silently never run). The build assumes CW and emits a\none-shot SpindleDirection--AssumedCw validation warning — once is\nstructural, not stateful: the stamped CW propagates modally, so later\nblocks no longer lack a direction. An explicit M05 (STOP) is a real\ndirection and never triggers the fallback.\n

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

G84 (right-hand) / G74 (left-hand) tapping cycles.\nSupports modal repetition.

\n

\nCycle sequence:\n

  1. Rapid to init position (target XY, previous Z)
  2. Rapid from init to R-point
  3. Feed from R-point to bottom Z
  4. Spindle reverse at bottom
  5. Feed retract to final Z (G98 → init Z, G99 → R)
  6. Spindle restore to forward direction
\n\n

\nG84: forward = CW (M03), reverse = CCW (M04).\nG74: forward = CCW (M04), reverse = CW (M03).\n

\n

\nReads absolute coordinates from the cycle section, which is\nresolved by (modal repetition,\nG91 conversion, missing-axis fallback) before this syntax runs.\nMust be placed after and before\n in the syntax chain.\n

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

Shared utilities for all tilt transform syntaxes\n(ISO, Siemens, Heidenhain). Handles section IO,\nbackward lookback, and composition.

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

Synthesizes the machine motion of a tool change: on a block whose\n section carries\n = true AND whose tool number\nactually differs from the previously equipped tool, overlays\n's per-axis tooling position onto the\ncurrent machine pose (NaN / missing axis = stays) and emits a one-item\nrapid to that target — the axis travel\na real machine's M06 macro performs before the changer cycle runs.\nRoot (and the moved rotary axes\nin root )\nare overwritten for subsequent-block modal lookback, mirroring\nHardNcLine's M06 handling (McXyz/McAbc_rad overlay +\nRebuildProgramXyzByMc).

\n

\nA same-number tool call (M06 without an actual change) emits no motion —\nthe parity twin of HardNc's preT != T overlay gate. A block with\nits own motion words folds them into the single rapid: the overlay\napplies on top of the block's commanded position and the stamped\n makes skip\nthe block, so one contour covers both — the HardNc M06 branch shape.\nPlacement: the (G28) slot — after\nthe offset/frame syntaxes (the ProgramXyz back-derivation needs the\ncomposed transform), before /\n (root MC XYZ backfill; rotary\ntargets wrapped shortest-path by the cyclic tail-pass).\n

\n

\nPrograms that retract on their own (G75/G28/SUPA before M06 — every\nhealthy post) reach the tooling position before the M06 block, so the\nsynthesized move is zero-length and\n emits nothing. Only a\nprogram that leaves the tool elsewhere (typically hand-edited) gets an\nactual synthesized travel — and the machining steps along it surface\nany material contact, plus the runtime's ToolChange--UnsafePose\ndiagnostic.\n

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

Consumes T (tool number) and M06 (tool change) from\n.\nT is modal — persists across blocks. M06 triggers the change.\nWrites resolved state to a ToolChange section:\n{ “ToolId”: 1, “IsChange”: true, “Term”: “M06” }.\n records the trigger command and is only written\nwhen is true (i.e. the block actually carried\nthe tool-change M code); modal-only blocks omit it.

\n

\nToolId is an int for numeric calls (T5) and a string for\nSiemens string tool calls (T=\"D8R1\", captured by\n); both\nshapes carry modally. String names are resolved to tool numbers at the\nsemantic layer () — this\nsyntax records the call verbatim.\n

\n

\nThe trigger is machine-configurable. A custom tool-change M-code\n(Siemens MD22560 $MC_TOOL_CHANGE_M_CODE) is declared on the\ncontroller parameter table\n() and reaches this\nsyntax already expanded to M06 by .\nTurret/lathe machines where the T word itself performs the\nchange (Siemens MD22550 $MC_TOOL_CHANGE_MODE = 0) set\n;\nthe block then triggers with recorded as\n. Without that config a bare T block stays\npre-selection only — magazine rotation is the PLC's business and moves\nno feed axis.\n

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

Resolves ISO tool height offset (G43/G44/G49) to the effective offset\nvalue (mm) and composes the offset as a translation into the accumulated\n matrix.

\n

\nRTCP modes (G43.4, TRAORI, M128) are handled by separate brand-specific\nsyntaxes (e.g., ).\n

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

Detects the unit-system code (ISO Group 06: G20 inch / G21 metric)\nfrom and writes a \nsection (, ).\nModal — absence of an explicit flag inherits the previous block's\nunit, defaulting to at program start.

\n

\nThe code vocabulary is configurable per brand: \n/ default to ISO G20 / G21; the Siemens\npreset uses G70+G700 / G710+G71 instead (G70/G71 switch geometry-word\ninterpretation only, G700/G710 also switch feedrate interpretation —\na distinction preserved via the verbatim \nbut irrelevant to this record-only syntax; both inch variants warn\nidentically). The first entry doubles as the\nprogram-start default Term. Note Siemens G70/G71 must never be\nadded to ISO/Fanuc presets — on Fanuc lathes the same codes are\nfinishing/roughing cycles (same collision family as the documented\nSiemens G74 exclusion).\n

\n

\nThe HiNC pipeline works exclusively in millimetres. When an inch code\nis detected this syntax emits an Unit--InchNotSupported\nUnsupported Error so upstream callers are forced to pre-convert the\nNC program to metric — while still recording what the program said.\nMetric codes are accepted as no-op confirmations of the default.\n

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

License gate for the NC composition layer — the capability of registering\nexternal (non-built-in) processing units into a \npipeline, and of executing NC-embedded C# scripts\n().

\n

\nThe boundary: the script layer (calling the public API from your own\napplication code, e.g. session scripts) needs no extra license; the\ncomposition layer (registering or replacing processing units inside\nthe interpretation pipeline — ,\n,\n,\n,\n — or injecting per-line scripts into\nit) requires .\n

\n

\nA unit is built-in when its concrete type lives in this library's\nown assembly; anything else is external. Order, count, duplication\nand constructor configuration of built-in units are unrestricted — the\ngate never inspects the shape of the pipeline, only the identity of each\nunit.\n

\n

\nDegradation is silent and functional: without the license the built-in\ndialects run unchanged; external units are skipped for the session and a\nsingle Composition--NotLicensed diagnostic lists them. The decision\nand its rejection record live in the native license module.\n

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

A structured diagnostic from the pipeline,\ndesigned for consumption. Implements\n so it shares the common message channel with\n, step diagnostics, and progress fractions, while\nadditionally carrying an NC-source anchor that\nnon-NC messages do not have.

\n

\nAlso an itself — and\n delegate to so a\ndiagnostic can be used directly anywhere a carrier is expected, without the\nconsumer unwrapping the inner anchor.\n

\n

\n is composed as {Primary}-{Secondary}--{Abbrev}\n(e.g., Cycle-Peck--BadPeckQ, Syntax-Build--Exception).\nFor irregular cases that don't fit the pattern, use a custom string.\n

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

Helper that emits records — retaining them in\n (their canonical home) and forwarding each to an\n of sink for live consumption.\nProvides one method per (, ) pair,\neach with an optional overload locating the issue in the NC source.\nEach method has a *Fmt sibling taking a that keeps\nthe interpolated template and values ( /\n) for client-side localization; the sibling must be opted\ninto by name — an interpolated string literal passed to the method\nbinds to and is not captured.\nA caller that runs a bounded operation (an NC play, a writeback run) can wrap\nit in so identical repeated diagnostics fold\ninto a first occurrence plus one counted summary instead of flooding the sink.

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

A switchable “runner suit”: bundles the per-machine NC pipeline\n( plus its optional side-file path\n) with the per-workpiece\n the runner's\n placeholders resolve against. The suit is the\nproxies' , so the runner and its case data\nswitch together as one unit — load a different suit to switch the active\nparser (NC or CSV) within a session.

\n

\nRead/Write only (pure IO, no own XxxFile identity pointer): the owning\nproject serializes the suit's two members flat in the project XML,\nkeeping the per-workpiece project-local\nrather than a shared side file.\n

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

Parses the ISO 6983 / Fanuc Block Delete (a.k.a. Block Skip) prefix\n/ or /N (N = 1..9) at the head of an NC block.

\n

\nBehaviour:\n

  • No leading / → no-op, no section\nis written.
  • / with layer OFF (or the\ndependency absent) → prefix is consumed, \n/ recorded\nfor audit, stays null; the rest of the\nblock stays in UnparsedText and parses normally.
  • / with layer ON → the remaining block text is moved\nfrom UnparsedText into and\nUnparsedText is cleared. Downstream parsing syntaxes see no\nNC text so they emit nothing; semantics therefore produce no act.\nMust run after comment / CsScript syntaxes so that comments\n(and CsScript embedded in comments) continue to take effect\nregardless of the skip switch.
\n\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.QuoteCommentSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.QuoteCommentSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.QuoteCommentSyntax", "Summary": "

Parses parenthesized comments such as (comment text) from the\nremaining unparsed text and emits a section with\nthe () symbol.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.TailCommentSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.TailCommentSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.TailCommentSyntax", "Summary": "

In-situ syntax that strips a trailing comment from the NC line: text from a configured\n to end-of-line is moved into on the block JSON.

\n

\nLine-aware on multi-line sentences (Heidenhain grouped / ~-continued\nblocks): the marker-to-end-of-line strip applies per physical line, so a\n; comment on one cycle-parameter line never swallows the following\nlines. Stripped comment texts are joined into a single\n record. Single-line sentences behave exactly as\nbefore.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.CommentSyntaxs", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.CsScriptSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.CsScriptSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.CsScriptSyntax", "Summary": "

Extracts C# script markers from the oral content of a comment.\n marks a script that runs before the NC block;\n marks a script that runs after.\nThe symbols are configurable and serialized to XML.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucGotoParsingSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucGotoParsingSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucGotoParsingSyntax", "Summary": "

Parses Fanuc Custom Macro B GOTO phrases out of the remaining\n into a Parsing.FanucGoto\nsub-object. Two forms are recognised:

\n
  • GOTO <n> — unconditional jump.
  • IF [<bool-expr>] GOTO <n> — conditional jump.
\n

\nIF [...] GOTO is matched as a single phrase, not as an IF\nsyntax composed with a GOTO syntax — Fanuc only permits the two\nfixed forms (the other being IF [...] THEN <assignment>,\nout of scope here), so a phrase-level parser is more faithful and\navoids parsing-ambiguity rabbit holes.\n

\n

\n<n> is captured as a raw token (literal like \"100\",\nvariable like \"#1\", or bracketed expression like\n\"#[#2+5]\"). \nsubstitutes the resolved literal back into the same field downstream;\n then parses the final\nstring as an int. Storing as a string at parsing time mirrors how axis\ntags and canned-cycle params accept #N references and the\nevaluator rewrites them in place.\n

\n

\nPipeline placement: after (so the leading\nN{seq} on a block like N50 GOTO 100 has already been\nconsumed) and after \n(so a parenthesised (GOTO 100) inside a comment never matches).\nThe phrase consumes the entire remaining text on the block — Fanuc\nallows only the GOTO / IF-GOTO phrase after any preceding head index,\nno other instructions on the same block.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucIfThenParsingSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucIfThenParsingSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucIfThenParsingSyntax", "Summary": "

Parses the Fanuc Custom Macro B\nIF [<bool-expr>] THEN <body> single-block conditional\nphrase out of into a\nParsing.FanucIfThen sub-object. Sibling to\n — Fanuc spec only permits two\nIF-led control phrases (IF [...] GOTO <n> handled there,\nIF [...] THEN <stmt> handled here) so each form is matched\nphrase-level rather than composed from a generic IF combinator.

\n

\nBody shape. The body after THEN is conceptually a single\nstatement that affects the current block only — no jump, no label scan.\nAlmost always a Custom Macro B assignment (#nnn = <expr>);\nmultiple assignments in the same body\n(#100 = 5. #101 = #100 + 1) are also accepted. The parsing\nsyntax pre-extracts these via\n into\nParsing.FanucIfThen.PendingAssignments as {tag: rhs-string}\nentries — that shape lets 's\npass-2 tree walk substitute each RHS to a numeric in place, and lets\n lift the\nresolved entries into Parsing.Assignments only when the gate\ncondition fires (so unfired bodies leave no trace in the readers).\n

\n

\nPipeline placement. This syntax must run before\n — the bare IF-GOTO regex over there\n(^IF[..]GOTO n$) is anchored, but consuming IF-THEN here first\nkeeps the two phrases textually disjoint and avoids any future\nregression if either regex is loosened. Also placed before\n so a bare\nIF [...] THEN #100 = 5. is not first half-eaten as a plain\nassignment.\n

\n

\nRaw is retained verbatim on the\nparsing section regardless of whether the body parsed as assignments —\nit carries the round-trip view and lets the evaluation syntax warn\n(FanucIfThen--UnsupportedBody) if no PendingAssignments were\nproduced on a truthy condition.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucProgramNumberSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucProgramNumberSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "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", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Fanuc.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Fanuc", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.FlagSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.FlagSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.FlagSyntax", "Summary": "

Syntax of fully Match flag.

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

that parses numeric literal values to .\nVariable text (e.g. Q2, #1, [#1+#2]) remains as .

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

Parses a leading block index (e.g. Heidenhain line numbers) after an optional prefix.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainDatumSettingSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainDatumSettingSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainDatumSettingSyntax", "Summary": "

Heidenhain syntax of

CYCL DEF 247 DATUM SETTING
and its\nDIN/ISO twin
G247 Q339=+N
(both spellings stamp the same\ncycle-number record for the Logic-side datum-preset resolver).\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainDatumShiftSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainDatumShiftSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainDatumShiftSyntax", "Summary": "

Heidenhain syntax of

CYCL DEF 7 DATUM SHIFT
and its\nDIN/ISO twin
G54
WITH axis words (G54 X+50 Y+50\nshifts the datum, zero values cancel it — a declaration, never a\nmotion block; the bare G54 spelling stays on the Fanuc-style\nwork-offset select path).\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainMachiningCycleSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainMachiningCycleSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainMachiningCycleSyntax", "Summary": "

Captures the body of a machining CYCL DEF (every cycle number\nwithout a dedicated owner — the datum family 7/247 and the tolerance\nfamily 32 keep their own syntaxes) into a structured\nParsing.MachiningCycle record:\n{ Number, Title?, Params?, Args? }.

\n
  • Params — every Qnnn=value assignment in the head\nand body lines. Literal values are stored as JSON numbers (via\n — a string node would read\nas an unevaluated variable downstream); Q-reference values stay\nstrings for the evaluator to substitute in place.
  • Q mirror — each captured assignment is also mirrored into\nParsing.Assignments (raw string RHS): on a real TNC the cycle\ndefinition genuinely assigns those Q parameters, and pre-P4 corpus\nbehavior (each parameter line was its own sentence consumed by the\nbare-assignment capture) already routed them into the volatile Q\nstore. The mirror keeps that store contract intact now that the\n~-grouped sentence is claimed here first.
  • Title — the non-assignment remainder of the head line\n(e.g. PLANFRAESEN).
  • Args — any other non-assignment body remainder, swept\ninto the record so residue (e.g. CYCL DEF 19.1 A90 B0 C105\nrotary words) can never leak into axis captures — the\nPLANE-family precedent from P3.
\nThe ISO mapping and the armed/modal bookkeeping happen in\n.\nMulti-line capture is covered by regular unit tests rather than the\nconformance examples below (the conformance shorthand is single-line\nonly).\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainMirrorCyclSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainMirrorCyclSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainMirrorCyclSyntax", "Summary": "

Structures the klartext CYCL DEF 8 MIRROR IMAGE cycle (grouped\n8.0 MIRROR IMAGE / 8.1 X Y, or the single-line spelling) into\nthe same Parsing.\nstatement list its DIN/ISO twin G28 writes, so the shared\n\nsimulates both dialects through one code path. Runs after\n (which contributes\nParsing[“CYCL DEF”] = 8 + CyclHead) and ahead of\n, whose generic capture\nwould otherwise route the cycle to the unsupported-cycle path.

\n

\nThe cycle body is the manual's bare axis letters (a bare 8.1\ncancels the mirror). A body carrying anything else — a valued word,\nan unknown token — is not claimed at all: the block falls\nthrough to the generic machining-cycle capture and its\nHeidenhainCycl--Unsupported report, which is the correct\nfail-soft. Claiming it would silently reduce to an empty axis list,\ni.e. read a shape we do not understand as a mirror reset.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainToleranceCyclSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainToleranceCyclSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.HeidenhainToleranceCyclSyntax", "Summary": "

Structures the klartext CYCL DEF 32 TOLERANCE cycle (grouped\n32.0 TOLERANCE / 32.1 T0.1 / 32.2 HSC-MODE:0 TA0.5 or the\nsingle-line forms) into Parsing.TOLERANCE { T?, HscMode?, Ta? }\nfor .\nRuns after (which contributes\nParsing[“CYCL DEF”] = 32 + CyclHead). A bare 32.0 line\n(no T) is a tolerance reset and records Bare: true. The glued\ncorpus spelling 32.2HSC-MODE:0 leaves a digit-prefixed residue\nafter the CyclDef prefix strip — the HSC grab tolerates it.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainBlkFormSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainBlkFormSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainBlkFormSyntax", "Summary": "

Syntax for Heidenhain BLK FORM command (workpiece blank definition).

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCSyntax", "Summary": "

Heidenhain circular-motion statement (C X+5.361 Y+23.064 DR-).\nMirrors : endpoint axis words promote\nto the Parsing root (shared Logic consumers), a “CArc”: true\nstatement marker (deliberately NOT the bare C key — that is a\nrotary axis word which owns and\nconsumes on rotary machines) gates\n,\nthe rotation direction lands in Parsing.DR ("-" = CW =\nG02, "+" = CCW = G03) and radius-compensation words are\ncaptured like on L statements. The word-boundary head guard rejects\nCC/CT/CR/CP statements, and a value\nfollower rejects a leading rotary-axis word — a DIN/ISO block like\nC-90. (modal C-axis positioning, the same mixed-dialect list)\nis an axis coordinate for the root tag capture, never a klartext arc\nstatement head (klartext always separates the C head from its X/Y/DR\nwords, so a sign/digit/dot follower cannot be an arc statement).

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCallSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCallSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCallSyntax", "Summary": "

Syntax for Heidenhain CALL commands (CALL PGM and CALL LBL).

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCcSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCcSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCcSyntax", "Summary": "

Heidenhain circle-center statement (CC X+12.7 Y+12.7). The\ncoordinates land in the nested Parsing.CC record — deliberately\nnot on the Parsing root, where \nwould mistake the center for a motion endpoint. The Logic-stage\n\nturns the record into the modal circle-center section consumed by the\narc syntax. Must run before in the\nbundle (the \\b guard keeps a C statement from matching\nCC and vice versa, but CC-first is the safe order).

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCyclCallSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCyclCallSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCyclCallSyntax", "Summary": "

Captures the klartext cycle-call statement into a\nParsing[“CYCL CALL”] record:

\n
  • CYCL CALL{ Bare: true }; any trailing M words\nstay in the text for the shared flag captures.
  • CYCL CALL POS X±n Y±n Z±n …{ Pos: true } plus\nthe axis words grabbed into the record (never onto the\nParsing root: the POS coordinates are the call position — the\nX/Y feed the ISO cycle section, while the pre-position Z must not be\nmistaken for the hole-bottom Z slot). FMAX/F/M140\nwords stay in the text for their own captures.
\nThe call is consumed by\n,\nwhich converts the stored cycle definition into a direct ISO cycle\nsub-section on this block.\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCyclDefSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCyclDefSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCyclDefSyntax", "Summary": "

Initialization Syntax of Heidenhain fixed head block for

CYCL DEF
.\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainFnAssignmentSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainFnAssignmentSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainFnAssignmentSyntax", "Summary": "

Heidenhain FN variable assignment syntax.\nExtends with FN opcode prefix.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainFnFeatureSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainFnFeatureSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainFnFeatureSyntax", "Summary": "

Structured skip for the Heidenhain FN opcodes the simulation does not\nimplement (FN 14 error display, FN 16 print, FN 18\nSYSREAD, table/pallet opcodes …): the whole statement is consumed and a\nsingle HeidenhainFn–Unsupported warning names the opcode. Two\nopcode families pass through untouched: FN 0-5 belong to\n (which runs earlier), and the\njump family FN 9-12 belongs to\n (also earlier) — the\npass-through here is the malformed-jump safety net: a jump line the\nowner's grammar rejects surfaces as visible residue instead of a\nfabricated skip.

\n

\nClaiming the statement here is load-bearing, not cosmetic: an FN 18 line\nlike FN18: SYSREAD Q94= ID50 NR11 contains a Q94= token\nthat the bare Q-assignment capture (later in the Parsing bundle) would\notherwise grab, storing the garbage string ID50 into Q94. The\ntarget parameter must instead stay vacant so dependent expressions fail\nsoft (VariableExpression--Unevaluated) — no fabricated values.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainGotoParsingSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainGotoParsingSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainGotoParsingSyntax", "Summary": "

Captures the Heidenhain FN 9–12 conditional jump statement whole into\nParsing.HeidenhainGoto. All four opcodes share one phrase shape\n(FN n: IF <value> <comparator> <value> GOTO LBL\n<label>); both the spaced standard spelling and the\ncompressed post spelling (FN12:IF+Q94 LT+1GOTOLBL"SLOW_FEED" —\nglued opcode head, glued value/target run, quoted name label) are\nrecognised.

\n

\nPre-normalisation happens here, per the P2 expression-grammar\ndecision (the Heidenhain dialect deliberately has no comparison\nlayer): the comparator spelling collapses to the shared comparison\nwords (EQUEQ), and the two operands are captured as\nseparate values — a pure numeric literal is typed numeric at capture\n(the P0 GetParsedDouble-string-trap discipline), a Q reference\nstays a string for\n's pass-2\nsubstitution. The comparison and the label redirect happen in\n.\n

\n

\nPlacement: whole-statement owner right after\n — before\n (whose definition regex already\nexcludes the GOTO LBL spellings, but the jump owner claiming\nthe full line first keeps the exclusion a backstop rather than a\nload-bearing gate) and before \n(whose FN 9–12 pass-through remains the malformed-jump safety net: a\nline this regex rejects surfaces as visible residue, never a\nfabricated skip).\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainLSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainLSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainLSyntax", "Summary": "

Heidenhain linear movement (the leading L) syntax. Strips the leading\nL — spaced (L X+10) or glued directly to an axis/F word\n(LX+153.933Y+4.196A-77.516, the dominant shape of post-processed\nturbine files) — writes the Parsing.L = true statement marker,\nand grabs axis-tag values for any of \n(X, Y, Z, U, V, W, A, B, C) that appear afterwards as\n{axis}{signed-value} pairs; values are parsed as floats via\n. LN/LP/LBL\nlines are excluded by the gate's lookahead: a glued axis letter only\ncounts when followed by a sign, digit, dot or Q variable, so the B of\nLBL (followed by another L) never matches. Glued M words\n(LM09) are accepted — stripping the L exposes the M word for\nthe numbered-flag syntax; the richer LM140/LM128\nstatements never reach this gate because their dedicated owners run\nearlier in the Heidenhain Parsing bundle.

\n

\nAxis words land on the root of \n(not nested under L) so the shared Logic consumers —\n,\n,\n,\n — read them without\nper-brand path configuration. The L marker is consumed by\n which\nmaps the statement (plus a one-shot FMAX flag) onto the shared\nG00/G01 motion-mode vocabulary.\n

\n

\nThe radius-compensation words RL/RR/R0 are\ncaptured as boolean records on the Parsing root; the Logic-stage\n maps\nthem onto the shared G41/G42/G40 vocabulary consumed by the radius\ncompensation pass.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainLblSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainLblSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainLblSyntax", "Summary": "

Syntax for Heidenhain LBL command (label definition).\nLabel can be a number (1-65535) or a text name (e.g., “MyLabel”).\nLBL 0 is reserved for end of subprogram.

\n

\nOnly a DEFINITION is captured: CALL LBL (any spacing) and the\nFN 9–12 jump spellings (GOTO LBL n, glued GOTOLBL) are\nexcluded — this syntax doubles as the label-scan probe of the P4 call\nmachinery, where mistaking a jump line (or the call line itself) for\na definition splices the wrong program section.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainM128Syntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainM128Syntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainM128Syntax", "Summary": "

Captures the klartext M128 word (RTCP on) together with its\noptional feed-limit argument (M128 F6000.) into\nParsing.M128 { F? }. Must run before the shared F\ntag-value syntax — the F belongs to M128 (feed limit for compensating\nmovements), and letting it reach the Parsing root would pollute the\nmodal feedrate (HardNc has exactly this defect). Accepted spellings:\nthe leading/glued L statement (LM128, mirroring the M140\nsibling), the fully glued M128F6000, and a Q-parameter feed\nlimit (M128 FQ8, 1.H corpus) captured as the string token for\nthe evaluator pass to resolve. M129 (RTCP off) carries no\nargument and stays on the shared numbered-flag path.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainM140Syntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainM140Syntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainM140Syntax", "Summary": "

Captures the klartext M140 MB tool-axis retract statement into\nParsing.M140 { MB, F? }. MB MAX retracts to the traverse\nlimit (recorded as the string “MAX”); MB+n retracts by\nn mm along the tool axis. Handles the corpus forms\nM140 MB+50 F6000, L M140 MB MAX (M word carried on an L\nstatement) and the glued LM140 MB MAX (TongTai post). Must run\nbefore (it claims the whole\nretract statement including a leading L) and before the shared\nF tag-value syntax (the F is the retract feed).

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainMirrorImageSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainMirrorImageSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainMirrorImageSyntax", "Summary": "

Heidenhain DIN/ISO G28 = MIRROR IMAGE (the CYCL DEF 8 twin;\nbasic course 62192: G28 X flips the X sign about the current\ndatum, G28 X Y flips both, bare G28 resets) — the exact\nopposite of the Fanuc reference-point return the shared\n would read it as. Claims the\nwhole statement (code plus trailing axis words) ahead of the generic\nkit and records each statement under\nParsing. for the Logic-stage\n,\nwhich simulates the mirror as a\n entry.

\n

\nAxis words are the manual's bare letters; a glued numeric or\nQ-variable follower (G28 X0 Y0 — the Fanuc idiom a mislabeled\n.I file could carry — or G28 XQ1) is claimed too so the\nvalue can never fall through to the root tag captures as a ghost\ncoordinate, and the statement is stamped so\nthe Logic stage keeps it recognized-but-not-simulated (mirroring on\nthe Fanuc-shaped form would wreck a mislabeled reference-return\nfile). A bare axis letter glued to another word (G28 CC…)\nstops the claim run — the leftover surfaces through the residue\nsentinels instead of being guessed at.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainPlaneSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainPlaneSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainPlaneSyntax", "Summary": "

Syntax for the Heidenhain PLANE statement family. Fully structured\n(simulated by the Logic-stage tilt consumer):

\n
  • PLANE RESET [STAY|MOVE|TURN]
  • PLANE SPATIAL SPA SPB SPC [SEQ±] [COORD ROT|TABLE ROT]\n[MOVE [DIST..] [F..]|TURN|STAY]
\nRecognized (captured with the same option set, simulated as\nrecognized-but-not-simulated by the Logic consumer):\n
  • PLANE PROJECTED PROPR PROMIN ROT ...
  • PLANE VECTOR BX BY BZ NX NY NZ ... (corpus: 1.H)
  • PLANE EULER/POINTS/RELATIV/AXIAL ... — the mode word is\ncaptured and the unmodeled argument text is swept verbatim into the\nrecord's Args so no token can leak to the shared tag captures\n(e.g. a PLANE AXIAL B+45 B word must never become a rotary\naxis move).
\nMust run before the shared F tag-value syntax: the F of\nMOVE DIST100 F8000 is the repositioning feed and would\notherwise pollute the modal feedrate (house.H corpus form; HardNc has\nexactly this defect).\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainProgramSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainProgramSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainProgramSyntax", "Summary": "

Syntax for Heidenhain BEGIN PGM and END PGM commands.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainTcpmSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainTcpmSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainTcpmSyntax", "Summary": "

Captures the modern-TNC RTCP statement pair into Parsing.TCPM:\nFUNCTION TCPM [args] (RTCP on — the M128 successor) and\nFUNCTION RESET TCPM (RTCP off). The behavior-tuning argument\nwords (F TCP / F CONT / AXIS POS / AXIS SPAT / PATHCTRL AXIS /\nPATHCTRL VECTOR) are corpus-zero and swept verbatim into the\nrecord's Args — recognized-but-not-simulated (the Logic RTCP\nconsumer warns); activation/deactivation itself is simulated. Must\nrun before the shared F tag-value syntax so an argument like\nF TCP can never be misread as a feed word.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainTildeTrimSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainTildeTrimSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainTildeTrimSyntax", "Summary": "

Strips the TNC ~ line-continuation markers from a grouped\nsentence's UnparsedText. The raw \nkeeps them (write-back authority); parsing only needs the joined lines.\nBoth corpus spellings are removed — "… ;STRATEGIE ~" (space\nbefore, line tail) and "DATUM SETTING~" (glued). Placed at the\nhead of the Parsing bundle, before the comment strippers, so a trailing\n~ after a ; comment never lands in the recorded comment\ntext.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainToolCallSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainToolCallSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainToolCallSyntax", "Summary": "

Syntax for Heidenhain TOOL CALL command.\nHandles: TOOL CALL [ToolId|“ToolName”] [X|Y|Z] [S…] [DL…] [DR…]

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Heidenhain.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Heidenhain", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.IntegerTagValueSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.IntegerTagValueSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.IntegerTagValueSyntax", "Summary": "

that parses numeric literal values to .\nVariable text (e.g. Q2, #1, [#1+#2]) remains as .

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

Assignment syntax for named (identifier-style) variables with = sign.\nHandles variables that are multi-character identifiers\nrather than {prefix}{digits}.

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

Syntax for numbered flags (prefix + number) with optional decimal support.\n often should place after something like .\nSince is easy to eat those kind of flags.

\n

\nSingle-digit integer codes are zero-padded to canonical 2-digit form\n(e.g. M6M06, G0G00, M3M03)\nso that downstream logic syntaxes comparing against\n constants (which are always\n2-digit form like ) can\nmatch Fanuc-style omitted-leading-zero codes. Two-digit and decimal\ncodes are kept as-is.\n

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

Syntax for flags with attached parameters (e.g., G54.1P1, G10L2P1).\nThis is essentially a combination of main flag matching (like )\nplus scoped for the parameters after the main flag.\nNote that the often should be applied before since may eat the text that should handle.

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

Applies the “conventional type” decimal-point interpretation to coordinate\nvalues in .\nWhen a tag value has no decimal point (e.g. Y20), it is shrunk by\nthe implied decimal places: Y20Y0.020 (3 decimal places).\nValues that already contain a decimal point are left unchanged.

\n

\nPlace inside before \nso the modified text is parsed correctly by subsequent syntaxes.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensCallStatementSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensCallStatementSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensCallStatementSyntax", "Summary": "

Captures a whole-line Siemens subprogram-call statement into\nParsing.SiemensCall for\n to\nresolve (inline the file) or safe-skip (structured warning, zero\nmotion). Two shapes are owned:

\n
  • Parenthesized call, any identifier —\nHQ_FC(1,50,75,160), L_39(0.000,0.000),\nHH_ROBOT(2){ \"Name\": \"HQ_FC\", \"Args\": [\"1\",\"50\",…] }.\nThe argument grammar (complete quoted runs admitted, quote-aware comma\nsplit) is 's, reused verbatim.
  • Bare-word callL9810, L_ZYM91,\nHH_ROBOTOFF, with an optional repeat count L123 P3 →\n{ \"Name\": \"L123\", \"P\": 3 }. Restricted to L-leading or\nunderscore-bearing identifiers on purpose: this syntax runs ahead of\n and a generic bare-identifier capture would\nsteal TRAORI-class words before their consumers ever saw them — the\nsame underscore heuristic \nblessed for assignments (corpus named entities all carry an\nunderscore; controller vocabulary never does). On real Sinumerik any\nbare identifier can be a by-name call; widening further is a\ncorpus-driven follow-up.
\n

\nPlacement: last of the dedicated statement owners and still before\n — quoted arguments must\nreach this capture (paired quotes ride inside the args body; a line\nwhose quotes do not pair falls through whole to the quarantine).\n keeps this catch-all from re-owning\nstatements that belong elsewhere (default: WRITE stays with\nthe quoted-statement quarantine; control-flow words are reserved for\ntheir future syntaxes). Whole-line anchored: a call mixed with other\ntokens (L9810 M8) does not match and stays visible in the\nunparsed warning.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensCycleCallSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensCycleCallSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensCycleCallSyntax", "Summary": "

Captures whitelisted Siemens cycle calls of the shape\nNAME(arg1,arg2,…) (or the bare NAME form) from the\nunparsed line text into a Parsing.NAME sub-object holding the\nverbatim positional argument strings:\nCYCLE832(0.05,_ORI_FINISH,0.8) →\nParsing.CYCLE832 = { “Args”: [“0.05”, “_ORI_FINISH”, “0.8”] }.\nEmpty slots (,,) stay as empty strings; NAME() yields an\nempty Args array; a bare NAME yields\n{ “Bare”: true } (a marker — empty sub-objects would be swept\nby intermediate CleanupParsing calls before the consumer runs).\nA brand Logic syntax consumes the sub-object\n(e.g. \nfor CYCLE832,\n for\nCYCLE800).

\n

\nStrictly whitelist-based (, default\nCYCLE832 + CYCLE800) — a generic WORD(args)\ncapture would eat OEM/unknown calls (HQ_FC(...),\nL_39(...)) whose safe-skip handling is a separate work item,\nand every unlisted call deliberately stays whole in\n for the visible\nUnparsedText--Remaining warning.\n

\n

\nMust be placed early in the Parsing bundle — before the assignment\nand tag-value syntaxes: argument tokens standing after ( or\n, (_ORI_FINISH, or axis-letter shapes like V1)\nwould otherwise be shredded by\n / tag-value captures.\nQuoted arguments are supported for CYCLE800's swivel-data-record\nname (CYCLE800(1,\"TC1\",…)): the args body admits complete\n\"…\" runs (which may hide ) or ,) and the\ncomma split is quote-aware; quotes are kept verbatim in the captured\narg string so the consumer distinguishes \"0\" (name) from\n0 (number). A line whose quotes do not pair falls through\nwhole to 's quarantine.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensDefStatementSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensDefStatementSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensDefStatementSyntax", "Summary": "

Consumes Sinumerik variable declarations\n(DEF REAL _X_HOME=155.5, _SAFE_Z / DEF INT N_ST=3) and\nlowers each declared name into Parsing.Assignments: initialised\nnames carry their initialiser expression text (the Evaluation bundle\nresolves and routes it into Vars.Named like any named\nassignment), bare names carry “0” — Sinumerik default-initialises\nnumeric types to zero, so a later G0 Z=_SAFE_Z reads 0 instead of\nfailing vacant.

\n

\nMust run before in\nthe Parsing bundle: on a DEF line that syntax would capture\n_X_HOME=155.5 but strand DEF REAL (and the comma list) as\nunparsed residue. Initialiser expressions are delimited by the\n longest-valid-prefix rule, so\nparenthesised arithmetic and whitespace survive; a non-numeric type or\nunparsable initialiser leaves the whole statement untouched (visible as\nresidue) rather than half-consuming it.\n

\n

\nBOOL/CHAR initialise to 0 like INT; STRING\ndeclarations are not lowered (string values have no numeric store) —\nthe statement is consumed whole so it cannot shed ghost tokens. The\ndeclaration itself leaves no Parsing record: the lowered Assignments\nentries carry the entire semantic payload, and an inert record would\nonly re-surface as an Unconsumed residue.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensFrameStatementSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensFrameStatementSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensFrameStatementSyntax", "Summary": "

Captures a whole Siemens frame statement (TRANS/ATRANS/ROT/AROT/\nROTS/AROTS/CROTS/SCALE/ASCALE/MIRROR/AMIRROR, bare or with\narguments) into a Parsing.<keyword> sub-object.\nSinumerik requires frame instructions in a block of their own, so\nthe whole remaining line belongs to the statement.

\n

\nThe consumed keywords (TRANS/ATRANS/ROT/AROT/ROTS/AROTS — see\n)\nare captured structured: each argument token becomes a\nsub-key — glued axis words (X0, Y90.) and equals forms\n(RPL=45, Z=R5) both supported. Literal values are\nstored as JSON numbers; non-literal right-hand sides stay strings so\n resolves them\nin the Evaluation stage (AROT Z=R5 →\nParsing.AROT = { \"Z\": \"R5\" }). A token outside the modeled\ngrammar makes the whole statement fall back to the verbatim\n capture — never a half-consumed line.\n

\n

\nThe remaining keywords (CROTS/SCALE/ASCALE/MIRROR/AMIRROR\n— zero corpus occurrences, no simulation) keep the verbatim\n{ \"Statement\": \"<args>\" } quarantine; the Logic consumer\nreports them as recognized-but-not-simulated. Either way the axis\nwords are kept out of reach of the quote/context-blind tag-value\nsyntaxes below, which would otherwise mint them into\nParsing.X/Y/Z and let \nturn a frame statement into a very real ghost rapid.\nDeferred-but-unmodeled must mean \"no transform yet\", never\n\"extra motion\".\n

\n

\nMust be placed early in the Parsing bundle — after\n, before every assignment / tag-value\nsyntax (the ROT RPL=45 shape would otherwise feed\n).\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensGotoParsingSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensGotoParsingSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensGotoParsingSyntax", "Summary": "

Captures Siemens GOTOF/GOTOB jump statements whole into\nParsing.SiemensGoto. Four forms are recognised, mirroring the\nFanuc phrase-level split (IF ... GOTO is one phrase, not an IF\ncomposed with a GOTO):

\n
  • GOTOF <label> / GOTOB <label> —\n unconditional forward / backward jump.
  • IF <cond> GOTOF <label> /\n IF <cond> GOTOB <label> — the Sinumerik\n single-line conditional jump (no brackets around the condition).
\n

\nPlacement: inside the whole-statement owner group, after\n and before\n — the IF-jump forms carry a\nstrictly longer prefix than the block IF <cond> phrase,\nso this owner must win first (the block-IF owner also refuses\nGOTOF/GOTOB tails defensively). Must run before the assignment\nsyntaxes: IF R1==1 GOTOF LBL1 would otherwise be shredded by\nthe assignment capture (its LHS grammar matches R1 and the\nfirst = of ==).\n

\n

\nThe label is captured as written (LBL1, MARKE_A, or an\nN<num> block number — both are legal Sinumerik jump\ntargets). The condition string is left for\n's pass-2 tree\nwalk; \nconsumes the section.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensIfParsingSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensIfParsingSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensIfParsingSyntax", "Summary": "

Captures the Siemens block-conditional phrases whole into\nParsing.SiemensIf: IF <cond> (no brackets on\nSinumerik), ELSE, ENDIF. The single-line jump form\n(IF <cond> GOTOF <label>) belongs to\n, which runs immediately before\nthis owner; a GOTOF/GOTOB tail is additionally refused here so an\nordering drift degrades to a visible unparsed warning instead of a\nsilently mis-captured block-IF (the Fanuc (?!GOTO\\b)\nprecedent).

\n

\nPlacement: whole-statement owner group, before the assignment\nsyntaxes — a condition like R1==1 would otherwise be shredded\nby the assignment capture (LHS grammar matches R1 plus the\nfirst =). The condition string is left for\n's pass-2 walk;\n consumes the\nsection and decides the branch.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensLabelSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensLabelSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensLabelSyntax", "Summary": "

Consumes a Siemens label at block start (LBL1: — identifier\nfollowed by a colon, optionally after the N head index) into a\nblock-root record. Labels are passive jump\ntargets: in the normal flow the record is pure bookkeeping (no motion,\nno state), while \nuses this same syntax as its \nprobe and matches candidates on SiemensLabel.Name. Writing the\nrecord at the block root (not under Parsing) keeps the passive\ntoken out of 's\naudit without needing a Logic-layer consumer — mirroring how\n leaves no Parsing.Def\nentry behind.

\n

\nAnchored at the start of the remaining unparsed text, so a label\nburied mid-line is not captured (Sinumerik allows one label per block,\nat block start). Text after the colon stays in\n for the rest of the\npipeline — LBL1: G1 X0 executes its trailing motion normally.\nThe probe usage requires this syntax to stay self-sufficient: it reads\nonly UnparsedText and never touches the dependency list.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensLoopParsingSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensLoopParsingSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensLoopParsingSyntax", "Summary": "

Captures the Siemens loop-construct phrases whole, one Parsing\nsection per construct family:

\n
  • WHILE <cond> / ENDWHILE →\n Parsing.SiemensWhile.
  • FOR <var> = <start> TO <end> /\n ENDFORParsing.SiemensFor. The start expression is\n stored as a single-entry Init map keyed by the variable name\n — the evaluator's pass-2 tree walk rewrites values only, never\n keys, so the loop variable's name survives even when it collides\n with a set named variable. Literal start/end bounds are written as\n numeric JSON values directly (writer decides the node type);\n expressions stay strings for the evaluator.
  • bare REPEAT / UNTIL <cond> →\n Parsing.SiemensRepeatUntil. Only the label-less form is\n taken — REPEAT LBL1 ... is the P4 section repeat owned by\n , which runs earlier in the\n statement group.
  • LOOP / ENDLOOPParsing.SiemensLoop.
\n

\nPlacement: whole-statement owner group, after\n / \nand before the assignment syntaxes — FOR R1=0 TO 10 would\notherwise be shredded by the assignment capture (R1=0 is a\nlegal assignment shape and the TO 10 tail strands).\n consumes all\nfour sections against its shared loop-frame stack.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensMcallSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensMcallSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensMcallSyntax", "Summary": "

Captures a Siemens MCALL modal-call statement whole into a\nParsing.MCALL sub-object:\nMCALL CYCLE81(500.,327.9137,0.5,324.564,,,0,1,0) →\n{ “CycleName”: “CYCLE81”, “Args”: ["500.", …] }; a bare\nMCALL (modal cancel) → { “Bare”: true }; a\nparenthesis-less callee (MCALL L123) keeps\nCycleName without Args. The Logic consumer\n() maps the\nsupported CYCLE8x family onto the shared canned-cycle modal\nmachinery and warns on everything else.

\n

\nWhole-statement owner: MCALL lines are standalone in the corpus, and\nowning the full statement keeps the cycle's positional arguments away\nfrom the assignment / tag-value syntaxes (same shredding hazard as\n, whose argument grammar —\nincluding complete quoted runs — is reused verbatim). Must run\nbefore : a whitelisted cycle name\nafter MCALL would otherwise be captured bare-of-context and\nstrand the MCALLL word. A line mixing MCALL with other tokens\ndoes not match and falls through whole to the visible unparsed\nwarning.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensMsgSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensMsgSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensMsgSyntax", "Summary": "

Consumes a Siemens MSG(“text”) operator display call (or the\nbare MSG() clear form) from the unparsed line text into a\nblock-root section, and surfaces the text as a\nMsg–Display system message.

\n

\nMust be placed before every assignment / tag-value / flag\nsyntax in the Parsing bundle (right after\n /\n): the quoted argument routinely\ncontains NC-shaped tokens (MSG(\"TOOL=5\"), MSG(\"G54 OK\"),\nMSG(\"T20 R8.000 CR:2.500\")) which the quote-blind consumers\ndownstream would otherwise shred into ghost assignments, flags, or\naxis words. Consuming the whole call here removes that hazard\nstructurally — the planned fix recorded on\n's assignment RHS-boundary notes.\n

\n

\nOnly the two literal forms are consumed: MSG(\"...\") and\nMSG(). Non-literal arguments (string concatenation\nMSG(\"A\"<<R1), variable interpolation) are deliberately\nleft whole in for the\nvisible UnparsedText--Remaining warning — half-eating them\nwould silently lose content.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensProcSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensProcSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensProcSyntax", "Summary": "

Consumes a Siemens PROC subprogram declaration header\n(PROC MY_SUB, PROC CONTOUR(REAL X, INT N) SAVE DISPLOF)\nwhole into a block-root record. The header\ncarries no executable state for the simulation — parameter binding to\ncaller arguments is a later work item — but leaving it unparsed would\nshred the parameter list into ghost axis words the moment the\ntag-value syntaxes run, so the whole statement is owned here. The\nverbatim remainder after the name is preserved on\n for cache-dump readers. Writes at\nthe block root (no Parsing entry) following the\n precedent — a record with no\nLogic consumer must not land in the\n audit tree.

\n

\nAnchored at statement start: Sinumerik requires PROC to be the\nfirst statement of a subprogram file, so a mid-line PROC is\nleft alone (visible unparsed warning).\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensQuotedStatementSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensQuotedStatementSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensQuotedStatementSyntax", "Summary": "

Quote guard: any line text still carrying a double quote after the\nliteral-form consumers (,\n, )\nhave run is quarantined whole into\nParsing.QuotedStatement = { “Statement”: “<verbatim>” } —\nWRITE(ERROR,“CUTTIME”,“T5 X100”), string-concatenation\nMSG("..."<<R1), quoted-argument cycles not yet whitelisted.

\n

\nEvery quote-blind syntax below (flags, numbered flags, tag values,\nassignments) opens a token boundary at the quote→letter transition,\nso without this guard the string contents get minted into REAL parser\nstate: \"G54\" inside a WRITE argument silently switches the\nactive work offset, \"T5 X100\" mints a ghost tool call plus a\nghost motion. Quarantining keeps the whole statement visible as one\nParsing--Unconsumed entry (QuotedStatement.Statement)\nwith zero state changes — the same deferred-not-corrupted contract as\n. Proper consumers (WRITE,\nCYCLE800 quoted args) replace this guard per statement family later.\n

\n

\nTrade-off, deliberate: on an exotic mixed block the guard also takes\nthe co-resident plain words (a motion word sharing the block with an\nunconsumed quoted call goes into the quarantine too). Losing them is\nvisible in the warning text; minting false state would be silent —\nnever trade the first for the second. Corpus quoted statements\n(WRITE, non-literal MSG) are standalone blocks.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensRepeatParsingSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensRepeatParsingSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensRepeatParsingSyntax", "Summary": "

Captures a Siemens REPEAT statement whole into\nParsing.SiemensRepeat: REPEAT LBL1 LBL0 →\n{ “Start”: “LBL1”, “End”: “LBL0” }, with an optional trailing\nrepetition count (P=3 or P3). The Evaluation consumer\n() re-runs\nthe label-bounded section. The single-label form\n(REPEAT LBL1 — repeat from the label back to the REPEAT line)\nis captured with End absent; the consumer currently warns it\nunsupported (corpus count: zero).

\n

\nWhole-statement owner, anchored at statement start — mixing REPEAT\nwith other tokens on one block does not match and falls through whole\nto the visible unparsed warning. The end-label alternative refuses a\nP+digits word so REPEAT LBL1 P3 reads as\nstart-label + count, not as an end label named P3.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensToolCallSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensToolCallSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensToolCallSyntax", "Summary": "

Consumes the Siemens string tool call T=“name” from the\nunparsed line text into Parsing.T as a string value\n(quotes stripped). Numeric concatenated calls (T5) stay with\nthe preset's ;\n accepts either shape.

\n

\nMust be placed before every tag-value syntax in the Parsing\nbundle: tool names routinely contain NC-shaped tokens\n(T=\"D16R3Z6\" — quote-blind consumers would mint ghost\nParsing.D/Parsing.Z entries out of the name;\n(?<=[0-9]) and quote→letter \\b boundaries in\n both open inside the string).\nSame structural-consumption rationale as\n.\n

\n

\nA second T=\"...\" behind a ; comment\n(T=\"M6LWXD-1301\";T=\"M6LWX\", real corpus shape) never reaches\nthis syntax — the quote-aware\n runs earlier and strips\nit. Tool names are matched verbatim, including non-ASCII bytes from\nlegacy code pages.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Siemens.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.Siemens.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.Siemens", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.TagAssignmentSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.TagAssignmentSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs.TagAssignmentSyntax", "Summary": "

Assignment syntax with = sign.\nUnlike which handles concatenated tag-value pairs (no = sign),\nthis class handles explicit assignment statements.

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

Concatenated tag-value syntax (no = sign), glued by default.\nex.\nHeidenhain: L X+Q2 Y33.4 FQ1\nISO: X100.3Y3.3\nWith also the Siemens address=value form:\nSiemens: X=100 Z=R63+150\nWith also the detached spelling:\nHeidenhain: L Z-22.5 F 20000

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

Detects the % tape leader / trailer at the start of a block\nand records it under on the block JSON.\nUniversal across ISO controllers (Fanuc, Mazak, Syntec, Siemens) —\na brand's program-identifier header (e.g. Fanuc O1234) is a\nseparate concern handled by its own brand-specific syntax.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.ParsingSyntaxs.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.ParsingSyntaxs.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.ParsingSyntaxs", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.PostLogicSyntaxs.ModalCarrySyntax.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.PostLogicSyntaxs.ModalCarrySyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.PostLogicSyntaxs.ModalCarrySyntax", "Summary": "

Per-block modal-section carry. For each key in ,\nif the current block has no section for that key, deep-clone the same\nsection from the immediately previous block (which is itself guaranteed\nto carry it because every block is processed by this syntax) and set\n = \ninside the cloned section. For each key in , a\nblock that DID write its own (partial) section additionally receives the\nprevious block's remaining entries — the block's own values win, only\nmissing keys are filled — so a partially-written modal section (e.g. an\nXYZ-only motion block's\n,\nwhich lacks the rotary axes) does not break the carry chain for the keys\nit did not write. Lets every block stand alone with its full\nmodal context, so downstream readers (cache-file dumps, semantics, UI\njumping to a single block) do not need\n to resolve modal state.

\n

\nA JSON section is a candidate for when ALL\nfour criteria hold:\n

  1. Writers concentrated — one or two syntaxes own the\n section (e.g. /\n own\n MotionState; the call/return pair own\n SubProgramCall-derived state).
  2. Readers distributed — multiple downstream consumers\n each need the value, and none of them should walk back to find it.\n Single-reader sections do not benefit from blanket carry.
  3. Every block must see the section — cache-dump readers\n landing randomly, single-block UI views, and look-ahead syntaxes\n all require the section to be present on every block.
  4. Carry is unconditional — no frame-gating or other\n per-block veto. Sections that need conditional carry (e.g.\n 's\n frame-aware Vars.Local dict-merge — carry only when\n MacroFrame matches) belong in the owning syntax's own\n carry logic, not here.
\nA section failing any criterion should be carried through its owning\nsyntax's own logic (single-step node.Previous read, or no carry\nat all if absence is meaningful — e.g. MacroFrame absent = main\nframe).\n\n

\nThis replaces the earlier CacheSyntax design (which sampled\nevery Pace blocks). The legacy CacheSyntax XName is still\nrecognised on load for backward compatibility with previously-saved\nproject files.\n

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

Resolves cutter radius compensation (G41/G42/G40) by offsetting the\ntool path perpendicular to the programmed direction.

\n

\nMust be placed after motion syntaxes (,\n) because it reads the \nsection. Must NOT be placed inside because it\nrequires look-forward ().\n

\n

\nFor simple cases (line-line, no transient), the syntax overwrites\nMachineCoordinate with the offset position. For arc blocks\nthat need transient bridging segments, the Motion section is\nreplaced with a containing sub-items.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.PostLogicSyntaxs.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.PostLogicSyntaxs.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.PostLogicSyntaxs", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Segmenters.HeidenhainSegmenter.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Segmenters.HeidenhainSegmenter.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Segmenters.HeidenhainSegmenter", "Summary": "

Heidenhain NC block builder.\nAlso support single line NC block.

\n

\nTwo grouping rules produce multi-line s:\n

  • Trailing ~ continuation (modern TNC cycle\ndefinitions): a line whose last visible character is ~\ncontinues on the next physical line; the chain ends at the first\nline without a trailing ~. Both corpus spellings are\naccepted — \"… ;STRATEGIE ~\" (space before, after a trailing\ncomment) and \"DATUM SETTING~\" (glued). Continuation lines\ncarry no klartext block number. Configurable via\n (default on — files using\n~ are simply mis-simulated without it, so legacy XML without\nthe attribute also gets the join).
  • Repeated command head (,\ndefault CYCL DEF): consecutive lines sharing the same\nCYCL DEF n head group into one sentence\n(7.0/7.1/… style).
\nThe ~ characters stay in the raw \n(write-back authority); the Parsing bundle strips them from\nUnparsedText via\n.\n\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Segmenters.ISegmenter.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Segmenters.ISegmenter.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Segmenters.ISegmenter", "Summary": "

Interface to segment s into s.

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

Segments NC lines by an inline delimiter (e.g. ';').\nA line containing the delimiter produces multiple s,\neach with a precise .\nLines without the delimiter produce a single .

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

Maps each physical source line to one (no multi-line merging).

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Segmenters.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Segmenters.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Segmenters", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Semantics.ClLinearMcMotionSemantic.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Semantics.ClLinearMcMotionSemantic.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Semantics.ClLinearMcMotionSemantic", "Summary": "

Resolves motion into CL-level\nlinear interpolation with per-step inverse kinematics.\nUsed when RTCP (G43.4/TRAORI/M128) is active and rotary axes change,\nproducing .

\n

\nThe CL (cutter location) endpoints are derived from MC endpoints via\nforward kinematics, then interpolated linearly. The MC path is\nnon-linear because the tool orientation changes during the move.\n

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

Resolves into acts\nby delegating to\n.

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

Resolves the JSON section (written by\n from M07/M08/M09) into an\n act. Only emits when the coolant mode\nchanges from the previous block — modal state is suppressed so\ndownstream consumers (e.g. ) see one\nact per real transition rather than one per block.

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

Resolves into .\nMust be placed at the beginning of \nso that the script runs before motion and other acts.

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

Resolves into .\nMust be placed at the end of \nso that the script runs after motion and other acts.

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

Base class for resolving JSON entries into\n. Subclasses specify which script key\nto read ( or ).

\n

\nAlso supports an external script dictionary via .\nWhen set, each NC block's is looked up in the\ndictionary and the matched script is emitted as an additional\n. This allows runtime injection of per-line\nscripts without modifying the NC file.\n

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

Resolves into sequence.\nUnlike which only transforms data in-place,\n produces machine actions from the parsed syntax data.

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

Read MachineCoordinate from in JsonObject\nand produce .\nRequires to have computed McXyz first.

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

Resolves motion into\n + .\nReads arc center, plane normal, and direction from the\n section written by\n.

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

Resolves motion into\n/ +\n or .

\n

\nDiscriminates by whether the block's rotary state actually CHANGED from\nthe previous modal state (\n— value comparison, not key presence:\n completes every\nmotion block's \nwith carried modal rotary values, so key presence no longer means the\nblock moved a rotary axis):\n

  • rotary unchanged →
  • rotary moved → with Fanuc\ncomposite feedrate: d = √(ΔX² + ΔY² + ΔZ² + ΔA_deg² + ΔB_deg² + ΔC_deg²)
\n\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Semantics.McPolarArcMotionSemantic.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Semantics.McPolarArcMotionSemantic.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Semantics.McPolarArcMotionSemantic", "Summary": "

Resolves motion into\n + .

\n

\nThe arc geometry (center, direction, additional circles) was resolved by\n on the polar hypothetical plane in central\n(anchor-origin) coordinates; this semantic computes the plane arc length\nvia 's shared spiral derivative,\ntakes duration = length / feedrate (mirroring HardNc\nNcProc.GetActSpiralMcXyzContour), and emits the polar spiral act\nwhose per-step polar→machine conversion chains the C-axis branch.\n

\n

\nWhen compensated\nthe block (marked by \nin the motion section), the act structure mirrors HardNc\nNcProc.GetActsFromArcCommand: an optional\n bridge onto the offset circle\n(transient begin), the spiral between the compensated endpoints around the\nNOMINAL center, and an optional bridge off it (transient end) — the polar\ntwin of HardNc GetActMcContourByLinearProgramPos.\n

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

Resolves motion into\n + .

\n

\nReads the anchor-relative polar positions written by\n (begin from the previous block, end from\nthe current block) and hands the central (anchor-origin) pair to the act,\nmirroring HardNc NcProc.GetActMcPolarLinearContour. Duration\nmirrors HardNc GetTimeCostByPolarLinearContour, including the\nC-axis speed clamp on the hypothetical component — the ceiling comes\nfrom the rotary rate bucket\n(), the same number the\nlegacy import fills from HardNcEnv's MaxRotarySpeedABC.\n

\nRapid polar events (G00 while G12.1 is active — disallowed by Fanuc and\nwarned at parse time) resolve to no act, matching HardNc.\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Semantics.SpindleSpeedSemantic.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Semantics.SpindleSpeedSemantic.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Semantics.SpindleSpeedSemantic", "Summary": "

Resolves section into\n and .\nOnly emits when spindle speed or direction actually changes\nfrom the previous block.

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

Reports a diagnostic error when \nexceeds the stroke limits defined in .\nDoes not emit any ; only produces diagnostics.

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

Resolves section into\n when a change trigger is present\n( = true); a T-code-only\n(pre-selection) block produces no act — magazine pre-rotation is PLC\nwork with no axis or spindle effect. The axis travel to the tooling\nposition is NOT emitted here: \nstamps it as a at the syntax stage, and\nthis semantic is ordered after so\nthe lands at the tooling position.\nReads for the change duration.

\n

\nA string ToolId (Siemens T=\"name\" call) is resolved to a\ntool number through\n\n— the act chain (, tool-house lookup) is\nint-keyed. An unresolvable name emits a\nToolChange--NameUnresolved warning and produces no act.\n

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

Resolves the section into\n: the tool is equipped without the\nmachining-step operation (collision detection, volume removal) that\n's runs at\nthe chain's current pose. For pipelines whose source carries no machine\ntool-change position: in CSV (recorded telemetry) the tool jumps to its\nrecorded position rather than running a modelled tool-changer cycle; in\nCLSF the cutter-location stream has no machine coordinates at all, and a\nstep would stamp a cut at the not-yet-positioned device pose (identity =\nthe workpiece program zero). Fires only when\n is set (the block's tool id\ndiffers from the previous one), so a long run of same-tool blocks emits a\nsingle teleport.

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

A small NC block for one or several lines.

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

Configurable NC Runner.

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

JSON helpers for soft-NC blocks: vectors under ,\nmotion-term queries, flag grab/remove on raw text, and unparsed-line trimming.

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

Depth-First Sequential Syntaxes management.\nIt saves space by save the LazyLinkedLists from each syntax to only one LazyLinkedLists in to get better performance.\nIf the only edit the current node itself, those self-editing without looks-forward is suitable to put into the .

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

Longest-valid-prefix expression parse over source:\nreturns true with consumedLength set to the\nnumber of leading characters forming a valid expression (the grammar\ndecides where a captured RHS ends), or false when not even a\nprefix parses. Capture syntaxes take this as an optional hook so the\nassignment/tag grammars stay decoupled from any concrete expression\nparser (see NcExpressionDialectUtil.TryParsePrefix).

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

Pre-built / flag patterns for Fanuc-style NC text.

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

Generic/ISO standard syntax kit. Involve G code.\nContains syntax definitions for common G codes used across multiple NC systems.

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

Pre-built parsing syntax fragments for Heidenhain-style programs (Q variables, FMAX/FAUTO, etc.).

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

Expanding syntax: transforms one node\ninto zero or more output pieces (e.g., subprogram inlining,\nmacro expansion, conditional branching).

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

Base interface for syntax-level data transformation on\n..\nUnlike which produces\n,\n only restructures or enriches parsed data\nwithout producing actions.

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

In-situ syntax: mutates the \nof the given node in-place without changing the node count.\nMost parsing and logic syntaxes implement this interface.

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

Mazak-specific NC syntax utilities.

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

JSON serialization settings and grab/set helpers for NC block trees.

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

Pre-built parsing syntax fragments for Siemens-style programs (R parameters, TRAORI, etc.).

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

One NC block's source line paired with its parsed JSON payload during soft-NC processing.

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

Shared JSON key constants written by post-Logic and Inspection stage\nsyntaxes. Central registry so the string literals do not drift across\nsyntax files; readers of cache dumps can reference these constants\ndirectly rather than hard-coding the raw strings.

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

Syntec-specific NC syntax utilities.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Syntaxs.TagValue.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Syntaxs.TagValue.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Syntaxs.TagValue", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Syntaxs.TransformationUtil.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Syntaxs.TransformationUtil.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Syntaxs.TransformationUtil", "Summary": "

Utilities for the chain.\nEach entry is {Source, Kind, Mat4d}; entries are composed in order\nwith pure matrix multiplication ().

\n

\n partitions the entries by contour validity:\n

  • — the matrix is valid across the whole\nblock, applicable to any interpolated point along the contour.
  • — the matrix is a block-endpoint snapshot\nof a rotary-state-dependent transform (RTCP rotary-dynamic). Composing it\nproduces a correct endpoint MC, but interpolated points along the contour\nmust be derived per-step by motion semantics\n(); do not apply it to\ninterpolated ProgramXyz.
\nBoth kinds carry a real Mat4d so composition stays a pure matrix product —\nno entry has a missing matrix. Use to detect\nthe dynamic-rotary state without consulting a sibling section flag.\n\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.Syntaxs.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.Syntaxs.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers.Syntaxs", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.NcParsers.yml", "output": { ".html": { "relative_path": "api/Hi.NcParsers.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.NcParsers", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.ActActualDateTime.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.ActActualDateTime.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.ActActualDateTime", "Summary": "

Represents an action that records the absolute controller timestamp\n(wall-clock ) for a machine step. Parallel to\n: that act carries the run-relative timecode\n(a ), this one preserves the raw calendar instant so\nthe date is not lost — converting between the two is the mapping anchor's\njob, done once at the boundary.

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

Represents an action that sets the actual time for a machine step.

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

Represents an arc movement action for cutter location.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.ActClArcMcXyzabcContour.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.ActClArcMcXyzabcContour.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.ActClArcMcXyzabcContour", "Summary": "

Arc twin of : a circular cutter\nlocation path realized on machine coordinates. The arc is interpolated in\nCL space (true arc via , including tilting\nnormals) and every resampled step is inverse-solved through\n.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.ActClLinear.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.ActClLinear.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.ActClLinear", "Summary": "

Represents a linear cutter location movement action.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.ActClLinearMcXyzabcContour.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.ActClLinearMcXyzabcContour.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.ActClLinearMcXyzabcContour", "Summary": "

Represents a combined linear movement in both cutter location and machine coordinates.\nThis class handles synchronized linear interpolation of tool position and orientation.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.ActClStep.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.ActClStep.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.ActClStep", "Summary": "

Represents a single cutter-location step with optional duration.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.ActClTeleport.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.ActClTeleport.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.ActClTeleport", "Summary": "

Represents a teleport action for cutter location, allowing instant position change without movement.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.ActCooling.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.ActCooling.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.ActCooling", "Summary": "

Represents a coolant state transition — the cutting-fluid delivery\nmode changes on the machine (from e.g. \nto ).\nEmitted by when\nthe NC program executes M07/M08/M09.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.ActData.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.ActData.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.ActData", "Summary": "

Action that add data to the step.\nThe data is maybe from the sensor or computed, etc..

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.ActDelay.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.ActDelay.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.ActDelay", "Summary": "

Represents a delay action in machining operations.\nThis class implements a simple time delay in the machining process.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.ActFeedrate.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.ActFeedrate.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.ActFeedrate", "Summary": "

Represents a feedrate action for controlling the speed of machining operations.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.ActHiddenStateChanged.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.ActHiddenStateChanged.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.ActHiddenStateChanged", "Summary": "

Represents an action that indicates a change in the hidden state of an object.\nThis action is typically skipped during normal processing.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.ActIntentionalSkip.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.ActIntentionalSkip.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.ActIntentionalSkip", "Summary": "

Represents an action that is intentionally skipped during processing.\nUsed to explicitly mark operations that should be bypassed.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.ActLineBegin.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.ActLineBegin.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.ActLineBegin", "Summary": "

Represents the beginning of a line act in numerical control operations.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.ActLineCsScript.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.ActLineCsScript.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.ActLineCsScript", "Summary": "

Cs Script on one Line.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.ActLineEnd.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.ActLineEnd.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.ActLineEnd", "Summary": "

Represents the end of a line act in numerical control operations.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.ActMcPolarLinearContour.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.ActMcPolarLinearContour.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.ActMcPolarLinearContour", "Summary": "

Polar MCZ linear contour.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.ActMcPolarSpiralContour.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.ActMcPolarSpiralContour.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.ActMcPolarSpiralContour", "Summary": "

Circular (arc/helix) contour on the polar hypothetical plane while\nPolar Coordinate Interpolation (Fanuc G12.1) is active.

\n

\nThe arc geometry lives entirely in central polar Rxcz coordinates\n(X = radius-direction linear axis mm, Y = hypothetical rotary-substitute\naxis mm, Z = real Z mm, origin on the rotary center) — the same spiral\nmath as . Each sampled point is then\nconverted to machine coordinates the way\n does: radius drives machine X, the\natan2 angle drives the machine C axis with the branch chained from\nthe previous step (),\nmachine Y/A/B stay frozen at the previous position, and Z carries the\ncoordinate/tool-height offset.\n

\nThe chaining state is local to each enumeration, so the act can be\nre-enumerated safely and arcs crossing the ±180° branch (or spanning\nmultiple turns via ) stay continuous —\nunlike the HardNc per-point unresolved atan2, whose machine C\njumps by one cycle at the branch cut (same physical pose).\n\nKnown divergence: per-step machine X is the raw polar radius and machine\nY stays frozen — coordinate-offset X/Y components are NOT applied\n(only Z carries an offset), consistent with\n and the turn-mill assumption that\nmachine X ≡ radius. HardNc is internally inconsistent here: its polar\narc steps run the full transform chain (G5x X/Y included) while\nits polar linear steps use the raw radius like this act.\n\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.ActMcXyzLinearContour.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.ActMcXyzLinearContour.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.ActMcXyzLinearContour", "Summary": "

Action of Machine Coordinate XYZ contour by Machine Coordinate linear interpolation.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.ActMcXyzSpiralContour.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.ActMcXyzSpiralContour.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.ActMcXyzSpiralContour", "Summary": "

Represents a spiral contour movement in machine XYZ coordinates.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.ActMcXyzStep.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.ActMcXyzStep.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.ActMcXyzStep", "Summary": "

Action representing a machine coordinate XYZ step movement.\nThis class handles linear positioning in machine coordinates.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.ActMcXyzabcLinearContour.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.ActMcXyzabcLinearContour.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.ActMcXyzabcLinearContour", "Summary": "

Action of Machine Coordinate XYZABC contour by Machine Coordinate orientable linear interpolation.\nThis class handles complex tool movements with both position and orientation control.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.ActMcXyzabcStep.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.ActMcXyzabcStep.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.ActMcXyzabcStep", "Summary": "

Action of Machine coordinate XYCABC Step.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.ActMcXyzabcTeleport.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.ActMcXyzabcTeleport.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.ActMcXyzabcTeleport", "Summary": "

Instant machine-coordinate reposition — the MC counterpart of\n: the chain pose is set without a machining\nstep, so no time accumulates and no material-removal step is recorded.\nEmitted for CLSF FROM / first-motion blocks when the runner drives\nan MC machine.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.ActRapid.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.ActRapid.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.ActRapid", "Summary": "

Rapid feedrate.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.ActSpindleDirection.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.ActSpindleDirection.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.ActSpindleDirection", "Summary": "

Represents an action that sets the spindle rotation direction.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.ActSpindleOrientation.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.ActSpindleOrientation.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.ActSpindleOrientation", "Summary": "

Oriented spindle stop — commands the spindle to stop at a specific\nangular position. Used by G76 (fine boring) and G87 (back boring)\nto orient the tool before lateral shift.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.ActSpindleSpeed.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.ActSpindleSpeed.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.ActSpindleSpeed", "Summary": "

Represents an act that controls the spindle speed in numerical control operations.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.ActToolingStep.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.ActToolingStep.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.ActToolingStep", "Summary": "

Action of equiping the tool with machining step operation such as collision detection and volume removal.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.ActToolingTeleport.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.ActToolingTeleport.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.ActToolingTeleport", "Summary": "

Action of Equiping the tool without machining step operation such as collision detection and volume removal.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.ActUnknownSkip.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.ActUnknownSkip.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.ActUnknownSkip", "Summary": "

Represents an act that skips unknown operations in numerical control.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.ActUtil.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.ActUtil.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.ActUtil", "Summary": "

Provides utility methods for numerical control actions.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.ArcRadialClosure.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.ArcRadialClosure.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.ArcRadialClosure", "Summary": "

Classifies the radial closure of an arc motion — how far the arc's\nendpoint sits off the circle its center defines, measured as the gap\nbetween the begin radius and the end radius on the arc plane.\nA genuine arc closes (gap 0). The simulation accepts any gap and runs\nthe block as a spiral whose radius blends linearly\n(), but real controls check this\nclosure and refuse the block once the gap passes their arc tolerance\n(e.g. Heidenhain error 5824 once MP7431 — typically around 0.016 mm —\nis exceeded). A program can therefore simulate cleanly and still stop\non the machine; the diagnostics built from this class exist to close\nthat gap.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.IAct.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.IAct.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.IAct", "Summary": "

Action parsing from NC, CL, NC Steps and etc., for controlling the mechanism and the mechanism simulation process.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.IActClMove.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.IActClMove.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.IActClMove", "Summary": "

Interface for actions that involve cutter location movement.\nThis interface defines the contract for tool path movements in machining operations.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.IActDuration.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.IActDuration.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.IActDuration", "Summary": "

Interface for actions that have a specific duration.\nThis interface is used to define actions that take a measurable amount of time to complete.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.IActMachineStep.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.IActMachineStep.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.IActMachineStep", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.IActMcXyzContour.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.IActMcXyzContour.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.IActMcXyzContour", "Summary": "

Interface for actions that represent machine XYZ contours.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.IActMcXyzabcContour.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.IActMcXyzabcContour.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.IActMcXyzabcContour", "Summary": "

Interface for actions that represent machine XYZABC contours.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.IActSkip.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.IActSkip.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.IActSkip", "Summary": "

Interface for actions that should be skipped during normal processing.\nActs as a marker interface to identify actions that should not be executed.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.IActTooling.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.IActTooling.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.IActTooling", "Summary": "

Represents a tooling action that changes or selects a tool.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.IWorkTimeAttrib.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.IWorkTimeAttrib.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.IWorkTimeAttrib", "Summary": "

Interface for objects that provide both read and write access to work time.\nCombines the functionality of IWorkTimeGetter and IWorkTimeSetter.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.IWorkTimeGetter.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.IWorkTimeGetter.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.IWorkTimeGetter", "Summary": "

Interface for objects that provide read-only access to work time.\nThis interface is part of the work time tracking system for machining operations.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.IWorkTimeSetter.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.IWorkTimeSetter.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.IWorkTimeSetter", "Summary": "

Interface for objects that provide write-only access to work time.\nThis interface is used for components that need to update work time without reading it.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.StateActRunner.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.StateActRunner.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts.StateActRunner", "Summary": "

Manages the state of numerical control operations during runtime.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Acts.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Acts.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Acts", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Args.OrthogonalPlaneFlag.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Args.OrthogonalPlaneFlag.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Args.OrthogonalPlaneFlag", "Summary": "

Plane Selection Flag.\nFanuc Group02 flags.\nthe int value is the plane dir number.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Args.PolarModeDirEnum.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Args.PolarModeDirEnum.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Args.PolarModeDirEnum", "Summary": "

Polar coordinate interpolation mode direction.\nYA,ZB has not implemented yet.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Args.PolarPairDef.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Args.PolarPairDef.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Args.PolarPairDef", "Summary": "

Axis mapping of a Polar Coordinate Interpolation pair\n(): which program/machine axes carry the\nradius, the plane depth, and the rotation.

\n

\nThe polar math itself runs in \"triple space\" — the Rxcz vector\n(linear/radius, hypothetical, depth) with the plane normal fixed at the\nthird component — and is pair-independent; this definition maps the\ntriple's ends onto real axes: NC words on the way in, machine\ncoordinates on the way out. The plane normal equals the rotary's\nrotation axis (C about Z, A about X, B about Y), so\n doubles as the ABC component of the angle.\n

\n

\nThe lathe diameter-programming convention (the radius word arrives\ndoubled) applies to the X axis only, i.e. the XC pair — mirroring\nHardNc PolarEntry, which halves X unconditionally. HardNc's own\nYA/ZB slots are dead code (never selected); its\nProgramOrthogonalPlaneNormal table carried swapped normals for\nthem, corrected alongside this implementation.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Args.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Args.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Args", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.ClsfParsers.ClArcMcMotionSemantic.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.ClsfParsers.ClArcMcMotionSemantic.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.ClsfParsers.ClArcMcMotionSemantic", "Summary": "

MC-machine counterpart of the branch of\n: builds the workpiece-frame\n from ,\ntransforms it into the kinematic Pn frame (the workpiece→Pn transform\nwired on ),\nand emits — a true CL-space arc\nwith per-step inverse kinematics. Endpoint machine coordinates come from\n (this block, solved by\n + McXyzSyntax) and the\nprevious block's modal state.\nFeedrate/rapid timing mirrors ; like the\nRTCP linear semantic, a feed move without a usable feedrate drops the\nmotion (with a validation warning) instead of emitting zero duration.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.ClsfParsers.ClMotionSemantic.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.ClsfParsers.ClMotionSemantic.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.ClsfParsers.ClMotionSemantic", "Summary": "

Resolves the pure-CL motion forms into cutter-location acts that drive a\nClMillingDevice chain directly — no machine coordinates involved:\n,\n,\n. Feed moves also\nemit (from the modal Feedrate section);\nrapid moves emit at\n. Durations are\npath-length / effective feedrate.

\n

\nContrast with , which handles the\nRTCP form of the NC pipeline by\nderiving CL from machine coordinates — this semantic is its CL-source\ncounterpart and reads endpoints from\n instead.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.ClsfParsers.ClMotionValveSemantic.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.ClsfParsers.ClMotionValveSemantic.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.ClsfParsers.ClMotionValveSemantic", "Summary": "

Valve that routes each block to exactly one motion-semantic family, so\nthe leaves keep a single duty and never need cross-guards:

\n
  • Block carries a MachineCoordinateState section (written by\n + McXyzSyntax when the chain\nis an MC machine) →\n (default:\n for downgraded constant-posture\nmoves, for RTCP-style\norientation-changing lines, ,\n).
  • Otherwise (pure-CL ClMillingDevice project) →\n (default ).
\nThe semantic-side counterpart of composition:\nchildren are serialized nested under group elements and reconstructed via\n.\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.ClsfParsers.ClTeleportMcMotionSemantic.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.ClsfParsers.ClTeleportMcMotionSemantic.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.ClsfParsers.ClTeleportMcMotionSemantic", "Summary": "

MC-machine counterpart of the branch\nof : emits an instant\n from the block's\n endpoint solved by\n + McXyzSyntax. Mirrors the\npure-CL teleport semantics —\nno machining step, no time accumulation.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.ClsfParsers.ClToMcTransformSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.ClsfParsers.ClToMcTransformSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.ClsfParsers.ClToMcTransformSyntax", "Summary": "

Endpoint inverse kinematics for driving an MC machine from CLSF input,\nexpressed in the NC pipeline's transform vocabulary: when the pipeline's\n resolves to a live solver (the\nmachining chain is an IXyzabcChain), each pure-CL motion block\ngets

\n
  • a section (the active tool's\nattacher→tip length) plus its chain entry — a translation along the\nworkpiece-frame tool axis, mirroring the RTCP entry of\n;
  • a chain entry\n— \nanchored to the workpiece frame, absorbing the fixture topology\n(workpiece→Pn, wired on\n) together\nwith the Pn→MC kinematics at the solved endpoint rotary state;
  • the solved rotary axes in raw degrees on\n (wrapped afterwards by\n) — machine XYZ is not written\nhere; the shared composes it from\nProgramXyz × chain exactly like the NC pipeline.
\nWithout a solver (pure-CL ClMillingDevice project) this syntax is\ninert and the pipeline stays pure CL.\n

\nEntry Kind follows the block's posture: when the solved rotary\nendpoint cyclically equals the previous block's modal state the entries\nare (contour-valid), else\n (endpoint snapshot; path\ninterpolation stays in CL space with per-step IK in\n /\n). A\n block whose finished chain has no\nDynamic entry downgrades to — the same\n dispatch the NC\npipeline uses, where MC-linear and CL-linear tip paths coincide and\nper-step IK is unnecessary.\n

\n

\nWhen the endpoint cannot be solved (e.g. a tilted normal on a 3-axis\nmachine) the block's MotionEvent (and arc payload) is removed\ntogether with its ProgramXyz and transform chain — so\n composes nothing and the modal MC lookback\nskips the unreachable block — and a validation error anchors to the CLSF\nline; the machine holds position over the bad block.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.ClsfParsers.ClsfKeys.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.ClsfParsers.ClsfKeys.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.ClsfParsers.ClsfKeys", "Summary": "

JSON section names and keys specific to the NX-CL (CLSF) pipeline.\nGeneral sections shared with the NC/CSV pipelines\n(MotionEvent, Feedrate, SpindleSpeed, Coolant,\nToolChange) keep their contracts from\n /\n.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.ClsfParsers.ClsfRecordCleanupSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.ClsfParsers.ClsfRecordCleanupSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.ClsfParsers.ClsfRecordCleanupSyntax", "Summary": "

Inspection-stage tail of the CLSF record chain. A record that survived\nevery RecordTo* syntax is dispatched here:

\n
  • words in — intentional\nskips (PAINT, TOOL PATH, …), consumed silently;
  • UNITSMM is the pipeline's native unit (silent);\nanything else keeps running but warns that coordinates are not\nconverted;
  • SET_WORKPIECE — reported as ignored (the workpiece is\nproject-level configuration, not runner input);
  • anything else — ClsfRecord--Unconsumed validation\nwarning.
\nMust run after every other RecordTo* syntax.\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.ClsfParsers.ClsfRecordSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.ClsfParsers.ClsfRecordSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.ClsfParsers.ClsfRecordSyntax", "Summary": "

Per-record CLSF parsing syntax. Normalizes the block text (strips\n$$ comments, joins $ continuation lines), splits it into the\nrecord word and its comma-separated parameters, and stamps them into\n under for\nthe downstream RecordTo* syntaxes to consume. Numeric parameters\nare pre-typed to .

\n

\nThe word is everything before the first / with whitespace runs\ncollapsed — multi-word heads (TOOL PATH) and hyphenated records\nwithout parameters (END-OF-PATH) are single words, fixing the\nlegacy parser's first-token-only dispatch.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.ClsfParsers.ClsfRunnerConfig.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.ClsfParsers.ClsfRunnerConfig.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.ClsfParsers.ClsfRunnerConfig", "Summary": "

Configuration dependency for the NX-CL (CLSF) runner: the rapid traverse\nrate (a CLSF has no machine axes, so RAPID timing needs an assumed\nrate), the tool-creation policy, and the intentionally skipped record\nwords. Also serves as the pipeline's so\nthe machine-coordinate motion semantics reused from the NC pipeline\n(McLinearMotionSemantic, ClLinearMcMotionSemantic) time\nrapids from the same assumed rates — axis-uniform: every linear axis gets\n, every rotary axis\n.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.ClsfParsers.ClsfSegmenter.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.ClsfParsers.ClsfSegmenter.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.ClsfParsers.ClsfSegmenter", "Summary": "

Segments an NX CLSF (cutter location source file) stream for the\n pipeline. A record normally occupies one\nphysical line; a line whose text (after stripping the $$ comment)\nends with a single $ continues on the next line, so continued\nlines are joined into one multi-line for\n to parse.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.ClsfParsers.ClsfToolBuildSemantic.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.ClsfParsers.ClsfToolBuildSemantic.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.ClsfParsers.ClsfToolBuildSemantic", "Summary": "

Materializes a milling tool from the modal\n geometry (CLSF TLDATA/MILL)\ninto the when a ToolChange section\nrequests a tool id the house does not hold — CLSF files carry their own\ntool definitions, so a project does not need to pre-configure every tool.\nWith (default) an existing\nentry always wins. Emits no acts; must run before\n so the tool exists when the\ntooling act is executed.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.ClsfParsers.MsysCoordinateOffsetSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.ClsfParsers.MsysCoordinateOffsetSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.ClsfParsers.MsysCoordinateOffsetSyntax", "Summary": "

Expresses the modal CLSF MSYS frame in the NC pipeline's transform\nvocabulary on machine-coordinate motion blocks: the rotation part becomes\na entry (the G68.2\ntilted-work-plane analogue) and the translation part becomes a\n entry plus\n section (the G54 work-offset analogue,\nCoordinateId ) in\n. It also restores\nthe commanded — the MSYS-local\nGOTO point — from the workpiece-frame\n endpoint, so the shared\n composes machine XYZ exactly like the NC\npipeline: ProgramXyz × composed chain → MachineCoordinateState.

\n

\nEntry order carries the math: the MSYS matrix maps local points as\np·R + t (row-vector convention), so the rotation entry precedes\nthe translation entry. Both are\n — an MSYS is a fixed frame\nfor every point of the blocks it governs. The rotation entry is omitted\nfor a pure-translation MSYS (and for the absent-MSYS identity), keeping\nthe common dump exactly G54-shaped.\n

\n

\nInert without a wired kinematics solver (pure-CL ClMillingDevice\nproject) and on non-motion blocks: the pure-CL pipeline keeps its own CL\nvocabulary and must never receive ProgramXyz or a transform chain\n— would otherwise fabricate a\n and misroute the block to the\nmachine-coordinate semantics. \ncontinues the chain with the tool-height and kinematic-pivot entries.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.ClsfParsers.NxClRunner.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.ClsfParsers.NxClRunner.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.ClsfParsers.NxClRunner", "Summary": "

Factory for a that reads NX CLSF (cutter\nlocation source file) input. On a ClMillingDevice chain it\nresolves into pure-CL acts\n(ActClTeleport/ActClLinear/ActClArc); on an MC\nmachine (IXyzabcChain, detected through the wired\n) each motion block is expressed in\nthe NC pipeline's transform vocabulary —\n writes the MSYS work-offset\nentries plus ProgramXyz, \ninverse-solves the endpoint rotary state and writes the tool-height /\nkinematic-pivot entries, the shared composes\nMachineCoordinateState from ProgramXyz × chain — and\n routes the block to the\nmachine-coordinate semantics instead. The record chain maps each CLSF\nrecord into the same standardized JSON sections the NC/CSV pipelines\nuse (Feedrate, SpindleSpeed, Coolant,\nToolChange, MotionEvent), so the general semantics are\nreused unchanged; only the motion and tool-creation semantics are\nCLSF-specific.

\n

\nThe modal carry runs first in the record bundle (unlike the NC\npipeline's carry-at-the-end): each piece receives the previous block's\nmodal sections (Msys, CutterLocationState, tool data,\nfeedrate, …) before its own record is resolved, so a GOTO reads its\nbegin point and MSYS from its own piece and then overwrites the state\nwith the new endpoint.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.ClsfParsers.RecordToClMotionSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.ClsfParsers.RecordToClMotionSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.ClsfParsers.RecordToClMotionSyntax", "Summary": "

Translates the CLSF motion records into the pure-CL motion contract:

\n
  • RAPID → one-shot (armed\nuntil the next GOTO; a passed motion or FEDRAT cancels it).
  • CIRCLE/MOVARC → one-shot\n in workpiece coordinates, with the\nNX axis-direction negation applied.
  • GOTO → the modal \nendpoint (MSYS applied) plus a one-shot MotionEvent whose\nForm is (first motion, FROM,\nor first motion after a tool change),\n (an armed circle record), or\n; an arc GOTO also receives the\nconsumed circle geometry as .
\nRequires the pipeline's modal carry to run before this syntax on\neach node, so the previous endpoint / MSYS are already present on the\ncurrent piece when the GOTO is resolved.\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.ClsfParsers.RecordToCoolantSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.ClsfParsers.RecordToCoolantSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.ClsfParsers.RecordToCoolantSyntax", "Summary": "

Translates a COOLNT record into the standardized\n section consumed by the general\n:\nON/FLOOD,\nMIST, OFF →\n; other CLSF coolant modes fall back to flood\nwith a configuration warning.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.ClsfParsers.RecordToFeedrateSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.ClsfParsers.RecordToFeedrateSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.ClsfParsers.RecordToFeedrateSyntax", "Summary": "

Translates a FEDRAT record into the standardized modal\nFeedrate section (always G94 — mm/min) plus the one-shot\n marker that cancels a pending\n. Accepted dialects:\nFEDRAT/MMPM,1400, FEDRAT/1400,MMPM, FEDRAT/1400\n(MMPM assumed), and IPM (converted to mm/min).

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.ClsfParsers.RecordToMsysSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.ClsfParsers.RecordToMsysSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.ClsfParsers.RecordToMsysSyntax", "Summary": "

Translates an MSYS record into the modal \nsection. The record's nine fields are a translation vector plus the first\ntwo rows of a rotation matrix whose third row is their cross product; the\nsection stores the resulting 16-element row-major \nmapping tool-path coordinates to workpiece (absolute) coordinates.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.ClsfParsers.RecordToSpindleSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.ClsfParsers.RecordToSpindleSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.ClsfParsers.RecordToSpindleSyntax", "Summary": "

Translates a SPINDL record into the standardized\n section consumed by the general\n. Parameter order\nis tolerated (SPINDL/8000,RPM,CLW or SPINDL/RPM,8000,CLW):\nthe first numeric field is the rpm, a field containing CCLW selects\ncounter-clockwise, and SPINDL/OFF maps to\n.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.ClsfParsers.RecordToToolingSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.ClsfParsers.RecordToToolingSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.ClsfParsers.RecordToToolingSyntax", "Summary": "

Translates the CLSF tooling records:

\n
  • TLDATA/MILL,… → the modal \ngeometry section (kept for ); non-MILL\ntool types are reported and skipped.
  • LOAD/TOOL,n[,XOFF,x][,YOFF,y][,ZOFF,z] → the standardized\nToolChange section ()\nconsumed by the general\n;\n is set when the tool id\ndiffers from the previously loaded tool. Offsets are recorded\ninformationally (no consumer yet).
\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.ClsfParsers.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.ClsfParsers.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.ClsfParsers", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.CncBrand.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.CncBrand.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.CncBrand", "Summary": "

Represents different CNC controller brands supported by the system.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.CommentMark.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.CommentMark.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.CommentMark", "Summary": "

Enumeration of different comment mark types used in NC code.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.CoolantMode.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.CoolantMode.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.CoolantMode", "Summary": "

Cutting-fluid delivery mode parsed from typical NC coolant machine functions\n(e.g. M07 / M08 / M09). Values are consumed by higher-level machining simulation\nand thermal models that map each mode to convection and temperature assumptions.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.CoordinateInterpolationMode.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.CoordinateInterpolationMode.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.CoordinateInterpolationMode", "Summary": "

Defines the coordinate interpolation mode for NC operations.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.CsvParsers.CsvActDataSemantic.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.CsvParsers.CsvActDataSemantic.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.CsvParsers.CsvActDataSemantic", "Summary": "

CSV extension semantic: emits from the residual\nCsvRow columns — those not claimed by any RowTo*Syntax\n(tool id, spindle, feedrate, coolant, time, csscript) nor by the machine /\ncutter coordinate prefixes. A caller-supplied\n entry is applied to its\ncolumn's raw text; the rest pass through as their pre-typed\nnumber / bool / string. Carries arbitrary recorded channels\n(file/line bookkeeping, sensor columns, etc.) onto the step.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.CsvParsers.CsvActualTimeSemantic.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.CsvParsers.CsvActualTimeSemantic.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.CsvParsers.CsvActualTimeSemantic", "Summary": "

CSV extension semantic: emits from the\n cell of the decoded\nCsvRow. This is telemetry the general semantic list does not cover —\nthe absolute controller timestamp of the recorded sample. Stateless; the\nduration that consumes this timestamp is computed independently by\n via .

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.CsvParsers.CsvMotionSemantic.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.CsvParsers.CsvMotionSemantic.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.CsvParsers.CsvMotionSemantic", "Summary": "

CSV motion semantic — the recorded-duration counterpart of the general\n. Reads the same standardized sections\n(, ,\n) the general motion semantic reads, but derives\nthe move's duration from the recorded CSV timing\n() instead of feedrate × distance —\nbecause CSV is replayed telemetry where time is given, not computed.

\n

\nFirst coordinate row (no previous MC) → to the\npoint; subsequent rows → from the\nprevious point. The recorded feedrate is emitted as a standalone\n on change.\n

\n

\nBecause the upstream writes the full\ngeneral motion-section contract, this semantic can be replaced one-for-one\nwith to fall back to feedrate-derived\ntiming.\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 the downstream CSV syntaxes and semantics to consume.

\n

\nNumeric cells are pre-typed to (or )\nat this stage so downstream readers — including the CSV semantics' backwards\nwalk for the previous machine coordinate — touch native JSON numbers instead\nof re-parsing strings on every 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 the\nCSV row syntaxes/semantics 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.GeneralCsvRunner.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.CsvParsers.GeneralCsvRunner.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.CsvParsers.GeneralCsvRunner", "Summary": "

Factory for a that replays CSV telemetry through\nthe general-semantics architecture: a chain of small\nRowTo*Syntax classes maps each decoded CsvRow into the same\nstandardized JSON sections the brand-NC pipeline writes\n(SpindleSpeed, Feedrate, Coolant, CsScript,\nToolChange, MachineCoordinateState, MotionEvent), and a\nmostly-general semantic list resolves them into acts. A handful of CSV\nextension semantics cover telemetry the general list does not\n(, ,\n); tool changes ride the general\n (the tool jumps to its recorded\nposition — no modelled tool-changer cycle).

\n

\nThis is the flagship CSV runner — it superseded an earlier single-syntax /\nsingle-semantic pipeline.\n

\n

\nRecorded vs. computed timing. CSV is replayed telemetry, so\n uses the recorded sample duration\n(StepDuration / ActualTime delta) rather than\nfeedrate × distance. Because still\nwrites the full general motion-section contract, swapping\n for the general\n in \nflips the runner to feedrate-derived timing with no other change.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.CsvParsers.RowToCoolantSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.CsvParsers.RowToCoolantSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.CsvParsers.RowToCoolantSyntax", "Summary": "

Translates the coolant column of a decoded CsvRow into the\nstandardized section consumed by the general\n. The cell may hold a\nmode name ( / /\n) or a boolean / 0-1 on-off flag; an\nunrecognized value is a no-op.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.CsvParsers.RowToCsScriptSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.CsvParsers.RowToCsScriptSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.CsvParsers.RowToCsScriptSyntax", "Summary": "

Translates the begin/end C# script columns of a decoded CsvRow\n( /\n) into the standardized\n section consumed by the general\n /\n. Empty cells are\nskipped; an all-empty row is a no-op.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.CsvParsers.RowToFeedrateSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.CsvParsers.RowToFeedrateSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.CsvParsers.RowToFeedrateSyntax", "Summary": "

Translates the feedrate column of a decoded CsvRow into the\nstandardized section. CSV feedrate is recorded\nin mm/min, so the section is stamped with the\n (mm/min) term and its derived unit — the\nsame shape \nexpects.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.CsvParsers.RowToMachineCoordinateSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.CsvParsers.RowToMachineCoordinateSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.CsvParsers.RowToMachineCoordinateSyntax", "Summary": "

Translates the machine-coordinate columns of a decoded CsvRow\n(prefixed by , e.g.\nMC.XMC.C) into the standardized\n section.\nLinear axes (X/Y/Z) are millimetres; rotary axes (A/B/C) are raw degrees,\nmatching the convention \nwrites and \nreads (degrees → radians). Only axes actually present in the row are\nwritten; an all-absent row is a no-op.

\n

Must run before .

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.CsvParsers.RowToMotionEventSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.CsvParsers.RowToMotionEventSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.CsvParsers.RowToMotionEventSyntax", "Summary": "

Marks every CSV row that carries a\n section as a\n feed move by writing the standardized\n (+ modal )\nsections. This keeps the motion-section contract identical to the one the\ngeneral reads,\nso the CSV pipeline's (recorded-duration)\ncan be swapped for the general feedrate-derived semantic by changing only\nthe semantic list.

\n

\nCSV telemetry has no rapid concept, so \nis never set (feed move). Must run after\n.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.CsvParsers.RowToSpindleSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.CsvParsers.RowToSpindleSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.CsvParsers.RowToSpindleSyntax", "Summary": "

Translates the spindle columns of a decoded CsvRow into the\nstandardized section that the general\n consumes.\nReads (numeric) and\n (enum name); when only\nthe speed is present the direction defaults to\n (matching the legacy CSV behavior).

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.CsvParsers.RowToTimingSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.CsvParsers.RowToTimingSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.CsvParsers.RowToTimingSyntax", "Summary": "

Moves the recorded-timing columns of a decoded CsvRow\n( /\n) into a dedicated\nCsvTiming section, consuming them from CsvRow. The cells stay\nas raw strings (the source format may be a TimeSpan or\nDateTime literal); parsing happens later in\n. Having a syntax own the timing tags — like the\nother RowTo* syntaxes own their columns — is what lets\n treat whatever remains in CsvRow as\nresidual telemetry without a hard-coded consumed-key list.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.CsvParsers.RowToToolingSyntax.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.CsvParsers.RowToToolingSyntax.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.CsvParsers.RowToToolingSyntax", "Summary": "

Translates the tool-id column of a decoded CsvRow into the\nstandardized ToolChange section\n(). The active tool number is\nalways written; is set when the\ntool id differs from the previous row (including the first occurrence), so\nthe section both drives\n\n(teleport-on-change) and stays compatible with the general\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.HardNcRunner.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.FilePlayers.HardNcRunner.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.FilePlayers.HardNcRunner", "Summary": "

Provides functionality for running and processing NC code lines.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.FilePlayers.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.FilePlayers.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.FilePlayers", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.FlexDictionaryUtil.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.FlexDictionaryUtil.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.FlexDictionaryUtil", "Summary": "

Utility for flexible dictionary operations.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.HardNcComment.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.HardNcComment.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.HardNcComment", "Summary": "

Represents a comment in NC code.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.HardNcEnv.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.HardNcEnv.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.HardNcEnv", "Summary": "

Represents the numerical control environment containing configuration for CNC operations.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.HardNcLine.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.HardNcLine.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.HardNcLine", "Summary": "

Represents a line in the NC program with its associated data and operations.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.HardNcUtil.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.HardNcUtil.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.HardNcUtil", "Summary": "

Utility class for working with NC code.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.IFlexDictionaryHost-1.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.IFlexDictionaryHost-1.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.IFlexDictionaryHost", "Summary": "

Interface of .\nProvider of additional quantity source.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.IGetFeedrate.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.IGetFeedrate.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.IGetFeedrate", "Summary": "

Interface for retrieving feedrate information.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.IGetSpindleSpeed.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.IGetSpindleSpeed.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.IGetSpindleSpeed", "Summary": "

Interface for retrieving spindle speed and direction information.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.INcRunner.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.INcRunner.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.INcRunner", "Summary": "

NC runner — parses and executes NC program lines. Nc is the umbrella\nterm for any machine-readable control program (famous-brand controller\ncode, NX-CL, CSV): the same runner contract serves all of them, and\n names the kinds where they must be\ndistinguished.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.ISetFeedrate.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.ISetFeedrate.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.ISetFeedrate", "Summary": "

Interface for setting feedrate information.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.ISetSpindleSpeed.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.ISetSpindleSpeed.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.ISetSpindleSpeed", "Summary": "

Interface for setting spindle speed.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.MachiningMotionResolutionUtils.FeedPerCycleMachiningMotionResolution.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.MachiningMotionResolutionUtils.FeedPerCycleMachiningMotionResolution.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.MachiningMotionResolutionUtils.FeedPerCycleMachiningMotionResolution", "Summary": "

Automatic resolution by feed per spindle cycle.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.MachiningMotionResolutionUtils.FeedPerToothMachiningMotionResolution.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.MachiningMotionResolutionUtils.FeedPerToothMachiningMotionResolution.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.MachiningMotionResolutionUtils.FeedPerToothMachiningMotionResolution", "Summary": "

Automatic resolution by feed per tooth.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.MachiningMotionResolutionUtils.FixedMachiningMotionResolution.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.MachiningMotionResolutionUtils.FixedMachiningMotionResolution.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.MachiningMotionResolutionUtils.FixedMachiningMotionResolution", "Summary": "

Represents a fixed machining motion resolution with user-defined values.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.MachiningMotionResolutionUtils.IMachiningMotionResolution.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.MachiningMotionResolutionUtils.IMachiningMotionResolution.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.MachiningMotionResolutionUtils.IMachiningMotionResolution", "Summary": "

Interface of Machining Cycle Resolution.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.MachiningMotionResolutionUtils.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.MachiningMotionResolutionUtils.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.MachiningMotionResolutionUtils", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.MechNcUtil.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.MechNcUtil.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.MechNcUtil", "Summary": "

NC Utility.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.MillingToolOffsetTable.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.MillingToolOffsetTable.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.MillingToolOffsetTable", "Summary": "

Offset table for milling tool.\nThe key is Offset ID (H or D in NC code).

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.MillingToolOffsetTableRow.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.MillingToolOffsetTableRow.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.MillingToolOffsetTableRow", "Summary": "

Raw of

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcArgs.ArcNcArg.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcArgs.ArcNcArg.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcArgs.ArcNcArg", "Summary": "

Arc parameters for . Arc comes from G02,G03.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcArgs.G28Arg.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcArgs.G28Arg.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcArgs.G28Arg", "Summary": "

Represents arguments for the G28 command (Return to Reference Point).

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcArgs.Group07NcArg.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcArgs.Group07NcArg.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcArgs.Group07NcArg", "Summary": "

parameters of .\nRadius compensation.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcArgs.Group09NcArg.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcArgs.Group09NcArg.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcArgs.Group09NcArg", "Summary": "

NC Argument of NC Group09.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcArgs.HeidenhainCycleDef7Arg.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcArgs.HeidenhainCycleDef7Arg.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcArgs.HeidenhainCycleDef7Arg", "Summary": "

Argument of Heidenhain CYCL DEF 7. Datum Shift.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcArgs.HeidenhainPlaneSpatialArg.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcArgs.HeidenhainPlaneSpatialArg.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcArgs.HeidenhainPlaneSpatialArg", "Summary": "

Represents a Heidenhain spatial plane defined by rotation angles.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcArgs.IHeidenhainBlockCacheArg.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcArgs.IHeidenhainBlockCacheArg.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcArgs.IHeidenhainBlockCacheArg", "Summary": "

Interface for Heidenhain block cache arguments.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcArgs.IHeidenhainPlaneArg.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcArgs.IHeidenhainPlaneArg.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcArgs.IHeidenhainPlaneArg", "Summary": "

Interface for Heidenhain plane arguments.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcArgs.ITiltPlaneNcArg.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcArgs.ITiltPlaneNcArg.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcArgs.ITiltPlaneNcArg", "Summary": "

Interface of Tilt plane NC Arg. i.e. Group16 and Heidenhain Plane argument.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcArgs.NcArgCycle800.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcArgs.NcArgCycle800.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcArgs.NcArgCycle800", "Summary": "

Represents parameters for Siemens CYCLE800 (Plane Tilting / Swivel).

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcArgs.NcArgG68.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcArgs.NcArgG68.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcArgs.NcArgG68", "Summary": "

Represents arguments for G68 coordinate rotation command.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcArgs.NcArgG68p2.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcArgs.NcArgG68p2.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcArgs.NcArgG68p2", "Summary": "

Represents arguments for G68.2 three-dimensional coordinate conversion command.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcArgs.NcArgSiemensFrame.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcArgs.NcArgSiemensFrame.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcArgs.NcArgSiemensFrame", "Summary": "

Represents Siemens frame transformation (AROT/ROT/TRANS/ATRANS).\nSimilar to Heidenhain PLANE SPATIAL or FANUC G68.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcArgs.PausingNcArg.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcArgs.PausingNcArg.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcArgs.PausingNcArg", "Summary": "

Pausing, i.e. G04, parameters for .

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcArgs.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcArgs.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcArgs", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcFlag.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcFlag.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcFlag", "Summary": "

NC Flag.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcFlagUtil.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcFlagUtil.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcFlagUtil", "Summary": "

Utility class for working with NC flags and their lifecycle modes.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcGroup00.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcGroup00.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcGroup00", "Summary": "

NcGroup enum.\nGCode Group00.\nInclude ,,,,,.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcGroup01.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcGroup01.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcGroup01", "Summary": "

NcGroup enum.\nFor linear move mode: G00 or G01.\nG00 is rapid move.\nG01 is linear cut.\nG02 is CW cut; G03 is CCW cut.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcGroup02.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcGroup02.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcGroup02", "Summary": "

NcGroup enum.\nPlane selection.\nInclude ,,.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcGroup03.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcGroup03.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcGroup03", "Summary": "

NcGroup enum.\nAbsolute(G90) or increment(G91) coordinate.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcGroup05.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcGroup05.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcGroup05", "Summary": "

NcGroup enum.\nFor feedrate.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcGroup06.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcGroup06.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcGroup06", "Summary": "

NcGroup enum.\nGroup of unit.\nIn mm or in inch.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcGroup07.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcGroup07.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcGroup07", "Summary": "

NcGroup enum.\nLeft or right compensation for tool radius, etc..\nSee , , for available compensation modes.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcGroup08.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcGroup08.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcGroup08", "Summary": "

NcGroup enum.\nTool length compensation, etc..\n,,,,,,,.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcGroup09.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcGroup09.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcGroup09", "Summary": "

NcGroup enum.\nCanned cycle.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcGroup10.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcGroup10.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcGroup10", "Summary": "

NcGroup enum.\nCanned cycle return point.\n,.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcGroup13.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcGroup13.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcGroup13", "Summary": "

NC Group 13 for constant surface speed control.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcGroup14.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcGroup14.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcGroup14", "Summary": "

NcGroup enum.\nCoordinate system. Such as .

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcGroup15.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcGroup15.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcGroup15", "Summary": "

NcGroup enum.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcGroup16.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcGroup16.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcGroup16", "Summary": "

NcGroup enum.\nRotation plane related.\nInterface of get transformation.\nHeidenhain equivalent group is .

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcGroup21.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcGroup21.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcGroup21", "Summary": "

NcGroup enum.\nPolar coordinate interpolation mode.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcGroupAttribute.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcGroupAttribute.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcGroupAttribute", "Summary": "

NC Group Attribute.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcGroupHeidenhainM107M108.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcGroupHeidenhainM107M108.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcGroupHeidenhainM107M108", "Summary": "

NcGroup enum.\nHeidenhain group.\nEnable or disable Suppress error message for replacement tools with oversize.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcGroupHeidenhainPlane.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcGroupHeidenhainPlane.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcGroupHeidenhainPlane", "Summary": "

Heidenhain Group Plane related.\nISO equivalent group is .

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcGroupHeidenhainShortestRotaryPath.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcGroupHeidenhainShortestRotaryPath.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcGroupHeidenhainShortestRotaryPath", "Summary": "

NcGroup enum.\nHeidenhain group.\nshortest rotary state.\n,

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcGroupSpindleRotation.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcGroupSpindleRotation.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcGroupSpindleRotation", "Summary": "

NcGroup enum.\nSpindle rotation control.\nSee , , for available rotation modes.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcLifeCycleAttribute.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcLifeCycleAttribute.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcLifeCycleAttribute", "Summary": "

Attribute to specify the lifecycle mode of an NC flag.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcLifeCycleMode.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcLifeCycleMode.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcLifeCycleMode", "Summary": "

Defines the lifecycle mode of NC commands.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcNameAttribute.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcNameAttribute.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcNameAttribute", "Summary": "

Attribute used to define a name for NC flags and other enumeration fields.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcNoteCache.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcNoteCache.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcNoteCache", "Summary": "

Cache for notes and warnings generated during NC line parsing.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcProc.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcProc.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcProc", "Summary": "

Provides processing utilities for NC programming.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NcWarningSceneEnum.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NcWarningSceneEnum.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NcWarningSceneEnum", "Summary": "

Defines scene types for NC warnings.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.NumericUtil.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.NumericUtil.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.NumericUtil", "Summary": "

Utility class for numeric operations and unit conversions.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.PolarEntry.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.PolarEntry.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.PolarEntry", "Summary": "

The class for G12.1 Polar mode.\nIn G12.1 Polar mode, NC code applies (X,C) as (linear axis, hypothetical axis).\nXC, YA, ZB are available.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.RadiusCompensationBuf.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.RadiusCompensationBuf.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.RadiusCompensationBuf", "Summary": "

Buffer for radius compensation (G41/G42) operations in numerical control.

\n

\nAt each line junction, the offset paths of adjacent lines may form an intersection\n(intersected rays) or align directly (parallel rays). For straight lines, the tool\ngoes to the intersection point. For arcs, the offset curve doesn't pass through the\nintersection, so transient points bridge the gap:\nArc → TransientEnd → (linear) → Intersection → (linear) → TransientBegin → NextArc.\n

\n

\nTransient properties are null when rays are parallel (offset paths align, no corner needed)\nor when the adjacent line is not an arc.\n

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.SourcedActEntry.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.SourcedActEntry.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.SourcedActEntry", "Summary": "

Represents an entry containing a source command and its associated act.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.SpindleDirection.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.SpindleDirection.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.SpindleDirection", "Summary": "

Enumeration of spindle rotation directions.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.StepSelectionUtils.AnchorMode.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.StepSelectionUtils.AnchorMode.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.StepSelectionUtils.AnchorMode", "Summary": "

Defines the mode for anchoring boundaries when selecting steps.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.StepSelectionUtils.BoundSelector.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.StepSelectionUtils.BoundSelector.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.StepSelectionUtils.BoundSelector", "Summary": "

Mark on source command line for managing step.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.StepSelectionUtils.BoundSelectorHost.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.StepSelectionUtils.BoundSelectorHost.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.StepSelectionUtils.BoundSelectorHost", "Summary": "

Hosts bound selectors and manages step sections within a CL strip.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.StepSelectionUtils.BoundSelectorPair.BoundLocale.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.StepSelectionUtils.BoundSelectorPair.BoundLocale.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.StepSelectionUtils.BoundSelectorPair.BoundLocale", "Summary": "

Defines the location of a bound within the pair.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.StepSelectionUtils.BoundSelectorPair.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.StepSelectionUtils.BoundSelectorPair.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.StepSelectionUtils.BoundSelectorPair", "Summary": "

Represents a pair of bound selectors defining the beginning and end of a step section.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.StepSelectionUtils.BoundSelectorStepSectionBundle.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.StepSelectionUtils.BoundSelectorStepSectionBundle.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.StepSelectionUtils.BoundSelectorStepSectionBundle", "Summary": "

Represents a bundle containing a boundary selector pair and the corresponding step section range.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.StepSelectionUtils.BoundSelectorUtil.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.StepSelectionUtils.BoundSelectorUtil.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.StepSelectionUtils.BoundSelectorUtil", "Summary": "

Utility class for selecting steps within boundaries in a CL strip.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.StepSelectionUtils.DistanceShift.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.StepSelectionUtils.DistanceShift.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.StepSelectionUtils.DistanceShift", "Summary": "

A step shift implementation that shifts based on distance along the tool path.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.StepSelectionUtils.IStepShift.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.StepSelectionUtils.IStepShift.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.StepSelectionUtils.IStepShift", "Summary": "

Interface for defining step shift behavior.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.StepSelectionUtils.TimeShift.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.StepSelectionUtils.TimeShift.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.StepSelectionUtils.TimeShift", "Summary": "

Represents a time-based shift operation for machining steps.\nThis class provides functionality to shift step indices based on time offsets.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.StepSelectionUtils.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.StepSelectionUtils.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.StepSelectionUtils", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.SubStringKit.ActivationMode.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.SubStringKit.ActivationMode.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.SubStringKit.ActivationMode", "Summary": "

Defines the mode of activation for substring extraction.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.SubStringKit.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.SubStringKit.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.SubStringKit", "Summary": "

Utility class for extracting and manipulating substrings based on specific activation patterns.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.ToolConfigNotFoundException.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.ToolConfigNotFoundException.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.ToolConfigNotFoundException", "Summary": "

Exception thrown when a tool configuration cannot be found.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Xyzabc.Abc.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Xyzabc.Abc.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Xyzabc.Abc", "Summary": "

Represents a three-axis rotational configuration in ABC coordinates.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Xyzabc.CodeXyzabcChain.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Xyzabc.CodeXyzabcChain.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Xyzabc.CodeXyzabcChain", "Summary": "

Composed by .\nOn purpose of easy XML hand management.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Xyzabc.GeneralXyzabcChain.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Xyzabc.GeneralXyzabcChain.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Xyzabc.GeneralXyzabcChain", "Summary": "

Represents a general XYZABC chain that can be constructed from a general mechanism.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Xyzabc.IGetMcXyzabc.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Xyzabc.IGetMcXyzabc.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Xyzabc.IGetMcXyzabc", "Summary": "

Interface of .

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Xyzabc.IGetXyzabcChain.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Xyzabc.IGetXyzabcChain.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Xyzabc.IGetXyzabcChain", "Summary": "

Interface of get .

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Xyzabc.IMachineKinematics.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Xyzabc.IMachineKinematics.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Xyzabc.IMachineKinematics", "Summary": "

Device for UniNc controller.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Xyzabc.ISetMcXyzabc.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Xyzabc.ISetMcXyzabc.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Xyzabc.ISetMcXyzabc", "Summary": "

Abstraction for components that accept a full machine-coordinate pose (XYZ linear + ABC rotary).

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Xyzabc.IXyzabcChain.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Xyzabc.IXyzabcChain.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Xyzabc.IXyzabcChain", "Summary": "

A single chain contains subset transformers of {X,Y,Z,A,B,C} .

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Xyzabc.ReflectedXyzabcChain.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Xyzabc.ReflectedXyzabcChain.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Xyzabc.ReflectedXyzabcChain", "Summary": "

Cloned .

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Xyzabc.XyzabcSolver.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Xyzabc.XyzabcSolver.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Xyzabc.XyzabcSolver", "Summary": "

Support to two-way conversion between MC (machine coordinate) and NP (Normal and Point).

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Xyzabc.XyzabcUtil.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Xyzabc.XyzabcUtil.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Xyzabc.XyzabcUtil", "Summary": "

Utility of XYZABC device.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.Xyzabc.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.Xyzabc.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical.Xyzabc", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Numerical.yml", "output": { ".html": { "relative_path": "api/Hi.Numerical.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Numerical", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.PanelModels.HiKey.yml", "output": { ".html": { "relative_path": "api/Hi.PanelModels.HiKey.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.PanelModels.HiKey", "Summary": "

The definition is the same as WPF Key.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.PanelModels.HiKeyEvent.yml", "output": { ".html": { "relative_path": "api/Hi.PanelModels.HiKeyEvent.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.PanelModels.HiKeyEvent", "Summary": "

Cross platform key event.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.PanelModels.HiModifierKeys.yml", "output": { ".html": { "relative_path": "api/Hi.PanelModels.HiModifierKeys.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.PanelModels.HiModifierKeys", "Summary": "

The definition is the same as WPF ModifierKeys.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.PanelModels.HiMouseButton.yml", "output": { ".html": { "relative_path": "api/Hi.PanelModels.HiMouseButton.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.PanelModels.HiMouseButton", "Summary": "

The definition is the same as WPF MouseButton

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.PanelModels.HiMouseButtonEvent.yml", "output": { ".html": { "relative_path": "api/Hi.PanelModels.HiMouseButtonEvent.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.PanelModels.HiMouseButtonEvent", "Summary": "

Mouse button event for cross-platform.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.PanelModels.HiMouseButtonMask.yml", "output": { ".html": { "relative_path": "api/Hi.PanelModels.HiMouseButtonMask.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.PanelModels.HiMouseButtonMask", "Summary": "

Bit Mask of .

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.PanelModels.HiMouseButtonMaskUtil.yml", "output": { ".html": { "relative_path": "api/Hi.PanelModels.HiMouseButtonMaskUtil.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.PanelModels.HiMouseButtonMaskUtil", "Summary": "

Utility of .

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.PanelModels.HiMouseMoveEvent.yml", "output": { ".html": { "relative_path": "api/Hi.PanelModels.HiMouseMoveEvent.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.PanelModels.HiMouseMoveEvent", "Summary": "

Mouse event for cross-platform.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.PanelModels.HiMouseWheelEvent.yml", "output": { ".html": { "relative_path": "api/Hi.PanelModels.HiMouseWheelEvent.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.PanelModels.HiMouseWheelEvent", "Summary": "

Mouse wheel event for cross-platform.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.PanelModels.PanelModel.yml", "output": { ".html": { "relative_path": "api/Hi.PanelModels.PanelModel.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.PanelModels.PanelModel", "Summary": "

A panel model contains necessary data for manipulating a panel.\nIt is platform-neutral.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.PanelModels.yml", "output": { ".html": { "relative_path": "api/Hi.PanelModels.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.PanelModels", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Parallels.CurrentThreadTaskScheduler.yml", "output": { ".html": { "relative_path": "api/Hi.Parallels.CurrentThreadTaskScheduler.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Parallels.CurrentThreadTaskScheduler", "Summary": "

A task scheduler that executes tasks on the current thread.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Parallels.DistributedQueueTaskScheduler.yml", "output": { ".html": { "relative_path": "api/Hi.Parallels.DistributedQueueTaskScheduler.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Parallels.DistributedQueueTaskScheduler", "Summary": "

A task scheduler that distributes tasks across multiple threads or processes.\nAllows for controlled execution of tasks with a specified maximum concurrency level.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Parallels.DistributedQueueTaskStarter.yml", "output": { ".html": { "relative_path": "api/Hi.Parallels.DistributedQueueTaskStarter.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Parallels.DistributedQueueTaskStarter", "Summary": "

A class that manages and starts a collection of actions in parallel.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Parallels.LockUtil.yml", "output": { ".html": { "relative_path": "api/Hi.Parallels.LockUtil.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Parallels.LockUtil", "Summary": "

Utility class for object locking operations.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Parallels.PriorityTaskScheduler.yml", "output": { ".html": { "relative_path": "api/Hi.Parallels.PriorityTaskScheduler.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Parallels.PriorityTaskScheduler", "Summary": "

A task scheduler that executes tasks with a specified thread priority.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Parallels.QueueTaskScheduler.yml", "output": { ".html": { "relative_path": "api/Hi.Parallels.QueueTaskScheduler.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Parallels.QueueTaskScheduler", "Summary": "

A task scheduler that queues tasks and executes them in a controlled manner.\nLimits the number of concurrent tasks and provides mechanisms for waiting for all tasks to complete.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Parallels.ReaderWriterLockUtil.yml", "output": { ".html": { "relative_path": "api/Hi.Parallels.ReaderWriterLockUtil.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Parallels.ReaderWriterLockUtil", "Summary": "

Utility class for reader-writer lock operations.\nProvides extension methods for to simplify lock acquisition and release.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Parallels.SemaphoreUtil.yml", "output": { ".html": { "relative_path": "api/Hi.Parallels.SemaphoreUtil.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Parallels.SemaphoreUtil", "Summary": "

Utility class for semaphore operations.\nProvides extension methods for to simplify semaphore acquisition and release.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Parallels.ThreadSafeSet-1.yml", "output": { ".html": { "relative_path": "api/Hi.Parallels.ThreadSafeSet-1.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Parallels.ThreadSafeSet", "Summary": "

A thread-safe implementation of a set data structure.\nUses a reader-writer lock to synchronize access to the underlying HashSet.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Parallels.yml", "output": { ".html": { "relative_path": "api/Hi.Parallels.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Parallels", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Physics.AmpPhase.yml", "output": { ".html": { "relative_path": "api/Hi.Physics.AmpPhase.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Physics.AmpPhase", "Summary": "

Represents amplitude and phase information for wave-like phenomena.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Physics.CoatingMaterial.yml", "output": { ".html": { "relative_path": "api/Hi.Physics.CoatingMaterial.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Physics.CoatingMaterial", "Summary": "

Represents a coating material used in cutting tools.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Physics.CoolantHeatCondition.yml", "output": { ".html": { "relative_path": "api/Hi.Physics.CoolantHeatCondition.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Physics.CoolantHeatCondition", "Summary": "

Represents the heat condition parameters for coolant in machining operations.\nProvides effective convection-coefficient lookups keyed by\n — Flood uses the configured baseline\n; Mist scales it by\n; Off falls back to\n (natural/forced air).\nNamed standard presets (,\n, )\nbundle all coefficients so end users can pick a cooling type by name instead\nof entering convection coefficients; maps a\nconfigured instance back to the preset it equals.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Physics.CutterMaterial.yml", "output": { ".html": { "relative_path": "api/Hi.Physics.CutterMaterial.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Physics.CutterMaterial", "Summary": "

Represents a cutter material with physical and thermal properties.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Physics.IGetThermalLayerList.yml", "output": { ".html": { "relative_path": "api/Hi.Physics.IGetThermalLayerList.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Physics.IGetThermalLayerList", "Summary": "

Interface for objects that can provide a list of thermal layers.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Physics.IStructureMaterial.yml", "output": { ".html": { "relative_path": "api/Hi.Physics.IStructureMaterial.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Physics.IStructureMaterial", "Summary": "

Interface for structure materials with thermal properties.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Physics.ISuccessivePhysicsBriefAccessor.yml", "output": { ".html": { "relative_path": "api/Hi.Physics.ISuccessivePhysicsBriefAccessor.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Physics.ISuccessivePhysicsBriefAccessor", "Summary": "

Interface for accessing sequential physics brief information.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Physics.ISurfaceMaterial.yml", "output": { ".html": { "relative_path": "api/Hi.Physics.ISurfaceMaterial.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Physics.ISurfaceMaterial", "Summary": "

Interface for materials that can be used on surfaces.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Physics.ITimecoded.yml", "output": { ".html": { "relative_path": "api/Hi.Physics.ITimecoded.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Physics.ITimecoded", "Summary": "

Interface for objects that provide time information.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Physics.MillingTemperatureUtil.yml", "output": { ".html": { "relative_path": "api/Hi.Physics.MillingTemperatureUtil.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Physics.MillingTemperatureUtil", "Summary": "

Utility class for calculating and managing temperatures during milling operations.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Physics.SeqPhysicsBrief.yml", "output": { ".html": { "relative_path": "api/Hi.Physics.SeqPhysicsBrief.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Physics.SeqPhysicsBrief", "Summary": "

Represents a brief summary of physical properties and measurements during a machining sequence.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Physics.StructureMaterial.yml", "output": { ".html": { "relative_path": "api/Hi.Physics.StructureMaterial.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Physics.StructureMaterial", "Summary": "

Represents a material with physical and thermal properties used in structural analysis.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Physics.TemperatureUtil.yml", "output": { ".html": { "relative_path": "api/Hi.Physics.TemperatureUtil.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Physics.TemperatureUtil", "Summary": "

Utility class for temperature conversions.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Physics.TemperatureVsHardness.yml", "output": { ".html": { "relative_path": "api/Hi.Physics.TemperatureVsHardness.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Physics.TemperatureVsHardness", "Summary": "

Represents the relationship between temperature and hardness for materials.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Physics.ThermalLayer1D.yml", "output": { ".html": { "relative_path": "api/Hi.Physics.ThermalLayer1D.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Physics.ThermalLayer1D", "Summary": "

Represents a one-dimensional thermal layer for heat transfer calculations.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Physics.TimeSeriesUtil.yml", "output": { ".html": { "relative_path": "api/Hi.Physics.TimeSeriesUtil.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Physics.TimeSeriesUtil", "Summary": "

Utility class for time series data operations.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Physics.TimeValue.yml", "output": { ".html": { "relative_path": "api/Hi.Physics.TimeValue.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Physics.TimeValue", "Summary": "

Represents a value associated with a specific point in time.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Physics.WorkpieceMaterial.yml", "output": { ".html": { "relative_path": "api/Hi.Physics.WorkpieceMaterial.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Physics.WorkpieceMaterial", "Summary": "

Represents the physical and mechanical properties of a workpiece material.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Physics.yml", "output": { ".html": { "relative_path": "api/Hi.Physics.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Physics", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SessionCommands.CollisionDetectionCommand.yml", "output": { ".html": { "relative_path": "api/Hi.SessionCommands.CollisionDetectionCommand.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SessionCommands.CollisionDetectionCommand", "Summary": "

Command that turns collision detection on or off for the session. One of\nthe single-setting successors of the legacy \nbundle.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SessionCommands.CommandCatalogAttribute.yml", "output": { ".html": { "relative_path": "api/Hi.SessionCommands.CommandCatalogAttribute.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SessionCommands.CommandCatalogAttribute", "Summary": "

Marks an as user-addable: GUIs build their\n“Add Command” catalog from the commands carrying this attribute, grouped\nby . A command WITHOUT this attribute stays loadable\nfrom project files (its Reg registration is unaffected) but is not\noffered for creation.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SessionCommands.CommandCategory.yml", "output": { ".html": { "relative_path": "api/Hi.SessionCommands.CommandCategory.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SessionCommands.CommandCategory", "Summary": "

Category of a session command in user-facing command catalogs (the GUI\n“Add Command” listings). Declaration order is the display order.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SessionCommands.CommandFieldAttribute.yml", "output": { ".html": { "relative_path": "api/Hi.SessionCommands.CommandFieldAttribute.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SessionCommands.CommandFieldAttribute", "Summary": "

Marks a session-command property as a directly editable scalar field, so\ngeneric editors (e.g. the web UI's fallback command panel) can render and\nupdate it without a hand-written per-command editor. Supported property\ntypes: , , and\n.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SessionCommands.EnablingWrapper.yml", "output": { ".html": { "relative_path": "api/Hi.SessionCommands.EnablingWrapper.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SessionCommands.EnablingWrapper", "Summary": "

Wrapper for session commands that provides enable/disable functionality.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SessionCommands.ExportMeshedGeomToStlCommand.yml", "output": { ".html": { "relative_path": "api/Hi.SessionCommands.ExportMeshedGeomToStlCommand.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SessionCommands.ExportMeshedGeomToStlCommand", "Summary": "

Command to call .

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SessionCommands.GeomDiffCommand.yml", "output": { ".html": { "relative_path": "api/Hi.SessionCommands.GeomDiffCommand.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SessionCommands.GeomDiffCommand", "Summary": "

Command for calculating geometric differences between workpieces.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SessionCommands.ISessionCommand.yml", "output": { ".html": { "relative_path": "api/Hi.SessionCommands.ISessionCommand.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SessionCommands.ISessionCommand", "Summary": "

Interface for commands that can be executed in a machining session.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SessionCommands.ITitleCommand.yml", "output": { ".html": { "relative_path": "api/Hi.SessionCommands.ITitleCommand.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SessionCommands.ITitleCommand", "Summary": "

with title.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SessionCommands.Lang.yml", "output": { ".html": { "relative_path": "api/Hi.SessionCommands.Lang.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SessionCommands.Lang", "Summary": "

Language package class for command flow.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SessionCommands.ListCommand.yml", "output": { ".html": { "relative_path": "api/Hi.SessionCommands.ListCommand.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SessionCommands.ListCommand", "Summary": "

A command that contains and executes a list of other commands.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SessionCommands.MachiningMotionResolutionCommand.yml", "output": { ".html": { "relative_path": "api/Hi.SessionCommands.MachiningMotionResolutionCommand.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SessionCommands.MachiningMotionResolutionCommand", "Summary": "

Command for setting machining motion resolution for the milling process.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SessionCommands.MachiningResolutionCommand.yml", "output": { ".html": { "relative_path": "api/Hi.SessionCommands.MachiningResolutionCommand.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SessionCommands.MachiningResolutionCommand", "Summary": "

Command that sets the session's machining resolution — the meshing\nresolution of material removal. One of the single-setting successors of\nthe legacy bundle.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SessionCommands.NcCodeCommand.yml", "output": { ".html": { "relative_path": "api/Hi.SessionCommands.NcCodeCommand.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SessionCommands.NcCodeCommand", "Summary": "

Command for executing NC code directly.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SessionCommands.NcFileCommand.yml", "output": { ".html": { "relative_path": "api/Hi.SessionCommands.NcFileCommand.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SessionCommands.NcFileCommand", "Summary": "

Command for executing an NC program file (Nc is the umbrella term:\nbrand controller code, NX-CL or CSV). The runner is picked by\n\n(the default) detects by file extension: .cl/.cls/.clsf\nplay as NX-CL, .csv as CSV, anything else as brand NC code.\nThe GUI labels it “Program File”.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SessionCommands.NcOptOptionCommand.yml", "output": { ".html": { "relative_path": "api/Hi.SessionCommands.NcOptOptionCommand.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SessionCommands.NcOptOptionCommand", "Summary": "

Command for NC optimization options.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SessionCommands.OptimizeToFilesCommand.yml", "output": { ".html": { "relative_path": "api/Hi.SessionCommands.OptimizeToFilesCommand.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SessionCommands.OptimizeToFilesCommand", "Summary": "

Command to call .

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SessionCommands.PauseOnFailureCommand.yml", "output": { ".html": { "relative_path": "api/Hi.SessionCommands.PauseOnFailureCommand.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SessionCommands.PauseOnFailureCommand", "Summary": "

Command that turns pause-on-failure on or off for the session. One of the\nsingle-setting successors of the legacy \nbundle.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SessionCommands.PhysicsCommand.yml", "output": { ".html": { "relative_path": "api/Hi.SessionCommands.PhysicsCommand.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SessionCommands.PhysicsCommand", "Summary": "

Command that turns physics simulation on or off for the session. One of\nthe single-setting successors of the legacy \nbundle.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SessionCommands.PostExecutionCommand.yml", "output": { ".html": { "relative_path": "api/Hi.SessionCommands.PostExecutionCommand.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SessionCommands.PostExecutionCommand", "Summary": "

Command for post-execution actions after NC command running.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SessionCommands.PreSettingCommand.yml", "output": { ".html": { "relative_path": "api/Hi.SessionCommands.PreSettingCommand.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SessionCommands.PreSettingCommand", "Summary": "

Legacy bundle of pre-settings applied before NC command running,\nsuperseded by the single-setting commands (machining resolution, motion\nresolution, collision detection, pause on failure, physics). Loading a\nproject expands a saved instance into those commands via\n; saving never writes the bundle back. The\nclass stays functional for API callers that construct it directly.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SessionCommands.RecordMeshedGeomActionEnum.yml", "output": { ".html": { "relative_path": "api/Hi.SessionCommands.RecordMeshedGeomActionEnum.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SessionCommands.RecordMeshedGeomActionEnum", "Summary": "

Action of the .

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SessionCommands.RecordMeshedGeomCommand.yml", "output": { ".html": { "relative_path": "api/Hi.SessionCommands.RecordMeshedGeomCommand.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SessionCommands.RecordMeshedGeomCommand", "Summary": "

Command for recording meshed geometry to/from file.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SessionCommands.ScriptCommand.yml", "output": { ".html": { "relative_path": "api/Hi.SessionCommands.ScriptCommand.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SessionCommands.ScriptCommand", "Summary": "

Command for executing C# scripts in the milling process.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SessionCommands.WriteShotFilesCommand.yml", "output": { ".html": { "relative_path": "api/Hi.SessionCommands.WriteShotFilesCommand.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SessionCommands.WriteShotFilesCommand", "Summary": "

Command to call .

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SessionCommands.WriteStepFilesCommand.yml", "output": { ".html": { "relative_path": "api/Hi.SessionCommands.WriteStepFilesCommand.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SessionCommands.WriteStepFilesCommand", "Summary": "

Command to call .

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SessionCommands.yml", "output": { ".html": { "relative_path": "api/Hi.SessionCommands.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SessionCommands", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SessionShellUtils.ISessionShell.yml", "output": { ".html": { "relative_path": "api/Hi.SessionShellUtils.ISessionShell.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SessionShellUtils.ISessionShell", "Summary": "

Interface for C# scripting API functionality.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SessionShellUtils.JsAceAttribute.yml", "output": { ".html": { "relative_path": "api/Hi.SessionShellUtils.JsAceAttribute.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SessionShellUtils.JsAceAttribute", "Summary": "

Attribute for JavaScript Ace editor integration.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SessionShellUtils.yml", "output": { ".html": { "relative_path": "api/Hi.SessionShellUtils.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SessionShellUtils", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SqliteUtils.SqliteIdentityRole.yml", "output": { ".html": { "relative_path": "api/Hi.SqliteUtils.SqliteIdentityRole.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SqliteUtils.SqliteIdentityRole", "Summary": "

Base class for SQLite-based identity roles.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SqliteUtils.SqliteIdentityStorage.RoleRow.yml", "output": { ".html": { "relative_path": "api/Hi.SqliteUtils.SqliteIdentityStorage.RoleRow.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SqliteUtils.SqliteIdentityStorage.RoleRow", "Summary": "

Represents a role row in the database.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SqliteUtils.SqliteIdentityStorage.UserRow.yml", "output": { ".html": { "relative_path": "api/Hi.SqliteUtils.SqliteIdentityStorage.UserRow.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SqliteUtils.SqliteIdentityStorage.UserRow", "Summary": "

Represents a user row in the database.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SqliteUtils.SqliteIdentityStorage.yml", "output": { ".html": { "relative_path": "api/Hi.SqliteUtils.SqliteIdentityStorage.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SqliteUtils.SqliteIdentityStorage", "Summary": "

SQLite-based storage for ASP.NET Core Identity.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SqliteUtils.SqliteIdentityUser.yml", "output": { ".html": { "relative_path": "api/Hi.SqliteUtils.SqliteIdentityUser.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SqliteUtils.SqliteIdentityUser", "Summary": "

Base class for SQLite-based identity users.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SqliteUtils.SqliteRoleStore-1.yml", "output": { ".html": { "relative_path": "api/Hi.SqliteUtils.SqliteRoleStore-1.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SqliteUtils.SqliteRoleStore", "Summary": "

SQLite-based role store for ASP.NET Core Identity.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SqliteUtils.SqliteStepStorage.MillingStepLuggageRow.yml", "output": { ".html": { "relative_path": "api/Hi.SqliteUtils.SqliteStepStorage.MillingStepLuggageRow.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SqliteUtils.SqliteStepStorage.MillingStepLuggageRow", "Summary": "

Represents a milling step luggage row in the database.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SqliteUtils.SqliteStepStorage.yml", "output": { ".html": { "relative_path": "api/Hi.SqliteUtils.SqliteStepStorage.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SqliteUtils.SqliteStepStorage", "Summary": "

SQLite-based storage for milling step data.\nMillingStepLuggage data.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SqliteUtils.SqliteUserStore-1.yml", "output": { ".html": { "relative_path": "api/Hi.SqliteUtils.SqliteUserStore-1.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SqliteUtils.SqliteUserStore", "Summary": "

SQLite-based user store for ASP.NET Core Identity.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.SqliteUtils.yml", "output": { ".html": { "relative_path": "api/Hi.SqliteUtils.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.SqliteUtils", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Test.TestCollision.yml", "output": { ".html": { "relative_path": "api/Hi.Test.TestCollision.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Test.TestCollision", "Summary": "

For internal.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Test.yml", "output": { ".html": { "relative_path": "api/Hi.Test.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Test", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.UiExtensions.ChartBoundary.yml", "output": { ".html": { "relative_path": "api/Hi.UiExtensions.ChartBoundary.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.UiExtensions.ChartBoundary", "Summary": "

Boundary of Chart

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.UiExtensions.ChartBoundaryEnum.yml", "output": { ".html": { "relative_path": "api/Hi.UiExtensions.ChartBoundaryEnum.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.UiExtensions.ChartBoundaryEnum", "Summary": "

Enum control .

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.UiExtensions.NativeVisibility.yml", "output": { ".html": { "relative_path": "api/Hi.UiExtensions.NativeVisibility.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.UiExtensions.NativeVisibility", "Summary": "

Enumeration representing visibility states for UI elements.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.UiExtensions.UiUtil.InvokeFunc.yml", "output": { ".html": { "relative_path": "api/Hi.UiExtensions.UiUtil.InvokeFunc.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.UiExtensions.UiUtil.InvokeFunc", "Summary": "

Delegate for invoking methods asynchronously or synchronously.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.UiExtensions.UiUtil.yml", "output": { ".html": { "relative_path": "api/Hi.UiExtensions.UiUtil.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.UiExtensions.UiUtil", "Summary": "

The member should be initial for application begin.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.UiExtensions.yml", "output": { ".html": { "relative_path": "api/Hi.UiExtensions.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.UiExtensions", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Vibrations.AngularVelocityUtil.yml", "output": { ".html": { "relative_path": "api/Hi.Vibrations.AngularVelocityUtil.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Vibrations.AngularVelocityUtil", "Summary": "

Provides utility methods for working with angular velocity.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Vibrations.ForceAccelAmpPhase.yml", "output": { ".html": { "relative_path": "api/Hi.Vibrations.ForceAccelAmpPhase.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Vibrations.ForceAccelAmpPhase", "Summary": "

Represents amplitude and phase information for force and acceleration in vibration analysis.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Vibrations.ForceAccelFourierSeries.yml", "output": { ".html": { "relative_path": "api/Hi.Vibrations.ForceAccelFourierSeries.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Vibrations.ForceAccelFourierSeries", "Summary": "

Represents Fourier series data for force and acceleration measurements in three dimensions.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Vibrations.ForceAccelShot.yml", "output": { ".html": { "relative_path": "api/Hi.Vibrations.ForceAccelShot.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Vibrations.ForceAccelShot", "Summary": "

Represents a data point containing force, acceleration, and moment measurements at a specific time.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Vibrations.ForceAccelUtil.yml", "output": { ".html": { "relative_path": "api/Hi.Vibrations.ForceAccelUtil.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Vibrations.ForceAccelUtil", "Summary": "

Utility class for force and acceleration data processing.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Vibrations.IAngularVelocityOwner.yml", "output": { ".html": { "relative_path": "api/Hi.Vibrations.IAngularVelocityOwner.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Vibrations.IAngularVelocityOwner", "Summary": "

Provides functionality for objects that have an angular velocity property.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Vibrations.VibrationUtil.yml", "output": { ".html": { "relative_path": "api/Hi.Vibrations.VibrationUtil.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Vibrations.VibrationUtil", "Summary": "

Utility class for vibration analysis and processing.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Vibrations.WAmpPhase.yml", "output": { ".html": { "relative_path": "api/Hi.Vibrations.WAmpPhase.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Vibrations.WAmpPhase", "Summary": "

Represents amplitude and phase information with angular velocity.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Vibrations.WAmpPhaseXyzTransformation.yml", "output": { ".html": { "relative_path": "api/Hi.Vibrations.WAmpPhaseXyzTransformation.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Vibrations.WAmpPhaseXyzTransformation", "Summary": "

Represents amplitude and phase information with angular velocity for XYZ transformations.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.Vibrations.yml", "output": { ".html": { "relative_path": "api/Hi.Vibrations.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.Vibrations", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.WinForm.Disp.RenderingCanvas.yml", "output": { ".html": { "relative_path": "api/Hi.WinForm.Disp.RenderingCanvas.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.WinForm.Disp.RenderingCanvas", "Summary": "

Window Form Displayer.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.WinForm.Disp.RenderingForm.yml", "output": { ".html": { "relative_path": "api/Hi.WinForm.Disp.RenderingForm.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.WinForm.Disp.RenderingForm", "Summary": "

A contains .\nThis class is usually used for debug due to its simplicity.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.WinForm.Disp.yml", "output": { ".html": { "relative_path": "api/Hi.WinForm.Disp.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.WinForm.Disp", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/Hi.WpfPlus.Disp.RenderingCanvas.yml", "output": { ".html": { "relative_path": "api/Hi.WpfPlus.Disp.RenderingCanvas.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.WpfPlus.Disp.RenderingCanvas", "Summary": "

Provides a WPF rendering canvas for 3D visualization of HiAPI components.\nHandles user interactions, rendering, and integration with the DispEngine system.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.WpfPlus.Disp.RenderingWindow.yml", "output": { ".html": { "relative_path": "api/Hi.WpfPlus.Disp.RenderingWindow.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.WpfPlus.Disp.RenderingWindow", "Summary": "

Window for 3D rendering.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.WpfPlus.Disp.WpfDispUtil.yml", "output": { ".html": { "relative_path": "api/Hi.WpfPlus.Disp.WpfDispUtil.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.WpfPlus.Disp.WpfDispUtil", "Summary": "

Registers WPF as the display framework for ,\nsupporting multiple windows identified by key.

\n" }, { "type": "ManagedReference", "source_relative_path": "api/Hi.WpfPlus.Disp.yml", "output": { ".html": { "relative_path": "api/Hi.WpfPlus.Disp.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Hi.WpfPlus.Disp", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "api/HiMachining.Milling.ClMillingDevice.yml", "output": { ".html": { "relative_path": "api/HiMachining.Milling.ClMillingDevice.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "HiMachining.Milling.ClMillingDevice", "Summary": "

A milling device driven by CL(Cutter Location).

\n" }, { "type": "ManagedReference", "source_relative_path": "api/HiMachining.Milling.yml", "output": { ".html": { "relative_path": "api/HiMachining.Milling.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "HiMachining.Milling", "Summary": null }, { "type": "Toc", "source_relative_path": "api/toc.yml", "output": { ".html": { "relative_path": "api/toc.html" }, ".json": { "relative_path": "api/toc.json" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/common/dictionary-service-pattern.md", "output": { ".html": { "relative_path": "app-anatomy/common/dictionary-service-pattern.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/common/webapi-with-hub-cleanup-assistence-pattern.md", "output": { ".html": { "relative_path": "app-anatomy/common/webapi-with-hub-cleanup-assistence-pattern.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/controller/index.md", "output": { ".html": { "relative_path": "app-anatomy/controller/index.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/controller/web-implementation.md", "output": { ".html": { "relative_path": "app-anatomy/controller/web-implementation.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/general-rules.md", "output": { ".html": { "relative_path": "app-anatomy/general-rules.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/geom/box3d-control.md", "output": { ".html": { "relative_path": "app-anatomy/geom/box3d-control.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/geom/cylindroid-control.md", "output": { ".html": { "relative_path": "app-anatomy/geom/cylindroid-control.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/geom/extended-cylinder-panel.md", "output": { ".html": { "relative_path": "app-anatomy/geom/extended-cylinder-panel.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/geom/geom-combination-control.md", "output": { ".html": { "relative_path": "app-anatomy/geom/geom-combination-control.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/geom/geom-manage-control.md", "output": { ".html": { "relative_path": "app-anatomy/geom/geom-manage-control.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/geom/index.md", "output": { ".html": { "relative_path": "app-anatomy/geom/index.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/geom/meshed-geom-panel.md", "output": { ".html": { "relative_path": "app-anatomy/geom/meshed-geom-panel.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/geom/stlfile-control.md", "output": { ".html": { "relative_path": "app-anatomy/geom/stlfile-control.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/geom/transformation-geom-control.md", "output": { ".html": { "relative_path": "app-anatomy/geom/transformation-geom-control.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/hinc-web-service/disp-web-service.md", "output": { ".html": { "relative_path": "app-anatomy/hinc-web-service/disp-web-service.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/index.md", "output": { ".html": { "relative_path": "app-anatomy/index.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/initialize-hiapi.md", "output": { ".html": { "relative_path": "app-anatomy/initialize-hiapi.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/main-panel.md", "output": { ".html": { "relative_path": "app-anatomy/main-panel.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/mech/background-coolant-page.md", "output": { ".html": { "relative_path": "app-anatomy/mech/background-coolant-page.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/mech/cutter/apt-profile-panel.md", "output": { ".html": { "relative_path": "app-anatomy/mech/cutter/apt-profile-panel.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/mech/cutter/freeform-remover-panel.md", "output": { ".html": { "relative_path": "app-anatomy/mech/cutter/freeform-remover-panel.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/mech/cutter/index.md", "output": { ".html": { "relative_path": "app-anatomy/mech/cutter/index.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/mech/cutter/milling-cutter-panel.md", "output": { ".html": { "relative_path": "app-anatomy/mech/cutter/milling-cutter-panel.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/mech/fixture-page.md", "output": { ".html": { "relative_path": "app-anatomy/mech/fixture-page.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/mech/holder/cylindroid-holder-panel.md", "output": { ".html": { "relative_path": "app-anatomy/mech/holder/cylindroid-holder-panel.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/mech/holder/freeform-holder-panel.md", "output": { ".html": { "relative_path": "app-anatomy/mech/holder/freeform-holder-panel.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/mech/holder/index.md", "output": { ".html": { "relative_path": "app-anatomy/mech/holder/index.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/mech/machining-chain-page.md", "output": { ".html": { "relative_path": "app-anatomy/mech/machining-chain-page.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/mech/mech-builder-page.md", "output": { ".html": { "relative_path": "app-anatomy/mech/mech-builder-page.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/mech/spindle-capability-page.md", "output": { ".html": { "relative_path": "app-anatomy/mech/spindle-capability-page.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/mech/stick-tool-panel/index.md", "output": { ".html": { "relative_path": "app-anatomy/mech/stick-tool-panel/index.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/mech/tool-house-page.md", "output": { ".html": { "relative_path": "app-anatomy/mech/tool-house-page.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/mech/topo/transformers.md", "output": { ".html": { "relative_path": "app-anatomy/mech/topo/transformers.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/mech/workpiece-page.md", "output": { ".html": { "relative_path": "app-anatomy/mech/workpiece-page.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/message-section-on-main-panel.md", "output": { ".html": { "relative_path": "app-anatomy/message-section-on-main-panel.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/mission/ListCommand-panel.md", "output": { ".html": { "relative_path": "app-anatomy/mission/ListCommand-panel.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/mission/NcCodeCommand-panel.md", "output": { ".html": { "relative_path": "app-anatomy/mission/NcCodeCommand-panel.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/mission/NcFileCommand-panel.md", "output": { ".html": { "relative_path": "app-anatomy/mission/NcFileCommand-panel.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/mission/NcOptOption-panel.md", "output": { ".html": { "relative_path": "app-anatomy/mission/NcOptOption-panel.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/mission/PostExecutionCommand-panel.md", "output": { ".html": { "relative_path": "app-anatomy/mission/PostExecutionCommand-panel.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/mission/PreSettingCommand-panel.md", "output": { ".html": { "relative_path": "app-anatomy/mission/PreSettingCommand-panel.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/mission/index.md", "output": { ".html": { "relative_path": "app-anatomy/mission/index.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/mission/script-command-panel.md", "output": { ".html": { "relative_path": "app-anatomy/mission/script-command-panel.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/player/cycle-line-charts.md", "output": { ".html": { "relative_path": "app-anatomy/player/cycle-line-charts.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/player/index.md", "output": { ".html": { "relative_path": "app-anatomy/player/index.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/player/player-extended-renderingcanvas-tool-bar.md", "output": { ".html": { "relative_path": "app-anatomy/player/player-extended-renderingcanvas-tool-bar.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/player/player-tool-bar.md", "output": { ".html": { "relative_path": "app-anatomy/player/player-tool-bar.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/player/selected-step-info-panel.md", "output": { ".html": { "relative_path": "app-anatomy/player/selected-step-info-panel.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/player/strip-charts.md", "output": { ".html": { "relative_path": "app-anatomy/player/strip-charts.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/preference/graphic-cache-dropdown.md", "output": { ".html": { "relative_path": "app-anatomy/preference/graphic-cache-dropdown.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/preference/index.md", "output": { ".html": { "relative_path": "app-anatomy/preference/index.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/preference/language-selection-submenu.md", "output": { ".html": { "relative_path": "app-anatomy/preference/language-selection-submenu.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/preference/step-present-preference-page.md", "output": { ".html": { "relative_path": "app-anatomy/preference/step-present-preference-page.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/renderingcanvas-tool-bar.md", "output": { ".html": { "relative_path": "app-anatomy/renderingcanvas-tool-bar.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/session-message-panel/index.md", "output": { ".html": { "relative_path": "app-anatomy/session-message-panel/index.html" } }, "version": "" }, { "type": "Toc", "source_relative_path": "app-anatomy/toc.yml", "output": { ".html": { "relative_path": "app-anatomy/toc.html" }, ".json": { "relative_path": "app-anatomy/toc.json" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/translation-remarks.md", "output": { ".html": { "relative_path": "app-anatomy/translation-remarks.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/unused/machine-tool-panel.md", "output": { ".html": { "relative_path": "app-anatomy/unused/machine-tool-panel.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/util/file-explorer.md", "output": { ".html": { "relative_path": "app-anatomy/util/file-explorer.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/util/index.md", "output": { ".html": { "relative_path": "app-anatomy/util/index.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/widget/gui-file-path-assignment.md", "output": { ".html": { "relative_path": "app-anatomy/widget/gui-file-path-assignment.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/widget/mat4d/index.md", "output": { ".html": { "relative_path": "app-anatomy/widget/mat4d/index.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/widget/numeric-io-utilities.md", "output": { ".html": { "relative_path": "app-anatomy/widget/numeric-io-utilities.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/widget/object-management-menu-button.md", "output": { ".html": { "relative_path": "app-anatomy/widget/object-management-menu-button.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/widget/polar-resolution-2d-panel.md", "output": { ".html": { "relative_path": "app-anatomy/widget/polar-resolution-2d-panel.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/widget/resizable-bar.md", "output": { ".html": { "relative_path": "app-anatomy/widget/resizable-bar.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "app-anatomy/widget/vec3d/index.md", "output": { ".html": { "relative_path": "app-anatomy/widget/vec3d/index.html" } }, "version": "" }, { "type": "Resource", "source_relative_path": "docfx-build.log.json", "output": { "resource": { "relative_path": "docfx-build.log.json" } }, "version": "" }, { "type": "Resource", "source_relative_path": "docfx.json", "output": { "resource": { "relative_path": "docfx.json" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "fundamentals/common/message-management.md", "output": { ".html": { "relative_path": "fundamentals/common/message-management.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "fundamentals/common/xml-io.md", "output": { ".html": { "relative_path": "fundamentals/common/xml-io.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "fundamentals/general-hinc-workflow/index.md", "output": { ".html": { "relative_path": "fundamentals/general-hinc-workflow/index.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "fundamentals/geom/basic-geometry.md", "output": { ".html": { "relative_path": "fundamentals/geom/basic-geometry.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "fundamentals/getting-started/index.md", "output": { ".html": { "relative_path": "fundamentals/getting-started/index.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "fundamentals/index.md", "output": { ".html": { "relative_path": "fundamentals/index.html" } }, "version": "" }, { "type": "Resource", "source_relative_path": "fundamentals/mechanism/Topo/chain.png", "output": { "resource": { "relative_path": "fundamentals/mechanism/Topo/chain.png" } }, "version": "" }, { "type": "Resource", "source_relative_path": "fundamentals/mechanism/Topo/chainLink.png", "output": { "resource": { "relative_path": "fundamentals/mechanism/Topo/chainLink.png" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "fundamentals/mechanism/Topo/index.md", "output": { ".html": { "relative_path": "fundamentals/mechanism/Topo/index.html" } }, "version": "" }, { "type": "Resource", "source_relative_path": "fundamentals/mechanism/Topo/vmt.png", "output": { "resource": { "relative_path": "fundamentals/mechanism/Topo/vmt.png" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "fundamentals/mechanism/index.md", "output": { ".html": { "relative_path": "fundamentals/mechanism/index.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "fundamentals/mechanism/render-topology/index.md", "output": { ".html": { "relative_path": "fundamentals/mechanism/render-topology/index.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "fundamentals/mechanism/transformers/index.md", "output": { ".html": { "relative_path": "fundamentals/mechanism/transformers/index.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "fundamentals/nc-parsing/index.md", "output": { ".html": { "relative_path": "fundamentals/nc-parsing/index.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "fundamentals/rendering/color-guide/index.md", "output": { ".html": { "relative_path": "fundamentals/rendering/color-guide/index.html" } }, "version": "" }, { "type": "Resource", "source_relative_path": "fundamentals/rendering/drawing/easydraw_lines.png", "output": { "resource": { "relative_path": "fundamentals/rendering/drawing/easydraw_lines.png" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "fundamentals/rendering/drawing/index.md", "output": { ".html": { "relative_path": "fundamentals/rendering/drawing/index.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "fundamentals/rendering/index.md", "output": { ".html": { "relative_path": "fundamentals/rendering/index.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "fundamentals/rendering/rendering-canvas/custom-implementation.md", "output": { ".html": { "relative_path": "fundamentals/rendering/rendering-canvas/custom-implementation.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "fundamentals/rendering/rendering-canvas/index.md", "output": { ".html": { "relative_path": "fundamentals/rendering/rendering-canvas/index.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "fundamentals/system-requirements.md", "output": { ".html": { "relative_path": "fundamentals/system-requirements.html" } }, "version": "" }, { "type": "Toc", "source_relative_path": "fundamentals/toc.yml", "output": { ".html": { "relative_path": "fundamentals/toc.html" }, ".json": { "relative_path": "fundamentals/toc.json" } }, "version": "" }, { "type": "Resource", "source_relative_path": "img/HiAPI.favicon.ico", "output": { "resource": { "relative_path": "img/HiAPI.favicon.ico" } }, "version": "" }, { "type": "Resource", "source_relative_path": "img/HiAPI.logo.png", "output": { "resource": { "relative_path": "img/HiAPI.logo.png" } }, "version": "" }, { "type": "Resource", "source_relative_path": "img/techcoordinate.favicon.ico", "output": { "resource": { "relative_path": "img/techcoordinate.favicon.ico" } }, "version": "" }, { "type": "Resource", "source_relative_path": "img/techcoordinate.logo.png", "output": { "resource": { "relative_path": "img/techcoordinate.logo.png" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "index.md", "output": { ".html": { "relative_path": "index.html" } }, "version": "" }, { "type": "Resource", "source_relative_path": "manual/analysis/cam-floating-point-drift-img/layered-cut.png", "output": { "resource": { "relative_path": "manual/analysis/cam-floating-point-drift-img/layered-cut.png" } }, "version": "" }, { "type": "Resource", "source_relative_path": "manual/analysis/cam-floating-point-drift-img/normal-per-rev-force.png", "output": { "resource": { "relative_path": "manual/analysis/cam-floating-point-drift-img/normal-per-rev-force.png" } }, "version": "" }, { "type": "Resource", "source_relative_path": "manual/analysis/cam-floating-point-drift-img/spike-per-rev-force.png", "output": { "resource": { "relative_path": "manual/analysis/cam-floating-point-drift-img/spike-per-rev-force.png" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "manual/analysis/cam-floating-point-drift.md", "output": { ".html": { "relative_path": "manual/analysis/cam-floating-point-drift.html" } }, "version": "" }, { "type": "Resource", "source_relative_path": "manual/analysis/corner-behavior-img/StraightLine-path.png", "output": { "resource": { "relative_path": "manual/analysis/corner-behavior-img/StraightLine-path.png" } }, "version": "" }, { "type": "Resource", "source_relative_path": "manual/analysis/corner-behavior-img/corner-force-overview.png", "output": { "resource": { "relative_path": "manual/analysis/corner-behavior-img/corner-force-overview.png" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "manual/analysis/corner-behavior.md", "output": { ".html": { "relative_path": "manual/analysis/corner-behavior.html" } }, "version": "" }, { "type": "Resource", "source_relative_path": "manual/analysis/cpu-usage-img/geom-quick.png", "output": { "resource": { "relative_path": "manual/analysis/cpu-usage-img/geom-quick.png" } }, "version": "" }, { "type": "Resource", "source_relative_path": "manual/analysis/cpu-usage-img/geom-slow.png", "output": { "resource": { "relative_path": "manual/analysis/cpu-usage-img/geom-slow.png" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "manual/analysis/cpu-usage.md", "output": { ".html": { "relative_path": "manual/analysis/cpu-usage.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "manual/analysis/cutter-adjustment-levers.md", "output": { ".html": { "relative_path": "manual/analysis/cutter-adjustment-levers.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "manual/analysis/index.md", "output": { ".html": { "relative_path": "manual/analysis/index.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "manual/analysis/machinability.md", "output": { ".html": { "relative_path": "manual/analysis/machinability.html" } }, "version": "" }, { "type": "Resource", "source_relative_path": "manual/analysis/milling-physics-coordinates-img/Machining-3-Coordinate.png", "output": { "resource": { "relative_path": "manual/analysis/milling-physics-coordinates-img/Machining-3-Coordinate.png" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "manual/analysis/milling-physics-coordinates.md", "output": { ".html": { "relative_path": "manual/analysis/milling-physics-coordinates.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "manual/analysis/nc-optimization-principles.md", "output": { ".html": { "relative_path": "manual/analysis/nc-optimization-principles.html" } }, "version": "" }, { "type": "Resource", "source_relative_path": "manual/analysis/probabilistic-peak-crack-img/dartboard-engagement.png", "output": { "resource": { "relative_path": "manual/analysis/probabilistic-peak-crack-img/dartboard-engagement.png" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "manual/analysis/probabilistic-peak-crack.md", "output": { ".html": { "relative_path": "manual/analysis/probabilistic-peak-crack.html" } }, "version": "" }, { "type": "Resource", "source_relative_path": "manual/analysis/radial-angle-measurement-img/clip-cutter-angle-scheme.jpg", "output": { "resource": { "relative_path": "manual/analysis/radial-angle-measurement-img/clip-cutter-angle-scheme.jpg" } }, "version": "" }, { "type": "Resource", "source_relative_path": "manual/analysis/radial-angle-measurement-img/clip-cutter-angle-scheme.png", "output": { "resource": { "relative_path": "manual/analysis/radial-angle-measurement-img/clip-cutter-angle-scheme.png" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "manual/analysis/radial-angle-measurement.md", "output": { ".html": { "relative_path": "manual/analysis/radial-angle-measurement.html" } }, "version": "" }, { "type": "Resource", "source_relative_path": "manual/analysis/relief-face-avoidance-img/relief-angle.png", "output": { "resource": { "relative_path": "manual/analysis/relief-face-avoidance-img/relief-angle.png" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "manual/analysis/relief-face-avoidance.md", "output": { ".html": { "relative_path": "manual/analysis/relief-face-avoidance.html" } }, "version": "" }, { "type": "Resource", "source_relative_path": "manual/analysis/smart-holder-training-img/tool-path.png", "output": { "resource": { "relative_path": "manual/analysis/smart-holder-training-img/tool-path.png" } }, "version": "" }, { "type": "Resource", "source_relative_path": "manual/analysis/smart-holder-training-img/train.nc", "output": { "resource": { "relative_path": "manual/analysis/smart-holder-training-img/train.nc" } }, "version": "" }, { "type": "Resource", "source_relative_path": "manual/analysis/smart-holder-training-img/training-path-diagram.png", "output": { "resource": { "relative_path": "manual/analysis/smart-holder-training-img/training-path-diagram.png" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "manual/analysis/smart-holder-training.md", "output": { ".html": { "relative_path": "manual/analysis/smart-holder-training.html" } }, "version": "" }, { "type": "Resource", "source_relative_path": "manual/analysis/spindle-capability-img/fanuc-at12-12000i.jpg", "output": { "resource": { "relative_path": "manual/analysis/spindle-capability-img/fanuc-at12-12000i.jpg" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "manual/analysis/spindle-capability.md", "output": { ".html": { "relative_path": "manual/analysis/spindle-capability.html" } }, "version": "" }, { "type": "Resource", "source_relative_path": "manual/analysis/spindle-power-evaluation-img/Fanuc_Spindle_Power.png", "output": { "resource": { "relative_path": "manual/analysis/spindle-power-evaluation-img/Fanuc_Spindle_Power.png" } }, "version": "" }, { "type": "Resource", "source_relative_path": "manual/analysis/spindle-power-evaluation-img/HiNC_Spindle_Power.png", "output": { "resource": { "relative_path": "manual/analysis/spindle-power-evaluation-img/HiNC_Spindle_Power.png" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "manual/analysis/spindle-power-evaluation.md", "output": { ".html": { "relative_path": "manual/analysis/spindle-power-evaluation.html" } }, "version": "" }, { "type": "Toc", "source_relative_path": "manual/analysis/toc.yml", "output": { ".html": { "relative_path": "manual/analysis/toc.html" }, ".json": { "relative_path": "manual/analysis/toc.json" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "manual/analysis/wear.md", "output": { ".html": { "relative_path": "manual/analysis/wear.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "manual/runtime/cutter-location-playback.md", "output": { ".html": { "relative_path": "manual/runtime/cutter-location-playback.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "manual/runtime/index.md", "output": { ".html": { "relative_path": "manual/runtime/index.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "manual/runtime/script-command.md", "output": { ".html": { "relative_path": "manual/runtime/script-command.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "manual/runtime/session-shell.md", "output": { ".html": { "relative_path": "manual/runtime/session-shell.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "manual/runtime/shell-progress.md", "output": { ".html": { "relative_path": "manual/runtime/shell-progress.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "manual/runtime/step-fields.md", "output": { ".html": { "relative_path": "manual/runtime/step-fields.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "manual/runtime/step.md", "output": { ".html": { "relative_path": "manual/runtime/step.html" } }, "version": "" }, { "type": "Toc", "source_relative_path": "manual/runtime/toc.yml", "output": { ".html": { "relative_path": "manual/runtime/toc.html" }, ".json": { "relative_path": "manual/runtime/toc.json" } }, "version": "" }, { "type": "Resource", "source_relative_path": "manual/setup/anchor-img/Anchor for contact workpiece and fixture.png", "output": { "resource": { "relative_path": "manual/setup/anchor-img/Anchor for contact workpiece and fixture.png" } }, "version": "" }, { "type": "Resource", "source_relative_path": "manual/setup/anchor-img/Anchor for contact.png", "output": { "resource": { "relative_path": "manual/setup/anchor-img/Anchor for contact.png" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "manual/setup/anchor.md", "output": { ".html": { "relative_path": "manual/setup/anchor.html" } }, "version": "" }, { "type": "Resource", "source_relative_path": "manual/setup/apt-img/APT-white-bg.svg", "output": { "resource": { "relative_path": "manual/setup/apt-img/APT-white-bg.svg" } }, "version": "" }, { "type": "Resource", "source_relative_path": "manual/setup/apt-img/APT.svg", "output": { "resource": { "relative_path": "manual/setup/apt-img/APT.svg" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "manual/setup/apt.md", "output": { ".html": { "relative_path": "manual/setup/apt.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "manual/setup/controller-heidenhain.md", "output": { ".html": { "relative_path": "manual/setup/controller-heidenhain.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "manual/setup/controller-iso.md", "output": { ".html": { "relative_path": "manual/setup/controller-iso.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "manual/setup/coolant.md", "output": { ".html": { "relative_path": "manual/setup/coolant.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "manual/setup/cutter.md", "output": { ".html": { "relative_path": "manual/setup/cutter.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "manual/setup/index.md", "output": { ".html": { "relative_path": "manual/setup/index.html" } }, "version": "" }, { "type": "Resource", "source_relative_path": "manual/setup/insert-cutter-img/demo-real-insert-cutter-origin.png", "output": { "resource": { "relative_path": "manual/setup/insert-cutter-img/demo-real-insert-cutter-origin.png" } }, "version": "" }, { "type": "Resource", "source_relative_path": "manual/setup/insert-cutter-img/demo-real-insert-cutter.png", "output": { "resource": { "relative_path": "manual/setup/insert-cutter-img/demo-real-insert-cutter.png" } }, "version": "" }, { "type": "Resource", "source_relative_path": "manual/setup/insert-cutter-img/demo-virtual-insert-cutter.png", "output": { "resource": { "relative_path": "manual/setup/insert-cutter-img/demo-virtual-insert-cutter.png" } }, "version": "" }, { "type": "Resource", "source_relative_path": "manual/setup/insert-cutter-img/insert-cut-mark.png", "output": { "resource": { "relative_path": "manual/setup/insert-cutter-img/insert-cut-mark.png" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "manual/setup/insert-cutter.md", "output": { ".html": { "relative_path": "manual/setup/insert-cutter.html" } }, "version": "" }, { "type": "Resource", "source_relative_path": "manual/setup/machine-tool-img/B1-topo.en.png", "output": { "resource": { "relative_path": "manual/setup/machine-tool-img/B1-topo.en.png" } }, "version": "" }, { "type": "Resource", "source_relative_path": "manual/setup/machine-tool-img/B1-topo.zh-Hant.png", "output": { "resource": { "relative_path": "manual/setup/machine-tool-img/B1-topo.zh-Hant.png" } }, "version": "" }, { "type": "Resource", "source_relative_path": "manual/setup/machine-tool-img/B1.zip", "output": { "resource": { "relative_path": "manual/setup/machine-tool-img/B1.zip" } }, "version": "" }, { "type": "Resource", "source_relative_path": "manual/setup/machine-tool-img/B1_anchors.png", "output": { "resource": { "relative_path": "manual/setup/machine-tool-img/B1_anchors.png" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "manual/setup/machine-tool.md", "output": { ".html": { "relative_path": "manual/setup/machine-tool.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "manual/setup/program-zero-alignment.md", "output": { ".html": { "relative_path": "manual/setup/program-zero-alignment.html" } }, "version": "" }, { "type": "Resource", "source_relative_path": "manual/setup/project-data-checklist-img/spindle-motor-label.svg", "output": { "resource": { "relative_path": "manual/setup/project-data-checklist-img/spindle-motor-label.svg" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "manual/setup/project-data-checklist.md", "output": { ".html": { "relative_path": "manual/setup/project-data-checklist.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "manual/setup/smart-tool-holder.md", "output": { ".html": { "relative_path": "manual/setup/smart-tool-holder.html" } }, "version": "" }, { "type": "Toc", "source_relative_path": "manual/setup/toc.yml", "output": { ".html": { "relative_path": "manual/setup/toc.html" }, ".json": { "relative_path": "manual/setup/toc.json" } }, "version": "" }, { "type": "Toc", "source_relative_path": "manual/toc.yml", "output": { ".html": { "relative_path": "manual/toc.html" }, ".json": { "relative_path": "manual/toc.json" } }, "version": "" }, { "type": "Resource", "source_relative_path": "product/about-img/card.jpg", "output": { "resource": { "relative_path": "product/about-img/card.jpg" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "product/about.md", "output": { ".html": { "relative_path": "product/about.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "product/index.md", "output": { ".html": { "relative_path": "product/index.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "product/license/index.md", "output": { ".html": { "relative_path": "product/license/index.html" } }, "version": "" }, { "type": "Resource", "source_relative_path": "product/startup/delegate-auth-img/sentinel-firewall.jpg", "output": { "resource": { "relative_path": "product/startup/delegate-auth-img/sentinel-firewall.jpg" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "product/startup/delegate-auth.md", "output": { ".html": { "relative_path": "product/startup/delegate-auth.html" } }, "version": "" }, { "type": "Resource", "source_relative_path": "product/startup/multi-station-img/appsettings.Sub-1.json", "output": { "resource": { "relative_path": "product/startup/multi-station-img/appsettings.Sub-1.json" } }, "version": "" }, { "type": "Resource", "source_relative_path": "product/startup/multi-station-img/appsettings.Sub-2.json", "output": { "resource": { "relative_path": "product/startup/multi-station-img/appsettings.Sub-2.json" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "product/startup/multi-station.md", "output": { ".html": { "relative_path": "product/startup/multi-station.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "product/startup/tutorial.md", "output": { ".html": { "relative_path": "product/startup/tutorial.html" } }, "version": "" }, { "type": "Resource", "source_relative_path": "product/startup/windows-img/startup.mp4", "output": { "resource": { "relative_path": "product/startup/windows-img/startup.mp4" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "product/startup/windows.md", "output": { ".html": { "relative_path": "product/startup/windows.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "product/system/file-explorer.md", "output": { ".html": { "relative_path": "product/system/file-explorer.html" } }, "version": "" }, { "type": "Toc", "source_relative_path": "product/toc.yml", "output": { ".html": { "relative_path": "product/toc.html" }, ".json": { "relative_path": "product/toc.json" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "release-note/index.md", "output": { ".html": { "relative_path": "release-note/index.html" } }, "version": "" }, { "type": "Toc", "source_relative_path": "release-note/toc.yml", "output": { ".html": { "relative_path": "release-note/toc.html" }, ".json": { "relative_path": "release-note/toc.json" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "release-note/upgrading-to-3.2.md", "output": { ".html": { "relative_path": "release-note/upgrading-to-3.2.html" } }, "version": "" }, { "type": "ManagedReference", "source_relative_path": "sample/Sample.Common.DemoSessionMessage.yml", "output": { ".html": { "relative_path": "sample/Sample.Common.DemoSessionMessage.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Sample.Common.DemoSessionMessage", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "sample/Sample.Common.PlayerDivConfig.yml", "output": { ".html": { "relative_path": "sample/Sample.Common.PlayerDivConfig.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Sample.Common.PlayerDivConfig", "Summary": "

Per-user visibility flags for the Player page's divisions (charts and\ninfo panels), flattened into a single all-boolean config persisted through\n.

\n" }, { "type": "ManagedReference", "source_relative_path": "sample/Sample.Common.UserConfig.yml", "output": { ".html": { "relative_path": "sample/Sample.Common.UserConfig.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Sample.Common.UserConfig", "Summary": "

User Configuration.

\n" }, { "type": "ManagedReference", "source_relative_path": "sample/Sample.Common.UserService.yml", "output": { ".html": { "relative_path": "sample/Sample.Common.UserService.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Sample.Common.UserService", "Summary": "

User Service.

\n" }, { "type": "ManagedReference", "source_relative_path": "sample/Sample.Common.yml", "output": { ".html": { "relative_path": "sample/Sample.Common.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Sample.Common", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "sample/Sample.Disp.DemoCylindroid.yml", "output": { ".html": { "relative_path": "sample/Sample.Disp.DemoCylindroid.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Sample.Disp.DemoCylindroid", "Summary": "

Demonstrates the creation and visualization of objects.\nIncludes examples of building a programmatically with\n points and serializing/deserializing via XML.

\n" }, { "type": "ManagedReference", "source_relative_path": "sample/Sample.Disp.DemoDiscreteRgb.yml", "output": { ".html": { "relative_path": "sample/Sample.Disp.DemoDiscreteRgb.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Sample.Disp.DemoDiscreteRgb", "Summary": "

Demonstrates the use of discrete RGB colors for rendering multiple objects.\nShows how to apply different colors to similar geometric shapes using the\n method from class.

\n" }, { "type": "ManagedReference", "source_relative_path": "sample/Sample.Disp.DemoDrawing.yml", "output": { ".html": { "relative_path": "sample/Sample.Disp.DemoDrawing.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Sample.Disp.DemoDrawing", "Summary": "

Demonstrates various drawing techniques using the HiAPI graphics system.\nProvides examples of primitive drawing, attribute specification, and rendering options.\nIncludes methods for drawing lines, points, triangles, and other geometric primitives.

\n" }, { "type": "ManagedReference", "source_relative_path": "sample/Sample.Disp.DemoPick1.yml", "output": { ".html": { "relative_path": "sample/Sample.Disp.DemoPick1.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Sample.Disp.DemoPick1", "Summary": "

Demonstrates basic object picking with mouse interaction in the HiAPI system.\nShows how to create a pickable 3D object that responds to mouse events by changing its appearance.\nImplements the Pickable base class to enable mouse event handling.

\n" }, { "type": "ManagedReference", "source_relative_path": "sample/Sample.Disp.DemoPick2.yml", "output": { ".html": { "relative_path": "sample/Sample.Disp.DemoPick2.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Sample.Disp.DemoPick2", "Summary": "

Demonstrates advanced object picking with multiple pickable objects.\nShows how to create and manage multiple pickable objects with different visual appearances.\nImplements proper resource cleanup through the IDisposable interface.

\n" }, { "type": "ManagedReference", "source_relative_path": "sample/Sample.Disp.DemoPickable.yml", "output": { ".html": { "relative_path": "sample/Sample.Disp.DemoPickable.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Sample.Disp.DemoPickable", "Summary": "

Demonstrates creation of pickable 3D geometry at the primitive level.\nShows how to assign picking IDs directly to geometry vertices and create interactive triangles.\nUses a lower-level approach than the Pickable base class for more precise control.

\n" }, { "type": "ManagedReference", "source_relative_path": "sample/Sample.Disp.DemoSatellite.yml", "output": { ".html": { "relative_path": "sample/Sample.Disp.DemoSatellite.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Sample.Disp.DemoSatellite", "Summary": "

Demonstrates a simple solar system animation using interface.\nShows how to create a hierarchical transform structure with sun, earth and moon using\n matrices and model matrix stack transformations.

\n" }, { "type": "ManagedReference", "source_relative_path": "sample/Sample.Disp.DemoStl.yml", "output": { ".html": { "relative_path": "sample/Sample.Disp.DemoStl.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Sample.Disp.DemoStl", "Summary": "

Demonstrates the loading, manipulation, and display of STL (stereolithography) files in HiAPI.\nShows operations like loading STL data, transforming geometries, and basic visualization.

\n" }, { "type": "ManagedReference", "source_relative_path": "sample/Sample.Disp.DemoUtil.yml", "output": { ".html": { "relative_path": "sample/Sample.Disp.DemoUtil.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Sample.Disp.DemoUtil", "Summary": "

Provides utility functions for running HiAPI display examples in a WPF environment.\nContains helper methods that simplify the setup and execution of WPF applications with HiAPI rendering.\nHandles common initialization and cleanup tasks for visualization examples.

\n" }, { "type": "ManagedReference", "source_relative_path": "sample/Sample.Disp.HeidenhainCoordinateEntryDisplayee.yml", "output": { ".html": { "relative_path": "sample/Sample.Disp.HeidenhainCoordinateEntryDisplayee.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Sample.Disp.HeidenhainCoordinateEntryDisplayee", "Summary": "

Displayee for Heidenhain coordinate entry visualization.

\n" }, { "type": "ManagedReference", "source_relative_path": "sample/Sample.Disp.IsoCoordinateEntryDisplayee.yml", "output": { ".html": { "relative_path": "sample/Sample.Disp.IsoCoordinateEntryDisplayee.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Sample.Disp.IsoCoordinateEntryDisplayee", "Summary": "

Displayee for ISO coordinate entry visualization.

\n" }, { "type": "ManagedReference", "source_relative_path": "sample/Sample.Disp.MachiningProjectDisplayee.yml", "output": { ".html": { "relative_path": "sample/Sample.Disp.MachiningProjectDisplayee.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Sample.Disp.MachiningProjectDisplayee", "Summary": "

Represents a displayable wrapper for a machining project.

\n" }, { "type": "ManagedReference", "source_relative_path": "sample/Sample.Disp.yml", "output": { ".html": { "relative_path": "sample/Sample.Disp.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Sample.Disp", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "sample/Sample.Geom.DemoBuildGeom.yml", "output": { ".html": { "relative_path": "sample/Sample.Geom.DemoBuildGeom.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Sample.Geom.DemoBuildGeom", "Summary": "

Demonstrates the creation and manipulation of geometric objects in HiAPI.\nShows how to create and transform various geometry types including boxes, cylindroids, and STL files.

\n" }, { "type": "ManagedReference", "source_relative_path": "sample/Sample.Geom.DemoIExpandToBox3d.yml", "output": { ".html": { "relative_path": "sample/Sample.Geom.DemoIExpandToBox3d.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Sample.Geom.DemoIExpandToBox3d", "Summary": "

Demonstrates how to create and calculate bounding boxes for different geometric objects.\nShows the use of Box3d to encompass multiple geometric elements with a single boundary.

\n" }, { "type": "ManagedReference", "source_relative_path": "sample/Sample.Geom.yml", "output": { ".html": { "relative_path": "sample/Sample.Geom.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Sample.Geom", "Summary": "

The Sample.Geom namespace provides examples for using the API to create and manipulate geometric objects. This namespace demonstrates how to create basic geometric shapes (like and ), apply transformations with , and work with files. These examples serve as practical reference code for developers who need to understand the basic usage of HiAPI's geometry module.

\n" }, { "type": "ManagedReference", "source_relative_path": "sample/Sample.HelloHiAPI.yml", "output": { ".html": { "relative_path": "sample/Sample.HelloHiAPI.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Sample.HelloHiAPI", "Summary": "

A sample class demonstrating initialization and usage of the HiAPI framework.\nShows the basic setup of display engine, MongoDB server, licensing, and other core functionality.

\n" }, { "type": "ManagedReference", "source_relative_path": "sample/Sample.MachineTool.DemoBuildMachineTool.yml", "output": { ".html": { "relative_path": "sample/Sample.MachineTool.DemoBuildMachineTool.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Sample.MachineTool.DemoBuildMachineTool", "Summary": "

Provides access to the Table-B1 machine tool model.

\n" }, { "type": "ManagedReference", "source_relative_path": "sample/Sample.MachineTool.DemoBuildMachineToolWithoutGeometrys.yml", "output": { ".html": { "relative_path": "sample/Sample.MachineTool.DemoBuildMachineToolWithoutGeometrys.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Sample.MachineTool.DemoBuildMachineToolWithoutGeometrys", "Summary": "

Demo Build Machine Tool without gemetries setting.

\n" }, { "type": "ManagedReference", "source_relative_path": "sample/Sample.MachineTool.yml", "output": { ".html": { "relative_path": "sample/Sample.MachineTool.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Sample.MachineTool", "Summary": "

The Sample.MachineTool namespace provides examples for creating and configuring machine tool models using the API for CNC verification and simulation. This namespace contains complete examples for building XYZ-ABC type machine tools, including coordinate chain definition, geometry loading, and collision detection configuration. These examples demonstrate how to load machine components from STL files, configure kinematic chains, and integrate machine models for verification systems, offering a comprehensive guide for developers building custom machine tool configurations for accurate CNC simulation and verification.

\n" }, { "type": "ManagedReference", "source_relative_path": "sample/Sample.Machining.DemoBuildGeomOnlyMachiningProject.yml", "output": { ".html": { "relative_path": "sample/Sample.Machining.DemoBuildGeomOnlyMachiningProject.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Sample.Machining.DemoBuildGeomOnlyMachiningProject", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "sample/Sample.Machining.DemoBuildMachiningProject.yml", "output": { ".html": { "relative_path": "sample/Sample.Machining.DemoBuildMachiningProject.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Sample.Machining.DemoBuildMachiningProject", "Summary": "

Demonstrates how to create and configure a programmatically.\nThis sample shows how to set up , ,\n, , ,\nand save the project configuration to a file.

\n" }, { "type": "ManagedReference", "source_relative_path": "sample/Sample.Machining.DemoMillingByCutterLocation.yml", "output": { ".html": { "relative_path": "sample/Sample.Machining.DemoMillingByCutterLocation.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Sample.Machining.DemoMillingByCutterLocation", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "sample/Sample.Machining.DemoRenderingMachiningProcessAndStripPosSelection.yml", "output": { ".html": { "relative_path": "sample/Sample.Machining.DemoRenderingMachiningProcessAndStripPosSelection.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Sample.Machining.DemoRenderingMachiningProcessAndStripPosSelection", "Summary": "

Demonstrates integration of machining process visualization with interactive strip position selection.\nShows how to load a machining project, configure rendering options, and implement user interaction.\nProvides a complete example of a 3D visualization application with HiAPI and WPF.

\n" }, { "type": "ManagedReference", "source_relative_path": "sample/Sample.Machining.DemoUseMachiningProject.yml", "output": { ".html": { "relative_path": "sample/Sample.Machining.DemoUseMachiningProject.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Sample.Machining.DemoUseMachiningProject", "Summary": "

Demonstrates how to load and use an existing instance.\nThis sample shows how to set up event handlers for messages and machining step objects,\nexecute NC files, and properly manage project resources using\n.

\n" }, { "type": "ManagedReference", "source_relative_path": "sample/Sample.Machining.yml", "output": { ".html": { "relative_path": "sample/Sample.Machining.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Sample.Machining", "Summary": "

The Sample.Machining namespace contains comprehensive examples for creating and managing machining verification and optimization projects using the and APIs. This namespace demonstrates the complete workflow of building verification projects from scratch, including defining cutting tool geometries with , configuring tool holders with , setting up tool libraries, defining fixture and workpiece geometries, configuring machine kinematics, and setting material properties. These examples are particularly valuable for developers who need to programmatically create complete verification and optimization projects without relying on the HiNC GUI, providing reference code for implementing advanced CNC verification and simulation functionality.

\n" }, { "type": "ManagedReference", "source_relative_path": "sample/Sample.Mech.DemoTopo1.yml", "output": { ".html": { "relative_path": "sample/Sample.Mech.DemoTopo1.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Sample.Mech.DemoTopo1", "Summary": "

Demonstrates the creation and visualization of mechanical assemblies with kinematic linkages.\nShows how to build coordinate systems, establish kinematic relationships, and capture visual output.

\n" }, { "type": "ManagedReference", "source_relative_path": "sample/Sample.Mech.yml", "output": { ".html": { "relative_path": "sample/Sample.Mech.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Sample.Mech", "Summary": null }, { "type": "ManagedReference", "source_relative_path": "sample/Sample.yml", "output": { ".html": { "relative_path": "sample/Sample.html" } }, "version": "", "Uid": null, "IsMRef": true, "Title": "Sample", "Summary": null }, { "type": "Toc", "source_relative_path": "sample/toc.yml", "output": { ".html": { "relative_path": "sample/toc.html" }, ".json": { "relative_path": "sample/toc.json" } }, "version": "" }, { "type": "Resource", "source_relative_path": "temp-Doc-archived/About/card.jpg", "output": { "resource": { "relative_path": "temp-Doc-archived/About/card.jpg" } }, "version": "" }, { "type": "Resource", "source_relative_path": "temp-Doc-archived/MillingTool/APT/img/APT.svg", "output": { "resource": { "relative_path": "temp-Doc-archived/MillingTool/APT/img/APT.svg" } }, "version": "" }, { "type": "Resource", "source_relative_path": "temp-Doc-archived/theory-and-technique/Int-holder-para-training/train.nc", "output": { "resource": { "relative_path": "temp-Doc-archived/theory-and-technique/Int-holder-para-training/train.nc" } }, "version": "" }, { "type": "Resource", "source_relative_path": "temp-Doc-archived/toc.json", "output": { "resource": { "relative_path": "temp-Doc-archived/toc.json" } }, "version": "" }, { "type": "Resource", "source_relative_path": "templates/chinese-search/public/main.js", "output": { "resource": { "relative_path": "templates/chinese-search/public/main.js" } }, "version": "" }, { "type": "Resource", "source_relative_path": "templates/material/docs/docfx.json", "output": { "resource": { "relative_path": "templates/material/docs/docfx.json" } }, "version": "" }, { "type": "Resource", "source_relative_path": "templates/material/docs/images/classic/docfx-filter.gif", "output": { "resource": { "relative_path": "templates/material/docs/images/classic/docfx-filter.gif" } }, "version": "" }, { "type": "Resource", "source_relative_path": "templates/material/docs/images/classic/docfx-search.gif", "output": { "resource": { "relative_path": "templates/material/docs/images/classic/docfx-search.gif" } }, "version": "" }, { "type": "Resource", "source_relative_path": "templates/material/docs/images/code.svg", "output": { "resource": { "relative_path": "templates/material/docs/images/code.svg" } }, "version": "" }, { "type": "Toc", "source_relative_path": "toc.yml", "output": { ".html": { "relative_path": "toc.html" }, ".json": { "relative_path": "toc.json" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "workflows/basic-simulation.md", "output": { ".html": { "relative_path": "workflows/basic-simulation.html" } }, "version": "" }, { "type": "Resource", "source_relative_path": "workflows/dynamometer-experiment-sop-img/StraightLineTraining-path.png", "output": { "resource": { "relative_path": "workflows/dynamometer-experiment-sop-img/StraightLineTraining-path.png" } }, "version": "" }, { "type": "Resource", "source_relative_path": "workflows/dynamometer-experiment-sop-img/fixWorkpiece.jpg", "output": { "resource": { "relative_path": "workflows/dynamometer-experiment-sop-img/fixWorkpiece.jpg" } }, "version": "" }, { "type": "Resource", "source_relative_path": "workflows/dynamometer-experiment-sop-img/training-path.png", "output": { "resource": { "relative_path": "workflows/dynamometer-experiment-sop-img/training-path.png" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "workflows/dynamometer-experiment-sop.md", "output": { ".html": { "relative_path": "workflows/dynamometer-experiment-sop.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "workflows/examples/index.md", "output": { ".html": { "relative_path": "workflows/examples/index.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "workflows/examples/mapping-demo.md", "output": { ".html": { "relative_path": "workflows/examples/mapping-demo.html" } }, "version": "" }, { "type": "Resource", "source_relative_path": "workflows/examples/milling-training-dynamometer-img/demo-training-S50C.png", "output": { "resource": { "relative_path": "workflows/examples/milling-training-dynamometer-img/demo-training-S50C.png" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "workflows/examples/milling-training-dynamometer.md", "output": { ".html": { "relative_path": "workflows/examples/milling-training-dynamometer.html" } }, "version": "" }, { "type": "Toc", "source_relative_path": "workflows/examples/toc.yml", "output": { ".html": { "relative_path": "workflows/examples/toc.html" }, ".json": { "relative_path": "workflows/examples/toc.json" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "workflows/force-training.md", "output": { ".html": { "relative_path": "workflows/force-training.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "workflows/geometry-validation.md", "output": { ".html": { "relative_path": "workflows/geometry-validation.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "workflows/nc-optimization.md", "output": { ".html": { "relative_path": "workflows/nc-optimization.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "workflows/project-construction.md", "output": { ".html": { "relative_path": "workflows/project-construction.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "workflows/sensor-mapping.md", "output": { ".html": { "relative_path": "workflows/sensor-mapping.html" } }, "version": "" }, { "type": "Conceptual", "source_relative_path": "workflows/simulation-report.md", "output": { ".html": { "relative_path": "workflows/simulation-report.html" } }, "version": "" }, { "type": "Toc", "source_relative_path": "workflows/toc.yml", "output": { ".html": { "relative_path": "workflows/toc.html" }, ".json": { "relative_path": "workflows/toc.json" } }, "version": "" } ], "groups": [ { "xrefmap": "xrefmap.yml" } ] }