Files
Web_FreeCAD_Bitbybit/后续工作.txt
wangdequan 372861e015
Some checks failed
real-verification / chrome (push) Has been cancelled
real-verification / freecad-oracle (push) Has been cancelled
real-verification / wasm (push) Has been cancelled
feat: extend ordered pair evidence through groove
2026-08-15 23:55:17 -04:00

1923 lines
148 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# FreeCAD 后续工作
## 1. 文档定位
本文是后续工作的人工入口,不维护会随任务推进变化的统计数字。执行时以下列机器产物为准:
1. `config/freecad-active-work-queue.json`
- 全部微任务、依赖、状态、退出条件和唯一 `nextTask` 的机器真值。
2. `docs/freecad-active-work-status.generated.zh-CN.md`
- 当前完成数、剩余数、里程碑状态和唯一活动任务的生成摘要。
3. `docs/freecad-follow-up-execution-plan.zh-CN.md`
- 后续里程碑顺序、A-I 九阶段完成定义和单轮执行协议。
4. `config/freecad-follow-up-task-progress.json`
- A-I 后续任务的完成证据账本;完成项必须形成连续前缀。
5. `config/freecad-ordered-operation-pair-classification.json`
- 19x19 有序操作对的原生接受/拒绝、builder、变异、诊断和 FCStd 证据。
禁止在本文复制实时完成数或手工指定下一任务。需要查看状态时运行:
```bash
node -e "const q=require('./config/freecad-active-work-queue.json'); console.log(q.nextTask, q.summary)"
```
## 2. 当前执行原则
- 基线固定为 FreeCAD 1.1.1 和仓库已锁定的原生提交。
- 任意时刻只能有一个 `in_progress` 任务。
- 每轮只处理 `config/freecad-active-work-queue.json` 中的 `nextTask`。
- 前一里程碑未闭合时,后一里程碑保持 `pending`。
- 原生拒绝是有效分类,不得为了 Web 侧接受而伪造通用 Shape 或隐藏 fallback。
- 原生接受必须使用真实 builder并具备参数变异、恢复、history、naming 和 FCStd 往返证据。
- 失败路径必须锁定失败阶段、精确诊断、空/无效 Shape 状态、事务回滚和文档无污染。
- 动态状态只能由 `scripts/generate-freecad-active-work-queue.mjs` 生成。
## 3. 后续里程碑顺序
1. 完成 `TSN-ORDERED-PAIRS` 的全部 19x19 操作对。
2. 为所有 opaque Property 类型补齐原生 codec 与往返证据。
3. 闭合 Document observer、事务、DAG、重算失败恢复、Extension、FeaturePython 和多文档语义。
4. 逐个闭合核心建模操作的 A-I 九阶段证据。
5. 闭合 FCStd、STEP、IGES、BREP 和其他格式的双向往返。
6. 完成 GUI、文档工作台、工程工作台、分析制造、脚本与代理边界。
7. 完成跨浏览器、跨 OS/GPU、无障碍、locale、fuzz、长稳、签名发布和 exact promotion。
详细拆分和依赖关系只在机器队列与执行计划中维护。
## 4. 单轮执行流程
1. 读取唯一 `nextTask`,确认依赖、输入 artifact 和退出条件。
2. 只修改该任务所需的 oracle、实现、检查器和锁定报告。
3. 先运行真实 FreeCAD/OCCT/Chrome probe再运行只读 focused check。
4. 验证 Shape、Worker、OPFS、事务和文档对象集回到预期状态。
5. 运行相关 Facade、FCStd、TSN 和 execution-plan 门禁。
6. 所有退出条件通过后,重新生成 active-work queue 与状态页。
7. 确认队列恰好推进一个任务,没有跳号或第二个活动任务。
8. 运行 `git diff --check`、JSON/脚本校验和与风险相称的回归。
9. 发布点运行完整 `./npmw run verify`,再提交并推送。
常用命令:
```bash
./npmw run probe:freecad-ordered-operation-pairs
./npmw run check:freecad-ordered-operation-pairs
./npmw run generate:freecad-active-work-queue
./npmw run check:execution-plan
git diff --check
```
## 5. A-I 完成定义
| 阶段 | 交付物 | 最低退出条件 |
| --- | --- | --- |
| A | 原生清册与前置 | TypeId、输入、默认值、依赖和适用性机器可读 |
| B | 原生成功证据 | 名义值和边界值的 Shape、拓扑、状态与诊断齐全 |
| C | 原生失败/取消证据 | 无效输入、禁用、取消和文档无污染可复现 |
| D | 参数变异/恢复 | 编辑、重算和恢复返回已分类的原生状态 |
| E | Facade 实现 | 生产路径无隐藏 fallbackUI 不直连内核 |
| F | 事务恢复 | abort、undo、redo、stale、失败和资源所有权闭合 |
| G | FCStd 往返 | FreeCAD-Web-FreeCAD 没有未知语义漂移 |
| H | 真实浏览器 | Chrome Worker、OPFS、UI 状态和资源释放通过 |
| I | 能力提升 | A-H 全过focused gate 与 exact blocker 同步 |
缺少任一阶段时,能力最多保持 `compatible` 或既有的显式 `proxy` 等级。
## 6. 最近完成证据
### `TSN-PAIR-cut-thickness`
`cut->thickness` 已完成原生接受分类:
- 上游使用真实 `BRepAlgoAPI_Cut` 双输入 builder以贯穿半体工具生成体积 `500` 的有效单 Solid 和 98 条原生 history。
- 下游使用真实 `BRepOffsetAPI_MakeThickSolid` builder对锁定的原生 Face 执行厚壳。
- 原凹腔 Cut 的非平凡厚壳轨迹存在原生 history 内容漂移,未被误记为恢复;任务改用仍由真实 Cut 产生的稳定单 Solid。
- `-0.4 -> -0.6 -> -0.4` offset 轨迹改变体积与面积,并精确恢复名义摘要、原始 history 哈希和语义 naming。
- 名义结果为有效 1 Solid体积 `129.056`,包含 38 条原生 history 记录。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 builder、输入数、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-cut-draft`
`cut->draft` 已完成原生接受分类:
- 上游使用真实 `BRepAlgoAPI_Cut` 双输入 builder生成有效单 Solid 和 22 条原生 history。
- 下游使用真实 `BRepOffsetAPI_DraftAngle` builder对锁定的原生 Face、中性面和拉伸方向执行拔模。
- `5 -> 8 -> 5` 角度轨迹改变体积与面积,并精确恢复名义摘要和语义 naming。
- 名义结果为有效 1 Solid体积 `892.2556682`,包含 5 条原生 history 记录。
- 下游获得唯一 `native-evidence` naming且上游 Cut 证据在恢复态保持一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 builder、输入数、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-cut-hole`
`cut->hole` 已完成原生接受分类:
- 上游使用真实 `BRepAlgoAPI_Cut` 双输入 builder生成有效单 Solid 和 22 条原生 history。
- 下游使用真实 `BRepPrimAPI_MakeCylinder+BRepAlgoAPI_Cut` builder对 Cut 结果执行中心贯穿孔。
- `1 -> 1.5 -> 1` 半径轨迹改变体积、拓扑和 history并精确恢复名义摘要与语义 naming。
- 名义结果为有效 1 Solid体积 `904.5840735`,包含 34 条原生 history 记录。
- 上游 Cut naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 builder、输入数、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-cut-chamfer`
`cut->chamfer` 已完成原生接受分类:
- 上游使用真实 `BRepAlgoAPI_Cut` 双输入 builder生成有效单 Solid 和 22 条原生 history。
- 下游使用真实 `BRepFilletAPI_MakeChamfer` builder对 Cut 结果执行全边倒角。
- `0.4 -> 0.6 -> 0.4` 距离轨迹改变体积与面积,并精确恢复名义摘要和语义 naming。
- 名义结果为有效 1 Solid体积 `926.8266667`,包含 298 条原生 history 记录。
- 上游 Cut naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 builder、输入数、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-cut-fillet`
`cut->fillet` 已完成原生接受分类:
- 上游使用真实 `BRepAlgoAPI_Cut` 双输入 builder生成有效单 Solid 和 22 条原生 history。
- 下游使用真实 `BRepFilletAPI_MakeFillet` builder对 Cut 结果执行全边圆角。
- `0.4 -> 0.6 -> 0.4` 半径轨迹改变体积与面积,并精确恢复名义摘要和语义 naming。
- 名义结果为有效 1 Solid体积 `931.9696595`,包含 298 条原生 history 记录。
- 上游 Cut naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 builder、输入数、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-cut-groove`
`cut->groove` 已完成原生接受分类:
- 上游使用真实 `BRepAlgoAPI_Cut` 双输入 builder生成有效单 Solid 和 22 条原生 history。
- 下游使用真实 `BRepPrimAPI_MakeRevol+BRepAlgoAPI_Cut` 双输入 builder对 Cut 结果执行旋转减料。
- `360 -> 180 -> 360` 角度轨迹改变拓扑和 history并精确恢复名义摘要与语义 naming。
- 名义结果为有效 1 Solid体积 `931.287611`,包含 18 条原生 history 记录。
- 上游 Cut naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 builder、输入数、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-cut-revolution`
`cut->revolution` 已完成原生拒绝分类:
- 上游使用真实 `BRepAlgoAPI_Cut` 双输入 builder生成有效单 Solid 和 22 条原生 history。
- OCCT `BRepPrimAPI_MakeRevol` 在 `360 -> 270 -> 360` 角度轨迹中稳定拒绝 Cut Solid 输入,且不产生结果 Shape 或 history。
- FreeCAD `Part::Revolution` 使用同一 Cut Solid 作为 Source返回 `Solids are not Processed`。
- FreeCAD 结果 Shape 为空、状态包含 `Invalid`,拒绝任务没有伪造下游 naming 或变异证据。
- transaction abort 后对象集与 Cut 源 Shape 完整恢复,干净 FCStd save/reopen/resave 三阶段一致。
- focused ordered-pair gate 已锁定两阶段 builder、异常传输、精确诊断、回滚和持久化证据。
### `TSN-PAIR-cut-pipe`
`cut->pipe` 已完成原生拒绝分类:
- 上游使用真实 `BRepAlgoAPI_Cut` 双输入 builder生成有效单 Solid 和 22 条原生 history。
- OCCT `BRepOffsetAPI_MakePipe` 在 `15 -> 12 -> 15` spine 长度轨迹中只生成无效 Shape该结果仅记为 kernel-invalid-result 诊断。
- FreeCAD `Part::Sweep` 对 Cut Solid section 返回 `A fatal error occurred when making the sweep`。
- FreeCAD 结果 Shape 为空、状态包含 `Invalid`,拒绝任务没有伪造下游 naming 或变异证据。
- transaction abort 后对象集与 Cut 源 Shape 完整恢复,干净 FCStd save/reopen/resave 三阶段一致。
- focused ordered-pair gate 已锁定 FreeCAD 决策权、OCCT 无效结果、精确失败信息、回滚和持久化证据。
### `TSN-PAIR-cut-loft`
`cut->loft` 已完成原生拒绝分类:
- 上游使用真实 `BRepAlgoAPI_Cut` 双输入 builder生成有效单 Solid 和 22 条原生 history。
- OCCT `BRepOffsetAPI_ThruSections` 在 `false -> true -> false` ruled 轨迹中生成有效 Shape但该结果仅记为 kernel-superset 诊断。
- FreeCAD `Part::Loft` 对 Cut Solid section 返回 `Profile shape is not a single vertex, edge, wire nor face.`。
- FreeCAD 结果 Shape 为空、状态包含 `Invalid`,拒绝任务没有伪造下游 naming 或变异证据。
- transaction abort 后对象集与 Cut 源 Shape 完整恢复,干净 FCStd save/reopen/resave 三阶段一致。
- focused ordered-pair gate 已锁定 FreeCAD 决策权、OCCT 诊断、精确失败信息、回滚和持久化证据。
### `TSN-PAIR-cut-pocket`
`cut->pocket` 已完成原生接受分类:
- 上游使用真实 `BRepAlgoAPI_Cut` 双输入 builder生成有效单 Solid 和 22 条原生 history。
- 下游使用真实 `BRepPrimAPI_MakePrism+BRepAlgoAPI_Cut` 双输入 builder对 Cut 结果执行减料拉伸。
- `5 -> 4 -> 5` 深度轨迹改变体积、拓扑和 history并精确恢复名义摘要与语义 naming。
- 名义结果为有效 1 Solid体积 `906`,包含 70 条原生 history 记录。
- 上游 Cut naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 builder、输入数、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-cut-pad`
`cut->pad` 已完成原生拒绝分类:
- 上游使用真实 `BRepAlgoAPI_Cut` 双输入 builder生成有效单 Solid 和 22 条原生 history。
- OCCT `BRepPrimAPI_MakePrism` 在 `5 -> 7.5 -> 5` 长度轨迹中稳定拒绝 Cut Solid 输入,且不产生结果 Shape 或 history。
- FreeCAD `PartDesign::Pad` 使用同一 Cut Solid 作为 Profile返回 `FeatureExtrusion: Length: Could not extrude the sketch!`。
- FreeCAD 结果 Shape 为空、状态包含 `Invalid`,拒绝任务没有伪造下游 naming 或变异证据。
- transaction abort 后对象集与 Cut 源 Shape 完整恢复,干净 FCStd save/reopen/resave 三阶段一致。
- focused ordered-pair gate 已锁定两阶段 builder、异常传输、精确诊断、回滚和持久化证据。
### `TSN-PAIR-cut-common`
`cut->common` 已完成原生接受分类:
- 上游使用真实 `BRepAlgoAPI_Cut` 双输入 builder生成有效单 Solid 和 22 条原生 history。
- 下游使用真实 `BRepAlgoAPI_Common` 双输入 builder对 Cut 结果执行布尔交集。
- `4 -> 5 -> 4` 工具 X 偏移轨迹改变体积、拓扑和 history并精确恢复名义摘要与语义 naming。
- 名义结果为有效 1 Solid体积 `93`,包含 148 条原生 history 记录。
- 上游 Cut naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 builder、输入数、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-cut-cut`
`cut->cut` 已完成原生接受分类:
- 第一、第二阶段均使用真实 `BRepAlgoAPI_Cut` 双输入 builder。
- 上游 Cut 结果为有效 1 Solid体积 `936`,包含 22 条原生 history 记录。
- `3 -> 4 -> 3` 工具尺寸轨迹改变体积、拓扑和 history并精确恢复名义摘要与语义 naming。
- 名义下游结果为有效 1 Solid体积 `909`,包含 42 条原生 history 记录。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 锁定两阶段 builder、变异和恢复偏移后摘要不变的弱轨迹未被采用。
### `TSN-PAIR-cut-fuse`
`cut->fuse` 已完成原生接受分类,并验证分类器可跨起始操作保持连续前缀:
- 上游使用真实 `BRepAlgoAPI_Cut` 双输入 builder生成有效单 Solid 和 22 条原生 history。
- 下游使用真实 `BRepAlgoAPI_Fuse` 双输入 builder对 Cut 结果执行布尔并集。
- `8 -> 9 -> 8` 工具 X 偏移轨迹改变几何并精确恢复名义摘要、history 和语义 naming。
- 名义结果为有效 1 Solid体积 `1011`,包含 52 条原生 history 记录。
- 上游 Cut naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 同时锁定第一、第二 builder防止跨行后仍误报 Fuse 起点。
### `TSN-PAIR-fuse-multi-transform`
`fuse->multi-transform` 已完成原生接受分类,并闭合 Fuse 起始行的全部 19 个有序操作对:
- 上游使用真实 `BRepAlgoAPI_Fuse` 双输入 builder并生成有效单 Solid。
- 下游使用 ordered `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` builder组合平移和镜像两步生成 4 个可追踪实例。
- `8 -> 9 -> 8` 首步 X 平移轨迹改变几何、拓扑和 history并精确恢复名义摘要与语义 naming。
- 名义结果为有效 1 Solid体积 `2750`,包含 769 条原生 history 记录。
- 上游 Fuse naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定 builder、输入数、变异、恢复、history、naming 和持久化证据。
- 机器队列已从 Fuse 行末严格推进到下一行首项,没有跳号或第二个活动任务。
### `TSN-PAIR-fuse-mirrored`
`fuse->mirrored` 已完成原生接受分类:
- 上游使用真实 `BRepAlgoAPI_Fuse` 双输入 builder并生成有效单 Solid。
- 下游使用真实 `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` builder 生成内部平面镜像副本。
- `5 -> 6 -> 5` 镜像平面 X 原点轨迹改变几何、拓扑和 history并精确恢复名义摘要与语义 naming。
- 名义结果为有效 1 Solid体积 `1150`,包含 224 条原生 history 记录。
- 上游 Fuse naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定 builder、输入数、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-fuse-polar-pattern`
`fuse->polar-pattern` 已完成原生接受分类:
- 上游使用真实 `BRepAlgoAPI_Fuse` 双输入 builder并生成有效单 Solid。
- 下游使用真实 `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` builder 生成绕 Z 轴的旋转副本阵列。
- `30 -> 45 -> 30` 角度轨迹改变几何、拓扑和 history并精确恢复名义摘要与语义 naming。
- 名义结果为有效 1 Solid体积 `1510.7700496`,包含 178 条原生 history 记录。
- 上游 Fuse naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定 builder、输入数、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-fuse-linear-pattern`
`fuse->linear-pattern` 已完成原生接受分类:
- 上游使用真实 `BRepAlgoAPI_Fuse` 双输入 builder并生成有效单 Solid。
- 下游使用真实 `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` builder 生成重叠平移副本阵列。
- `8 -> 9 -> 8` X 平移轨迹改变几何、拓扑和 history并精确恢复名义摘要与语义 naming。
- 名义结果为有效 1 Solid体积 `1875`,包含 141 条原生 history 记录。
- 完全分离时的 0-history 结果未被误记为接受focused gate 强制原生 source history 非空。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定 builder、输入数、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-fuse-thickness`
`fuse->thickness` 已完成原生接受分类:
- 上游使用真实 `BRepAlgoAPI_Fuse` 同形双输入 builder生成有效 6 面单 Solid 和 156 条原生 history。
- 下游使用真实 `BRepOffsetAPI_MakeThickSolid` builder对锁定的原生 Face 执行厚壳。
- `-0.4 -> -0.6 -> -0.4` offset 轨迹改变几何并精确恢复名义摘要、history 和语义 naming。
- 名义结果为有效 1 Solid体积 `187.456`,包含 38 条原生 history 记录。
- 原始部分重叠 Fuse 的 no-op 结果未被误记为接受focused gate 强制变异必须改变 Shape 摘要。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定 builder、输入数、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-fuse-draft`
`fuse->draft` 已完成原生接受分类:
- 上游使用真实 `BRepAlgoAPI_Fuse` 双输入 builder并生成有效单 Solid。
- 下游使用真实 `BRepOffsetAPI_DraftAngle` builder对锁定的原生 Face、中性面和拉伸方向执行拔模。
- `5 -> 8 -> 5` 角度轨迹改变几何并精确恢复名义摘要、history 和语义 naming。
- 名义结果为有效 1 Solid体积 `1031.2556682`,包含 5 条原生 history 记录。
- 下游获得唯一 `native-evidence` naming且上游 Fuse 证据在恢复态保持一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定 builder、输入数、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-fuse-hole`
`fuse->hole` 已完成原生接受分类:
- 上游使用真实 `BRepAlgoAPI_Fuse` 双输入 builder并生成有效单 Solid。
- 下游使用真实 `BRepPrimAPI_MakeCylinder+BRepAlgoAPI_Cut` builder 执行中心贯穿孔。
- `1 -> 1.5 -> 1` 半径轨迹改变几何并精确恢复名义摘要、history 和语义 naming。
- 名义结果为有效 1 Solid体积 `1043.5840735`,包含 23 条原生 history 记录。
- 下游获得唯一 `native-evidence` naming且上游 Fuse 证据在恢复态保持一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定 builder、输入数、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-fuse-chamfer`
`fuse->chamfer` 已完成原生接受分类:
- 上游使用真实 `BRepAlgoAPI_Fuse` 双输入 builder并生成有效单 Solid。
- 下游使用真实 `BRepFilletAPI_MakeChamfer` builder 对 Fuse 结果执行全边倒角。
- `0.4 -> 0.6 -> 0.4` 距离轨迹改变几何并精确恢复名义摘要、history 和语义 naming。
- 名义结果为有效 1 Solid体积 `1489.1413333`,包含 270 条原生 history 记录。
- 上游 Fuse naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定 builder、输入数、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-fuse-fillet`
`fuse->fillet` 已完成原生接受分类:
- 上游使用真实 `BRepAlgoAPI_Fuse` 双输入 builder并生成有效单 Solid。
- 下游使用真实 `BRepFilletAPI_MakeFillet` builder 对 Fuse 结果执行全边圆角。
- `0.4 -> 0.6 -> 0.4` 半径轨迹改变几何并精确恢复名义摘要、history 和语义 naming。
- 名义结果为有效 1 Solid体积 `1495.2786299`,包含 270 条原生 history 记录。
- 上游 Fuse naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定 builder、输入数、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-fuse-groove`
`fuse->groove` 已完成原生接受分类:
- 生产路径使用真实 `BRepPrimAPI_MakeRevol+BRepAlgoAPI_Cut` 双输入 builder。
- `360 -> 180 -> 360` 角度轨迹改变几何与 history并精确恢复名义摘要和语义 naming。
- 名义结果为有效 1 Solid体积 `1070.287611`,包含 18 条原生 history 记录。
- 上游 Fuse naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定 builder、输入数、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-fuse-revolution`
`TSN-PAIR-fuse-revolution` 已完成原生分类:
- OCCT `BRepPrimAPI_MakeRevol` 在 `360 -> 270 -> 360` 参数轨迹中稳定拒绝 Fuse Solid 输入。
- FreeCAD `Part::Revolution` 返回 `Solids are not Processed`。
- FreeCAD 结果 Shape 为空、状态包含 `Invalid`。
- transaction abort 后对象集与源 Shape 完整恢复。
- 干净 FCStd save/reopen/resave 三阶段一致。
- focused ordered-pair gate 已锁定 builder、异常传输、诊断和回滚证据。
### `TSN-PAIR-cut-linear-pattern`
`cut->linear-pattern` 已完成原生接受分类:
- 上游使用真实 `BRepAlgoAPI_Cut` 双输入 builder生成有效单 Solid 和 22 条原生 history。
- 下游使用真实 `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` builder 生成重叠平移副本阵列。
- `8 -> 9 -> 8` X 平移轨迹改变几何、拓扑和 history并精确恢复名义摘要与语义 naming。
- 名义结果为有效 1 Solid体积 `1672`,包含 89 条原生 history 记录。
- 上游 Cut naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 builder、输入数、变异、恢复、history、naming 和持久化证据,机器队列严格推进一项。
### `TSN-PAIR-cut-polar-pattern`
`cut->polar-pattern` 已完成原生接受分类:
- 上游使用真实 `BRepAlgoAPI_Cut` 双输入 builder生成有效单 Solid 和 22 条原生 history。
- 下游使用真实 `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` builder 生成绕 Z 轴的旋转副本阵列。
- `30 -> 45 -> 30` 角度轨迹改变几何、拓扑和 history并精确恢复名义摘要与语义 naming。
- 名义结果为有效 1 Solid体积 `1361.9420727`,包含 160 条原生 history 记录。
- 上游 Cut naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 builder、输入数、变异、恢复、history、naming 和持久化证据,机器队列严格推进一项。
### `TSN-PAIR-cut-mirrored`
`cut->mirrored` 已完成原生接受分类:
- 上游使用真实 `BRepAlgoAPI_Cut` 双输入 builder生成有效单 Solid 和 22 条原生 history。
- 下游使用真实 `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` builder 生成内部平面镜像副本。
- `5 -> 6 -> 5` 镜像平面 X 原点轨迹改变几何、拓扑和 history并精确恢复名义摘要与语义 naming。
- 名义结果为有效 1 Solid体积 `968`,包含 230 条原生 history 记录。
- 上游 Cut naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 builder、输入数、变异、恢复、history、naming 和持久化证据,机器队列严格推进一项。
### `TSN-PAIR-cut-multi-transform`
`cut->multi-transform` 已完成原生接受分类,并闭合 Cut 起始行的全部 19 个有序操作对:
- 上游使用真实 `BRepAlgoAPI_Cut` 双输入 builder生成有效单 Solid 和 22 条原生 history。
- 下游使用 ordered `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` builder组合平移和镜像两步生成 4 个可追踪实例。
- `8 -> 9 -> 8` 首步 X 平移轨迹改变几何、拓扑和 history并精确恢复名义摘要与语义 naming。
- 名义结果为有效 1 Solid体积 `2440`,包含 670 条原生 history 记录。
- 上游 Cut naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 builder、输入数、变异、恢复、history、naming 和持久化证据,机器队列已从 Cut 行末严格推进到 Common 行首项。
### `TSN-PAIR-common-fuse`
`common->fuse` 已完成原生接受分类:
- 上游使用真实 `BRepAlgoAPI_Common` 双输入 builder以体积交叠生成有效 1 Solid体积 `125`,并包含 94 条原生 history。
- 下游使用真实 `BRepAlgoAPI_Fuse` 双输入 builder重叠合并 Common 结果与工具体。
- `8 -> 7 -> 8` 工具 X 偏移轨迹改变体积与边界并精确恢复名义摘要、history 与语义 naming。
- 名义下游结果为有效 1 Solid体积 `225`,包含 66 条原生 history 记录。
- 上游 Common naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定 Common 上游构造、两阶段 builder、输入数、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-common-cut`
`common->cut` 已完成原生接受分类:
- 上游使用真实 `BRepAlgoAPI_Common` 双输入 builder生成体积 `125` 的有效单 Solid 和 94 条原生 history。
- 下游使用真实 `BRepAlgoAPI_Cut` 双输入 builder对 Common 结果执行布尔减料。
- `4 -> 3 -> 4` 工具尺寸轨迹改变体积与 history并精确恢复名义摘要与语义 naming。
- 名义结果为有效 1 Solid体积 `93`,包含 64 条原生 history 记录。
- 上游 Common naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 builder、输入数、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-common-common`
`common->common` 已完成原生接受分类:
- 上游使用真实 `BRepAlgoAPI_Common` 双输入 builder生成体积 `125` 的有效单 Solid 和 94 条原生 history。
- 下游再次使用真实 `BRepAlgoAPI_Common` 双输入 builder两个锁定工具位置都与上游 Solid 存在体积交叠。
- `7 -> 6 -> 7` 工具 X 偏移轨迹使体积从 `32` 变为 `48`并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 121 条原生 history 记录。
- 上游 Common naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 builder、输入数、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-common-rotate`
`common->rotate` 已完成原生接受分类:
- 上游使用真实 `BRepAlgoAPI_Common` 双输入 builder生成体积 `125` 的有效单 Solid 和 94 条原生 history。
- 下游使用真实 `BRepBuilderAPI_Transform` 单输入 builder对 Common 结果执行绕 Z 轴旋转。
- `15 -> 22.5 -> 15` 角度轨迹在保持体积 `125` 的同时改变包围盒,并精确恢复名义摘要与语义 naming。
- 名义结果为有效 1 Solid包含 78 条原生 history 记录。
- 上游 Common naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 builder、输入数、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-common-pad`
`common->pad` 已完成原生拒绝分类:
- 上游使用真实 `BRepAlgoAPI_Common` 双输入 builder生成体积 `125` 的有效单 Solid 和 94 条原生 history。
- OCCT `BRepPrimAPI_MakePrism` 在 `5 -> 7.5 -> 5` 长度轨迹中稳定拒绝 Common Solid 输入,且不产生结果 Shape 或 history。
- FreeCAD `PartDesign::Pad` 使用同一 Common Solid 作为 Profile返回 `FeatureExtrusion: Length: Could not extrude the sketch!`。
- FreeCAD 结果 Shape 为空、状态包含 `Invalid`,拒绝任务没有伪造下游 naming 或变异证据。
- transaction abort 后对象集与 Common 源 Shape 完整恢复,干净 FCStd save/reopen/resave 三阶段一致。
- focused ordered-pair gate 已锁定两阶段 builder、异常传输、精确诊断、回滚和持久化证据。
### `TSN-PAIR-common-pocket`
`common->pocket` 已完成原生接受分类:
- 上游使用真实 `BRepAlgoAPI_Common` 双输入 builder在原点处生成体积 `125` 的有效单 Solid 和 105 条原生 history。
- 下游使用真实 `BRepPrimAPI_MakePrism+BRepAlgoAPI_Cut` 双输入 builder对 Common 结果执行减料拉伸。
- `5 -> 4 -> 5` 深度轨迹改变体积、拓扑和 history并精确恢复名义摘要与语义 naming。
- 名义结果为有效 1 Solid体积 `95`,包含 64 条原生 history 记录。
- 上游 Common naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定上游实体交叠、两阶段 builder、输入数、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-common-loft`
`common->loft` 已完成原生拒绝分类:
- 上游使用真实 `BRepAlgoAPI_Common` 双输入 builder生成体积 `125` 的有效单 Solid 和 94 条原生 history。
- OCCT `BRepOffsetAPI_ThruSections` 在 `false -> true -> false` ruled 轨迹中生成有效 Shape但该结果仅记为 kernel-superset 诊断。
- FreeCAD `Part::Loft` 对 Common Solid section 返回 `Profile shape is not a single vertex, edge, wire nor face.`。
- FreeCAD 结果 Shape 为空、状态包含 `Invalid`,拒绝任务没有伪造下游 naming 或变异证据。
- transaction abort 后对象集与 Common 源 Shape 完整恢复,干净 FCStd save/reopen/resave 三阶段一致。
- focused ordered-pair gate 已锁定 FreeCAD 决策权、OCCT 诊断、精确失败信息、回滚和持久化证据。
### `TSN-PAIR-common-pipe`
`common->pipe` 已完成原生拒绝分类:
- 上游使用真实 `BRepAlgoAPI_Common` 双输入 builder生成体积 `125` 的有效单 Solid 和 94 条原生 history。
- OCCT `BRepOffsetAPI_MakePipe` 在 `15 -> 12 -> 15` spine 长度轨迹中只生成无效 Shape该结果仅记为 kernel-invalid-result 诊断。
- FreeCAD `Part::Sweep` 对 Common Solid section 返回 `A fatal error occurred when making the sweep`。
- FreeCAD 结果 Shape 为空、状态包含 `Invalid`,拒绝任务没有伪造下游 naming 或变异证据。
- transaction abort 后对象集与 Common 源 Shape 完整恢复,干净 FCStd save/reopen/resave 三阶段一致。
- focused ordered-pair gate 已锁定 FreeCAD 决策权、OCCT 无效结果、精确失败信息、回滚和持久化证据。
### `TSN-PAIR-common-revolution`
`common->revolution` 已完成原生拒绝分类:
- 上游使用真实 `BRepAlgoAPI_Common` 双输入 builder生成体积 `125` 的有效单 Solid 和 94 条原生 history。
- OCCT `BRepPrimAPI_MakeRevol` 在 `360 -> 270 -> 360` 角度轨迹中稳定拒绝 Common Solid 输入,且不产生结果 Shape 或 history。
- FreeCAD `Part::Revolution` 使用同一 Common Solid 作为 Source返回 `Solids are not Processed`。
- FreeCAD 结果 Shape 为空、状态包含 `Invalid`,拒绝任务没有伪造下游 naming 或变异证据。
- transaction abort 后对象集与 Common 源 Shape 完整恢复,干净 FCStd save/reopen/resave 三阶段一致。
- focused ordered-pair gate 已锁定两阶段 builder、异常传输、精确诊断、回滚和持久化证据。
### `TSN-PAIR-common-groove`
`common->groove` 已完成原生接受分类:
- 上游使用真实 `BRepAlgoAPI_Common` 双输入 builder在原点处生成体积 `125` 的有效单 Solid 和 105 条原生 history。
- 下游使用真实 `BRepPrimAPI_MakeRevol+BRepAlgoAPI_Cut` 双输入 builder对 Common 结果执行旋转减料。
- `360 -> 180 -> 360` 角度轨迹改变拓扑与 history并精确恢复名义摘要与语义 naming。
- 名义结果为有效 1 Solid体积 `120.287611`,包含 28 条原生 history 记录。
- 上游 Common naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定上游实体交叠、两阶段 builder、输入数、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-common-fillet`
`common->fillet` 已完成原生接受分类:
- 上游使用真实 `BRepAlgoAPI_Common` 双输入 builder生成体积 `125` 的有效单 Solid 和 94 条原生 history。
- 下游使用真实 `BRepFilletAPI_MakeFillet` 单输入 builder对 Common 结果执行全边圆角。
- `0.4 -> 0.6 -> 0.4` 半径轨迹改变体积与面积并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid体积 `123.0255334`,包含 150 条原生 history 记录。
- 上游 Common naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 builder、输入数、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-common-chamfer`
`common->chamfer` 已完成原生接受分类:
- 上游使用真实 `BRepAlgoAPI_Common` 双输入 builder生成体积 `125` 的有效单 Solid 和 94 条原生 history。
- 下游使用真实 `BRepFilletAPI_MakeChamfer` 单输入 builder对 Common 结果执行全边倒角。
- `0.4 -> 0.6 -> 0.4` 距离轨迹改变体积与面积并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid体积 `120.5413333`,包含 150 条原生 history 记录。
- 上游 Common naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 builder、输入数、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-common-hole`
`common->hole` 已完成原生接受分类:
- 上游使用真实 `BRepAlgoAPI_Common` 双输入 builder生成体积 `125` 的有效单 Solid 和 94 条原生 history。
- 下游使用真实 `BRepPrimAPI_MakeCylinder+BRepAlgoAPI_Cut` builder对 Common 结果执行边界角贯穿孔。
- `1 -> 1.5 -> 1` 半径轨迹改变体积与面积并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid体积 `117.1460184`,包含 30 条原生 history 记录。
- 上游 Common naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 builder、输入数、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-common-draft`
`common->draft` 已完成原生接受分类:
- 上游使用真实 `BRepAlgoAPI_Common` 双输入 builder生成体积 `125` 的有效单 Solid 和 94 条原生 history。
- 下游使用真实 `BRepOffsetAPI_DraftAngle` 单输入 builder对 Common 结果的锁定原生 Face 执行拔模。
- `5 -> 8 -> 5` 角度轨迹改变体积与面积并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid体积 `119.5319585`,包含 5 条原生 history 记录。
- 上游 Common naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 builder、输入数、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-common-thickness`
`common->thickness` 已完成原生接受分类:
- 上游使用真实 `BRepAlgoAPI_Common` 双输入 builder生成体积 `125` 的有效单 Solid 和 94 条原生 history。
- 下游使用真实 `BRepOffsetAPI_MakeThickSolid` 单输入 builder对 Common 结果的锁定原生 Face 执行厚壳。
- `-0.4 -> -0.6 -> -0.4` offset 轨迹改变体积与面积并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid体积 `43.856`,包含 38 条原生 history 记录。
- 上游 Common naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 builder、输入数、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-common-linear-pattern`
`common->linear-pattern` 已完成原生接受分类:
- 上游使用真实 `BRepAlgoAPI_Common` 双输入 builder生成体积 `125` 的有效单 Solid 和 94 条原生 history。
- 下游使用真实 `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` builder将 Common 结果平移复制并融合为一个可追踪 Solid。
- 原 `8` 单位平移会产生两个分离 Solid 且无可用 history未被误记为接受改用保持实体交叠的 `4 -> 3 -> 4` 轨迹。
- 专用平移轨迹使体积在 `225 -> 200 -> 225` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 66 条原生 history 记录。
- 上游 Common naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定专用变异轨迹、两阶段 builder、输入数、恢复、history、naming 和持久化证据。
### `TSN-PAIR-common-polar-pattern`
`common->polar-pattern` 已完成原生接受分类:
- 上游使用真实 `BRepAlgoAPI_Common` 双输入 builder生成体积 `125` 的有效单 Solid 和 94 条原生 history。
- 下游使用真实 `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` builder将 Common 结果绕锁定原生轴旋转复制并融合。
- `30 -> 45 -> 30` 角度轨迹改变体积、拓扑与边界,体积在 `220.0961894 -> 247.5 -> 220.0961894` 间变化,并精确恢复原生摘要与语义 naming。
- 名义结果为有效 1 Solid包含 48 条原生 history 记录。
- 上游 Common naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 builder、输入数、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-common-mirrored`
`common->mirrored` 已完成原生接受分类:
- 上游使用真实 `BRepAlgoAPI_Common` 双输入 builder生成体积 `125` 的有效单 Solid 和 94 条原生 history。
- 下游使用真实 `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` builder将 Common 结果绕锁定平面镜像复制并融合。
- `5 -> 6 -> 5` 镜像面 X 原点轨迹改变体积与边界,体积在 `200 -> 150 -> 200` 间变化,并精确恢复原生摘要与语义 naming。
- 名义结果为有效 1 Solid包含 66 条原生 history 记录。
- 上游 Common naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 builder、输入数、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-common-multi-transform`
`common->multi-transform` 已完成原生接受分类,并闭合 Common 起始行的全部 19 个有序操作对:
- 上游使用真实 `BRepAlgoAPI_Common` 双输入 builder生成体积 `125` 的有效单 Solid 和 94 条原生 history。
- 下游使用 ordered `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` builder组合平移和镜像两步并保留每个实例的原生追踪关系。
- 默认 `8` 单位首步平移会形成 3 个分离 Solid未被误用改用保持全部实例连通的 `4 -> 3 -> 4` 专用轨迹。
- 首步 X 平移轨迹使体积在 `400 -> 350 -> 400` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid名义与恢复态均包含 367 条原生 history 记录。
- 上游 Common naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定 ordered builder、专用变异轨迹、输入数、恢复、history、naming 和持久化证据。
### `TSN-PAIR-rotate-fuse`
`rotate->fuse` 已完成原生接受分类:
- 上游使用真实 `BRepBuilderAPI_Transform` 单输入 builder生成体积 `1000` 的有效单 Solid 和 78 条原生 history。
- 下游使用真实 `BRepAlgoAPI_Fuse` 双输入 builder对 Rotate 结果执行布尔并集。
- 默认工具 X 偏移 `12` 会产生两个分离 Solid 且 history 为空,未被误记为接受;改用保持实体交叠的 `8 -> 7 -> 8` 专用轨迹。
- 工具偏移轨迹使体积在 `1107.0432067 -> 1092.0913015 -> 1107.0432067` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 39 条原生 history 记录。
- 上游 Rotate naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定跨行首阶段 builder、专用变异轨迹、输入数、恢复、history、naming 和持久化证据。
### `TSN-PAIR-rotate-cut`
`rotate->cut` 已完成原生接受分类:
- 上游使用真实 `BRepBuilderAPI_Transform` 单输入 builder生成体积 `1000` 的有效单 Solid 和 78 条原生 history。
- 下游使用真实 `BRepAlgoAPI_Cut` 双输入 builder对 Rotate 结果执行布尔减料。
- `4 -> 3 -> 4` 工具尺寸轨迹改变体积与面积,体积在 `953.1487483 -> 981.4403996 -> 953.1487483` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 53 条原生 history 记录。
- 上游 Rotate naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定跨行首阶段 builder、输入数、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-rotate-common`
`rotate->common` 已完成原生接受分类:
- 上游使用真实 `BRepBuilderAPI_Transform` 单输入 builder生成体积 `1000` 的有效单 Solid 和 78 条原生 history。
- 下游使用真实 `BRepAlgoAPI_Common` 双输入 builder对 Rotate 结果执行布尔交集。
- 默认工具 X 偏移 `10` 与旋转实体无交叠并被原生 builder 拒绝,未被误记为接受;改用 `7 -> 6 -> 7` 专用轨迹。
- 工具偏移轨迹使交集体积在 `32.9086985 -> 49.2003498 -> 32.9086985` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 136 条原生 history 记录。
- 上游 Rotate naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定跨行首阶段 builder、专用变异轨迹、输入数、恢复、history、naming 和持久化证据。
### `TSN-PAIR-rotate-rotate`
`rotate->rotate` 已完成原生接受分类:
- 上下游均使用真实 `BRepBuilderAPI_Transform` 单输入 builder两阶段均生成有效单 Solid 和 78 条原生 history。
- `15 -> 22.5 -> 15` 角度轨迹保持体积 `1000` 和拓扑不变,但明确改变世界空间边界,未因体积不变而误判为无变异。
- 恢复态精确返回名义摘要、原生 history 与语义 naming。
- 上游 Rotate naming 证据向下游传播,下游获得完整原生证据。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 builder、边界变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-rotate-pad`
`rotate->pad` 已完成原生拒绝分类:
- 上游使用真实 `BRepBuilderAPI_Transform` 单输入 builder生成体积 `1000` 的有效单 Solid 和 78 条原生 history。
- OCCT `BRepPrimAPI_MakePrism` 在 `5 -> 7.5 -> 5` 长度轨迹中稳定拒绝 Rotate Solid 输入,且不产生结果 Shape 或 history。
- FreeCAD `PartDesign::Pad` 使用同一 Rotate Solid 作为 Profile返回 `FeatureExtrusion: Length: Could not extrude the sketch!`。
- FreeCAD 结果 Shape 为空、状态包含 `Invalid`,拒绝任务没有伪造下游 naming 或变异证据。
- transaction abort 后对象集与 Rotate 源 Shape 完整恢复,干净 FCStd save/reopen/resave 三阶段一致。
- focused ordered-pair gate 已锁定跨行首阶段 builder、异常传输、精确诊断、回滚和持久化证据。
### `TSN-PAIR-rotate-pocket`
`rotate->pocket` 已完成原生接受分类:
- 上游使用真实 `BRepBuilderAPI_Transform` 单输入 builder生成体积 `1000` 的有效单 Solid 和 78 条原生 history。
- 下游使用真实 `BRepPrimAPI_MakePrism+BRepAlgoAPI_Cut` 双输入 builder对 Rotate 结果执行减料拉伸。
- `5 -> 4 -> 5` 深度轨迹改变体积与面积,体积在 `972.6794919 -> 978.1435935 -> 972.6794919` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 56 条原生 history 记录。
- 上游 Rotate naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定跨行首阶段 builder、两输入减料、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-rotate-loft`
`rotate->loft` 已完成原生拒绝分类:
- 上游使用真实 `BRepBuilderAPI_Transform` 单输入 builder生成体积 `1000` 的有效单 Solid 和 78 条原生 history。
- OCCT `BRepOffsetAPI_ThruSections` 在 `false -> true -> false` ruled 轨迹中生成有效 Shape 和 24 条 history但该结果仅记为 kernel-superset 诊断。
- FreeCAD `Part::Loft` 对 Rotate Solid section 返回 `Profile shape is not a single vertex, edge, wire nor face.`。
- FreeCAD 结果 Shape 为空、状态包含 `Invalid`,拒绝任务没有伪造下游 naming 或变异证据。
- transaction abort 后对象集与 Rotate 源 Shape 完整恢复,干净 FCStd save/reopen/resave 三阶段一致。
- focused ordered-pair gate 已锁定 FreeCAD 决策权、OCCT 超集诊断、精确失败信息、回滚和持久化证据。
### `TSN-PAIR-rotate-pipe`
`rotate->pipe` 已完成原生拒绝分类:
- 上游使用真实 `BRepBuilderAPI_Transform` 单输入 builder生成体积 `1000` 的有效单 Solid 和 78 条原生 history。
- OCCT `BRepOffsetAPI_MakePipe` 在 `15 -> 12 -> 15` spine 长度轨迹中生成体积 `1500 -> 1200 -> 1500` 的有效单 Solid 和 28 条 history但该结果仅记为 kernel-superset 诊断。
- FreeCAD `Part::Sweep` 对 Rotate Solid section 返回 `A fatal error occurred when making the sweep`。
- FreeCAD 结果 Shape 为空、状态包含 `Invalid`,拒绝任务没有伪造下游 naming 或变异证据。
- transaction abort 后对象集与 Rotate 源 Shape 完整恢复,干净 FCStd save/reopen/resave 三阶段一致。
- focused ordered-pair gate 已锁定 FreeCAD 决策权、OCCT 超集诊断、精确失败信息、回滚和持久化证据。
### `TSN-PAIR-rotate-revolution`
`rotate->revolution` 已完成原生拒绝分类:
- 上游使用真实 `BRepBuilderAPI_Transform` 单输入 builder生成体积 `1000` 的有效单 Solid 和 78 条原生 history。
- OCCT `BRepPrimAPI_MakeRevol` 在 `360 -> 270 -> 360` 角度轨迹中稳定拒绝 Rotate Solid 输入,三次均在 builder 阶段传输原生 C++ 异常,且不产生结果 Shape 或 history。
- FreeCAD `Part::Revolution` 使用同一 Rotate Solid 作为 Source返回该操作对专有诊断 `BRep_API: command not done`。
- FreeCAD 结果 Shape 为空、状态包含 `Invalid`,拒绝任务没有伪造下游 naming 或变异证据。
- transaction abort 后对象集与 Rotate 源 Shape 完整恢复,干净 FCStd save/reopen/resave 三阶段一致。
- focused ordered-pair gate 已锁定跨行首阶段 builder、异常传输、精确诊断、回滚和持久化证据。
### `TSN-PAIR-rotate-groove`
`rotate->groove` 已完成原生接受分类:
- 上游使用真实 `BRepBuilderAPI_Transform` 单输入 builder生成体积 `1000` 的有效单 Solid 和 78 条原生 history。
- 下游使用真实 `BRepPrimAPI_MakeRevol+BRepAlgoAPI_Cut` 双输入 builder对 Rotate 结果执行旋转槽减料。
- `360 -> 180 -> 360` 角度轨迹改变体积与拓扑:名义态体积为 `992.0171547`、10 Face编辑态体积为 `1000`、8 Face并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 22 条原生 history 记录。
- 上游 Rotate naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定跨行首阶段 builder、双输入减料、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-rotate-chamfer`
`rotate->chamfer` 已完成原生接受分类:
- 上游使用真实 `BRepBuilderAPI_Transform` 单输入 builder生成体积 `1000` 的有效单 Solid 和 78 条原生 history。
- 下游使用真实 `BRepFilletAPI_MakeChamfer` 单输入 builder对 Rotate 结果的锁定原生边执行倒角。
- `0.4 -> 0.6 -> 0.4` 距离轨迹改变体积、面积与边界,体积在 `990.7413333 -> 979.552 -> 990.7413333` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 150 条原生 history 记录。
- 上游 Rotate naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定跨行首阶段 builder、原生边选择、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-rotate-hole`
`rotate->hole` 已完成原生接受分类:
- 上游使用真实 `BRepBuilderAPI_Transform` 单输入 builder生成体积 `1000` 的有效单 Solid 和 78 条原生 history。
- 下游使用真实 `BRepPrimAPI_MakeCylinder+BRepAlgoAPI_Cut` 单输入 builder以锁定位置和方向的圆柱刀具贯穿 Rotate 结果。
- `1 -> 1.5 -> 1` 半径轨迹改变体积与面积,体积在 `968.5840735 -> 929.3141653 -> 968.5840735` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 23 条原生 history 记录。
- 上游 Rotate naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定跨行首阶段 builder、圆柱减料、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-rotate-draft`
`rotate->draft` 已完成原生接受分类:
- 上游使用真实 `BRepBuilderAPI_Transform` 单输入 builder生成体积 `1000` 的有效单 Solid 和 78 条原生 history。
- 下游使用真实 `BRepOffsetAPI_DraftAngle` 单输入 builder对 Rotate 结果的锁定原生 Face 执行拔模。
- `5 -> 8 -> 5` 角度轨迹改变体积与面积,体积在 `956.2556682 -> 929.7295826 -> 956.2556682` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 5 条原生 history 记录。
- 上游 Rotate naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定跨行首阶段 builder、原生 Face 选择、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-rotate-thickness`
`rotate->thickness` 已完成原生接受分类:
- 上游使用真实 `BRepBuilderAPI_Transform` 单输入 builder生成体积 `1000` 的有效单 Solid 和 78 条原生 history。
- 下游使用真实 `BRepOffsetAPI_MakeThickSolid` 单输入 builder对 Rotate 结果的锁定原生 Face 执行厚壳。
- `-0.4 -> -0.6 -> -0.4` offset 轨迹改变体积与面积,体积在 `187.456 -> 272.064 -> 187.456` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 38 条原生 history 记录。
- 上游 Rotate naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定跨行首阶段 builder、原生 Face 选择、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-rotate-linear-pattern`
`rotate->linear-pattern` 已完成原生接受分类:
- 上游使用真实 `BRepBuilderAPI_Transform` 单输入 builder生成体积 `1000` 的有效单 Solid 和 78 条原生 history。
- 下游使用真实 `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` builder将 Rotate 结果沿 X 方向平移复制并融合为一个可追踪 Solid。
- `8 -> 9 -> 8` 平移轨迹保持实例交叠,体积在 `1819.7958971 -> 1899.7703843 -> 1819.7958971` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 48 条原生 history 记录。
- 上游 Rotate naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定跨行首阶段 builder、单 Solid 约束、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-rotate-polar-pattern`
`rotate->polar-pattern` 已完成原生接受分类:
- 上游使用真实 `BRepBuilderAPI_Transform` 单输入 builder生成体积 `1000` 的有效单 Solid 和 78 条原生 history。
- 下游使用真实 `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` builder将 Rotate 结果绕锁定 Z 轴旋转复制并融合。
- `30 -> 45 -> 30` 角度轨迹改变体积、面积与边界,体积在 `1422.6497308 -> 1585.7864376 -> 1422.6497308` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 78 条原生 history 记录。
- 上游 Rotate naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定跨行首阶段 builder、旋转实例融合、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-rotate-mirrored`
`rotate->mirrored` 已完成原生接受分类:
- 上游使用真实 `BRepBuilderAPI_Transform` 单输入 builder生成体积 `1000` 的有效单 Solid 和 78 条原生 history。
- 下游使用真实 `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` builder将 Rotate 结果绕锁定平面镜像复制并融合。
- `5 -> 6 -> 5` 镜像面 X 原点轨迹改变体积、面积与边界,体积在 `1329.767789 -> 1517.3794222 -> 1329.767789` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 80 条原生 history 记录。
- 上游 Rotate naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定跨行首阶段 builder、镜像实例融合、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-rotate-multi-transform`
`rotate->multi-transform` 已完成原生接受分类,并闭合机器队列中 Rotate 起始行的剩余有序操作对:
- 上游使用真实 `BRepBuilderAPI_Transform` 单输入 builder生成体积 `1000` 的有效单 Solid 和 78 条原生 history。
- 下游使用 ordered `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` builder组合 X 平移和 X=5 镜像两步并保留每个实例的原生追踪关系。
- `8 -> 9 -> 8` 首步 X 平移轨迹保持全部实例连通,体积在 `2392.1349751 -> 2589.9081788 -> 2392.1349751` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid名义与编辑态均包含 470 条原生 history 记录。
- 上游 Rotate naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定 ordered builder、单 Solid 约束、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pad-fuse`
`pad->fuse` 已完成原生接受分类,并建立 Pad 起始行的真实 Profile 基线:
- 上游使用真实 `10x10` Face Profile 和 `BRepPrimAPI_MakePrism` 单输入 builder拉伸出体积 `500` 的有效单 Solid 和 25 条原生 history未复用 Solid-as-profile 拒绝输入。
- 下游使用真实 `BRepAlgoAPI_Fuse` 双输入 builder对 Pad 结果执行布尔并集。
- 默认工具 X 偏移 `12` 会产生分离实体,未被误记为接受;改用保持实体交叠的 `8 -> 7 -> 8` 专用轨迹。
- 工具偏移轨迹使体积在 `575 -> 550 -> 575` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 57 条原生 history 记录。
- 上游 Pad naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定真实 Profile、两阶段 builder、专用变异轨迹、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pad-cut`
`pad->cut` 已完成原生接受分类:
- 上游使用真实 `10x10` Face Profile 和 `BRepPrimAPI_MakePrism` 单输入 builder拉伸出体积 `500` 的有效单 Solid 和 25 条原生 history。
- 下游使用真实 `BRepAlgoAPI_Cut` 双输入 builder对 Pad 结果执行布尔减料。
- `4 -> 3 -> 4` 工具尺寸轨迹改变体积与面积,体积在 `436 -> 473 -> 436` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 22 条原生 history 记录。
- 上游 Pad naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定真实 Profile、双输入减料、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pad-common`
`pad->common` 已完成原生接受分类:
- 上游使用真实 `10x10` Face Profile 和 `BRepPrimAPI_MakePrism` 单输入 builder拉伸出体积 `500` 的有效单 Solid 和 25 条原生 history。
- 下游使用真实 `BRepAlgoAPI_Common` 双输入 builder对 Pad 结果执行布尔交集。
- 默认工具 X 偏移 `10` 仅与 Pad 边界相切且没有实体交集,未被误记为接受;改用 `7 -> 6 -> 7` 专用轨迹。
- 工具偏移轨迹使交集体积在 `75 -> 100 -> 75` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 117 条原生 history 记录。
- 上游 Pad naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定真实 Profile、专用交叠轨迹、双输入 builder、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pad-rotate`
`pad->rotate` 已完成原生接受分类:
- 上游使用真实 `10x10` Face Profile 和 `BRepPrimAPI_MakePrism` 单输入 builder拉伸出体积 `500` 的有效单 Solid 和 25 条原生 history。
- 下游使用真实 `BRepBuilderAPI_Transform` 单输入 builder对 Pad 结果执行刚性旋转。
- `15 -> 22.5 -> 15` 角度轨迹保持体积 `500` 和拓扑不变,但明确改变世界空间边界,未因体积不变而误判为无变异。
- 名义与恢复态均包含 78 条原生 history并精确恢复摘要和语义 naming。
- 上游 Pad naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定真实 Profile、两阶段 builder、边界变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pad-pad`
`pad->pad` 已完成原生拒绝分类,并补齐 Pad STEP 聚合结构的拒绝重放规则:
- 上游使用真实 `10x10` Face Profile 和 `BRepPrimAPI_MakePrism` 单输入 builder拉伸出体积 `500` 的有效单 Solid 和 25 条原生 history。
- OCCT `BRepPrimAPI_MakePrism` 在 `5 -> 7.5 -> 5` 长度轨迹中稳定拒绝第一个 Pad 的 Solid 输入,三次均在 builder 阶段传输原生 C++ 异常,且不产生结果 Shape 或 history。
- FreeCAD STEP 导入保留 `App::Part` 聚合容器,并唯一选择有效单 Solid 的 `Part::Feature` 叶节点作为 Profile零个或多个实体叶节点仍 fail-closed。
- FreeCAD `PartDesign::Pad` 返回 `FeatureExtrusion: Length: Could not extrude the sketch!`,结果 Shape 为空且状态包含 `Invalid`。
- transaction abort 后 10 个导入结构/基准对象、源实体 BREP 与对象集完整恢复;无穷参考线面只比较对象语义,实体 Shape 仍逐字段比较。
- 干净 FCStd save/reopen/resave 三阶段一致,拒绝任务没有伪造下游 naming 或变异证据。
- focused ordered-pair gate 已锁定真实 Profile 上游、异常传输、STEP 叶节点选择、精确诊断、回滚和持久化证据。
### `TSN-PAIR-pad-pocket`
`pad->pocket` 已完成原生接受分类:
- 上游使用真实 `10x10` Face Profile 和 `BRepPrimAPI_MakePrism` 单输入 builder拉伸出体积 `500` 的有效单 Solid 和 25 条原生 history。
- 下游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakePrism+BRepAlgoAPI_Cut` 双输入 builder对 Pad 结果执行减料拉伸。
- `5 -> 4 -> 5` 深度轨迹改变体积、面积与拓扑,体积在 `470 -> 476 -> 470` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 64 条原生 history 记录。
- 上游 Pad naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定真实上游/下游 Profile、双输入减料、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pad-loft`
`pad->loft` 已完成原生拒绝分类:
- 上游使用真实 `10x10` Face Profile 和 `BRepPrimAPI_MakePrism` 单输入 builder拉伸出体积 `500` 的有效单 Solid 和 25 条原生 history。
- OCCT `BRepOffsetAPI_ThruSections` 在 `false -> true -> false` ruled 轨迹中均生成体积 `655` 的有效单 Solid 和 24 条 history但该结果仅记为 kernel-superset 诊断。
- FreeCAD `Part::Loft` 对 Pad Solid section 返回 `Profile shape is not a single vertex, edge, wire nor face.`。
- FreeCAD 结果 Shape 为空、状态包含 `Invalid`,拒绝任务没有伪造下游 naming 或变异证据。
- transaction abort 后 STEP 聚合结构、对象集与 Pad 源实体 BREP 完整恢复,干净 FCStd save/reopen/resave 三阶段一致。
- focused ordered-pair gate 已锁定 FreeCAD 决策权、OCCT 超集诊断、STEP 叶节点选择、精确失败信息、回滚和持久化证据。
### `TSN-PAIR-pad-pipe`
`pad->pipe` 已完成原生拒绝分类:
- 上游使用真实 `10x10` Face Profile 和 `BRepPrimAPI_MakePrism` 单输入 builder拉伸出体积 `500` 的有效单 Solid 和 25 条原生 history。
- OCCT `BRepOffsetAPI_MakePipe` 在 `15 -> 12 -> 15` spine 长度轨迹中生成体积 `1500 -> 1200 -> 1500` 的有效单 Solid 和 28 条 history但该结果仅记为 kernel-superset 诊断。
- FreeCAD `Part::Sweep` 对 Pad Solid section 返回 `A fatal error occurred when making the sweep`。
- FreeCAD 结果 Shape 为空、状态包含 `Invalid`,拒绝任务没有伪造下游 naming 或变异证据。
- transaction abort 后 STEP 聚合结构、对象集与 Pad 源实体 BREP 完整恢复,干净 FCStd save/reopen/resave 三阶段一致。
- focused ordered-pair gate 已锁定 FreeCAD 决策权、OCCT 超集诊断、STEP 叶节点选择、精确失败信息、回滚和持久化证据。
### `TSN-PAIR-pad-revolution`
`pad->revolution` 已完成原生拒绝分类:
- 上游使用真实 `10x10` Face Profile 和 `BRepPrimAPI_MakePrism` 单输入 builder拉伸出体积 `500` 的有效单 Solid 和 25 条原生 history。
- OCCT `BRepPrimAPI_MakeRevol` 在 `360 -> 270 -> 360` 角度轨迹中稳定拒绝 Pad Solid 输入,三次均在 builder 阶段传输原生 C++ 异常,且不产生结果 Shape 或 history。
- FreeCAD `Part::Revolution` 使用同一 Pad Solid 作为 Source返回 `Solids are not Processed`。
- FreeCAD 结果 Shape 为空、状态包含 `Invalid`,拒绝任务没有伪造下游 naming 或变异证据。
- transaction abort 后 STEP 聚合结构、对象集与 Pad 源实体 BREP 完整恢复,干净 FCStd save/reopen/resave 三阶段一致。
- focused ordered-pair gate 已锁定异常传输、STEP 叶节点选择、精确诊断、回滚和持久化证据。
### `TSN-PAIR-pad-groove`
`pad->groove` 已完成原生接受分类:
- 上游使用真实 `10x10` Face Profile 和 `BRepPrimAPI_MakePrism` 单输入 builder拉伸出体积 `500` 的有效单 Solid 和 25 条原生 history。
- 下游使用真实旋转轮廓和 `BRepPrimAPI_MakeRevol+BRepAlgoAPI_Cut` 双输入 builder对 Pad 结果执行旋转槽减料。
- `360 -> 180 -> 360` 角度轨迹改变体积与拓扑:名义态体积为 `495.287611`、10 Face编辑态体积为 `500`、7 Face并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 18 条原生 history 记录。
- 上游 Pad naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定真实 Profile、双输入旋转减料、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pad-fillet`
`pad->fillet` 已完成原生接受分类:
- 上游使用真实 `10x10` Face Profile 和 `BRepPrimAPI_MakePrism` 单输入 builder拉伸出体积 `500` 的有效单 Solid 和 25 条原生 history。
- 下游使用真实 `BRepFilletAPI_MakeFillet` 单输入 builder对 Pad 结果的锁定原生边执行倒圆。
- `0.4 -> 0.6 -> 0.4` 半径轨迹改变体积与面积,体积在 `496.6520816 -> 492.5636085 -> 496.6520816` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 150 条原生 history 记录。
- 上游 Pad naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定真实 Profile、原生边选择、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pad-chamfer`
`pad->chamfer` 已完成原生接受分类:
- 上游使用真实 `10x10` Face Profile 和 `BRepPrimAPI_MakePrism` 单输入 builder拉伸出体积 `500` 的有效单 Solid 和 25 条原生 history。
- 下游使用真实 `BRepFilletAPI_MakeChamfer` 单输入 builder对 Pad 结果的锁定原生边执行倒角。
- `0.4 -> 0.6 -> 0.4` 距离轨迹改变体积与面积,体积在 `492.3413333 -> 483.152 -> 492.3413333` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 150 条原生 history 记录。
- 上游 Pad naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定真实 Profile、原生边选择、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pad-hole`
`pad->hole` 已完成原生接受分类:
- 上游使用真实 `10x10` Face Profile 和 `BRepPrimAPI_MakePrism` 单输入 builder拉伸出体积 `500` 的有效单 Solid 和 25 条原生 history。
- 下游使用真实 `BRepPrimAPI_MakeCylinder+BRepAlgoAPI_Cut` 单输入 builder以锁定位置和方向的圆柱刀具贯穿 Pad 结果。
- `1 -> 1.5 -> 1` 半径轨迹改变体积与面积,体积在 `484.2920367 -> 464.6570826 -> 484.2920367` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 23 条原生 history 记录。
- 上游 Pad naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定真实 Profile、圆柱减料、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pad-draft`
`pad->draft` 已完成原生接受分类:
- 上游使用真实 `10x10` Face Profile 和 `BRepPrimAPI_MakePrism` 单输入 builder拉伸出体积 `500` 的有效单 Solid 和 25 条原生 history。
- 下游使用真实 `BRepOffsetAPI_DraftAngle` 单输入 builder对 Pad 结果的锁定原生 Face 执行拔模。
- `5 -> 8 -> 5` 角度轨迹改变体积与面积,体积在 `489.0639171 -> 482.4323957 -> 489.0639171` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 5 条原生 history 记录。
- 上游 Pad naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定真实 Profile、原生 Face 选择、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pad-thickness`
`pad->thickness` 已完成原生接受分类:
- 上游使用真实 `10x10` Face Profile 和 `BRepPrimAPI_MakePrism` 单输入 builder拉伸出体积 `500` 的有效单 Solid 和 25 条原生 history。
- 下游使用真实 `BRepOffsetAPI_MakeThickSolid` 单输入 builder对 Pad 结果的锁定原生 Face 执行厚壳。
- `-0.4 -> -0.6 -> -0.4` offset 轨迹改变体积与面积,体积在 `129.056 -> 185.664 -> 129.056` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 38 条原生 history 记录。
- 上游 Pad naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定真实 Profile、原生 Face 选择、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pad-linear-pattern`
`pad->linear-pattern` 已完成原生接受分类:
- 上游使用真实 `10x10` Face Profile 和 `BRepPrimAPI_MakePrism` 单输入 builder拉伸出体积 `500` 的有效单 Solid 和 25 条原生 history。
- 下游使用真实 `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` builder将 Pad 结果沿 X 方向平移复制并融合为一个可追踪 Solid。
- `8 -> 9 -> 8` 平移轨迹保持实例交叠,体积在 `900 -> 950 -> 900` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 66 条原生 history 记录。
- 上游 Pad naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定真实 Profile、单 Solid 约束、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pad-polar-pattern`
`pad->polar-pattern` 已完成原生接受分类:
- 上游使用真实 `10x10` Face Profile 和 `BRepPrimAPI_MakePrism` 单输入 builder拉伸出体积 `500` 的有效单 Solid 和 25 条原生 history。
- 下游使用真实 `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` builder将 Pad 结果绕锁定 Z 轴旋转复制并融合。
- `30 -> 45 -> 30` 角度轨迹改变体积、面积与边界,体积在 `711.3248654 -> 792.8932188 -> 711.3248654` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 78 条原生 history 记录。
- 上游 Pad naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定真实 Profile、旋转实例融合、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pad-mirrored`
`pad->mirrored` 已完成原生接受分类:
- 上游使用真实 `10x10` Face Profile 和 `BRepPrimAPI_MakePrism` 单输入 builder拉伸出体积 `500` 的有效单 Solid 和 25 条原生 history。
- 下游使用真实 `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` builder将 Pad 结果绕锁定平面镜像复制并融合。
- 名义 X=5 镜像与对称 Pad 本体完全重合,但仍保留 156 条原生 history`5 -> 6 -> 5` 轨迹在编辑态产生体积 `600`、14 Face 的单 Solid。
- 恢复态精确返回体积 `500`、6 Face 的名义摘要、history 与语义 naming。
- 上游 Pad naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定真实 Profile、完全重合名义态、镜像实例融合、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pad-multi-transform`
`pad->multi-transform` 已完成原生接受分类,并闭合 Pad 起始行的全部 19 个有序操作对:
- 上游使用真实 `10x10` Face Profile 和 `BRepPrimAPI_MakePrism` 单输入 builder拉伸出体积 `500` 的有效单 Solid 和 25 条原生 history。
- 下游使用 ordered `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` builder先执行 X 平移,再镜像平移结果并保留每个实例的原生追踪关系。
- `8 -> 9 -> 8` 首步 X 平移轨迹保持全部实例连通,体积在 `1300 -> 1400 -> 1300` 间变化,名义边界覆盖 X=`[-8, 18]`。
- 名义与编辑态均包含 355 条原生 history恢复态精确返回名义摘要、history 与语义 naming。
- 上游 Pad naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定真实 Profile、ordered builder、单 Solid 约束、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pocket-fuse`
`pocket->fuse` 已完成原生接受分类:
- 上游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakePrism+BRepAlgoAPI_Cut` 双输入 builder生成体积 `970` 的有效单 Solid 和 42 条原生 history。
- 下游使用真实 `BRepAlgoAPI_Fuse` 双输入 builder对 Pocket 结果执行布尔并集。
- 默认工具 X 偏移 `12` 会产生分离实体,未被误记为接受;改用保持实体交叠的 `8 -> 7 -> 8` 专用轨迹。
- 工具偏移轨迹使体积在 `1045 -> 1020 -> 1045` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 52 条原生 history 记录。
- 上游 Pocket naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定真实 Profile、两阶段双输入 builder、专用变异轨迹、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pocket-cut`
`pocket->cut` 已完成原生接受分类:
- 上游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakePrism+BRepAlgoAPI_Cut` 双输入 builder生成体积 `970` 的有效单 Solid 和 42 条原生 history。
- 下游使用真实 `BRepAlgoAPI_Cut` 双输入 builder对 Pocket 结果继续执行布尔减料。
- `4 -> 3 -> 4` 工具尺寸轨迹改变体积、面积与拓扑,体积在 `906 -> 943 -> 906` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 48 条原生 history 记录。
- 上游 Pocket naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定真实 Profile、两阶段双输入减料、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pocket-common`
`pocket->common` 已完成原生接受分类:
- 上游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakePrism+BRepAlgoAPI_Cut` 双输入 builder生成体积 `970` 的有效单 Solid 和 42 条原生 history。
- 下游使用真实 `BRepAlgoAPI_Common` 双输入 builder对 Pocket 结果执行布尔交集。
- 默认工具 X 偏移 `10` 仅与 Pocket 外边界相切且没有实体交集,未被误记为接受;改用 `7 -> 6 -> 7` 专用轨迹。
- 工具偏移轨迹使交集体积在 `75 -> 100 -> 75` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 178 条原生 history 记录。
- 上游 Pocket naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定真实 Profile、专用交叠轨迹、两阶段双输入 builder、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pocket-rotate`
`pocket->rotate` 已完成原生接受分类:
- 上游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakePrism+BRepAlgoAPI_Cut` 双输入 builder生成体积 `970` 的有效单 Solid 和 42 条原生 history。
- 下游使用真实 `BRepBuilderAPI_Transform` 单输入 builder将 Pocket 结果绕锁定 Z 轴旋转。
- `15 -> 22.5 -> 15` 角度轨迹改变边界并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid体积 `970`,包含 135 条原生 history 记录。
- 上游 Pocket naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定真实 Profile、两阶段 builder、角度变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pocket-pad`
`pocket->pad` 已完成原生拒绝分类:
- 上游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakePrism+BRepAlgoAPI_Cut` 双输入 builder生成体积 `970` 的有效单 Solid 和 42 条原生 history。
- OCCT `BRepPrimAPI_MakePrism` 在 `5 -> 7.5 -> 5` 长度轨迹中稳定拒绝 Pocket Solid 输入,且不产生结果 Shape 或 history。
- FreeCAD `PartDesign::Pad` 使用同一 Pocket Solid 作为 Profile返回 `FeatureExtrusion: Length: Could not extrude the sketch!`。
- FreeCAD 结果 Shape 为空、状态包含 `Invalid`,拒绝任务没有伪造下游 naming 或变异证据。
- transaction abort 后对象集与 Pocket 源 Shape 完整恢复,干净 FCStd save/reopen/resave 三阶段一致。
- focused ordered-pair gate 已锁定两阶段 builder、异常传输、精确诊断、回滚和持久化证据。
### `TSN-PAIR-pocket-pocket`
`pocket->pocket` 已完成原生接受分类:
- 第一、第二阶段均使用真实 `BRepPrimAPI_MakePrism+BRepAlgoAPI_Cut` 双输入 builder上游 Pocket 生成体积 `970` 的有效单 Solid。
- 下游使用锁定的 `3x3` Face Profile避免默认 `2x3` Profile 只重复切除已空区域而产生无效变异轨迹。
- `5 -> 4 -> 5` 深度轨迹使体积在 `955 -> 958 -> 955` 间变化,同时改变拓扑和 history并精确恢复名义摘要与语义 naming。
- 名义结果为有效 1 Solid包含 111 条原生 history 记录。
- 上游 Pocket naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段双输入 builder、非平凡 Profile、深度变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pocket-loft`
`pocket->loft` 已完成原生拒绝分类:
- 上游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakePrism+BRepAlgoAPI_Cut` 双输入 builder生成体积 `970` 的有效单 Solid 和 42 条原生 history。
- OCCT `BRepOffsetAPI_ThruSections` 在 `false -> true -> false` ruled 轨迹中生成有效 Shape但该结果仅记为 kernel-superset 诊断。
- FreeCAD `Part::Loft` 对 Pocket Solid section 返回 `Profile shape is not a single vertex, edge, wire nor face.`。
- FreeCAD 结果 Shape 为空、状态包含 `Invalid`,拒绝任务没有伪造下游 naming 或变异证据。
- transaction abort 后对象集与 Pocket 源 Shape 完整恢复,干净 FCStd save/reopen/resave 三阶段一致。
- focused ordered-pair gate 已锁定 FreeCAD 决策权、OCCT 超集诊断、精确失败信息、回滚和持久化证据。
### `TSN-PAIR-pocket-pipe`
`pocket->pipe` 已完成原生拒绝分类:
- 上游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakePrism+BRepAlgoAPI_Cut` 双输入 builder生成体积 `970` 的有效单 Solid 和 42 条原生 history。
- 初始的 kernel-invalid 预期被真实 probe 否定OCCT `BRepOffsetAPI_MakePipe` 在 `15 -> 12 -> 15` spine 长度轨迹中生成有效 Shape但该结果仅记为 kernel-superset 诊断。
- FreeCAD `Part::Sweep` 对 Pocket Solid section 返回 `A fatal error occurred when making the sweep`。
- FreeCAD 结果 Shape 为空、状态包含 `Invalid`,拒绝任务没有伪造下游 naming 或变异证据。
- transaction abort 后对象集与 Pocket 源 Shape 完整恢复,干净 FCStd save/reopen/resave 三阶段一致。
- focused ordered-pair gate 已锁定 FreeCAD 决策权、OCCT 超集诊断、精确失败信息、回滚和持久化证据。
### `TSN-PAIR-pocket-revolution`
`pocket->revolution` 已完成原生拒绝分类:
- 上游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakePrism+BRepAlgoAPI_Cut` 双输入 builder生成体积 `970` 的有效单 Solid 和 42 条原生 history。
- OCCT `BRepPrimAPI_MakeRevol` 在 `360 -> 270 -> 360` 角度轨迹中稳定拒绝 Pocket Solid 输入,且不产生结果 Shape 或 history。
- FreeCAD `Part::Revolution` 使用同一 Pocket Solid 作为 Source返回 `Solids are not Processed`。
- FreeCAD 结果 Shape 为空、状态包含 `Invalid`,拒绝任务没有伪造下游 naming 或变异证据。
- transaction abort 后对象集与 Pocket 源 Shape 完整恢复,干净 FCStd save/reopen/resave 三阶段一致。
- focused ordered-pair gate 已锁定两阶段 builder、异常传输、精确诊断、回滚和持久化证据。
### `TSN-PAIR-pocket-groove`
`pocket->groove` 已完成原生接受分类:
- 上游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakePrism+BRepAlgoAPI_Cut` 双输入 builder生成体积 `970` 的有效单 Solid 和 42 条原生 history。
- 下游使用真实 `BRepPrimAPI_MakeRevol+BRepAlgoAPI_Cut` 双输入 builder对 Pocket 结果执行旋转减料。
- `360 -> 180 -> 360` 角度轨迹改变体积、拓扑和 history并精确恢复名义摘要与语义 naming。
- 名义结果为有效 1 Solid体积 `966.8584073`,包含 40 条原生 history 记录。
- 上游 Pocket naming 证据向下游传播,恢复态语义摘要与名义态一致。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段双输入 builder、角度变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pocket-fillet`
`pocket->fillet` 已完成原生接受分类:
- 上游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakePrism+BRepAlgoAPI_Cut` 双输入 builder生成体积 `970` 的有效单 Solid 和 42 条原生 history。
- 下游使用真实 `BRepFilletAPI_MakeFillet` 单输入 builder对 Pocket 结果的锁定原生边执行倒圆。
- `0.4 -> 0.6 -> 0.4` 半径轨迹改变体积与面积,体积在 `965.9792974 -> 961.0655284 -> 965.9792974` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 44 Face 和 261 条原生 history 记录。
- 上游 Pocket naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 builder、原生边选择、半径变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pocket-chamfer`
`pocket->chamfer` 已完成原生接受分类:
- 上游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakePrism+BRepAlgoAPI_Cut` 双输入 builder生成体积 `970` 的有效单 Solid 和 42 条原生 history。
- 下游使用真实 `BRepFilletAPI_MakeChamfer` 单输入 builder对 Pocket 结果的锁定原生边执行倒角。
- `0.4 -> 0.6 -> 0.4` 距离轨迹改变体积与面积,体积在 `960.848 -> 949.912 -> 960.848` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 44 Face 和 261 条原生 history 记录。
- 上游 Pocket naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 builder、原生边选择、距离变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pocket-hole`
`pocket->hole` 已完成原生接受分类:
- 上游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakePrism+BRepAlgoAPI_Cut` 双输入 builder生成体积 `970` 的有效单 Solid 和 42 条原生 history。
- 下游使用真实 `BRepPrimAPI_MakeCylinder+BRepAlgoAPI_Cut` 单输入 builder以锁定位置和方向的圆柱刀具贯穿 Pocket 结果。
- `1 -> 1.5 -> 1` 半径轨迹改变体积与面积,体积在 `938.5840735 -> 899.3141653 -> 938.5840735` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 23 条原生 history 记录,下游 naming 状态为无歧义 `native-evidence`。
- 上游 Pocket naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 builder、圆柱减料、半径变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pocket-draft`
`pocket->draft` 已完成原生接受分类:
- 上游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakePrism+BRepAlgoAPI_Cut` 双输入 builder生成体积 `970` 的有效单 Solid 和 42 条原生 history。
- 下游使用真实 `BRepOffsetAPI_DraftAngle` 单输入 builder对 Pocket 结果的锁定原生 Face、中性面和拉伸方向执行拔模。
- `5 -> 8 -> 5` 角度轨迹改变体积与面积,体积在 `929.5364931 -> 904.999864 -> 929.5364931` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 7 条原生 history 记录,下游 naming 状态为无歧义 `native-evidence`。
- 上游 Pocket naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 builder、原生 Face 选择、角度变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pocket-thickness`
`pocket->thickness` 已完成原生接受分类:
- 上游使用真实 `10x10` Box 与 `BRepPrimAPI_MakePrism+BRepAlgoAPI_Cut` 双输入 builder按专用 `5x10` Profile 贯穿切除,生成体积 `500` 的有效单 Solid 和 25 条原生 history。
- 下游使用真实 `BRepOffsetAPI_MakeThickSolid` 单输入 builder对锁定的原生 Face 执行厚壳;名义结果为有效 1 Solid、11 Face体积 `129.056`。
- `-0.4 -> -0.6 -> -0.4` offset 轨迹使体积在 `129.056 -> 185.664 -> 129.056` 间变化并精确恢复名义摘要、history 与语义 naming。
- 上游 Pocket naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 builder、原生 Face 选择、offset 变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pocket-linear-pattern`
`pocket->linear-pattern` 已完成原生接受分类:
- 上游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakePrism+BRepAlgoAPI_Cut` 双输入 builder生成体积 `970` 的有效单 Solid 和 42 条原生 history。
- 下游使用真实 `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` 单输入 builder将 Pocket 结果沿 X 方向平移复制并融合为单 Solid名义体积 `1770`,边界覆盖 X=`[-0, 18]`。
- `8 -> 9 -> 8` 平移轨迹使体积在 `1770 -> 1855 -> 1770` 间变化并精确恢复名义摘要、history 与语义 naming。
- 上游 Pocket naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定真实 Profile、单 Solid 约束、平移变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pocket-polar-pattern`
`pocket->polar-pattern` 已完成原生接受分类:
- 上游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakePrism+BRepAlgoAPI_Cut` 双输入 builder生成体积 `970` 的有效单 Solid 和 42 条原生 history。
- 下游使用真实 `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` 单输入 builder将 Pocket 结果绕锁定 Z 轴旋转复制并融合为单 Solid名义体积 `1388.0087147`,边界覆盖 X=`[-5, 10]`、Y=`[0, 13.6602542]`。
- `30 -> 45 -> 30` 角度轨迹使体积在 `1388.0087147 -> 1545.7864376 -> 1388.0087147` 间变化并精确恢复名义摘要、history 与语义 naming。
- 上游 Pocket naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定真实 Profile、旋转实例融合、角度变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-loft-fillet`
`loft->fillet` 已完成 Web 原生 history builder 拒绝分类,并显式记录 FreeCAD profile 接受差异:
- 上游使用真实 `BRepOffsetAPI_ThruSections` 双输入 builder生成体积 `1500` 的有效单 Solid 和 24 条原生 history。
- 下游 `BRepFilletAPI_MakeFillet` 在 `0.4 -> 0.6 -> 0.4` 半径轨迹中稳定触发 `RuntimeError: table index is out of bounds`,三次尝试均没有产生 Shape、history 或 naming。
- FreeCAD 1.1.1 `Part::Fillet` 对同一 Loft Solid 重算成功,状态为 `Valid` / `Up-to-date`;该差异被锁定为 Web 原生 history builder 中止,没有伪造 FreeCAD 拒绝。
- transaction abort 后对象集与 Loft 源 Shape 完整恢复,干净 FCStd save/reopen/resave 三阶段一致。
- focused ordered-pair gate 已锁定 WASM abort 签名、FreeCAD 接受对照、精确回滚和持久化证据。
### `TSN-PAIR-loft-chamfer`
`loft->chamfer` 已完成原生接受分类:
- 上游使用真实 `BRepOffsetAPI_ThruSections` 双输入 builder生成体积 `1500` 的有效单 Solid 和 24 条原生 history。
- 下游使用真实 `BRepFilletAPI_MakeChamfer` 单输入 builder对 Loft 结果的原生边执行倒角。
- `0.4 -> 0.6 -> 0.4` 距离轨迹使体积在 `1489.1413333 -> 1475.952 -> 1489.1413333` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid、26 Face包含 150 条原生 history 记录。
- 上游 Loft naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 builder、原生边选择、距离变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-loft-hole`
`loft->hole` 已完成原生接受分类:
- 上游使用真实 `BRepOffsetAPI_ThruSections` 双输入 builder生成体积 `1500` 的有效单 Solid 和 24 条原生 history。
- 下游使用真实 `BRepPrimAPI_MakeCylinder+BRepAlgoAPI_Cut` builder以锁定位置和方向的圆柱刀具贯穿 Loft 结果。
- `1 -> 1.5 -> 1` 半径轨迹使体积在 `1462.3008882 -> 1415.1769984 -> 1462.3008882` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 13 条原生 history 记录,下游 naming 状态为无歧义 `native-evidence`。
- 上游 Loft naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 builder、圆柱减料、半径变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-loft-draft`
`loft->draft` 已完成原生接受分类:
- 上游使用真实 `BRepOffsetAPI_ThruSections` 双输入 builder生成体积 `1500` 的有效单 Solid 和 24 条原生 history。
- 下游使用真实 `BRepOffsetAPI_DraftAngle` 单输入 builder对 Loft 结果的锁定原生 Face、中性面和拉伸方向执行拔模。
- `5 -> 8 -> 5` 角度轨迹使体积在 `1401.5752535 -> 1341.891561 -> 1401.5752535` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid包含 5 条原生 history 记录。
- 上游 Loft naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 builder、原生 Face 选择、角度变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-loft-thickness`
`loft->thickness` 已完成原生接受分类:
- 上游使用真实 `BRepOffsetAPI_ThruSections` 双输入 builder生成体积 `1500` 的有效单 Solid 和 24 条原生 history。
- 下游使用真实 `BRepOffsetAPI_MakeThickSolid` 单输入 builder对锁定的原生 Face 执行厚壳;名义结果为有效 1 Solid、11 Face体积 `245.856`。
- `-0.4 -> -0.6 -> -0.4` offset 轨迹使体积在 `245.856 -> 358.464 -> 245.856` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果包含 38 条原生 history 记录,上游 Loft naming 证据向下游传播。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 builder、原生 Face 选择、offset 变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-loft-linear-pattern`
`loft->linear-pattern` 已完成原生接受分类:
- 上游使用真实 `BRepOffsetAPI_ThruSections` 双输入 builder生成体积 `1500` 的有效单 Solid 和 24 条原生 history。
- 下游使用真实 `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` 单输入 builder将 Loft 结果沿 X 方向平移复制并融合为单 Solid。
- `8 -> 9 -> 8` 平移轨迹使体积在 `2700 -> 2850 -> 2700` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid、14 Face边界覆盖 X=`[0, 18]`,包含 66 条原生 history 记录。
- 上游 Loft naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 builder、单 Solid 约束、平移变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-loft-polar-pattern`
`loft->polar-pattern` 已完成原生接受分类:
- 上游使用真实 `BRepOffsetAPI_ThruSections` 双输入 builder生成体积 `1500` 的有效单 Solid 和 24 条原生 history。
- 下游使用真实 `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` 单输入 builder将 Loft 结果绕锁定 Z 轴旋转复制并融合为单 Solid。
- `30 -> 45 -> 30` 角度轨迹使体积在 `2133.9745962 -> 2378.6796564 -> 2133.9745962` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid、12 Face边界覆盖 X=`[-5, 10]`、Y=`[0, 13.660254]`,包含 78 条原生 history 记录。
- 上游 Loft naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 builder、旋转实例融合、角度变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-loft-mirrored`
`loft->mirrored` 已完成原生接受分类:
- 上游使用真实 `BRepOffsetAPI_ThruSections` 双输入 builder生成体积 `1500` 的有效单 Solid 和 24 条原生 history。
- 下游使用真实 `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` 单输入 builder将 Loft 结果绕锁定平面镜像复制并融合。
- 名义 X=5 镜像与 Loft 本体完全重合但仍保留 156 条原生 history`5 -> 6 -> 5` 轨迹使体积在 `1500 -> 1800 -> 1500` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid、6 FaceFreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定。
- 上游 Loft naming 证据向下游传播focused ordered-pair gate 已锁定重合名义对照、镜像实例融合、变异、恢复、history 和持久化证据。
### `TSN-PAIR-loft-multi-transform`
`loft->multi-transform` 已完成原生接受分类,并闭合 Loft 起始行全部 19 个有序操作对:
- 上游使用真实 `BRepOffsetAPI_ThruSections` 双输入 builder生成体积 `1500` 的有效单 Solid 和 24 条原生 history。
- 下游使用 ordered `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` builder先执行 X 平移,再镜像平移结果并保留每个实例的原生追踪关系。
- `8 -> 9 -> 8` 首步 X 平移轨迹使体积在 `3900 -> 4200 -> 3900` 间变化,名义边界覆盖 X=`[-8, 18]`并精确恢复名义摘要、history 与语义 naming。
- 名义与编辑态均包含 355 条原生 history结果为有效 1 Solid、22 Face。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定focused ordered-pair gate 已锁定 ordered builder、实例追踪、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pipe-fuse`
`pipe->fuse` 已完成原生接受分类:
- 上游使用真实 `BRepOffsetAPI_MakePipe` 双输入 builder以真实 `2x3` Face section 沿 15 长度 spine 扫掠,生成体积 `90` 的有效单 Solid 和 28 条原生 history。
- 下游使用真实 `BRepAlgoAPI_Fuse` 双输入 builder使用与 Pipe 保持交叠的工具。
- `0 -> 0.5 -> 0` 工具 X 偏移轨迹使体积在 `185 -> 192.5 -> 185` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid、14 Face包含 66 条原生 history 记录,上游 Pipe naming 证据向下游传播。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定focused ordered-pair gate 已锁定真实 Face section、双输入 builder、交叠变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pipe-cut`
`pipe->cut` 已完成原生接受分类:
- 上游使用真实 `BRepOffsetAPI_MakePipe` 双输入 builder以 `2x3` Face section 生成体积 `90` 的有效单 Solid 和 28 条原生 history。
- 下游使用真实 `BRepAlgoAPI_Cut` 双输入 builder以贯穿交叠的工具继续减料。
- `0 -> 0.5 -> 0` 工具 X 偏移轨迹使体积在 `66 -> 72 -> 66` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid、6 Face、包含 117 条原生 history 记录,上游 Pipe naming 证据向下游传播。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定focused ordered-pair gate 已锁定 Face section、双输入减料 builder、偏移变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pipe-common`
`pipe->common` 已完成原生接受分类:
- 上游使用真实 `BRepOffsetAPI_MakePipe` 双输入 builder以 `2x3` Face section 生成体积 `90` 的有效单 Solid 和 28 条原生 history。
- 下游使用真实 `BRepAlgoAPI_Common` 双输入 builder使用与 Pipe 保持交叠的工具。
- `0 -> 0.5 -> 0` 工具 X 偏移轨迹使交集体积在 `24 -> 18 -> 24` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid、6 Face、包含 132 条原生 history 记录,上游 Pipe naming 证据向下游传播。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定focused ordered-pair gate 已锁定 Face section、交叠变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pipe-rotate`
`pipe->rotate` 已完成原生接受分类:
- 上游使用真实 `BRepOffsetAPI_MakePipe` 双输入 builder以 `2x3` Face section 生成体积 `90` 的有效单 Solid 和 28 条原生 history。
- 下游使用真实 `BRepBuilderAPI_Transform` 单输入 builder将 Pipe 结果绕 Z 轴旋转。
- `15 -> 22.5 -> 15` 角度轨迹保持体积 `90`改变边界并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid、6 Face、包含 78 条原生 history 记录,上游 Pipe naming 证据向下游传播。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定focused ordered-pair gate 已锁定旋转变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pipe-pad`
`pipe->pad` 已完成原生拒绝分类:
- 上游使用真实 `BRepOffsetAPI_MakePipe` 双输入 builder以 `2x3` Face section 生成体积 `90` 的有效单 Solid 和 28 条原生 history。
- OCCT `BRepPrimAPI_MakePrism` 在 `5 -> 7.5 -> 5` 长度轨迹中稳定拒绝 Pipe Solid 输入,不产生结果 Shape 或 history。
- FreeCAD `PartDesign::Pad` 使用同一 Pipe Solid 作 Profile返回 `FeatureExtrusion: Length: Could not extrude the sketch!`;结果 Shape 为空、状态包含 `Invalid`。
- transaction abort 后对象集与 Pipe 源 Shape 完整恢复,干净 FCStd save/reopen/resave 三阶段一致。
- focused ordered-pair gate 已锁定两阶段 builder、异常传输、精确诊断、回滚和持久化证据。
### `TSN-PAIR-pipe-pocket`
`pipe->pocket` 已完成原生接受分类:
- 上游使用真实 `BRepOffsetAPI_MakePipe` 双输入 builder以 `2x3` Face section 生成体积 `90` 的有效单 Solid 和 28 条原生 history。
- 下游使用真实 `BRepPrimAPI_MakePrism+BRepAlgoAPI_Cut` 双输入 builder以贯穿 Profile 对 Pipe 结果执行减料。
- `5 -> 4 -> 5` 深度轨迹使体积在 `60 -> 66 -> 60` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid、6 Face、包含 98 条原生 history 记录,上游 Pipe naming 证据向下游传播。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定focused ordered-pair gate 已锁定真实 Profile、双输入 builder、深度变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pipe-loft`
`pipe->loft` 已完成 FreeCAD 文档前置拒绝分类:
- 上游使用真实 `BRepOffsetAPI_MakePipe` 双输入 builder以 `2x3` Face section 生成体积 `90` 的有效单 Solid 和 28 条原生 history。
- OCCT `BRepOffsetAPI_ThruSections` 在 `false -> true -> false` ruled 轨迹中均生成有效 Shape仅记为 `kernel-superset-only` 兼容性诊断,三次结果精确恢复。
- FreeCAD `Part::Loft` 对 Pipe Solid section 返回 `Profile shape is not a single vertex, edge, wire nor face.`,结果 Shape 为空、状态包含 `Invalid`。
- transaction abort 后对象集与 Pipe 源 Shape 完整恢复,干净 FCStd save/reopen/resave 三阶段一致。
- focused ordered-pair gate 已锁定 FreeCAD 决策权、OCCT 超集诊断、精确失败信息、回滚和持久化证据。
### `TSN-PAIR-pipe-pipe`
`pipe->pipe` 已完成 FreeCAD 文档前置拒绝分类:
- 上游使用真实 `BRepOffsetAPI_MakePipe` 双输入 builder以 `2x3` Face section 生成体积 `90` 的有效单 Solid 和 28 条原生 history。
- OCCT 下游 `BRepOffsetAPI_MakePipe` 在 `15 -> 12 -> 15` spine 长度轨迹中均产生无效 Shape`kernel-invalid-result`),三次诊断精确恢复。
- FreeCAD `Part::Sweep` 对 Pipe Solid section 返回 `A fatal error occurred when making the sweep`,结果 Shape 为空、状态包含 `Invalid`。
- transaction abort 后对象集与 Pipe 源 Shape 完整恢复,干净 FCStd save/reopen/resave 三阶段一致。
- focused ordered-pair gate 已锁定 FreeCAD 决策权、OCCT 无效结果诊断、精确失败信息、回滚和持久化证据。
### `TSN-PAIR-pipe-revolution`
`pipe->revolution` 已完成原生拒绝分类:
- 上游使用真实 `BRepOffsetAPI_MakePipe` 双输入 builder以 `2x3` Face section 生成体积 `90` 的有效单 Solid 和 28 条原生 history。
- OCCT `BRepPrimAPI_MakeRevol` 在 `360 -> 270 -> 360` 角度轨迹中稳定拒绝 Pipe Solid 输入,不产生结果 Shape 或 history。
- FreeCAD `Part::Revolution` 使用同一 Pipe Solid 作 Source返回 `Solids are not Processed`;结果 Shape 为空、状态包含 `Invalid`。
- transaction abort 后对象集与 Pipe 源 Shape 完整恢复,干净 FCStd save/reopen/resave 三阶段一致。
- focused ordered-pair gate 已锁定两阶段 builder、异常传输、精确诊断、回滚和持久化证据。
### `TSN-PAIR-pipe-groove`
`pipe->groove` 已完成原生接受分类:
- 上游使用真实 `BRepOffsetAPI_MakePipe` 双输入 builder以 `2x3` Face section 生成体积 `90` 的有效单 Solid 和 28 条原生 history。
- 下游使用真实 `BRepPrimAPI_MakeRevol+BRepAlgoAPI_Cut` 双输入 builder对 Pipe 结果执行旋转减料。
- `360 -> 180 -> 360` 角度轨迹使体积在 `88.4292037 -> 90 -> 88.4292037` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid、10 Face、包含 40 条原生 history 记录,上游 Pipe naming 证据向下游传播。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定focused ordered-pair gate 已锁定双输入 builder、角度变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pipe-fillet`
`pipe->fillet` 已完成原生接受分类:
- 上游使用真实 `BRepOffsetAPI_MakePipe` 双输入 builder以 `2x3` Face section 生成体积 `90` 的有效单 Solid 和 28 条原生 history。
- 下游使用真实 `BRepFilletAPI_MakeFillet` 单输入 builder对 Pipe 结果的全部原生边执行圆角。
- `0.4 -> 0.6 -> 0.4` 半径轨迹使体积在 `87.3388075 -> 84.1087417 -> 87.3388075` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid、26 Face包含 150 条原生 history 记录,上游 Pipe naming 证据向下游传播。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定focused ordered-pair gate 已锁定原生边选择、半径变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pipe-chamfer`
`pipe->chamfer` 已完成原生接受分类:
- 上游使用真实 `BRepOffsetAPI_MakePipe` 双输入 builder以 `2x3` Face section 生成体积 `90` 的有效单 Solid 和 28 条原生 history。
- 下游使用真实 `BRepFilletAPI_MakeChamfer` 单输入 builder对 Pipe 结果的全部原生边执行倒角。
- `0.4 -> 0.6 -> 0.4` 距离轨迹使体积在 `83.9413333 -> 76.752 -> 83.9413333` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid、26 Face包含 150 条原生 history 记录,上游 Pipe naming 证据向下游传播。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定focused ordered-pair gate 已锁定原生边选择、距离变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pipe-hole`
`pipe->hole` 已完成原生接受分类:
- 上游使用真实 `BRepOffsetAPI_MakePipe` 双输入 builder以 `2x3` Face section 生成体积 `90` 的有效单 Solid 和 28 条原生 history。
- 下游使用真实 `BRepPrimAPI_MakeCylinder+BRepAlgoAPI_Cut` builder在截面中心 `(1, 1.5)` 以贯穿圆柱对 Pipe 结果减料。
- `0.4 -> 0.6 -> 0.4` 半径轨迹使体积在 `82.4601776 -> 73.0353997 -> 82.4601776` 间变化,保持有效单 Solid并精确恢复名义摘要、history 与语义 naming。
- 名义结果为 7 Face包含 23 条原生 history 记录,上游 Pipe naming 证据向下游传播。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定focused ordered-pair gate 已锁定贯穿位置、半径变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pipe-draft`
`pipe->draft` 已完成原生接受分类:
- 上游使用真实 `BRepOffsetAPI_MakePipe` 双输入 builder以 `2x3` Face section 生成体积 `90` 的有效单 Solid 和 28 条原生 history。
- 原生 Face 枚举确认端面索引 `0/5` 被 Draft builder 拒绝,侧面索引 `1/2/3/4` 可接受;下游锁定 `faceIndex: 1`、Z 向中性面和拉伸方向执行真实 `BRepOffsetAPI_DraftAngle`。
- `5 -> 8 -> 5` 角度轨迹使体积在 `70.3150507 -> 58.3783122 -> 70.3150507` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid、6 Face包含 5 条原生 history 记录,上游 Pipe naming 证据向下游传播。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定focused ordered-pair gate 已锁定侧面适用性、角度变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pipe-thickness`
`pipe->thickness` 已完成原生接受分类:
- 上游使用真实 `BRepOffsetAPI_MakePipe` 双输入 builder以 `2x3` Face section 生成体积 `90` 的有效单 Solid 和 28 条原生 history。
- 下游使用真实 `BRepOffsetAPI_MakeThickSolid` 单输入 builder对锁定的 Pipe 侧面执行厚壳。
- `-0.4 -> -0.6 -> -0.4` offset 轨迹使体积在 `45.696 -> 63.504 -> 45.696` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid、11 Face包含 38 条原生 history 记录,上游 Pipe naming 证据向下游传播。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定focused ordered-pair gate 已锁定侧面选择、offset 变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pipe-linear-pattern`
`pipe->linear-pattern` 已完成原生接受分类:
- 上游使用真实 `BRepOffsetAPI_MakePipe` 双输入 builder以 `2x3` Face section 生成体积 `90` 的有效单 Solid 和 28 条原生 history。
- 下游使用真实 `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` 单输入 builder针对窄 Pipe 截面锁定交叠平移,避免沿用 Box 的 X=8 参数产生分离结果。
- `1.5 -> 1 -> 1.5` X 平移轨迹使体积在 `157.5 -> 135 -> 157.5` 间变化,名义和编辑态均保持有效单 Solid并精确恢复摘要、history 与语义 naming。
- 名义结果为 14 Face边界覆盖 X=`[0, 3.5]`,包含 66 条原生 history 记录,上游 Pipe naming 证据向下游传播。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定focused ordered-pair gate 已锁定交叠融合、平移变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pipe-polar-pattern`
`pipe->polar-pattern` 已完成原生接受分类:
- 上游使用真实 `BRepOffsetAPI_MakePipe` 双输入 builder以 `2x3` Face section 生成体积 `90` 的有效单 Solid 和 28 条原生 history。
- 下游使用真实 `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` 单输入 builder绕锁定 Z 轴复制并融合 Pipe 结果。
- `30 -> 45 -> 30` 角度轨迹使体积在 `132.3686028 -> 150 -> 132.3686028` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid、12 Face边界覆盖 X=`[-1.5, 2]`、Y=`[0, 3.5980764]`,包含 78 条原生 history 记录。
- 上游 Pipe naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定focused ordered-pair gate 已锁定旋转融合、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pipe-mirrored`
`pipe->mirrored` 已完成原生接受分类:
- 上游使用真实 `BRepOffsetAPI_MakePipe` 双输入 builder以 `2x3` Face section 生成体积 `90` 的有效单 Solid 和 28 条原生 history。
- 下游使用真实 `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` 单输入 builder名义镜像平面锁定为 `x=1`,与 Pipe 截面对称重合,编辑平面为 `x=1.5` 并保持实例交叠。
- `1 -> 1.5 -> 1` 平面轨迹使体积在 `90 -> 135 -> 90` 间变化,恢复态保留名义 1 Solid 和 156 条原生 history并精确恢复语义 naming。
- 编辑态为有效单 Solid、14 Face上游 Pipe naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段 Shape 与 naming 稳定。
- focused ordered-pair gate 已锁定重合名义对照、交叠镜像、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-pipe-multi-transform`
`pipe->multi-transform` 已完成原生接受分类,并闭合 Pipe 起始行全部 19 个有序操作对:
- 上游使用真实 `BRepOffsetAPI_MakePipe` 双输入 builder以 `2x3` Face section 生成体积 `90` 的有效单 Solid 和 28 条原生 history。
- 下游使用 ordered `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` builder先沿 X 平移,再绕 `x=5` 平面镜像;该实例布局原生形成有效 2 Solid 结果,没有伪装为单 Solid。
- `8 -> 7 -> 8` 首步 X 平移轨迹使体积在 `180 -> 270 -> 180` 间变化并精确恢复名义摘要、300 条 history 与语义 naming。
- STEP 导入会同时创建 `Part::Feature`、聚合 `App::Part` 和 Origin 基准对象FCStd harness 已改为只组合有限、有效、含 Solid 的 `Part::Feature`,消除了重复几何和 `1e100` 退化边界。
- FreeCAD FCStd save/reopen/resave 三阶段均保持 2 Solid、12 Face、体积 `180` 与 naming evidence 一致focused gate 已锁定多实体拓扑、导入筛选、变异、恢复和持久化证据。
### `TSN-PAIR-revolution-fuse`
`revolution->fuse` 已完成原生接受分类,并验证新的 Revolution 上游基线:
- 上游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakeRevol` 单输入 builder绕锁定 Y 轴生成体积 `75.3982237` 的有效单 Solid、4 Face 和 23 条原生 history。
- 下游使用真实 `BRepAlgoAPI_Fuse` 双输入 builder工具与 Revolution 结果保持体积交叠。
- `0 -> 0.5 -> 0` 工具 X 偏移轨迹使体积在 `188.0229122 -> 192.1067282 -> 188.0229122` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义下游结果为有效 1 Solid、11 Face包含 45 条原生 history 记录,上游 Revolution naming 证据向下游传播。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定focused ordered-pair gate 已锁定 Face Profile、旋转轴、融合变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-revolution-cut`
`revolution->cut` 已完成原生接受分类:
- 上游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakeRevol` 单输入 builder生成体积 `75.3982237` 的有效单 Solid和 23 条原生 history。
- 下游使用真实 `BRepAlgoAPI_Cut` 双输入 builder`4 -> 3 -> 4` 工具尺寸轨迹覆盖同一正象限、摘要不变,未被采用。
- 最终使用小型交叠工具的 `0 -> 0.5 -> 0` X 偏移轨迹,使体积在 `68.3585388 -> 70.3585388 -> 68.3585388` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid、8 Face包含 75 条原生 history 记录,上游 Revolution naming 证据向下游传播。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定focused gate 已锁定弱轨迹拒绝、偏移变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-revolution-common`
`revolution->common` 已完成原生接受分类:
- 上游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakeRevol` 单输入 builder生成体积 `75.3982237` 的有效单 Solid和 23 条原生 history。
- 下游使用真实 `BRepAlgoAPI_Common` 双输入 builder以贯穿正象限的工具和 Revolution 结果求交。
- `0 -> 0.5 -> 0` 工具 X 偏移轨迹使交集体积在 `12.3753114 -> 8.2914955 -> 12.3753114` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid、5 Face包含 100 条原生 history 记录,上游 Revolution naming 证据向下游传播。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定focused gate 已锁定交叠工具、偏移变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-revolution-rotate`
`revolution->rotate` 已完成原生接受分类:
- 上游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakeRevol` 单输入 builder生成体积 `75.3982237` 的有效单 Solid、4 Face 和 23 条原生 history。
- 下游使用真实 `BRepBuilderAPI_Transform` 单输入 builder绕锁定 Z 轴旋转 Revolution 结果。
- `15 -> 22.5 -> 15` 角度轨迹保持体积 `75.3982237`改变边界并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid、4 Face包含 40 条原生 history 记录,上游 Revolution naming 证据向下游传播。
- FreeCAD FCStd save/reopen/resave 三阶段 Shape 与 naming evidence 稳定focused gate 已锁定旋转变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-revolution-pad`
`revolution->pad` 已完成原生拒绝分类:
- 上游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakeRevol` 单输入 builder生成体积 `75.3982237` 的有效单 Solid和 23 条原生 history。
- 下游 `BRepPrimAPI_MakePrism` 在 `5 -> 7.5 -> 5` 长度轨迹中稳定拒绝 Revolution Solid 输入,三次均不产生 Shape、history 或 naming。
- FreeCAD `PartDesign::Pad` 使用同一 Revolution Solid 作 Profile返回 `FeatureExtrusion: Length: Could not extrude the sketch!`,结果 Shape 为空、状态包含 `Touched/Invalid`。
- transaction abort 后对象集与 Revolution 源 Shape 完整恢复,干净 FCStd save/reopen/resave 三阶段一致且文档无污染。
- focused ordered-pair gate 已锁定两阶段 builder、异常传输、精确诊断、回滚和持久化证据。
### `TSN-PAIR-revolution-pocket`
`revolution->pocket` 已完成原生接受分类:
- 上游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakeRevol` 单输入 builder生成体积 `75.3982237` 的有效单 Solid 和 23 条原生 history。
- 下游使用真实 `BRepPrimAPI_MakePrism+BRepAlgoAPI_Cut` 双输入 builder以同一截面 Profile 沿 Z 方向执行部分减料。
- `2 -> 1 -> 2` 深度轨迹使体积在 `64.8386964 -> 69.5677847 -> 64.8386964` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid、7 Face包含 104 条原生 history 记录,上游 Revolution naming 证据向下游传播。
- FreeCAD FCStd save/reopen/resave 三阶段的 Shape 与 naming evidence 稳定focused gate 已锁定部分深度、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-revolution-loft`
`revolution->loft` 已完成 FreeCAD 文档前置拒绝分类:
- 上游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakeRevol` 单输入 builder生成体积 `75.3982237` 的有效单 Solid 和 23 条原生 history。
- OCCT `BRepOffsetAPI_ThruSections` 在 `false -> true -> false` ruled 轨迹中均产生 `isValid:false`、负体积的 `kernel-invalid-result`,三次诊断精确恢复。
- FreeCAD `Part::Loft` 对 Revolution Solid section 返回 `Profile shape is not a single vertex, edge, wire nor face.`,结果 Shape 为空、状态包含 `Touched/Invalid`。
- transaction abort 后对象集与 Revolution 源 Shape 完整恢复,干净 FCStd save/reopen/resave 三阶段一致。
- focused gate 已锁定 FreeCAD 决策权、OCCT 无效结果、精确失败信息、回滚和持久化证据。
### `TSN-PAIR-revolution-pipe`
`revolution->pipe` 已完成原生 builder 拒绝分类:
- 上游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakeRevol` 单输入 builder生成体积 `75.3982237` 的有效单 Solid 和 23 条原生 history。
- OCCT `BRepOffsetAPI_MakePipe` 在 `15 -> 12 -> 15` spine 长度轨迹中均于 builder 阶段抛出稳定 Emscripten C++ 异常,不产生 Shape、history 或 naming。
- FreeCAD `Part::Sweep` 对同一 Revolution Solid section 返回 `A fatal error occurred when making the sweep`,结果 Shape 为空、状态包含 `Touched/Invalid`。
- transaction abort 后对象集与 Revolution 源 Shape 完整恢复,干净 FCStd save/reopen/resave 三阶段一致。
- focused gate 已锁定异常阶段、输入数、精确失败信息、回滚和持久化证据。
### `TSN-PAIR-revolution-revolution`
`revolution->revolution` 已完成原生 builder 拒绝分类:
- 上游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakeRevol` 单输入 builder生成体积 `75.3982237` 的有效单 Solid、4 Face 和 23 条原生 history。
- 下游再次使用 `BRepPrimAPI_MakeRevol`,对 Revolution Solid 在 `360 -> 270 -> 360` 角度轨迹中稳定于 builder 阶段抛出 Emscripten C++ 异常;三次均不产生 Shape、history 或 naming。
- FreeCAD `Part::Revolution` 使用同一 Revolution Solid 作为 Source返回 `Solids are not Processed`,结果 Shape 为空、状态包含 `Touched/Invalid`。
- transaction abort 后对象集与 Revolution 源 Shape 完整恢复,源 Shape 体积、拓扑和 BREP 哈希保持一致;干净 FCStd save/reopen/resave 三阶段一致且文档无污染。
- focused ordered-pair gate 已锁定两阶段 Revolution builder、异常传输、精确诊断、回滚和持久化证据。
### `TSN-PAIR-revolution-groove`
`revolution->groove` 已完成原生接受分类:
- 上游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakeRevol` 单输入 builder生成体积 `75.3982237` 的有效单 Solid、4 Face 和 23 条原生 history。
- 下游使用真实 `BRepPrimAPI_MakeRevol+BRepAlgoAPI_Cut` 双输入 builder对 Revolution 结果执行旋转减料;名义结果为有效 1 Solid、10 Face、体积 `71.0943912`,包含 43 条原生 history。
- `360 -> 180 -> 360` 角度轨迹使体积在 `71.0943912 -> 73.2463075 -> 71.0943912` 间变化并精确恢复名义摘要、history 与语义 naming。
- 上游 Revolution naming 证据向下游传播恢复态语义摘要与名义态一致FreeCAD FCStd save/reopen/resave 三阶段 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 Revolution/Groove builder、角度变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-revolution-fillet`
`revolution->fillet` 已完成原生接受分类:
- 上游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakeRevol` 单输入 builder生成体积 `75.3982237` 的有效单 Solid、4 Face 和 23 条原生 history。
- 下游使用真实 `BRepFilletAPI_MakeFillet` 单输入 builder对 Revolution 结果的原生边执行全边圆角;名义结果为有效 1 Solid、8 Face、体积 `73.6722933`,包含 48 条原生 history。
- `0.4 -> 0.6 -> 0.4` 半径轨迹使体积在 `73.6722933 -> 71.5148803 -> 73.6722933` 间变化并精确恢复名义摘要、history 与语义 naming。
- 上游 Revolution naming 证据向下游传播恢复态语义摘要与名义态一致FreeCAD FCStd save/reopen/resave 三阶段 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 Revolution/Fillet builder、原生边选择、半径变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-revolution-chamfer`
`revolution->chamfer` 已完成原生接受分类:
- 上游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakeRevol` 单输入 builder生成体积 `75.3982237` 的有效单 Solid、4 Face 和 23 条原生 history。
- 下游使用真实 `BRepFilletAPI_MakeChamfer` 单输入 builder对 Revolution 结果的原生边执行全边倒角;名义结果为有效 1 Solid、8 Face、体积 `71.3769851`,包含 48 条原生 history。
- `0.4 -> 0.6 -> 0.4` 距离轨迹使体积在 `71.3769851 -> 66.3504368 -> 71.3769851` 间变化并精确恢复名义摘要、history 与语义 naming。
- 上游 Revolution naming 证据向下游传播恢复态语义摘要与名义态一致FreeCAD FCStd save/reopen/resave 三阶段 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 Revolution/Chamfer builder、原生边选择、距离变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-revolution-hole`
`revolution->hole` 已完成原生接受分类:
- 上游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakeRevol` 单输入 builder生成体积 `75.3982237` 的有效单 Solid、4 Face 和 23 条原生 history。
- 下游使用真实 `BRepPrimAPI_MakeCylinder+BRepAlgoAPI_Cut` builder在锁定位置 `[0, 1.5, 0]`、方向 `+Z` 和深度 `0.1` 的局部圆柱刀具上执行减料;名义结果为有效 1 Solid、8 Face、体积 `75.3729574`,包含 19 条原生 history。
- `0.4 -> 0.6 -> 0.4` 半径轨迹使体积在 `75.3729574 -> 75.3414747 -> 75.3729574` 间变化并精确恢复名义摘要、history 与语义 naming。
- 上游 Revolution naming 证据向下游传播恢复态语义摘要与名义态一致FreeCAD FCStd save/reopen/resave 三阶段 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 Revolution/Hole builder、局部圆柱刀具、半径变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-revolution-draft`
`revolution->draft` 已完成原生接受分类:
- 上游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakeRevol` 单输入 builder生成体积 `75.3982237` 的有效单 Solid、4 Face 和 23 条原生 history。
- 下游使用真实 `BRepOffsetAPI_DraftAngle` 单输入 builder对锁定原生 Face、中性面和 +Z 拉伸方向执行拔模;名义结果为有效 1 Solid、4 Face、体积 `75.3982238`,包含 3 条原生 history。
- `5 -> 8 -> 5` 角度轨迹使 Y 方向边界在 `-0.3154312 -> -0.5067054 -> -0.3154312` 间变化并精确恢复名义摘要、history 与语义 naming。
- 上游 Revolution naming 证据向下游传播,下游获得无歧义 `native-evidence` namingFreeCAD FCStd save/reopen/resave 三阶段 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 Revolution/DraftAngle builder、原生 Face 选择、角度变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-revolution-thickness`
`revolution->thickness` 已完成原生接受分类:
- 上游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakeRevol` 单输入 builder生成体积 `75.3982237` 的有效单 Solid、4 Face 和 23 条原生 history。
- 下游使用真实 `BRepOffsetAPI_MakeThickSolid` 单输入 builder对锁定原生 Face 执行厚壳;名义结果为有效 1 Solid、8 Face、体积 `26.7412367`,包含 39 条原生 history。
- `-0.4 -> -0.6 -> -0.4` offset 轨迹使体积在 `26.7412367 -> 38.9808816 -> 26.7412367` 间变化并精确恢复名义摘要、history 与语义 naming。
- 上游 Revolution naming 证据向下游传播恢复态语义摘要与名义态一致FreeCAD FCStd save/reopen/resave 三阶段 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 Revolution/Thickness builder、原生 Face 选择、offset 变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-revolution-linear-pattern`
`revolution->linear-pattern` 已完成原生接受分类:
- 上游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakeRevol` 单输入 builder生成体积 `75.3982237` 的有效单 Solid、4 Face 和 23 条原生 history。
- 下游使用真实 `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` builder将 Revolution 结果沿 X 方向复制并融合;专用 `4 -> 3 -> 4` 平移轨迹确保所有状态保持单 Solid。
- 平移轨迹使体积在 `132.2115549 -> 126.3867082 -> 132.2115549` 间变化并精确恢复名义摘要、history 与语义 naming名义结果为 12 Face包含 53 条原生 history。
- 上游 Revolution naming 证据向下游传播恢复态语义摘要与名义态一致FreeCAD FCStd save/reopen/resave 三阶段 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 Revolution/LinearPattern builder、单 Solid 约束、平移变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-revolution-polar-pattern`
`revolution->polar-pattern` 已完成原生接受分类:
- 上游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakeRevol` 单输入 builder生成体积 `75.3982237` 的有效单 Solid、4 Face 和 23 条原生 history。
- 默认 `30°` 轨迹触发原生 WASM 越界中止,未被误记为接受;改用保持实例相交且稳定的 `10 -> 15 -> 10` 专用角度轨迹。
- 下游使用真实 `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` builder将旋转实例融合为单 Solid角度轨迹使体积在 `87.2727929 -> 92.4535717 -> 87.2727929` 间变化并精确恢复名义摘要、history 与语义 naming。
- 名义结果为有效 1 Solid、14 Face包含 70 条原生 history上游 Revolution naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定专用角度轨迹、单 Solid 约束、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-revolution-mirrored`
`revolution->mirrored` 已完成原生接受分类:
- 上游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakeRevol` 单输入 builder生成体积 `75.3982237` 的有效单 Solid、4 Face 和 23 条原生 history。
- 下游使用真实 `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` builder将 Revolution 结果关于 X=`0` 镜像并融合为单 Solid专用 `0 -> 0.5 -> 0` 平面轨迹避免默认分离实例。
- 平面轨迹使体积在 `120.1447575 -> 126.3867082 -> 120.1447575` 间变化并精确恢复名义摘要、history 与语义 naming名义结果为 14 Face包含 92 条原生 history。
- 上游 Revolution naming 证据向下游传播恢复态语义摘要与名义态一致FreeCAD FCStd save/reopen/resave 三阶段 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定专用镜像平面、单 Solid 约束、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-revolution-multi-transform`
`revolution->multi-transform` 已完成原生接受分类:
- 上游使用真实 `2x3` Face Profile 和 `BRepPrimAPI_MakeRevol` 单输入 builder生成体积 `75.3982237` 的有效单 Solid、4 Face 和 23 条原生 history。
- 下游使用 ordered `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` builder锁定镜像平面 `X=0`,按平移和镜像顺序生成并融合四个实例;名义结果为有效 1 Solid、48 Face、体积 `190.7882692`,包含 313 条原生 history。
- `4 -> 3 -> 4` 平移轨迹使体积在 `190.7882692 -> 155.9773894 -> 190.7882692` 间变化并精确恢复名义摘要、history 与语义 naming。
- 上游 Revolution naming 证据向下游传播恢复态语义摘要与名义态一致FreeCAD FCStd save/reopen/resave 三阶段 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定 ordered builder、镜像平面、单 Solid 约束、平移变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-groove-fuse`
`groove->fuse` 已完成原生接受分类:
- 上游使用真实 `BRepPrimAPI_MakeRevol+BRepAlgoAPI_Cut` 双输入 builder对 10x10 Box 执行旋转减料,生成体积 `995.287611` 的有效单 Solid、10 Face 和 18 条原生 history。
- 下游使用真实 `BRepAlgoAPI_Fuse` 双输入 builder专用 `8 -> 7 -> 8` 工具 X 偏移轨迹保持实体交叠并融合为单 Solid。
- 轨迹使体积在 `1070.287611 -> 1045.287611 -> 1070.287611` 间变化并精确恢复名义摘要、history 与语义 naming名义结果为 17 Face包含 52 条原生 history。
- 上游 Groove naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 Groove/Fuse builder、专用交叠轨迹、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-groove-cut`
`groove->cut` 已完成原生接受分类:
- 上游使用真实 `BRepPrimAPI_MakeRevol+BRepAlgoAPI_Cut` 双输入 builder对 10x10 Box 执行旋转减料,生成体积 `995.287611` 的有效单 Solid、10 Face 和 18 条原生 history。
- 下游使用真实 `BRepAlgoAPI_Cut` 双输入 builder对 Groove 结果继续执行减料;名义结果为有效 1 Solid、14 Face、体积 `931.287611`,包含 22 条原生 history。
- `4 -> 3 -> 4` 工具尺寸轨迹使体积在 `931.287611 -> 968.287611 -> 931.287611` 间变化并精确恢复名义摘要、history 与语义 naming。
- 上游 Groove naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 Groove/Cut builder、工具变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-groove-common`
`groove->common` 已完成原生接受分类:
- 上游使用真实 `BRepPrimAPI_MakeRevol+BRepAlgoAPI_Cut` 双输入 builder对 10x10 Box 执行旋转减料,生成有效 1 Solid、体积 `995.287611`、10 Face 和 18 条原生 history。
- 下游使用真实 `BRepAlgoAPI_Common` 双输入 builder与 Groove 结果及交叠工具执行布尔交集;名义结果为有效 1 Solid、6 Face、体积 `75`,包含 197 条原生 history。
- `7 -> 6 -> 7` 工具 X 偏移轨迹使体积在 `75 -> 100 -> 75` 间变化并精确恢复名义摘要、history 与语义 naming。
- 上游 Groove naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 Groove/Common builder、交叠轨迹、变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-groove-rotate`
`groove->rotate` 已完成原生接受分类:
- 上游使用真实 `BRepPrimAPI_MakeRevol+BRepAlgoAPI_Cut` 双输入 builder对 10x10 Box 执行旋转减料,生成有效 1 Solid、体积 `995.287611`、10 Face 和 18 条原生 history。
- 下游使用真实 `BRepBuilderAPI_Transform` 单输入 builder对 Groove 结果绕 Z 轴旋转;名义结果保持有效 1 Solid、10 Face、体积 `995.287611`,包含 154 条原生 history。
- `15 -> 22.5 -> 15` 角度轨迹改变包围盒(名义 `[-2.5881906, -1e-7, -1e-7, 9.6592584, 12.2474488, 10.0000001]`,编辑态 `[-3.8268344, -1e-7, -1e-7, 9.2387954, 13.0656297, 10.0000001]`并精确恢复名义摘要、history 与语义 naming。
- 上游 Groove naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 Groove/Transform builder、角度变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-groove-pad`
`groove->pad` 已完成原生拒绝分类:
- 上游使用真实 `BRepPrimAPI_MakeRevol+BRepAlgoAPI_Cut` 双输入 builder对 10x10 Box 执行旋转减料,生成有效 1 Solid、体积 `995.287611`、10 Face 和 18 条原生 history。
- OCCT `BRepPrimAPI_MakePrism` 对 Groove Solid 在 `5 -> 7.5 -> 5` 长度轨迹中稳定于 builder 阶段拒绝,三次均不产生结果 Shape 或 history。
- FreeCAD `PartDesign::Pad` 使用同一 Groove Solid 作为 Profile返回 `FeatureExtrusion: Length: Could not extrude the sketch!`,结果 Shape 为空且状态含 `Invalid`;未伪造下游命名或变异证据。
- transaction abort 后对象集、源 Shape 和 BREP 哈希精确恢复;干净 FCStd save/reopen/resave 三阶段一致focused gate 已锁定拒绝阶段、诊断、回滚和持久化证据。
### `TSN-PAIR-groove-pocket`
`groove->pocket` 已完成原生接受分类:
- 上游使用真实 `BRepPrimAPI_MakeRevol+BRepAlgoAPI_Cut` 双输入 builder对 10x10 Box 执行旋转减料,生成有效 1 Solid、体积 `995.287611`、10 Face 和 18 条原生 history。
- 下游使用真实 `BRepPrimAPI_MakePrism+BRepAlgoAPI_Cut` 双输入 builder对 Groove 结果执行减料拉伸;名义结果为有效 1 Solid、13 Face、体积 `966.8584073`,包含 91 条原生 history。
- `5 -> 4 -> 5` 深度轨迹使体积在 `966.8584073 -> 972.8584073 -> 966.8584073` 间变化并精确恢复名义摘要、history 与语义 naming。
- 上游 Groove naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 Groove/Pocket builder、深度变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-groove-loft`
`groove->loft` 已完成原生拒绝分类:
- 上游使用真实 `BRepPrimAPI_MakeRevol+BRepAlgoAPI_Cut` 双输入 builder对 10x10 Box 执行旋转减料,生成有效 1 Solid、体积 `995.287611`、10 Face 和 18 条原生 history。
- OCCT `BRepOffsetAPI_ThruSections` 在 `false -> true -> false` ruled 轨迹中生成有效 Shape 和 24 条 history但该结果仅作为 `kernel-superset-only` 诊断,不提升 FreeCAD 能力。
- FreeCAD `Part::Loft` 对 Groove Solid section 返回 `Profile shape is not a single vertex, edge, wire nor face.`,结果 Shape 为空且状态含 `Invalid`;未伪造下游命名或接受变异证据。
- transaction abort 后对象集、源 Shape 和 BREP 哈希精确恢复;干净 FCStd save/reopen/resave 三阶段一致focused gate 已锁定 FreeCAD 决策权、kernel 诊断、回滚和持久化证据。
### `TSN-PAIR-groove-pipe`
`groove->pipe` 已完成原生拒绝分类:
- 上游使用真实 `BRepPrimAPI_MakeRevol+BRepAlgoAPI_Cut` 双输入 builder对 10x10 Box 执行旋转减料,生成有效 1 Solid、体积 `995.287611`、10 Face 和 18 条原生 history。
- OCCT `BRepOffsetAPI_MakePipe` 在 `15 -> 12 -> 15` spine 长度轨迹中均产生无效结果,仅记为 `kernel-invalid-result`,不伪造接受 Shape/history。
- FreeCAD `Part::Sweep` 对 Groove Solid section 返回 `A fatal error occurred when making the sweep`,结果 Shape 为空且状态含 `Invalid`。
- transaction abort 后对象集、源 Shape 和 BREP 哈希精确恢复;干净 FCStd save/reopen/resave 三阶段一致focused gate 已锁定 FreeCAD 决策权、kernel 无效诊断、回滚和持久化证据。
### `TSN-PAIR-groove-revolution`
`groove->revolution` 已完成原生拒绝分类:
- 上游使用真实 `BRepPrimAPI_MakeRevol+BRepAlgoAPI_Cut` 双输入 builder对 10x10 Box 执行旋转减料,生成有效 1 Solid、体积 `995.287611`、10 Face 和 18 条原生 history。
- OCCT `BRepPrimAPI_MakeRevol` 对 Groove Solid 在 `360 -> 270 -> 360` 角度轨迹中稳定于 builder 阶段拒绝,三次均不产生结果 Shape 或 history。
- FreeCAD `Part::Revolution` 使用同一 Groove Solid 作为 Source返回 `Solids are not Processed`,结果 Shape 为空且状态含 `Invalid`;未伪造下游命名或变异证据。
- transaction abort 后对象集、源 Shape 和 BREP 哈希精确恢复;干净 FCStd save/reopen/resave 三阶段一致focused gate 已锁定拒绝阶段、诊断、回滚和持久化证据。
### `TSN-PAIR-groove-groove`
`groove->groove` 已完成原生接受分类:
- 上游使用真实 `BRepPrimAPI_MakeRevol+BRepAlgoAPI_Cut` 双输入 builder对 10x10 Box 执行旋转减料,生成有效 1 Solid、体积 `995.287611`、10 Face 和 18 条原生 history。
- 下游再次使用真实 `BRepPrimAPI_MakeRevol+BRepAlgoAPI_Cut` 双输入 builder并将第二阶段 profile 真实放置在 `profileX=2` 以切削不同半径区域;名义结果为有效 1 Solid、14 Face、体积 `983.5066386`,包含 18 条原生 history。
- `360 -> 180 -> 360` 角度轨迹改变拓扑(编辑态 11 Face、28 Edge并精确恢复名义摘要、history 与语义 naming未采用同 profile 的 no-op 轨迹。
- 上游 Groove naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段 Shape 与 naming evidence 稳定。
- focused ordered-pair gate 已锁定两阶段 Groove/Groove builder、专用 profile、角度变异、恢复、history、naming 和持久化证据。
### `TSN-PAIR-groove-fillet`
`groove->fillet` 已完成原生拒绝分类:
- 上游使用真实 `BRepPrimAPI_MakeRevol+BRepAlgoAPI_Cut` 双输入 builder对 10x10 Box 执行旋转减料,生成有效 1 Solid、体积 `995.287611`、10 Face、24 Edge 和 18 条原生 history。
- 下游按 native contract 使用 `BRepFilletAPI_MakeFillet` 对全部 24 条源边执行圆角;`0.4 -> 0.6 -> 0.4` 半径轨迹三次均稳定在 OCCT builder 阶段以 Emscripten C++ 异常拒绝,没有产生 Shape、history 或下游 naming。
- FreeCAD 1.1.1 `Part::Fillet` 对同一 Groove Solid 和全部源边返回 `BRep_API: command not done`;结果 Shape 为空、状态包含 `Invalid`,与 OCCT 拒绝结论一致。
- transaction abort 后对象集、源 Shape 和 BREP 哈希精确恢复;干净 FCStd save/reopen/resave 三阶段一致focused gate 已锁定拒绝阶段、异常传输、精确诊断、回滚和持久化证据。
### `TSN-PAIR-groove-chamfer`
`groove->chamfer` 已完成原生拒绝分类:
- 上游使用真实 `BRepPrimAPI_MakeRevol+BRepAlgoAPI_Cut` 双输入 builder生成有效 1 Solid、体积 `995.287611`、10 Face、24 Edge 和 18 条原生 history。
- 下游按 native contract 使用 `BRepFilletAPI_MakeChamfer` 对全部 24 条源边执行对称倒角;`0.4 -> 0.6 -> 0.4` 距离轨迹稳定触发原生 WASM `memory access out of bounds`,三次均不产生 Shape、history 或下游 naming。
- FreeCAD 1.1.1 `Part::Chamfer` 对同一 Groove Solid 和全部源边返回 `BRep_API: command not done`;结果 Shape 为空且状态包含 `Invalid`。
- transaction abort 后对象集、源 Shape 和 BREP 哈希精确恢复;干净 FCStd save/reopen/resave 三阶段一致focused gate 已锁定 WASM 崩溃签名、FreeCAD 精确诊断、回滚和持久化证据。
### `TSN-PAIR-groove-hole`
`groove->hole` 已完成原生接受分类:
- 上游使用真实 `BRepPrimAPI_MakeRevol+BRepAlgoAPI_Cut` 双输入 builder生成有效 1 Solid、体积 `995.287611`、10 Face 和 18 条原生 history。
- 下游使用真实 `BRepPrimAPI_MakeCylinder+BRepAlgoAPI_Cut` builder在 Groove 结果中心执行贯穿孔;名义结果为有效 1 Solid、11 Face、体积 `963.8716845`,包含 23 条原生 history。
- `1 -> 1.5 -> 1` 半径轨迹使体积在 `963.8716845 -> 924.6017763 -> 963.8716845` 间变化并精确恢复名义摘要、history 与语义 naming。
- 下游获得无歧义 `native-evidence` naming上游 Groove naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段 Shape 与 naming evidence 稳定focused gate 已锁定两阶段 builder、变异、恢复和持久化证据。
### `TSN-PAIR-groove-draft`
`groove->draft` 已完成原生接受分类:
- 上游使用真实 `BRepPrimAPI_MakeRevol+BRepAlgoAPI_Cut` 双输入 builder生成有效 1 Solid、体积 `995.287611`、10 Face 和 18 条原生 history。
- 下游使用真实 `BRepOffsetAPI_DraftAngle` 单输入 builder对锁定的原生 Face、中性面和 +Z 方向执行拔模;名义结果为有效 1 Solid、10 Face、体积 `951.8050786`,包含 9 条原生 history。
- `5 -> 8 -> 5` 角度轨迹使体积在 `951.8050786 -> 925.4360727 -> 951.8050786` 间变化并精确恢复名义摘要、history 与语义 naming。
- 下游 9 条选定 history 均形成无歧义 `native-evidence` namingFreeCAD FCStd save/reopen/resave 三阶段 Shape 与 naming evidence 稳定focused gate 已锁定 Face 选择、方向、变异、恢复和持久化证据。
### `TSN-PAIR-groove-thickness`
`groove->thickness` 已完成原生拒绝分类,并显式保留 Web 原生与 FreeCAD profile 的能力差异:
- 上游使用真实 `BRepPrimAPI_MakeRevol+BRepAlgoAPI_Cut` 双输入 builder生成有效 1 Solid、体积 `995.287611`、10 Face 和 18 条原生 history。
- Web 原生下游使用 `BRepOffsetAPI_MakeThickSolid` 对锁定的第二个 Face 执行厚壳;`-0.4 -> -0.6 -> -0.4` offset 轨迹稳定触发 WASM `memory access out of bounds`,三次均不产生 Shape、history 或下游 naming。
- FreeCAD 1.1.1 `Part::Thickness` 对同一 Groove Solid、`Face2` 和 `Value=-0.4` 生成有效 Shape状态为 `Valid`;该 FreeCAD 接受证据没有被用于伪造 Web 原生接受能力。
- transaction abort 后对象集、源 Shape 和 BREP 哈希精确恢复;干净 FCStd save/reopen/resave 三阶段一致focused gate 已锁定崩溃签名、FreeCAD 接受诊断、回滚和持久化证据。
### `TSN-PAIR-groove-linear-pattern`
`groove->linear-pattern` 已完成原生接受分类:
- 上游使用真实 `BRepPrimAPI_MakeRevol+BRepAlgoAPI_Cut` 双输入 builder生成有效 1 Solid、体积 `995.287611`、10 Face 和 18 条原生 history。
- 下游使用真实 `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` builder沿 X 方向复制并融合 Groove 结果;名义结果为有效 1 Solid、19 Face、体积 `1795.287611`,包含 119 条原生 history。
- `8 -> 9 -> 8` 平移轨迹始终保持单 Solid使体积在 `1795.287611 -> 1894.1260552 -> 1795.287611` 间变化并精确恢复名义摘要、history 与语义 naming。
- 上游 Groove naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段 Shape 与 naming evidence 稳定focused gate 已锁定交叠融合、变异、恢复和持久化证据。
### `TSN-PAIR-groove-polar-pattern`
`groove->polar-pattern` 已完成原生接受分类:
- 上游使用真实 `BRepPrimAPI_MakeRevol+BRepAlgoAPI_Cut` 双输入 builder生成有效 1 Solid、体积 `995.287611`、10 Face 和 18 条原生 history。
- 默认 `30°` 及小角度 `10°/15°` 交叠融合轨迹均触发原生 WASM 越界,未被误记为接受;最终采用稳定且仍具真实拓扑变异的 `90 -> 120 -> 90` 专用轨迹。
- 下游使用真实 `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` builder`90°` 名义态为有效 1 Solid、19 Face、体积 `1990.575222` 和 98 条 history`120°` 编辑态真实变为 2 Solid恢复后摘要、history 与语义 naming 精确复原。
- FreeCAD FCStd save/reopen/resave 三阶段保持名义单 Solid Shape 与 naming evidence 一致focused gate 已锁定专用角度轨迹、真实多实体编辑态、恢复和持久化证据。
### `TSN-PAIR-groove-mirrored`
`groove->mirrored` 已完成原生接受分类:
- 上游使用真实 `BRepPrimAPI_MakeRevol+BRepAlgoAPI_Cut` 双输入 builder生成有效 1 Solid、体积 `995.287611`、10 Face 和 18 条原生 history。
- 下游使用真实 `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` builder关于 `x=5` 的名义镜像让两侧缺口互补融合,得到有效 1 Solid、10 Face、体积 `1000` 和 216 条原生 history。
- `5 -> 6 -> 5` 镜像平面轨迹使体积在 `1000 -> 1190.575222 -> 1000` 间变化,编辑态增至 22 Face并精确恢复名义摘要、history 与语义 naming。
- 上游 Groove naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段 Shape 与 naming evidence 稳定focused gate 已锁定镜像平面、互补融合、变异、恢复和持久化证据。
后续任务必须从机器队列的最新 `nextTask` 继续,不在本文手工维护任务名称。