deploy.
This commit is contained in:
@@ -87,6 +87,113 @@
|
||||
<article data-uid="">
|
||||
<h1 id="release-note">Release Note</h1>
|
||||
|
||||
<h2 id="hinc-packages-version-3226">HiNc Packages Version 3.2.26</h2>
|
||||
<p>Rotary-axis correctness on SoftNc, cutting forces that no longer depend on how the geometry kernel
|
||||
tiled the contact surface, and a process that survives a host without OpenGL. The 3.1.175 → 3.2 line
|
||||
jump is the 3.2.7 entry below; the long form is still
|
||||
<a href="upgrading-to-3.2/index.html">Upgrading from 3.1.175 to 3.2</a>.</p>
|
||||
<div class="IMPORTANT">
|
||||
<h5>Important</h5>
|
||||
<p><strong>Adoption status.</strong> Verification is still in progress across most areas.</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, serviced as
|
||||
<code>3.1.175.<patch></code>. The Blazor front end tracks the 3.2 packages, so it is not a way
|
||||
to stay on the 3.1 behaviour.</p>
|
||||
<p>The 3.2.24 hold on SoftNc canned cycles that index a rotary axis is <strong>lifted</strong> — see the
|
||||
first entry below.</p>
|
||||
</div>
|
||||
<ul>
|
||||
<li><strong>SoftNc canned cycles take rotary axis words.</strong> A G81–G89 repeat block carrying an A / B / C
|
||||
word indexes the table and drills again — the standard bolt-circle shape — where 3.2.24 either
|
||||
skipped the hole or drilled it at the previous angle: a rotary-only repeat fires the cycle, a
|
||||
mixed block pre-positions XYZ and the table in one simultaneous move before the strokes, and
|
||||
under <code>G68.2</code> without RTCP the feature frame stays pinned in machine space so the hole stays put
|
||||
while the workpiece turns. Under <code>G91</code> only the words the block itself spoke are increments, so
|
||||
an X-pitch repeat no longer doubles Y. Hole bottoms match the HardNc replay of a customer's
|
||||
bolt-circle program to 0.000 mm on all twelve C-indexed blocks, and setting
|
||||
<a class="xref" href="../api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_EnableSoftNcRunner">EnableSoftNcRunner</a> <code>false</code> is no longer needed for
|
||||
such programs. See
|
||||
<a href="upgrading-to-3.2/brand-nc-language-coverage.html#fanuc-and-iso-common">Brand NC language coverage</a>
|
||||
and <a href="../technique/nc-dialects/controller-iso.html#canned-cycles">ISO core</a></li>
|
||||
<li><strong>A rotary word under modal <code>G91</code> is an increment on SoftNc.</strong> <code>G91 … C20.</code> followed by <code>C20.</code>
|
||||
leaves the table at 40, not 20; a per-word directive (<code>C=AC(90)</code>, <code>ACP</code> / <code>ACN</code>, <code>IC()</code>) still
|
||||
wins over the modal state, and a spoken <code>G91 B270.</code> stays a +270° traverse instead of folding to
|
||||
−90°. A <code>G91 G28</code> rotary intermediate anchors on the previous modal angle (<code>G91 G28 C10.</code> from
|
||||
C90 passes through 100, then returns home) instead of on zero. HardNc keeps its documented
|
||||
absolute reading of a rotary word under <code>G91</code> and warns. The programmed deltas are recorded on
|
||||
the block in <a class="xref" href="../api/Hi.NcParsers.Keywords.IncrementalWords.html">IncrementalWords</a>, beside the
|
||||
<a class="xref" href="../api/Hi.NcParsers.Keywords.RotaryWords.html">RotaryWords</a> the block spoke. See
|
||||
<a href="upgrading-to-3.2/results-that-change-on-upgrade.html">Results that change on upgrade</a></li>
|
||||
<li><strong>Rotary IK no longer reports failure from a pole seed.</strong> Every solve attempt now runs its
|
||||
coarse stage and its polish, so a small tilt with a large azimuth that used to run out of
|
||||
iterations a few milliradians short — and was then refused by <code>G53.1</code>, leaving the table at
|
||||
A = C = 0 with the tilt still active and the whole path rotated off the part — solves to
|
||||
1e-8 rad. On a Fanuc IJK grid from the pole seed, 54 / 69 failures per A/C chain become 0; on a
|
||||
CL program 44 dropped endpoints of 536 become 0. The happy path is unchanged bit for bit; only a
|
||||
failed attempt pays one extra polish</li>
|
||||
<li><strong>Rotary travel picks the reachable IK branch.</strong> When the nearest solution lies outside an axis'
|
||||
configured travel, the axial solve searches the other branches (sign, half-turn and supplement
|
||||
combinations) and keeps the admissible one nearest the entry; <code>G53.1</code>, <code>G68.2</code>, <code>CYCLE800</code>,
|
||||
<code>PLANE SPATIAL</code> and the <code>LN</code> vector syntax pass the travel through the new admissibility overloads
|
||||
of <a class="xref" href="../api/Hi.Numerical.Xyzabc.IMachineKinematics.html">IMachineKinematics</a> and
|
||||
<a class="xref" href="../api/Hi.NcParsers.Dependencys.StrokeLimitUtil.html#Hi_NcParsers_Dependencys_StrokeLimitUtil_RotaryAdmissibility_">RotaryAdmissibility</a>. The travel itself now
|
||||
reaches SoftNc from every project: a stroke limit declared only in the legacy machine-limits
|
||||
boxes is copied into the controller parameter table on load for the axes carrying no end there
|
||||
(explicit rows win), where 3.2.24 checked such a project against nothing. Both stroke checks
|
||||
apply <a class="xref" href="../api/Hi.NcParsers.Dependencys.StrokeLimitUtil.html#Hi_NcParsers_Dependencys_StrokeLimitUtil_Tolerance">Tolerance</a>, so an axis parked exactly on its
|
||||
limit is not reported. See
|
||||
<a href="../anatomy/general-setup/controller/machine/per-axis-tables.html">Per-axis tables</a></li>
|
||||
<li><strong>A rapid traverse that removes stock is reported.</strong> <code>Play-RapidCut--Detected</code> folds the G00
|
||||
steps of one NC line that touched the workpiece into one validation warning, anchored on the
|
||||
line's first cutting step and carrying the line's removed volume (geometry only), its
|
||||
touching-step count and its largest cutting depth. The line total is gated by the project-level
|
||||
<a class="xref" href="../api/Hi.MachiningProcs.MachiningActRunnerConfig.html#Hi_MachiningProcs_MachiningActRunnerConfig_RapidCutVolumeThreshold_mm3">RapidCutVolumeThreshold_mm3</a> (default 0: any
|
||||
contact reports); a step with the spindle stopped is left to collision detection while that is
|
||||
on. <a class="xref" href="../api/Hi.MachiningSteps.MachineMotionStep.html#Hi_MachiningSteps_MachineMotionStep_IsRapid">IsRapid</a> marks the step. See
|
||||
<a href="upgrading-to-3.2/new-diagnostics.html">New diagnostics</a></li>
|
||||
<li><strong>Cutter–workpiece engagement no longer depends on how the contact surface was tiled.</strong> The scan
|
||||
that turns a step's contact contours into the engaged angle ranges of
|
||||
<a class="xref" href="../api/Hi.Milling.Engagements.LayerMillingEngagement.html">LayerMillingEngagement</a> dropped its dense-step bounding-box shortcut
|
||||
and its winding dependence; a cylinder wall and a flat floor sector reproduce their analytic arcs
|
||||
to 1e-9 rad at four tessellations, and the managed and native paths stay bit-identical.
|
||||
<strong>Re-running an existing program moves the forces</strong> on most engaged steps — floors that used to
|
||||
register as empty and side ranges fragmented by phantom 1° gaps move the most — and coefficient
|
||||
sets trained before this build embed the old engagement. See
|
||||
<a href="upgrading-to-3.2/results-that-change-on-upgrade.html">Results that change on upgrade</a></li>
|
||||
<li><strong>The cube tree folds a re-cut flat region again.</strong> A comparison in the simplification gate had
|
||||
been inverted since 2023, so a floor roughened by one pass and re-cut flat by a later one stayed
|
||||
at its finest level for the life of the tree. On a 1000-move CL replay the node count drops 17%
|
||||
and the peak working set 8%; the meshed-geometry writer and the fly-piece remover now tolerate a
|
||||
fold landing under them mid-cut instead of crashing. See
|
||||
<a href="upgrading-to-3.2/geometry-rendering-and-stability.html">Geometry, rendering and native stability</a></li>
|
||||
<li><strong>A host with no usable OpenGL no longer aborts the process.</strong> Where the native display
|
||||
initialiser used to kill the process at startup — every service on a machine whose graphics
|
||||
driver and kernel module disagree — it now reports, and NC play, physics and training run
|
||||
without 3D. <a class="xref" href="../api/Hi.Disp.DispEngine.html#Hi_Disp_DispEngine_IsGlAvailable">IsGlAvailable</a> carries the verdict and HiNc logs it once at
|
||||
startup; a host must not obtain a <a class="xref" href="../api/Hi.Disp.DispEngine.html">DispEngine</a> while it is <code>false</code>. See
|
||||
<a href="../product/system-requirements.html">System requirements</a></li>
|
||||
<li><strong>Packaging.</strong> The Linux licence-key native library in the HiDisp package ships stripped: the
|
||||
protected file no longer carries debug information</li>
|
||||
</ul>
|
||||
<p><strong>Committed after the 3.2.26 pack — these ship in the next package build:</strong></p>
|
||||
<ul>
|
||||
<li><strong><code>BackgroundTemperature</code> renames to <code>AmbientTemperature</code>.</strong>
|
||||
<a class="xref" href="../api/Hi.Machining.MachiningEquipmentUtils.SetupEquipment.html#Hi_Machining_MachiningEquipmentUtils_SetupEquipment_AmbientTemperature_C">AmbientTemperature_C</a> /
|
||||
<a class="xref" href="../api/Hi.Machining.MachiningEquipmentUtils.SetupEquipment.html#Hi_Machining_MachiningEquipmentUtils_SetupEquipment_AmbientTemperature_K">AmbientTemperature_K</a> (and the same
|
||||
pair on <a class="xref" href="../api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html">MachiningEquipment</a>) name the shop-floor
|
||||
temperature the workpiece, cutter, chips and spindle start at and the spindle cools toward; the
|
||||
old names remain as <code>[Obsolete]</code> delegates. A <code>.hincproj</code> now writes <code><AmbientTemperature_C></code> and
|
||||
still reads the legacy element and the 2019 wrapper, so no project needs editing. See
|
||||
<a href="../manual/setup/coolant.html">Coolant</a> and
|
||||
<a href="upgrading-to-3.2/breaking-changes.html#7-signature-and-shape-changes">Breaking changes</a></li>
|
||||
<li><strong>Every NC-pipeline rewind raises one event.</strong> Suit rewiring, <code>PowerReset</code> and
|
||||
<a class="xref" href="../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ResetRuntime_">ResetRuntime</a> share one seam that drops the runner session
|
||||
state and the NC diagnostics and raises
|
||||
<a class="xref" href="../api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_OnNcPipelineReset">OnNcPipelineReset</a> before the next file's pieces
|
||||
arrive, so a consumer keyed by file / sentence index drops its stale index in step instead of
|
||||
merging the next file into the previous file's numbers. See
|
||||
<a href="upgrading-to-3.2/session-project-and-commands.html">Session, project and commands</a></li>
|
||||
</ul>
|
||||
<h2 id="hinc-packages-version-3224">HiNc Packages Version 3.2.24</h2>
|
||||
<p>Correctness and coverage that landed after 3.2.7. The 3.1.175 → 3.2 line jump is the
|
||||
3.2.7 entry below; the long form is still
|
||||
|
||||
+15
-5
@@ -258,11 +258,21 @@ extended table (P1–P48). A selected row nobody has entered reports <code>Coord
|
||||
spelling of <code>G20</code> and reports <code>Unit--InchNotSupported</code> rather than silently switching units.
|
||||
<code>G05.1 Q1</code> / <code>Q0</code> is AICC / Nano Smoothing (recognized). Bare <code>G05 P{n}</code> is a different feature
|
||||
(HPCC) and is consumed without changing programmed coordinates, reported under the <code>Hpcc--*</code> ids.</li>
|
||||
<li><strong>Canned-cycle repeats do not take rotary words on SoftNc.</strong> The G73–G89 family expands XYZ / R /
|
||||
Q / F / P / K strokes. An A / B / C word on a repeat is not taken: a rotary-only repeat does not
|
||||
fire the cycle, a mixed block drops the rotary word, and under G68.2 the hole follows the table.
|
||||
<em>Not finished on this line, see Adoption status on the <a href="../index.html">release-note page</a>.</em> The
|
||||
HardNc fallback indexes those blocks the way a control does.</li>
|
||||
<li><strong>Canned-cycle repeats take rotary words on SoftNc.</strong> The G73–G89 family expands XYZ / R / Q /
|
||||
F / P / K strokes, and a repeat block carrying an A / B / C word indexes the table and drills
|
||||
again, the way a control does: a rotary-only repeat fires the cycle, a mixed block pre-positions
|
||||
XYZ and the table in one simultaneous move before the strokes, and under G68.2 without RTCP the
|
||||
feature frame stays pinned in machine space so the hole stays put while the workpiece turns. Under
|
||||
G91 only the words the block itself spoke are increments. The hold that 3.2.24 placed on these
|
||||
programs is lifted; <code>EnableSoftNcRunner = false</code> is no longer needed for them.</li>
|
||||
<li><strong>A rotary word under modal G91 is an increment on SoftNc.</strong> A bare A / B / C word follows the
|
||||
block's modal positioning onto the same anchor + delta path as Siemens <code>IC()</code> and klartext <code>IC+</code>:
|
||||
<code>G91 … C20.</code> then <code>C20.</code> leaves the table at 40. A per-word directive (<code>C=AC(90)</code>, <code>ACP</code> / <code>ACN</code>,
|
||||
<code>IC()</code>) still beats the modal state, and a spoken <code>G91 B270.</code> stays a +270° traverse instead of
|
||||
folding to −90°. A <code>G91 G28</code> rotary intermediate anchors on the previous modal angle, then
|
||||
returns home. HardNc keeps its absolute reading of a rotary word under G91 and warns. The
|
||||
programmed deltas are recorded in <a class="xref" href="../../api/Hi.NcParsers.Keywords.IncrementalWords.html">IncrementalWords</a>, beside the
|
||||
<a class="xref" href="../../api/Hi.NcParsers.Keywords.RotaryWords.html">RotaryWords</a> the block spoke.</li>
|
||||
</ul>
|
||||
<h2 id="cross-brand">Cross-brand</h2>
|
||||
<ul>
|
||||
|
||||
@@ -386,6 +386,13 @@ the authored one — the only face a project file persists, reached as
|
||||
physics, collision and execution display read; it is rebuilt from the authored face at project
|
||||
assignment and at session boundaries, so a value written onto it is discarded rather than saved.
|
||||
See <a href="../../technique/api-foundations/getting-started.html">Getting started</a>.</li>
|
||||
<li><code>BackgroundTemperature_C</code> / <code>_K</code> on both equipment faces rename to
|
||||
<a class="xref" href="../../api/Hi.Machining.MachiningEquipmentUtils.SetupEquipment.html#Hi_Machining_MachiningEquipmentUtils_SetupEquipment_AmbientTemperature_C">AmbientTemperature_C</a> /
|
||||
<a class="xref" href="../../api/Hi.Machining.MachiningEquipmentUtils.SetupEquipment.html#Hi_Machining_MachiningEquipmentUtils_SetupEquipment_AmbientTemperature_K">AmbientTemperature_K</a> (and the same pair
|
||||
on <a class="xref" href="../../api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html">MachiningEquipment</a>): the shop-floor temperature the
|
||||
workpiece, cutter, chips and spindle start at and the spindle cools toward. The old names remain
|
||||
as <code>[Obsolete]</code> delegates, so nothing stops compiling. A <code>.hincproj</code> now writes
|
||||
<code><AmbientTemperature_C></code>; the reader still accepts the legacy element and the 2019 wrapper.</li>
|
||||
</ul>
|
||||
<h2 id="8-defaults-and-gates-that-changed">8. Defaults and gates that changed</h2>
|
||||
<ul>
|
||||
|
||||
+16
@@ -120,6 +120,22 @@ mirrors <code>RemoveBySweepingVolume</code> — the geometry-layer symmetric poi
|
||||
no deposition step in the machining runner yet, so this is a geometry-level API only.</li>
|
||||
<li><strong><a class="xref" href="../../api/Hi.Milling.FluteContours.FreeformBottomContour.html">FreeformBottomContour</a></strong> is the user-editable point-list bottom
|
||||
contour, mirroring the side contour with the key axis switched to radius.</li>
|
||||
<li><strong>A host with no usable OpenGL no longer aborts the process.</strong> The native display initialiser
|
||||
used to end the whole process when the GL loader failed — before any NC play, physics or training,
|
||||
none of which need GL — which is what made every service on a machine whose graphics driver and
|
||||
kernel module disagree unstartable, and kept it dead until the driver was fixed. It now reports
|
||||
and returns; <a class="xref" href="../../api/Hi.Disp.DispEngine.html#Hi_Disp_DispEngine_IsGlAvailable">IsGlAvailable</a> carries the verdict, <code>ContextProjDepth</code> reads
|
||||
0 in that state, and HiNc logs one line at startup saying so. The contract is that a host must
|
||||
not obtain a <a class="xref" href="../../api/Hi.Disp.DispEngine.html">DispEngine</a> while <code>IsGlAvailable</code> is <code>false</code>, rather than guard
|
||||
individual draw calls.</li>
|
||||
<li><strong>The cube tree folds a re-cut flat region again.</strong> A comparison in the simplification gate had
|
||||
been inverted since 2023: it demanded the marching-cubes ambiguous face pattern instead of
|
||||
forbidding it, so almost no cell reached the reproduction test and a floor roughened by one pass
|
||||
and re-cut flat by a later one stayed at its finest level for the life of the tree. 128 of the 256
|
||||
corner masks now pass, the 1e-9 reproduction test behind the gate is unchanged. On a 1000-move CL
|
||||
replay the node count drops 17% and the peak working set 8%. Because folds are now routine, the
|
||||
meshed-geometry writer and the fly-piece remover tolerate a child array folded away under them
|
||||
while a cut runs on another thread — a snapshot taken mid-cut stays torn, but no longer crashes.</li>
|
||||
</ul>
|
||||
|
||||
</article>
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
<h1 id="upgrading-from-31175-to-32">Upgrading from 3.1.175 to 3.2</h1>
|
||||
|
||||
<p>These pages are the long form of the 3.1.175 → 3.2 line — the 3.2.7 entry and the
|
||||
<a href="../index.html">3.2.24</a> incremental drop. They exist because 3.2 is not
|
||||
<a href="../index.html">3.2.24 and 3.2.26</a> incremental drops. They exist because 3.2 is not
|
||||
an increment on the last release most callers hold — it is the accumulation of everything that
|
||||
landed after the 3.1.175 package set, delivered in one step.</p>
|
||||
<p>Read them in order the first time. The two sections that decide whether an upgrade is a recompile or
|
||||
@@ -99,9 +99,9 @@ capability you can adopt when you need it.</p>
|
||||
<h5>Important</h5>
|
||||
<p>Read the <strong>Adoption status</strong> note on the <a href="../index.html">release-note page</a> before planning around this.
|
||||
The short version: 3.2 is published for review, verification is still in progress across most
|
||||
areas, <strong>NC optimization is not finished on this line</strong>, and <strong>SoftNc canned-cycle indexing
|
||||
with rotary A/B/C words is not finished</strong> — work that depends on either should stay on 3.1,
|
||||
serviced as <code>3.1.175.<patch></code>, or run with SoftNc off for the rotary-cycle case.</p>
|
||||
areas and <strong>NC optimization is not finished on this line</strong> — work that depends on it should stay
|
||||
on 3.1, serviced as <code>3.1.175.<patch></code>. The 3.2.24 hold on SoftNc canned cycles that index a
|
||||
rotary axis is lifted in 3.2.26.</p>
|
||||
</div>
|
||||
<h2 id="pages">Pages</h2>
|
||||
<p>Ordered the way to read them: what the package numbers mean, then the two sections that decide whether the upgrade is a recompile or an afternoon, then the new capability, adopted when needed.</p>
|
||||
|
||||
+4
@@ -191,6 +191,10 @@ step touched the workpiece but no touched step carries a physics brief — namin
|
||||
gate it: a tool bound to the spindle, the spindle actually rotating, and the workpiece cutting
|
||||
parameter). That last state previously surfaced one process later, as a training run gathering zero
|
||||
samples.</li>
|
||||
<li><strong>Engagement is tessellation-invariant.</strong> The scan that turns a step's contact contours into
|
||||
the engaged angle ranges no longer depends on how many polygons the geometry kernel cut the
|
||||
contact surface into; forces on existing programs move accordingly — see
|
||||
<a href="results-that-change-on-upgrade.html">Results that change on upgrade</a>.</li>
|
||||
<li><strong>Performance</strong> is collected in its own section below.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
+25
@@ -242,6 +242,31 @@ them on the bench fixtures); the largest moves are floors that used to register
|
||||
whole bottom disc dropped out — and side ranges that were fragmented into pieces separated by
|
||||
phantom 1° gaps. Coefficient sets trained before this change embed the old engagement of their
|
||||
training program; retrain on a replay if that fit matters.</li>
|
||||
<li><strong>SoftNc canned cycles index a rotary axis.</strong> A G81–G89 repeat block carrying an A / B / C word
|
||||
used to skip the hole (rotary-only repeat), drill it at the previous angle (mixed block) or let it
|
||||
follow the table under <code>G68.2</code>. It now indexes the table and drills again, pre-positioning XYZ and
|
||||
the table in one move, and under <code>G68.2</code> without RTCP the feature frame stays pinned in machine
|
||||
space. Under <code>G91</code> only the words the block itself spoke are increments — an X-pitch repeat used
|
||||
to add the previous cycle's Y a second time and drill upward. A bolt-circle program that ran
|
||||
short of holes, or drilled them in the wrong place, now matches the HardNc replay.</li>
|
||||
<li><strong>A rotary word under modal <code>G91</code> is an increment.</strong> <code>G91 … C20.</code> then <code>C20.</code> left the table at
|
||||
20; it is 40 now. A spoken <code>G91 B270.</code> stays a +270° traverse instead of folding to −90°, and a
|
||||
<code>G91 G28</code> rotary intermediate anchors on the previous modal angle instead of on zero (<code>G91 G28 C0</code> from C90 now holds the table and returns home instead of swinging to 0 first). Per-word
|
||||
directives (<code>C=AC(90)</code>, <code>ACP</code> / <code>ACN</code>, <code>IC()</code>) are unchanged. HardNc keeps its absolute reading
|
||||
and warns.</li>
|
||||
<li><strong>Rotary IK from a pole seed.</strong> Every solve attempt now runs coarse then polish, so a small tilt
|
||||
with a large azimuth that ran out of iterations a few milliradians short — and was refused by
|
||||
<code>G53.1</code>, leaving the table at A = C = 0 with the tilt active and the path rotated off the part —
|
||||
now solves to 1e-8 rad. On a Fanuc IJK grid from the pole seed 54 / 69 failures per A/C chain
|
||||
become 0; a CL program goes from 44 dropped endpoints of 536 to 0.</li>
|
||||
<li><strong>The rotary branch inside the travel wins.</strong> When the nearest IK solution lies outside an axis'
|
||||
configured travel, <code>G53.1</code>, <code>G68.2</code>, <code>CYCLE800</code>, <code>PLANE SPATIAL</code> and <code>LN</code> now take the admissible
|
||||
branch nearest the entry (sign, half-turn and supplement combinations are searched); a posture
|
||||
the cradle cannot take is no longer commanded silently. This needs the travel to be known, and
|
||||
it now is on every project: stroke limits declared only in the legacy machine-limits boxes are
|
||||
copied into the controller parameter table on load for the axes carrying no end there, where they
|
||||
used to be checked against nothing on SoftNc. An axis parked exactly on its limit is no longer
|
||||
reported (<a class="xref" href="../../api/Hi.NcParsers.Dependencys.StrokeLimitUtil.html#Hi_NcParsers_Dependencys_StrokeLimitUtil_Tolerance">Tolerance</a>).</li>
|
||||
<li>The SoftNc pipeline is the default engine.</li>
|
||||
<li>Executed <code>SyntaxPiece</code>s freeze to UTF-8 (below), so their <code>JsonObject</code> is a fresh read-only snapshot
|
||||
per call rather than a retained live graph.</li>
|
||||
|
||||
+7
@@ -158,6 +158,13 @@ rewinds the NC-runner session state, so the next play restarts file and line ind
|
||||
the way <code>PowerReset</code> does, and it resets the CL device pose to identity. It no longer clobbers
|
||||
<code>MachiningResolution_mm</code>: the runtime resolution is seeded from the workpiece's initial resolution
|
||||
only when a project loads, so an explicit override survives a runtime reset and a workpiece swap.</li>
|
||||
<li><strong>Every NC-pipeline rewind raises one event.</strong> Suit rewiring, <code>PowerReset</code> and
|
||||
<a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ResetRuntime_">ResetRuntime</a> each dropped the runner session state on their
|
||||
own with no notification, so the file / sentence counters restarted at 0 on the next play while
|
||||
the session and its subscribers lived on — a consumer keyed by file index merged the next NC file
|
||||
into the previous file's numbers. One seam now performs the reset (session state and the NC
|
||||
diagnostics) and raises <a class="xref" href="../../api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_OnNcPipelineReset">OnNcPipelineReset</a>, an
|
||||
app-lifetime event, before the next file's pieces arrive.</li>
|
||||
<li><strong>Mixed runner kinds in one session are refused.</strong> <code>NcRunnerSessionState</code> remembers the runner that
|
||||
initialised it and <a class="xref" href="../../api/Hi.NcParsers.SoftNcRunner.html#Hi_NcParsers_SoftNcRunner_RunNcLines_">RunNcLines</a> refuses a different one with
|
||||
<code>RunNcLines--RunnerMismatch</code> — reachable now that <code>NcKind.Auto</code> makes mixed-kind missions a
|
||||
|
||||
Reference in New Issue
Block a user