Archived
deploy.
This commit is contained in:
@@ -87,7 +87,7 @@
|
||||
<article data-uid="">
|
||||
<h1 id="release-note">Release Note</h1>
|
||||
|
||||
<h2 id="hinc-packages-version-326">HiNc Packages Version 3.2.6</h2>
|
||||
<h2 id="hinc-packages-32">HiNc Packages 3.2</h2>
|
||||
<h3 id="at-a-glance">At a glance</h3>
|
||||
<p>3.2 is largely one piece of work: the NC interpreter that reads a controller program is now composed
|
||||
from configurable parts rather than written into one class, and most of this release is the brand
|
||||
@@ -125,38 +125,42 @@ program we have not seen:</p>
|
||||
<p>Syntec and Mazak run on the Fanuc-family vocabulary; their brand-specific syntax has not been worked
|
||||
through and they are not covered by the figures above. The per-construct picture — including what is
|
||||
recognized and deliberately <em>not</em> simulated — is in the
|
||||
<a href="../fundamentals/nc-parsing/index.html#brand-support">brand support matrix</a>.</p>
|
||||
<a href="../technique/nc-dialects/nc-parsing.html#brand-support">brand support matrix</a>.</p>
|
||||
<p><strong>Failures say what went wrong.</strong> The class of defect this release spent most effort on is the
|
||||
silent one: a Siemens tool offset with no table row that resolved to zero and machined a whole
|
||||
program one tool length low, a G68 rotation that did nothing while reporting itself active, a tilted
|
||||
plane the machine could not reach. Each of those is now a named, searchable diagnostic rather than a
|
||||
plausible-looking wrong result — see the <a href="upgrading-to-3.2.html#new-diagnostics-you-may-now-see">diagnostic id
|
||||
plausible-looking wrong result — see the <a href="upgrading-to-3.2/new-diagnostics.html">diagnostic id
|
||||
table</a>.</p>
|
||||
<p><strong>Simulation is faster and holds a bigger program.</strong> Physics moved into the native kernel (a paired
|
||||
play: 59.3 s / 16.1 GB allocated → 40.6 s / 3.4 GB), building the topology of a large STL is linear
|
||||
rather than quadratic in triangle count, and a long program no longer degrades as it plays. Figures
|
||||
and their conditions are under
|
||||
<a href="upgrading-to-3.2.html#performance-and-footprint">Performance and footprint</a>.</p>
|
||||
<p><strong>The application product moves to the web API.</strong> From 3.2 the shipped application is the web
|
||||
service, and its source is the same <code>HiNC-2025-webservice</code> sample we publish — what you read there is
|
||||
what the product runs. The Blazor front end is not on this line.</p>
|
||||
<a href="upgrading-to-3.2/performance-and-footprint.html">Performance and footprint</a>.</p>
|
||||
<p><strong>The application product moves to the web API.</strong> The web service is the application the product
|
||||
line is built on, and its source is the same <a href="../technique/api-foundations/packages-and-samples.html#hiapi-sample-code"><code>HiNC-2025-webservice</code></a>
|
||||
sample we publish — what you read there is what the product runs. A Windows desktop client ships
|
||||
alongside it on the same packages, and no new feature work targets it. The Blazor front end builds
|
||||
against the same 3.2 packages but is not published as a product.</p>
|
||||
<div class="IMPORTANT">
|
||||
<h5>Important</h5>
|
||||
<p><strong>Adoption status.</strong> This drop is published for review. Verification is still in progress across
|
||||
most areas, and the coverage figures above are the honest state of it.</p>
|
||||
<p><strong>Do not put 3.2 NC optimization into production.</strong> It is not finished on this line. Work that
|
||||
depends on optimization should stay on the 3.1 line, which is serviced as <code>3.1.175.<patch></code>. The
|
||||
Blazor front end likewise remains on 3.1.</p>
|
||||
Blazor front end tracks the 3.2 packages, so it is not a way to stay on the 3.1 behaviour.</p>
|
||||
</div>
|
||||
<h3 id="what-changed">What changed</h3>
|
||||
<p><strong>This one entry covers everything since 3.1.175.</strong> The 3.1 line is closed at the 3.1.175 package
|
||||
set and is serviced only as <code>3.1.175.<patch></code>; <code>master</code> moved all ten packages onto the <strong>3.2</strong> line
|
||||
on 2026-07-26 and restarted their build counters. So a 3.2 build number starts low — <code>3.2.6</code> is
|
||||
newer than <code>3.1.204</code>, the two counters are not comparable, and the gap between them is expected
|
||||
rather than a missing upload. The versions in between were never published as a release set, which
|
||||
is why they are merged here rather than listed separately.</p>
|
||||
on 2026-08-24 and restarted their build counters. So a 3.2 build number starts low, the two
|
||||
counters are not comparable, and the gap between the last 3.1 number a feed served and the first
|
||||
3.2 one is expected rather than a missing upload. The versions in between were never published as a
|
||||
release set, which is why they are merged here rather than listed separately. Each package's build
|
||||
counter advances on its own, so no single number is common to all ten; a set is named by its HiNc
|
||||
package version — see <a href="upgrading-to-3.2/the-package-line.html">The package line</a>.</p>
|
||||
<p>Everything below therefore lands at once on a caller moving a 3.1.175 reference to 3.2.
|
||||
<strong>See <a href="upgrading-to-3.2.html">Upgrading from 3.1.175 to 3.2</a> for the full detail</strong> — the summary here
|
||||
<strong>See <a href="upgrading-to-3.2/index.html">Upgrading from 3.1.175 to 3.2</a> for the full detail</strong> — the summary here
|
||||
is the shape of the upgrade, not the whole of it.</p>
|
||||
<h3 id="breaking-changes">Breaking changes</h3>
|
||||
<p>In the order they will bite. Full table with replacements on the upgrade page.</p>
|
||||
@@ -211,7 +215,7 @@ HiNcRcl drops the inert <code>HiNC:DisplayEngine:FontFile</code> key</li>
|
||||
silent no-op, blank lines resetting G90/G91, Heidenhain absolute arc centres, five-axis IK about
|
||||
1000× tighter, and MC-linear moves stepping by euclidean tip travel. They are listed with their
|
||||
symptoms under
|
||||
<a href="upgrading-to-3.2.html#results-that-change-on-upgrade">Results that change on upgrade</a>.</p>
|
||||
<a href="upgrading-to-3.2/results-that-change-on-upgrade.html">Results that change on upgrade</a>.</p>
|
||||
<h3 id="new-in-this-release">New in this release</h3>
|
||||
<ul>
|
||||
<li><strong>Siemens SINUMERIK programs replay end to end</strong> — real <code>.mpf</code> / <code>.spf</code> files rather than an ISO
|
||||
@@ -227,7 +231,7 @@ without separators; and the DIN/ISO dialect with its absolute <code>I</code> / <
|
||||
<code>M98</code> / <code>M99</code> subprograms and <code>G65</code> / <code>G66</code> macro calls; <code>G12.1</code> / <code>G13.1</code> polar coordinate
|
||||
interpolation with <code>G41</code> / <code>G42</code> compensation on the hypothetical plane</li>
|
||||
<li><strong><a class="xref" href="../api/Hi.NcParsers.SoftNcRunner.html">SoftNcRunner</a> is the default NC pipeline.</strong> See
|
||||
<a href="../fundamentals/nc-parsing/index.html">NC Parsing Engine</a> for its architecture and the per-brand
|
||||
<a class="xref" href="../technique/nc-dialects/nc-parsing.html">NC Parsing Engine</a> for its architecture and the per-brand
|
||||
support matrix</li>
|
||||
<li><strong>NC optimization runs on that pipeline</strong> — <em>not finished on this line, see Adoption status above</em>
|
||||
— regenerating text as anchored token edits over the verbatim source block, so lines the optimizer
|
||||
@@ -264,7 +268,7 @@ instead of quadratic in triangle count (18.7× at 300k triangles, and it was 99.
|
||||
re-triangulating after a cut is about 2.2× faster; and a long program no longer exhausts client
|
||||
memory (session retention on a 25,000-block play: 406 MB → 142 MB). Every figure with its
|
||||
conditions — including the two things that cost more on purpose — is under
|
||||
<a href="upgrading-to-3.2.html#performance-and-footprint">Performance and footprint</a></li>
|
||||
<a href="upgrading-to-3.2/performance-and-footprint.html">Performance and footprint</a></li>
|
||||
<li><strong>Stability and data integrity</strong> — the native crashes from disposing a display or geometry object
|
||||
still in use, the intermittent “No cut / No data for step” on freshly-simulated steps, the
|
||||
project-file race between a Load and a Save, and non-reproducible milling-force waveforms are all
|
||||
@@ -279,11 +283,11 @@ fixed; large geometry now builds its display topology off-thread instead of free
|
||||
<ul>
|
||||
<li>Improve <a class="xref" href="../api/Hi.MachiningSteps.MachiningStep.html#Hi_MachiningSteps_MachiningStep_Mrr_mm3ds">Mrr_mm3ds</a> precision: the material-removal-rate now sums each cut contour's signed area-vector (fan triangulation, skipping non-finite triangles) projected on the feed direction, replacing the per-contour bounding-box area that over-estimated the cut cross-section</li>
|
||||
<li>Add <a class="xref" href="../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_AlignWorkpieceProgramZeroToIso_">AlignWorkpieceProgramZeroToIso</a> script command: resolves a G54/G55/… entry from the project ISO coordinate table and places workpiece + fixture so the program zero coincides with that machine coordinate (topology math delegated to the new <a class="xref" href="../api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.html#Hi_Machining_MachiningEquipmentUtils_MachiningEquipmentUtil_AlignWorkpieceProgramZeroToIso_">AlignWorkpieceProgramZeroToIso</a> extension)</li>
|
||||
<li>Drop gRPC plumbing from the HiNc package: remove <code>Hi.Grpcs.*</code> ClStrip/Player service runners and protos, <code>MachiningProjectGrpcServer</code>, <code>MonitoringPlayer</code>, and <code>UniversalNcMonitorClient</code>; fold <code>CsvRunnerConfig</code> back into <code>CsvRunner0</code> (gRPC services now ship in HiNcRcl / UJoinRcl)</li>
|
||||
<li>Drop gRPC plumbing from the HiNc package: remove <code>Hi.Grpcs.*</code> ClStrip/Player service runners and protos, <code>MachiningProjectGrpcServer</code>, <code>MonitoringPlayer</code>, and <code>UniversalNcMonitorClient</code>; fold <code>CsvRunnerConfig</code> back into <code>CsvRunner0</code> (gRPC services now ship in HiNcRcl and a downstream RCL package)</li>
|
||||
</ul>
|
||||
<h2 id="hinc-packages-version-31172">HiNc Packages Version 3.1.172</h2>
|
||||
<ul>
|
||||
<li>Replace implicit XFactory registration (private <code>static <ClassName>()</code> constructors + <code>_ = X.XName</code> wake-up touches) with explicit <code>public static void Reg(XFactory factory = null)</code> methods across ~270 classes. <a class="xref" href="../api/Hi.Common.XmlUtils.XFactory.html">XFactory</a> becomes an instance class with a process-wide <code>Default</code> singleton; <code>Generators</code> is renamed from <code>Regs</code> and now an instance property; the delegate type is renamed <code>XGeneratorDelegate</code> from <code>GenByXElementDelegate</code>. Composite types chain <code>X.Reg(factory)</code> on dependents in place of the old wake-up touches; multi-name (legacy alias) registrations keep the current XName first and group aliases under a <code>//legacy aliases</code> comment. Entry points (web service, win-desktop, test fixtures) <strong>must call <a class="xref" href="../api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_Reg_">Reg</a> once at startup before any project XML is deserialized</strong> — registration no longer happens by accident when the type is first touched. See <a href="../fundamentals/common/xml-io.html">XML IO</a>.</li>
|
||||
<li>Replace implicit XFactory registration (private <code>static <ClassName>()</code> constructors + <code>_ = X.XName</code> wake-up touches) with explicit <code>public static void Reg(XFactory factory = null)</code> methods across ~270 classes. <a class="xref" href="../api/Hi.Common.XmlUtils.XFactory.html">XFactory</a> becomes an instance class with a process-wide <code>Default</code> singleton; <code>Generators</code> is renamed from <code>Regs</code> and now an instance property; the delegate type is renamed <code>XGeneratorDelegate</code> from <code>GenByXElementDelegate</code>. Composite types chain <code>X.Reg(factory)</code> on dependents in place of the old wake-up touches; multi-name (legacy alias) registrations keep the current XName first and group aliases under a <code>//legacy aliases</code> comment. Entry points (web service, win-desktop, test fixtures) <strong>must call <a class="xref" href="../api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_Reg_">Reg</a> once at startup before any project XML is deserialized</strong> — registration no longer happens by accident when the type is first touched. See <a class="xref" href="../technique/api-foundations/xml-io.html">XML IO</a>.</li>
|
||||
</ul>
|
||||
<h2 id="hinc-packages-version-31171">HiNc Packages Version 3.1.171</h2>
|
||||
<ul>
|
||||
@@ -294,15 +298,15 @@ fixed; large geometry now builds its display topology off-thread instead of free
|
||||
</ul>
|
||||
<h2 id="hinc-packages-version-31167">HiNc Packages Version 3.1.167</h2>
|
||||
<ul>
|
||||
<li>Introduce <a class="xref" href="../api/Hi.NcParsers.SoftNcRunner.html">SoftNcRunner</a> as a pluggable NC parser/runner replacing the legacy <code>HardNcRunner</code>, opt-in at the time via <a class="xref" href="../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_EnableSoftNcRunner">EnableSoftNcRunner</a>. It became the default pipeline in 3.2 — see <a href="../fundamentals/nc-parsing/index.html">NC Parsing Engine</a></li>
|
||||
<li>Introduce <a class="xref" href="../api/Hi.NcParsers.SoftNcRunner.html">SoftNcRunner</a> as a pluggable NC parser/runner replacing the legacy <code>HardNcRunner</code>, opt-in at the time via <a class="xref" href="../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_EnableSoftNcRunner">EnableSoftNcRunner</a>. It became the default pipeline in 3.2 — see <a class="xref" href="../technique/nc-dialects/nc-parsing.html">NC Parsing Engine</a></li>
|
||||
<li>Extend coolant model to <a class="xref" href="../api/Hi.Numerical.CoolantMode.html">CoolantMode</a> Flood/Mist/Off and refactor <a class="xref" href="../api/Hi.Physics.CoolantHeatCondition.html">CoolantHeatCondition</a> / <code>MillingTemperatureUtil</code> for multi-mode coolant</li>
|
||||
<li>Bind session events to <a class="xref" href="../api/Hi.MachiningProcs.MachiningSession.html">MachiningSession</a> lifetime: <a class="xref" href="../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_SessionStepBuilt">SessionStepBuilt</a>, <a class="xref" href="../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_SessionStepSelected">SessionStepSelected</a>, <a class="xref" href="../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_SessionSyntaxPieceRan">SessionSyntaxPieceRan</a>, <a class="xref" href="../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_SessionSourcedActEntry">SessionSourcedActEntry</a> (legacy aliases kept as <code>[Obsolete]</code>); add <a class="xref" href="../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_RegisterWriteSyntaxPieces_">RegisterWriteSyntaxPieces</a> / <a class="xref" href="../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_RegisterWriteSyntaxPiecesWithActs_">RegisterWriteSyntaxPiecesWithActs</a> for syntax-piece debug tracing</li>
|
||||
<li>Add <a class="xref" href="../api/Hi.Common.XmlUtils.ProjectApiVersion.html">ProjectApiVersion</a> carrier through <a class="xref" href="../api/Hi.Common.XmlUtils.XFactory.html">XFactory</a> deserialization for project-XML version negotiation; resolve <a class="xref" href="../api/Hi.NcMech.Workpieces.Workpiece.html">Workpiece</a> through a lazy <code>Func</code> getter in <a class="xref" href="../api/Hi.NcMech.Workpieces.WorkpieceService.html">WorkpieceService</a></li>
|
||||
</ul>
|
||||
<h2 id="hinc-packages-version-31162">HiNc Packages Version 3.1.162</h2>
|
||||
<ul>
|
||||
<li>Refactor message management into three independent categories: <strong>Diagnostic</strong> (<code>IProgress<object></code>), <strong>UI Notification</strong> (<code>MessageBoardUtil</code>), <strong>App Log</strong> (<code>ILogger</code>); remove <code>MessageUtil</code> class entirely and remove <code>ExceptionUtil.ShowException</code> / <code>ExceptionUtil.OnShown</code> (see <a href="../fundamentals/common/message-management.html">Message Management</a>)</li>
|
||||
<li>Thread <code>IProgress<object></code> through <a class="xref" href="../api/Hi.Common.XmlUtils.XFactory.html">XFactory</a> deserialization chain and <a class="xref" href="../api/Hi.MachiningProcs.MachiningProject.html">MachiningProject</a> loading; remove <code>GenMode</code> enum entirely (see <a href="../fundamentals/common/xml-io.html">XML IO</a>)</li>
|
||||
<li>Refactor message management into three independent categories: <strong>Diagnostic</strong> (<code>IProgress<object></code>), <strong>UI Notification</strong> (<code>MessageBoardUtil</code>), <strong>App Log</strong> (<code>ILogger</code>); remove <code>MessageUtil</code> class entirely and remove <code>ExceptionUtil.ShowException</code> / <code>ExceptionUtil.OnShown</code> (see <a class="xref" href="../technique/api-foundations/message-management.html">Message Management</a>)</li>
|
||||
<li>Thread <code>IProgress<object></code> through <a class="xref" href="../api/Hi.Common.XmlUtils.XFactory.html">XFactory</a> deserialization chain and <a class="xref" href="../api/Hi.MachiningProcs.MachiningProject.html">MachiningProject</a> loading; remove <code>GenMode</code> enum entirely (see <a class="xref" href="../technique/api-foundations/xml-io.html">XML IO</a>)</li>
|
||||
<li>Add <a class="xref" href="../api/Hi.Common.Messages.ActionProgress-1.html">ActionProgress<T></a>.<a class="xref" href="../api/Hi.Common.Messages.ActionProgress-1.html#Hi_Common_Messages_ActionProgress_1_FromLogger_">FromLogger</a> to bridge <code>IProgress<object></code> APIs to <code>ILogger</code></li>
|
||||
<li>Rename <code>ShowIfCatched</code> → <a class="xref" href="../api/Hi.Common.Messages.ExceptionUtil.html#Hi_Common_Messages_ExceptionUtil_CatchExceptions_">CatchExceptions</a> with explicit <code>Action<Exception></code> handler; remove <code>RoutineBlocker0</code></li>
|
||||
<li>Extract <a class="xref" href="../api/Hi.NcMech.Workpieces.WorkpieceService.html">WorkpieceService</a> from <a class="xref" href="../api/Hi.NcMech.Workpieces.Workpiece.html">Workpiece</a> for runtime geometry operations</li>
|
||||
|
||||
Reference in New Issue
Block a user