完成 xyzbc-trt working 任务复核

This commit is contained in:
mes123456
2026-07-02 23:53:51 -04:00
parent b279fa17fd
commit 2722fe7f3c
33 changed files with 376795 additions and 171883 deletions

View File

@@ -22,13 +22,21 @@ export function buildProgramExecutionTiming({
let previousLinearUnits = linearUnits;
let elapsedSeconds = 0;
let feedRate = Number(defaultFeedRate) > 0 ? Number(defaultFeedRate) : 100;
let sourceFeedRate = null;
for (let index = 0; index < motion.length; index += 1) {
const event = motion[index];
const eventLinearUnits = event.linearUnits || linearUnits;
const axes = normalizeAxes(event.axes, previousAxes);
if (Number.isFinite(event.feedRate) && event.feedRate > 0) {
feedRate = event.feedRate;
const eventFeedMode = event.feedMode === "inverse-time" ? "inverse-time" : "units-per-minute";
if (Number.isFinite(event.sourceFeedRate) && event.sourceFeedRate > 0) {
sourceFeedRate = event.sourceFeedRate;
}
const effectiveFeedRate = eventFeedMode === "inverse-time" && Number.isFinite(sourceFeedRate) && sourceFeedRate > 0
? sourceFeedRate
: event.feedRate;
if (Number.isFinite(effectiveFeedRate) && effectiveFeedRate > 0) {
feedRate = effectiveFeedRate;
}
const segment = buildTimingSegment({
event,
@@ -37,6 +45,7 @@ export function buildProgramExecutionTiming({
previousAxes: previousAxes || axes,
limits,
feedRate,
sourceFeedRate,
feedOverride,
rapidOverride,
elapsedSeconds,
@@ -92,6 +101,7 @@ function buildTimingSegment({
previousAxes,
limits,
feedRate,
sourceFeedRate,
feedOverride,
rapidOverride,
elapsedSeconds,
@@ -139,6 +149,8 @@ function buildTimingSegment({
type: event.type,
motionClass,
feedMode,
canonicalFeedRate: Number.isFinite(event.feedRate) ? event.feedRate : null,
sourceFeedRate: Number.isFinite(sourceFeedRate) ? sourceFeedRate : null,
linearDistanceMm,
angularDistanceDeg,
feedRate,

View File

@@ -246,6 +246,7 @@ export function parseLinuxCncCanonicalMotion(resultText, programText = "", switc
let activePlane = 170;
let activeSwitchkinsEvent = null;
let activeFeedRate = null;
let activeSourceFeedRate = null;
let activeFeedMode = "units-per-minute";
let activeLinearUnits = "mm";
@@ -295,6 +296,9 @@ export function parseLinuxCncCanonicalMotion(resultText, programText = "", switc
const event = latestSwitchkinsEventAtOrBeforeLine(switchkinsByLine, sourceLine);
if (event) activeSwitchkinsEvent = event;
const sourceFeedRate = latestFeedRateAtOrBeforeLine(feedRatesByLine, sourceLine);
if (Number.isFinite(sourceFeedRate) && sourceFeedRate > 0) {
activeSourceFeedRate = sourceFeedRate;
}
if ((!Number.isFinite(activeFeedRate) || activeFeedRate <= 0)
&& Number.isFinite(sourceFeedRate) && sourceFeedRate > 0) {
activeFeedRate = sourceFeedRate;
@@ -312,6 +316,7 @@ export function parseLinuxCncCanonicalMotion(resultText, programText = "", switc
switchkinsCode: activeSwitchkinsEvent?.code || null,
switchkinsRemapBoundary: activeSwitchkinsEvent ? SWITCHKINS_REMAP_BOUNDARY : null,
feedRate: activeFeedRate,
sourceFeedRate: activeSourceFeedRate,
feedMode: activeFeedMode,
linearUnits: activeLinearUnits,
raw: line,

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff