Archived
deploy.
This commit is contained in:
+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