Support XYZAC and XYZBC in shared web machine UI
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
|
||||
当前 AXIS 风格面板的 Preview 区域需要同时表达两种不同的信息:
|
||||
|
||||
1. 刀具在工件坐标中的 canonical 程序轨迹,以及执行过程中已经走过和正在执行的实时刀具轨迹。
|
||||
1. 刀具在工件坐标中的 canonical 程序轨迹,以及执行过程中已经走过和正在执行的实时刀具轨迹;XYZAC 使用 A 轴,XYZBC 使用 B 轴。
|
||||
2. 由五个关节(table-x、saddle-y、spindle-z、tilt-a、rotate-c)驱动的完整机床三维模型运动。
|
||||
|
||||
本方案将 Preview 明确拆为两个相互独立的 `<canvas>`:
|
||||
@@ -93,9 +93,9 @@ Worker 每个 logical tick 依次执行 interpreter、TP、motion、kinematics
|
||||
|
||||
### 5.2 Canvas B:机床三维模型运动
|
||||
|
||||
* 场景节点必须按 `XYZAC_MACHINE_GROUPS` 建立:`xyzac-machine`、`table-x`、`saddle-y`、`spindle-z`、`tilt-a`、`rotate-c`、`tool-offset`。
|
||||
* 场景节点按当前机床定义建立:`xyzac-machine`/`xyzbc-machine`、`table-x`、`saddle-y`、`spindle-z`、`tilt-a` 或 `tilt-b`、`rotate-c`、`tool-offset`。
|
||||
* 模型描述来自 `visual.machine_model`:`id`、`source_path`、`source_hash`、`components`、`joints`、`coordinate_system`。模型缺失或哈希不匹配时显示结构化错误并保留轴姿态 HUD。
|
||||
* 关节变换顺序固定为 table-x -> saddle-y -> spindle-z -> tilt-a -> rotate-c -> tool-offset;方向和单位从模型 manifest 定义,禁止组件自行猜测。
|
||||
* 关节变换顺序固定为 table-x -> saddle-y -> spindle-z -> tilt-a/tilt-b -> rotate-c -> tool-offset;方向和单位从模型 manifest 定义,禁止组件自行猜测。
|
||||
* 使用 `visual.joints` 驱动机械层级,使用 `visual.pose` 驱动刀尖/姿态 HUD;二者必须在同一 tick 通过一致性检查。
|
||||
* 默认不绘制 Canvas A 的完整路径;`showPath` 仅作为明确的诊断层,且数据仍来自同一 snapshot。
|
||||
|
||||
@@ -121,7 +121,7 @@ type DualCanvasSnapshot = {
|
||||
visual: {
|
||||
schema: "axis-visual.v1";
|
||||
source: "wasm_canonical_motion";
|
||||
pose: Record<"x"|"y"|"z"|"a"|"c", number>;
|
||||
pose: Record<"x"|"y"|"z"|"a"|"b"|"c", number>;
|
||||
joints: number[]; // exactly 5: mm, mm, mm, deg, deg
|
||||
toolpath?: ToolpathSegment[]; // omitted in motion_delta
|
||||
motion_trace?: MotionSample[];
|
||||
@@ -143,7 +143,7 @@ type DualCanvasSnapshot = {
|
||||
};
|
||||
```
|
||||
|
||||
`ToolpathSegment` 的数值单位是 mm/deg,坐标顺序为 XYZAC;`MotionSample` 必须含 `tick`、五关节、pose、活动段和进度。`machine_model.source` 必须为 `linuxcnc-wasm-worker`,模型 `source_hash` 用于恢复和 native 对账。`projectXyzacVisual()` 负责默认值、有限值和长度校验;校验失败时 `authoritative=false`。
|
||||
`ToolpathSegment` 的数值单位是 mm/deg,坐标顺序为当前机床定义的 XYZAC 或 XYZBC;`MotionSample` 必须含 `tick`、五关节、pose、活动段和进度。`machine_model.source` 必须为 `linuxcnc-wasm-worker`,模型 `source_hash` 用于恢复和 native 对账。`projectXyzacVisual()` 负责默认值、有限值和长度校验;校验失败时 `authoritative=false`。
|
||||
|
||||
### 6.2 消息时序与一致性
|
||||
|
||||
|
||||
Reference in New Issue
Block a user