Table of Contents

Release Note

HiNc Packages Version 3.2.55

  • Rebuild every assembly compiled against 3.2.54 or earlier (CheckStrokeLimitOnStep takes the step's index), restoring from the package source's current address where yours names an earlier one (Packages).
  • Renamed: SeqPhysicsBrief → SeqPhysicsState (a mission script may keep the old name), TryGetSeqPhysicsBrief → TryGetSeqPhysicsState, SeqPhysicsBriefColumn → SeqPhysicsStateColumn (Renamed).
  • Removed: PreserveBegin, PreserveEnd and preserveCount of UnmanagedSubstraction and UnmanagedAddition (call Dispose()), BoundingBoxOnToolRunningCoordinate (use CuttingDepth_mm), rollout of GET api/app-update/versions (no replacement); more under Removed.
  • Settings: POST api/SessionShell/ResetRuntime, BeginSession and EndSession can answer 409 during a play, Reset and api/Execution/reset while another thread plays the session; dispose the LocalProjectService before LocalApp.AppEnd(). More under Settings.
  • Values that change: SoftNc runs after a Stop with no Reset or on rotary axes with their own rapid or home values, flat-bottom cutters under Feed Per Cycle or Feed Per Tooth and more under Values that change. Re-baseline comparisons made on an earlier build.
  • New: the Execution page's color trees colour steps by conditions of your own; Record Play Result saves a play to review again; the Tool House draws every tool side by side to scale.

HiNc Packages Version 3.2.54

  • Rebuild every assembly compiled against 3.2.53 or earlier.
  • Removed: MillingTool.ObservationRingRadius_mm (no replacement), DistributedQueueTaskScheduler and DistributedQueueTaskStarter (use QueueTaskScheduler); more under Removed.
  • Settings: on SoftNc a SINUMERIK rotary axis rolls over only with MD30310 = 1 under Parameters (Native) › Axis Parameters (Integer): add the row where yours does, and MD30455 where yours is not 0. More, such as SessionStepBuilt handlers, under Settings.
  • Settings: LocalProjectService.MachiningEquipment takes an equipment file read as MachiningEquipment, and a part or an environment value written on it is written to the project's SetupEquipment: read the property again after a write (Changed shapes).
  • Values that change: SoftNc plays on SINUMERIK and limited-travel rotary axes, NC optimization feeds, tool-axis retracts, the shipped spindle capabilities and more under Values that change. Re-baseline comparisons made on an earlier build.
  • New: the Tool House's Cutter node loads and saves a whole cutter; the cloud package shows its licence on the menu bar, and on its free Trial a run pauses at the account's step quota, weekly once the email address is verified.

HiNc Packages Version 3.2.53

  • Rebuild every assembly compiled against 3.2.51 or earlier.
  • Settings: a spindle capability saved as one power and one torque curve needs your spindle's short-time contours for its spindle temperature; one saved again by 3.2.51 or earlier may carry the 15- and 60-minute contours of TMV-720A-STD-8000RPM: replace them.
  • Values that change: setup angles of a one- or two-flute cutter read from Mz and one of Mx and My, with ScaleRatio, Scatter_deg and their other report values; temperatures and wear in plays of insert-end cutters with no coating layer.
  • Values that change: SoftNc canned cycles whose G98 / G99 follows the cycle code; projects whose spindle tool, spindle capability or cutter mass was saved in an older form; more under Values that change. Re-baseline comparisons made on an earlier build.
  • New: the cloud package may be installed on a disk image before cloning: each clone makes its own computer key. Updating from 3.2.51 gives each computer that is not remembered a key of its own; a remembered clone needs HiNC-2025.exe --cloud-reset.
  • New: the Execution page's Block Info panel shows the selected NC block in a CNC user's terms; the Block Info · Raw JSON box under Preference › Optional Nodes & Charts adds a switch to its raw JSON view.

HiNc Packages Version 3.2.51

Covers 3.2.50 to 3.2.51.

  • Rebuild every assembly compiled against 3.2.50 or earlier.
  • Settings: /api answers 404 (application/problem+json) to every HEAD and an unrouted GET (3.2.50), 400 to a stroke-limit or rotary-speed PUT with a wrong count, and success: false to a per-axis soft NC runner PUT for an unlisted axis (3.2.51). More under Settings.
  • Values that change: cutter crater and flank wear (3.2.50); plays of a mission saved as <ListCommand><CommandList> or with a <CommandEntry IsEnabled="false"> entry (3.2.51); more under Values that change. Re-baseline comparisons made on an earlier build.
  • New: a Manual Tooling mission command (ManualToolingCommand) mounts a tool loaded by hand: put it above a program that plays with no tool in the spindle, which otherwise builds no step (3.2.50).
  • New: turn a project's stroke-limit check of played steps off or on with the switch on Machine Limits (Stroke), api/Controller/stroke-limit-check or SessionShell.EnableStrokeLimitCheck (3.2.51).
  • New: HiNC for Windows also comes as a cloud package, licensed by a cloud account instead of a dongle (3.2.51).

HiNc Packages Version 3.2.49

Covers 3.2.43 to 3.2.49.

  • Rebuild every assembly compiled against 3.2.47 or earlier.
  • Renamed: MillingPhysicsBrief → MillingForceBrief (a mission script may keep the old name), MillingStepLuggage → Hi.MachiningSteps.StepLuggage, NoRemovalCollisionMonitor → ToolSectionTouchMonitor and more under Renamed and Changed shapes (3.2.47).
  • Removed: the HiNC-2025-webservice sample's self-update: use the installed HiNC (3.2.45); MillingInstance (its values are on MachiningStep), MachiningStep.FlexDictionary (use step[key]) and more under Removed.
  • Settings: correct a cutter whose APT values contradict each other, or it cuts nothing; NC optimization optimizes the lines of a cutter saved with an empty MillingCutterOptLimit (3.2.45).
  • Settings: web clients POST to api/NcProgram/file-lines and other routes; with sign-in on, other computers need no AllowedHosts; point a .bat file or shortcut naming the installed HiNC's HiNC-2025-webservice.exe at HiNC-2025.exe (3.2.45). More under Settings.
  • Values that change: cutter deflection, shipped cutting parameters, temperatures and wear, dwells, steps after S0, half-turn rotary moves and more under Values that change. Re-baseline comparisons made on an earlier build.

HiNc Packages Version 3.2.42

Covers 3.2.39 to 3.2.42.

  • Rebuild every assembly compiled against 3.2.41 or earlier.
  • Production: NC optimization is available for production use (3.2.42).
  • Renamed: Mat4d → mat4d_t, and the chain-matrix queries take the Try… form (3.2.39).
  • A geometry slot takes the class Box3d, which wraps a box3d_t; transformer vectors (StaticTranslation.Trans, …) are properties, so assign a whole value, in mission scripts too (3.2.39).
  • Removed: ReflectedXyzabcChain, api/Mat4d and more under Removed; for StrokeLimitUtil.RotaryAdmissibility use RotaryTravel.
  • Settings: to keep the web application's sign-in, add "Enabled": true beside Auth:Users; with sign-in off, other sites get 403. Other computers get 400 Bad Request until AllowedHosts lists them (3.2.39).
  • Settings: a class implementing IMachiningEquipment adds WorkpieceCollidable; a host that builds MachiningEquipment itself sets it (3.2.42).
  • New: collision detection checks the holder and the shank against the stock; MachiningStep.SpindleMeterPower_W and AccumulatedSpindleMeterEnergy_kWh report spindle power and energy as a meter reads them.
  • Values that change: cutting speed, peak axial torque, spindle temperature, geometry difference, collision reports, inverse kinematics, five-axis CL on ClMillingDevice. Re-baseline comparisons made on an earlier build.

HiNc Packages Version 3.2.38

Covers 3.2.36 to 3.2.38.

  • Rebuild every assembly compiled against 3.2.36 or earlier.
  • Renamed: Vec3d / Vec2d → vec3d_t / vec2d_t, now value types: a write through a property (obj.Prop.x = v) does not compile, in mission scripts too (3.2.36).
  • Renamed: Box3d (the math type) / Tri3d / DVec3d / Box2d → box3d_t / tri3d_t / dvec3d_t / box2d_t, value types too: Expanded, Translated and GetTransform return the new value (3.2.38).
  • IExpandToBox3d.ExpandToBox3d takes its box by ref (3.2.38).
  • An absent vector is vec3d_t?, vec2d_t? or dvec3d_t? (GetProgramCl, MachiningStep.Cl, …): read its members with is { } v (3.2.36).
  • The PairZrUtil Z-R contour helpers take the Try… form (3.2.36).
  • New: the Windows web application installs from a setup program and updates itself; an operator's settings go in appsettings.local.json under %LocalAppData%\HiNC\webservice (3.2.36).
  • Settings: GET /api/ToolHouse and /{id} answer hasCutter: true for any cutter and name its kind in cutterType; only a milling cutter fills cutter (3.2.36).

HiNc Packages Version 3.2.35

Covers 3.2.32 to 3.2.35.

  • Rebuild every assembly compiled against 3.2.34 or earlier.
  • Renamed: every …Buckle → …Mount, web service included.
  • Renamed: FluteContour.SetupAngle_deg → FluteOffsetAngle_deg, …UniformFlutingShiftAngle_deg → …UniformFlutingOffsetAngle_deg, web fluting setupAngle_deg → fluteOffsetAngle_deg.
  • IColorGuide, work-coordinate and placement contracts take the Try… form.
  • Removed: in-place vector members (use GetNormalized, WithAt, ParseByCsv); the api/Vec3d, vector-key and api/general-mechanism routes (use the owner's Update… and api/mech/…).
  • Removed: Hi.WinForm and Hi.WpfPlus (host DispEngine in your own control), and NcCompositionGate.IsEmbeddedScriptLicensed (no replacement).
  • Settings: re-create controllers saved by 3.2.32 or earlier from their brand preset to evaluate variable macro-call words.
  • Values that change: G43 / G44 / G43.4 without H, variable macro-call words, #3000-range reads, sensor files mapped on a decimal-comma host (refit trainings fitted there). Re-baseline comparisons made on an earlier build.

HiNc Packages Version 3.2.31

  • Removed: GeomToTable, GeomToWorkpiece, GeomToProgramZero and their setters: use the branch between two roles. Parts start bare; CreateDefault() gives the two-branch shape.
  • Removed: two-branch api/Fixture / api/Workpiece actions (a POST gets 405): use api/mech/equipment-topology.
  • Renamed: BackgroundTemperature → AmbientTemperature; hasDiff → hasDiffOverlay in api/Workpiece/diff-settings.
  • Settings: run LocalApp.AppEnd last. A project with no coolant set is modelled with flood coolant; dry cutting needs StandardForcedAir.
  • Values that change: SoftNc programs whose T or H word is a macro variable, or with @@ comments; GetUniformFlutingOffsetAngle_deg results. Re-baseline comparisons made on an earlier build.
  • New: SessionShell.RecomputeStepPhysics recomputes a finished run after edits; EstimateSetupAngle / ArmSetupAngleEstimation fit the setup angle to a holder recording.

HiNc Packages Version 3.2.26

  • New: SoftNc canned cycles (G81–G89) index a rotary axis from an A, B or C word on a repeat block; see ISO core.
  • New: a rapid traverse that removes stock is reported; the project-level MachiningActRunnerConfig.RapidCutVolumeThreshold_mm3 gates it (default 0: any contact reports).
  • New: MachineMotionStep.IsRapid marks a rapid-traverse step.
  • Settings: do not obtain a DispEngine while DispEngine.IsGlAvailable is false; NC play, physics and training then run without 3D.
  • Values that change: on SoftNc, canned-cycle repeats with A / B / C words or under G91, rotary words under G91, and stroke limits set only in the legacy machine-limits boxes; rotary inverse kinematics.
  • Values that change: cutting forces on engaged steps. Re-baseline comparisons made on an earlier build, and retrain coefficient sets trained before this build if their fit matters.

HiNc Packages Version 3.2.24

  • Renamed: GetMillingEquipment → GetMachiningEquipment (on MachiningProject: GetSetupEquipment); CodeXyzabcMachineTool → GeneralXyzabcMachineTool; runner feedrate members → CommandedClFeedrate_mmds (renames).
  • Removed: MachiningEquipment's XElement constructor and MakeXmlSource: the equipment splits into the authored SetupEquipment, which an equipment file loads as, and the runtime MachiningEquipment (removals).
  • Settings: closing a project can throw ProjectFileBusyException; project-level RadiusOffsetBasis picks what a tool-house refresh writes to the D column.
  • New: the tip feedrate MachineMotionStep.ActualTipFeedrate_mmds, and a sink for load-time diagnostics on LocalProjectService.LoadProject / ReloadProject.
  • New: Siemens ROTS / AROTS and Heidenhain LN vector blocks are simulated, and Fanuc G54.1 Pn (also G54 Pn) and G59.1–G59.9 work offsets resolve.
  • Values that change: SoftNc blocks after M02 / M30 / END PGM; radius compensation under G18 / G19; feed per tooth, MRR and cutting forces. Re-baseline comparisons made on an earlier build.

HiNc Packages Version 3.2.7

  • Moving a 3.1.175 reference to 3.2 brings every change since 3.1.175 at once: SoftNcRunner becomes the default NC engine, and public names, shapes and defaults change across the packages.
  • 3.2 build numbers restarted below 3.1 and are not comparable with 3.1 numbers; gaps on the package feed are expected.
  • Before upgrading, read Upgrading from 3.1.175 to 3.2: what to do first, renames, changed shapes, removals, settings and defaults and values that change.
  • New: Siemens SINUMERIK .mpf / .spf programs play, and so do Heidenhain klartext and DIN/ISO programs on one preset, with R- and Q-parameters, subprograms, tilted planes and RTCP.
  • New: Fanuc Custom Macro B (# variables, IF / GOTO / WHILE, M98 / M99, G65 / G66) and G12.1 / G13.1 polar coordinate interpolation.
  • New: cutter-location files can drive a machine chain, and a played CL program converts to Fanuc NC through SessionShell.ConvertClToNcFiles.
  • New: NcRunnerSuit bundles an NC runner with its per-case data as one shareable file; see NC Parsing Engine.
  • New: session commands describe themselves through CommandCatalogAttribute and CommandFieldAttribute, so a generic editor can render them without a hand-written form.

HiNc Packages Version 3.1.175

  • WorkpieceService file IO takes relative paths, resolved against a base directory that LocalProjectService supplies; ReadRuntimeGeom (now ReadMeshedGeom) returns whether the file existed.
  • Renamed: SessionShell.WriteRuntimeGeomToStl / Obj / Ply → ExportRuntimeGeomToStl / Obj / Ply.
  • Renamed: the command WriteRuntimeGeomToStlCommand → ExportMeshedGeomToStlCommand; project files that use the old name still load.

HiNc Packages Version 3.1.173

  • New: SessionShell.AlignWorkpieceProgramZeroToIso places the workpiece and fixture so the program zero coincides with a G54 / G55 / … entry of the project ISO coordinate table.
  • Removed: the Hi.Grpcs.* ClStrip and Player service runners and protos, MachiningProjectGrpcServer, MonitoringPlayer and UniversalNcMonitorClient.
  • Removed: CsvRunnerConfig.
  • Values that change: MachiningStep.Mrr_mm3ds. Re-baseline comparisons made on an earlier build.

HiNc Packages Version 3.1.172

  • Settings: call LocalProjectService.Reg() once at startup, before any project XML is deserialized.
  • XFactory is an instance class with a process-wide XFactory.Default; types register through public static void Reg(XFactory factory = null).
  • Renamed: XFactory.Regs → Generators, now an instance property; GenByXElementDelegate → XGeneratorDelegate.

HiNc Packages Version 3.1.171

  • Renamed: RuntimeApi → SessionShell, RuntimeController → SessionShellController, IShellCommand → ISessionCommand, IMachiningStepHost → IMachiningService.
  • Renamed: the namespace Hi.ShellCommands → Hi.SessionCommands; the command Run() parameter scriptApi → sessionShell.
  • MachiningStep physics getters return a non-null MillingPhysicsBrief on no-cut steps when EnablePhysics is on.

HiNc Packages Version 3.1.167

  • New: SoftNcRunner, a pluggable NC parser and runner, enabled through SessionShell.EnableSoftNcRunner; see NC Parsing Engine.
  • New: coolant modes CoolantMode.Flood, Mist and Off.
  • New: SessionShell events SessionStepBuilt, SessionStepSelected, SessionSyntaxPieceRan and SessionSourcedActEntry follow the MachiningSession lifetime; the earlier event names are obsolete.
  • New: SessionShell.RegisterWriteSyntaxPieces and RegisterWriteSyntaxPiecesWithActs for syntax-piece tracing.
  • New: ProjectApiVersion carries the project-XML version through XFactory deserialization.
  • WorkpieceService gets its Workpiece through a Func getter.

HiNc Packages Version 3.1.162

  • Removed: ExceptionUtil.ShowException and ExceptionUtil.OnShown; diagnostics go through IProgress<object>, UI notifications through MessageBoardUtil and application logs through ILogger.
  • Removed: the GenMode enum, RoutineBlocker0, HiLog and DynamicMachiningProjectDisplayee0.
  • XFactory deserialization and MachiningProject loading take an IProgress<object>.
  • New: ActionProgress<T>.FromLogger bridges IProgress<object> APIs to an ILogger.
  • Renamed: ShowIfCatched → ExceptionUtil.CatchExceptions, which takes an Action<Exception> handler; the SessionMessageHost property → ShellProgress on LocalProjectService and SessionShell.
  • Runtime geometry operations move from Workpiece to WorkpieceService.

HiNc Packages Version 3.1.160

  • Renamed: XmlSourceAndFile<T> → FileRefSource<T>, CombineAsSubDirectory → PathUtil.GetResourceDirectory, MakeXmlSourceWithRebaseFile → XmlUtil.MakeXmlSourceToFileRef.

HiNc Packages Version 3.1.158

  • Removed: NcEnv.SetToolHeightCompensationOnFeatureNormal; G53.1 tool height compensation is detected from the NC state.
  • Settings: HardNcEnv.EnableIntegerShrinkOnPositionCommand is a project setting and defaults to false.
  • New: CSV actual time accepts the DateTime format as well as TimeSpan; see Basic Machining Simulation.

HiNc Packages Version 3.1.156

  • Maintenance release.

HiNc Packages Version 3.1.150

  • New: SessionShell.ScanRuntimeGeomInfDefect finds and marks geometry defects in a workpiece, and SessionShell.ClearDefectDisplayee clears the marks; see Geometry Validation.
  • Renamed: the class SessionMessageHost → ShellProgress, which implements IProgress<T> in place of IMessageHost.
  • Values that change: rotary-axis angles that XyzabcSolver solves in postprocessing. Re-baseline comparisons made on an earlier build.

HiNc Packages Version 3.1.144

  • New: Siemens CYCLE800 coordinate transform and reset, MCALL CYCLE81() drilling cycles, and TRAORI / TRAFOOF / SUPA.
  • New: functions that adjust machining and motion resolution dynamically.

HiNc Packages Version 3.1.106

  • Renamed: ReadCsvByTimeInterpolation → SessionShell.MapSingleByCsvFile, MapByActualTime → SessionShell.MapSeriesByCsvFile.
  • Renamed: the sensor-data CSV column prefix Spindle → Holder.
  • CSV column tags come from MappingUtil.
  • ClStrip.ChartRange is time-based, not step-based.

HiNc Packages Version 3.1.102

  • Settings: the packages target .NET 10.0.
  • Resource files (Resource, wwwroot, Doc) ship in the separate HiNc-Resource package.
  • New: SessionShell.ScaledFeedPerCycle for scaled feed-per-cycle motion resolution.

HiNc Packages Version 3.1.100

  • Runtime functions move from MachiningProject to LocalProjectService.
  • MillingTraining uses separate lead and result parameter templates.

HiNc Packages Version 3.1.91

  • New: NcOptimizationEmbeddedLogMode (None, SimpleLog, FullLog) sets the detail of the log embedded in the optimized NC file; see Embedded Log Comments.

HiNc Packages Version 3.1.90

  • Renamed: the optimization log API → SessionShell.EnableIndividualStepAdjustmentLog.

HiNc Packages Version 3.1.86

  • New: optimization logs: a .flatproc.log file, and comments in the optimized NC file that mark source lines with a (src) suffix; see Optimization Logs.
  • Values that change: NC optimization output. Re-baseline comparisons made on an earlier build.

HiNc Packages Version 3.1.84

  • New: SessionShell.LoadCuttingParaByFile loads cutting parameters from a file.

HiNc Packages Version 3.1.75

  • New: actual time tracking through MachiningStep.ActualTimecode.

HiNc Packages Version 3.1.74

  • Renamed: the class MillingCutterOptLimit → MillingCutterOptOption.
  • New: relief-face collision detection through MillingPhysicsBrief.ReliefFaceCollidingSpeed_mmds and MachiningStep.IsReliefFaceCollided.
  • New: MillingCutterOptOption.EnableLimitByReliefAngle limits optimization by the relief angle.
  • New: MachiningStep.UpdateNcOptOption.