Files
Web_FreeCAD_Bitbybit/后续工作.txt
wangdequan 27db1a8f93
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: classify chamfer cut pair and expand roadmap
2026-08-16 01:30:04 -04:00

2211 lines
177 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。
详细拆分和依赖关系只在机器队列与执行计划中维护。
## 3A. 全功能对标拆分总表(静态路线图)
本节只定义长期范围、阶段边界和可重复的验收粒度,不记录实时完成数、活动任务名或下一任务名。每个阶段由机器队列展开为“一个原生 artifact、一个聚焦检查器、一个明确退出条件”的微任务队列推进时不得跨越阶段依赖。
### 3A.1 统一工作单元
每一个功能、对象、属性、命令、格式和 UI 状态都按下列最小单元拆解:
| 编号 | 最小任务 | 必须产出 | 单项退出条件 |
| --- | --- | --- | --- |
| U1 | 原生清册 | TypeId/命令名、输入、默认值、适用性、失败前置 | 清册可机器读取,未知项显式登记 |
| U2 | 名义成功 | FreeCAD/OCCT Shape、对象集、属性、诊断、拓扑摘要 | 名义输入重复运行结果稳定 |
| U3 | 边界成功 | 最小值、最大值、空集合、单元素、多元素和单位边界 | 每个边界都有接受或拒绝证据 |
| U4 | 原生拒绝 | 失败阶段、异常/诊断、空或无效 Shape、对象集 | 不以 Web fallback 替代原生拒绝 |
| U5 | 取消与中断 | cancel、abort、超时、Worker 终止时的资源和状态 | 文档、事务、Worker、OPFS 无污染 |
| U6 | 参数变异 | 一次只改一个参数的 before/edit/restore 轨迹 | 编辑改变的字段可解释,恢复逐字段一致 |
| U7 | 历史与命名 | Generated/Modified/Deleted、ElementMap2、MappedNameRef、hash | 无私有 token、无错误绑定、歧义保持歧义 |
| U8 | 持久化 | save、reopen、resave、版本迁移和资源引用 | Shape、属性、命名、对象图无未解释漂移 |
| U9 | Facade | 生产 API、类型校验、错误映射、能力级别 | UI 不直连内核,禁止隐藏 fallback |
| U10 | 浏览器回放 | Worker、OPFS、UI、选择、进度、释放证据 | 真实 Chrome 流程与原生合同一致 |
| U11 | 回归封存 | focused check、变更摘要、哈希、证据索引 | 证据可独立复跑,队列只推进一项 |
### 3A.2 阶段与微里程碑
| 阶段 | 目标 | 细分里程碑(每项可再拆为 U1-U11 | 阶段退出门槛 |
| --- | --- | --- | --- |
| P0 基线与治理 | 固定 FreeCAD/OCCT、证据格式和能力声明 | P0.1 版本/提交锁定P0.2 TypeId/命令/格式清册P0.3 artifact 哈希P0.4 依赖图P0.5 known-gap 账本P0.6 单活动任务门禁 | 基线、生成器、检查器和 exact 声明一致,禁止未登记能力 |
| P1 原生观察层 | 建立所有差异的可重复 oracle | P1.1 空文档状态P1.2 单对象状态P1.3 选择/子形状态P1.4 属性 editor 状态P1.5 事务状态P1.6 失败/取消状态P1.7 GUI 命令状态P1.8 资源与版本信息 | 原生 probe 覆盖清册;未知状态只能进入 pending |
| P2 内核几何 | 对齐 OCCT builder 和拓扑历史 | P2.1 基本几何P2.2 布尔P2.3 变换/阵列P2.4 草图与约束几何P2.5 修复/偏置/抽壳P2.6 曲面/网格P2.7 有效性和容差P2.8 资源释放 | 每个 builder 有成功、边界、失败、恢复和 history 证据 |
| P3 文档与历史 | 对齐 Document/DAG/事务/扩展语义 | P3.1 对象生命周期P3.2 属性类型和 editorP3.3 Link/LinkSubP3.4 recompute 顺序P3.5 dependency cycleP3.6 partial failureP3.7 observer 顺序P3.8 undo/redo/abortP3.9 Extension/FeaturePythonP3.10 多文档/MDI | 对象图、事务事件和失败恢复在 save/reopen 后仍可解释 |
| P4 核心建模工作台 | 对齐 Sketcher、Part、PartDesign | P4.1 草图几何P4.2 约束求解P4.3 草图编辑器P4.4 Part 原语P4.5 布尔/修复/检查P4.6 PartDesign Body/TipP4.7 加料/减料P4.8 旋转/扫掠/放样P4.9 圆角/倒角/孔/拔模/厚度P4.10 阵列/镜像/多变换P4.11 跨特征 mutationP4.12 全有序操作对 | 每项都有 A-I 证据,命名和 FCStd 证据达到 exact gate |
| P5 文件与数据交换 | 对齐原生格式、导入导出和代理边界 | P5.1 FCStd 对象/属性/资源P5.2 BREPP5.3 STEPP5.4 IGESP5.5 STL/OBJ/PLYP5.6 DXF/SVG/PDFP5.7 IFCP5.8 CSV/G-codeP5.9 JT/IDF/OpenSCADP5.10 未知对象保留P5.11 安全解析/大小限制 | 双向 round-trip、损坏/未知输入、编码和资源引用均有明确 exact/compatible/excluded 结果 |
| P6 GUI 与交互 | 对齐 FreeCAD 桌面状态和浏览器交互 | P6.1 Shell/菜单/工具栏P6.2 Workbench 切换P6.3 Tree/Dock/MDIP6.4 Task panelP6.5 Property editorP6.6 对话框验证P6.7 3D 选择/预选P6.8 快捷键/焦点P6.9 报告/状态/进度P6.10 cancel/long taskP6.11 截图/可访问性树P6.12 mobile/responsive | 每个工作台的空文档、成功、失败、取消、恢复流程可真实浏览器回放 |
| P7 工程与专业工作台 | 对齐 Draft、TechDraw、Spreadsheet、Plot、Assembly、BIM、Surface、Mesh、Material | P7.1 Draft snaps/working planeP7.2 TechDraw 页面/视图/标注P7.3 Spreadsheet 公式/别名/样式P7.4 Plot 数据/坐标轴/导出P7.5 Assembly joints/solverP7.6 BIM/IFC/数量P7.7 Surface trim/sew/repairP7.8 Mesh 修复/转换P7.9 Material 继承/外观P7.10 跨工作台引用 | 每个专业对象具有对象图、交互、持久化、导出和失败证据 |
| P8 分析、制造与扩展 | 对齐 FEM、CAM、Robot、Inspection、Points、ReverseEngineering、脚本和 addon | P8.1 FEM 对象/网格/求解/结果P8.2 CAM Path/任务/后处理P8.3 仿真和机床 profileP8.4 Robot 运动学/碰撞/导出P8.5 点云/重建P8.6 测量/偏差/报告P8.7 Python API/macro 沙箱P8.8 addon 签名/权限/回滚P8.9 代理模块显式排除 | 生产授权与浏览器能力分离;不支持项可审计、可解释、不会伪装支持 |
| P9 平台质量 | 完成跨环境和长稳验证 | P9.1 Chrome/Firefox/SafariP9.2 Windows/Linux/macOSP9.3 GPU/软件渲染P9.4 desktop/tablet/mobileP9.5 locale/单位/时区P9.6 屏幕阅读器/键盘P9.7 性能/内存/WorkerP9.8 fuzz/stress/长会话P9.9 崩溃恢复/迁移P9.10 供应链/安全 | 所有支持矩阵无未知差异,预算、漏洞、泄漏、错误绑定均为零 |
| P10 发布与 exact promotion | 形成可签名、可复核的发布物 | P10.1 证据索引P10.2 生成物重建P10.3 SBOM/依赖审计P10.4 签名/验签P10.5 release closureP10.6 回滚演练P10.7 exact capability matrixP10.8 版本公告 | 所有 exact 任务闭合,必要零指标满足,签名产物和回滚包可复现 |
### 3A.3 每个阶段内的执行顺序
阶段内固定按以下细粒度顺序执行,任何一步失败都只登记当前微任务,不跳到下一步:
1. 清册:确认 TypeId、命令入口、默认参数、输入数量、依赖和适用性。
2. 名义态:用真实 FreeCAD/OCCT builder 生成结果,记录 Shape、拓扑、属性、诊断和对象集。
3. 边界态:逐个执行最小值、最大值、空、重复、越界和单位转换;原生拒绝也要记录。
4. 失败态:记录失败阶段、异常类型、精确文本、状态标志、空/无效 Shape 和对象污染。
5. 变异态:只修改一个参数,执行 before/edit/restore检查几何、历史、命名和文档版本。
6. 事务态:覆盖 commit、abort、undo、redo、stale、cycle、cancel、timeout 和 Worker 终止。
7. 持久化态:执行 save/reopen/resave校验对象图、属性、资源、Shape、命名和 hash。
8. Facade 态:通过生产 Facade 重放同一输入,确认错误映射、能力级别和权限边界。
9. 浏览器态:真实 Worker/OPFS/Chrome 回放,检查 UI、选择、进度、释放和离线行为。
10. 封存态:运行 focused check、相关模块 gate、`git diff --check`,生成队列和状态页,确认只推进一个任务。
### 3A.4 里程碑完成判定
- `完成`U1-U11 全部有机器证据,检查器通过,依赖项已完成,队列生成器将该项标记为 completed。
- `兼容`:核心工作流可用,但至少一个 exact 证据类缺失;必须保留缺口、范围和下一步,不得提升 exact 声明。
- `代理`:仅保留数据/显示/导入等有限语义;必须标明不支持的原生行为和安全边界。
- `拒绝`:原生明确拒绝或 no-op记录拒绝权威、诊断、回滚和持久化不视为实现缺陷。
- `阻断`:证据缺失、结果不稳定、存在漂移或安全问题;任务保持 in_progress/pending禁止用文档结论强行关闭。
### 3A.5 依赖与并行规则
- P0/P1 是所有阶段的前置;没有基线和 oracle不接受实现“已完成”。
- P2 的几何/历史证据先于 P3 文档语义P3 先于 P4-P8 的生产工作台。
- P5 格式往返依赖 P3 对象图和 P4/P7/P8 的真实对象;未知对象只能进入显式保留或排除路径。
- P6 浏览器 UI 依赖 Facade 合同,但 UI 回归不能反向修改原生合同。
- P9 只在 P4-P8 的工作流有稳定基线后扩大矩阵;发现漂移时回退到对应功能微任务。
- P10 是最终门禁,不能以“主要功能可用”替代任一 exact 依赖。
- 机器队列维持 `maxInProgress=1`;需要并行调查时也必须先落成独立 artifact不能并行修改同一证据账本。
### 3A.6 每项任务的最小记录模板
```text
范围:一个 TypeId/命令/格式/交互状态或一个有序操作对
输入:原生版本、提交、参数、单位、对象图、资源哈希
原生证据:名义、边界、失败、取消、变异、历史、命名
浏览器证据Facade、Worker、OPFS、UI、选择、进度、释放
持久化证据save/reopen/resave、迁移、未知属性/资源
判定accepted / rejected / no-op / compatible / proxy / blocked
退出条件:可执行检查命令、预期摘要、零指标和回滚要求
变更边界只允许修改该任务的实现、oracle、检查器和报告
```
## 3B. 当前阶段的持续推进规则
当前项目仍处于 TSN 命名/历史与有序操作对闭合阶段,之后才按依赖进入 Property、Document、格式、GUI、专业工作台和平台质量阶段。每次完成一个微任务后必须
1. 从 `config/freecad-active-work-queue.json` 读取新的 `nextTask`,不得从本文、聊天记录或手工列表猜测。
2. 为刚完成任务追加原生、浏览器、持久化和回滚证据;缺一项就保持当前任务未完成。
3. 重新生成队列和状态页,检查只有一个 `in_progress`,并核对连续前缀没有跳号。
4. 按任务风险运行 focused gate达到发布点才运行完整 `./npmw run verify`。
5. 提交前检查 `git diff --check`、JSON/脚本语法、未跟踪文件和生成物哈希;提交后推送云仓库并记录提交。
6. 若原生拒绝、no-op 或代理边界是正确结果,完整保留该分类,不为了增加完成数而改变判定。
## 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 已锁定镜像平面、互补融合、变异、恢复和持久化证据。
### `TSN-PAIR-groove-multi-transform`
`groove->multi-transform` 已完成原生接受分类,并闭合 Groove 起始行的全部 19 个有序操作对:
- 上游使用真实 `BRepPrimAPI_MakeRevol+BRepAlgoAPI_Cut` 双输入 builder生成有效 1 Solid、体积 `995.287611`、10 Face 和 18 条原生 history。
- 下游使用 ordered `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` builder依次执行 X 平移和关于 `x=5` 的镜像并融合;名义结果为有效 1 Solid、24 Face、体积 `2600`,包含 525 条原生 history。
- `8 -> 9 -> 8` 首步 X 平移轨迹使体积在 `2600 -> 2797.6768884 -> 2600` 间变化,编辑态增至 40 Face并精确恢复名义摘要、history 与语义 naming。
- 上游 Groove naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段 Shape 与 naming evidence 稳定focused gate 已锁定 ordered builder、变异、恢复和持久化证据。
### `TSN-PAIR-fillet-fuse`
`fillet->fuse` 已完成原生接受分类:
- 上游使用真实 `BRepFilletAPI_MakeFillet` 单输入 builder对 10x10x10 Box 的全部边执行圆角,生成有效 1 Solid、26 Face、体积 `995.9653557` 和 150 条原生 history。
- 下游使用真实 `BRepAlgoAPI_Fuse` 双输入 builder并以相交工具形成有效 1 Solid名义结果为 33 Face、体积 `1071.3666774`,包含 79 条原生 history。
- `8 -> 7 -> 8` 工具 X 偏移轨迹使体积在 `1071.3666774 -> 1046.4010137 -> 1071.3666774` 间变化并精确恢复名义摘要、history 与语义 naming。
- 上游 Fillet naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段 Shape 与 naming evidence 稳定focused gate 已锁定相交融合、变异、恢复和持久化证据。
### `TSN-PAIR-fillet-cut`
`fillet->cut` 已完成原生接受分类:
- 上游使用真实 `BRepFilletAPI_MakeFillet` 单输入 builder对 10x10x10 Box 的全部边执行圆角,生成有效 1 Solid、26 Face、体积 `995.9653557` 和 150 条原生 history。
- 下游使用真实 `BRepAlgoAPI_Cut` 双输入 builder对 Fillet 结果执行减料;名义结果为有效 1 Solid、31 Face、体积 `932.1027009`,包含 42 条原生 history。
- `4 -> 3 -> 4` 工具尺寸轨迹使体积在 `932.1027009 -> 969.0683646 -> 932.1027009` 间变化并精确恢复名义摘要、history 与语义 naming。
- 上游 Fillet naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段 Shape 与 naming evidence 稳定focused gate 已锁定减料变异、恢复和持久化证据。
### `TSN-PAIR-fillet-common`
`fillet->common` 已完成原生接受分类:
- 上游使用真实 `BRepFilletAPI_MakeFillet` 单输入 builder对 10x10x10 Box 的全部边执行圆角,生成有效 1 Solid、26 Face、体积 `995.9653557` 和 150 条原生 history。
- 下游使用真实 `BRepAlgoAPI_Common` 双输入 builder以相交工具求 Fillet 结果的布尔交集;名义结果为有效 1 Solid、10 Face、体积 `74.5643421`,包含 360 条原生 history。
- `7 -> 6 -> 7` 工具 X 偏移轨迹使体积在 `74.5643421 -> 99.5300058 -> 74.5643421` 间变化并精确恢复名义摘要、history 与语义 naming。
- 上游 Fillet naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段 Shape 与 naming evidence 稳定focused gate 已锁定有体积交集、变异、恢复和持久化证据。
### `TSN-PAIR-fillet-rotate`
`fillet->rotate` 已完成原生接受分类:
- 上游使用真实 `BRepFilletAPI_MakeFillet` 单输入 builder对 10x10x10 Box 的全部边执行圆角,生成有效 1 Solid、26 Face、体积 `995.9653557` 和 150 条原生 history。
- 下游使用真实 `BRepBuilderAPI_Transform` 单输入 builder 绕 Z 轴旋转 Fillet 结果;名义结果保持有效 1 Solid、26 Face 和体积 `995.9653557`,包含 338 条原生 history。
- `15 -> 22.5 -> 15` 角度轨迹改变包围盒(名义 `[-2.4982926, 0.0898978, -1e-7, 9.5693604, 12.1575509, 10.0000001]`,编辑态 `[-3.7042092, 0.1226251, -1e-7, 9.1161702, 12.9430046, 10.0000001]`并精确恢复名义摘要、history 与语义 naming。
- 上游 Fillet naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段 Shape 与 naming evidence 稳定focused gate 已锁定刚体变换、恢复和持久化证据。
### `TSN-PAIR-fillet-pad`
`fillet->pad` 已完成原生拒绝分类:
- 上游使用真实 `BRepFilletAPI_MakeFillet` 单输入 builder对 10x10x10 Box 的全部边执行圆角,生成有效 1 Solid、26 Face、体积 `995.9653557` 和 150 条原生 history。
- OCCT `BRepPrimAPI_MakePrism` 对 Fillet Solid 在 `5 -> 7.5 -> 5` 长度轨迹中稳定于 builder 阶段拒绝,三次均不产生结果 Shape 或 history。
- FreeCAD `PartDesign::Pad` 使用同一 Fillet Solid 作为 Profile返回 `FeatureExtrusion: Length: Could not extrude the sketch!`,结果 Shape 为空且状态含 `Invalid`;未伪造下游 naming 或接受变异证据。
- transaction abort 后对象集、源 Shape 和 BREP 哈希精确恢复;干净 FCStd save/reopen/resave 三阶段一致focused gate 已锁定拒绝阶段、诊断、回滚和持久化证据。
### `TSN-PAIR-fillet-pocket`
`fillet->pocket` 已完成原生接受分类:
- 上游使用真实 `BRepFilletAPI_MakeFillet` 单输入 builder对 10x10x10 Box 的全部边执行圆角,生成有效 1 Solid、26 Face、体积 `995.9653557` 和 150 条原生 history。
- 下游使用真实 `BRepPrimAPI_MakePrism+BRepAlgoAPI_Cut` 双输入 builder对 Fillet 结果执行减料拉伸;名义结果为有效 1 Solid、28 Face、体积 `966.2980048`,包含 100 条原生 history。
- `5 -> 4 -> 5` 深度轨迹使体积在 `966.2980048 -> 972.2636685 -> 966.2980048` 间变化并精确恢复名义摘要、history 与语义 naming。
- 上游 Fillet naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段 Shape 与 naming evidence 稳定focused gate 已锁定减料拉伸、恢复和持久化证据。
### `TSN-PAIR-fillet-loft`
`fillet->loft` 已完成原生拒绝分类:
- 上游使用真实 `BRepFilletAPI_MakeFillet` 单输入 builder对 10x10x10 Box 的全部边执行圆角,生成有效 1 Solid、26 Face、体积 `995.9653557` 和 150 条原生 history。
- OCCT `BRepOffsetAPI_ThruSections` 在 `false -> true -> false` ruled 轨迹中生成有效 1 Solid 和 24 条 history但该结果仅作为 `kernel-superset-only` 诊断,不提升 FreeCAD 能力。
- FreeCAD `Part::Loft` 对 Fillet Solid section 返回 `Profile shape is not a single vertex, edge, wire nor face.`,结果 Shape 为空且状态含 `Invalid`;未伪造下游 naming 或接受变异证据。
- transaction abort 后对象集、源 Shape 和 BREP 哈希精确恢复;干净 FCStd save/reopen/resave 三阶段一致focused gate 已锁定 FreeCAD 决策权、kernel 诊断、回滚和持久化证据。
### `TSN-PAIR-fillet-pipe`
`fillet->pipe` 已完成原生拒绝分类:
- 上游使用真实 `BRepFilletAPI_MakeFillet` 单输入 builder对 10x10x10 Box 的全部边执行圆角,生成有效 1 Solid、26 Face、体积 `995.9653557` 和 150 条原生 history。
- OCCT `BRepOffsetAPI_MakePipe` 在 `15 -> 12 -> 15` spine 长度轨迹中均产生无效零体积 Shape 和 28 条 history仅记为 `kernel-invalid-result`,不伪造接受 Shape。
- FreeCAD `Part::Sweep` 对 Fillet 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-fillet-revolution`
`fillet->revolution` 已完成原生拒绝分类:
- 上游使用真实 `BRepFilletAPI_MakeFillet` 单输入 builder对 10x10x10 Box 的全部边执行圆角,生成有效 1 Solid、26 Face、体积 `995.9653557` 和 150 条原生 history。
- OCCT `BRepPrimAPI_MakeRevol` 对 Fillet Solid 在 `360 -> 270 -> 360` 角度轨迹中稳定于 builder 阶段拒绝,三次均不产生结果 Shape 或 history。
- FreeCAD `Part::Revolution` 使用同一 Fillet Solid 作为 Source返回 `Solids are not Processed`,结果 Shape 为空且状态含 `Invalid`;未伪造下游 naming 或接受变异证据。
- transaction abort 后对象集、源 Shape 和 BREP 哈希精确恢复;干净 FCStd save/reopen/resave 三阶段一致focused gate 已锁定拒绝阶段、精确诊断、回滚和持久化证据。
### `TSN-PAIR-fillet-groove`
`fillet->groove` 已完成原生接受分类:
- 上游使用真实 `BRepFilletAPI_MakeFillet` 单输入 builder对 10x10x10 Box 的全部边执行圆角,生成有效 1 Solid、26 Face、体积 `995.9653557` 和 150 条原生 history。
- 下游使用真实 `BRepPrimAPI_MakeRevol+BRepAlgoAPI_Cut` 双输入 builder 对 Fillet 结果执行旋转减料;名义结果为有效 1 Solid、30 Face、体积 `991.2529668`,包含 18 条原生 history。
- `360 -> 180 -> 360` 角度轨迹使拓扑从 30 Face 变为 27 Face 后恢复并精确恢复名义摘要、history 与语义 naming。
- 上游 Fillet naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段 Shape 与 naming evidence 稳定focused gate 已锁定旋转减料、变异、恢复和持久化证据。
### `TSN-PAIR-fillet-fillet`
`fillet->fillet` 已完成原生拒绝分类:
- 上游使用真实 `BRepFilletAPI_MakeFillet` 单输入 builder对 10x10x10 Box 的全部边执行圆角,生成有效 1 Solid、26 Face、体积 `995.9653557` 和 150 条原生 history。
- 第二个 OCCT `BRepFilletAPI_MakeFillet` 对已圆角 Solid 在 `0.4 -> 0.6 -> 0.4` 半径轨迹中稳定于 builder 阶段拒绝,三次均不产生结果 Shape 或 history。
- FreeCAD `Part::Fillet` 使用同一 Fillet Solid 作为 Base返回 `There are no suitable edges for chamfer or fillet`,结果 Shape 为空且状态含 `Invalid`;未伪造下游 naming 或接受变异证据。
- transaction abort 后对象集、源 Shape 和 BREP 哈希精确恢复;干净 FCStd save/reopen/resave 三阶段一致focused gate 已锁定拒绝阶段、精确诊断、回滚和持久化证据。
### `TSN-PAIR-fillet-chamfer`
`fillet->chamfer` 已完成原生拒绝分类:
- 上游使用真实 `BRepFilletAPI_MakeFillet` 单输入 builder对 10x10x10 Box 的全部边执行圆角,生成有效 1 Solid、26 Face、体积 `995.9653557` 和 150 条原生 history。
- OCCT `BRepFilletAPI_MakeChamfer` 对 Fillet Solid 在 `0.4 -> 0.6 -> 0.4` 距离轨迹中稳定于 builder 阶段拒绝,三次均不产生结果 Shape 或 history。
- FreeCAD `Part::Chamfer` 使用同一 Fillet Solid 作为 Base返回 `There are no suitable edges for chamfer or fillet`,结果 Shape 为空且状态含 `Invalid`;未伪造下游 naming 或接受变异证据。
- transaction abort 后对象集、源 Shape 和 BREP 哈希精确恢复;干净 FCStd save/reopen/resave 三阶段一致focused gate 已锁定拒绝阶段、精确诊断、回滚和持久化证据。
### `TSN-PAIR-fillet-hole`
`fillet->hole` 已完成原生接受分类:
- 上游使用真实 `BRepFilletAPI_MakeFillet` 单输入 builder对 10x10x10 Box 的全部边执行圆角,生成有效 1 Solid、26 Face、体积 `995.9653557` 和 150 条原生 history。
- 下游使用真实 `BRepPrimAPI_MakeCylinder+BRepAlgoAPI_Cut` builder 对 Fillet 结果执行中心贯穿孔;名义结果为有效 1 Solid、27 Face、体积 `964.5494292`,包含 23 条原生 history。
- `1 -> 1.5 -> 1` 半径轨迹使体积在 `964.5494292 -> 925.279521 -> 964.5494292` 间变化并精确恢复名义摘要、history 与语义 naming。
- 下游获得无歧义 `native-evidence` naming上游 Fillet 证据已传播FreeCAD FCStd save/reopen/resave 三阶段 Shape 与 naming evidence 稳定。
### `TSN-PAIR-fillet-draft`
`fillet->draft` 已完成原生拒绝分类:
- 上游使用真实 `BRepFilletAPI_MakeFillet` 单输入 builder对 10x10x10 Box 的全部边执行圆角,生成有效 1 Solid、26 Face、体积 `995.9653557` 和 150 条原生 history。
- 只读原生适用性扫描枚举 Fillet 结果的全部 26 个 Face在锁定的 +Z 拉伸方向与 XY 中性面下均无有效 Draft Shape没有用选面 fallback 伪造接受。
- OCCT `BRepOffsetAPI_DraftAngle` 在 `5 -> 8 -> 5` 角度轨迹中稳定于 builder 阶段拒绝,三次均不产生结果 Shape 或 history。
- FreeCAD `PartDesign::Draft` 通过事务内 Body、DatumPlane、DatumLine 和 `PartDesign::Feature` Base 评估同一 Fillet 几何Base 的有效性、拓扑数、体积、面积和边界摘要精确一致,同时显式记录 FreeCAD 元素映射导致的 BREP 重序列化哈希差异。
- FreeCAD 结果合同为空状态字符串、空 Shape 和 `Touched/Invalid`transaction abort 后 Body 及所有临时对象消失,顶层源 Shape 的 BREP 哈希精确恢复,干净 FCStd save/reopen/resave 三阶段一致。
### `TSN-PAIR-fillet-thickness`
`fillet->thickness` 已完成原生 no-op 拒绝分类:
- 上游使用真实 `BRepFilletAPI_MakeFillet` 单输入 builder对 10x10x10 Box 的全部边执行圆角,生成有效 1 Solid、26 Face、体积 `995.9653557` 和 150 条原生 history。
- 只读原生扫描确认:全部 26 个 Face 在 `-0.4/-0.6` offset 下均返回与输入同摘要的 Shape6 个主面的 `0.4/0.6` 正向 offset 只产生无效 Shape 或 builder 拒绝,没有可用的真实变异轨迹。
- OCCT `BRepOffsetAPI_MakeThickSolid` 在 `-0.4 -> -0.6 -> -0.4` 轨迹中每次均返回有效 Shape 和 1 条 history但有效性、Solid/Face/Edge/Vertex、体积、面积、边界与 history 哈希全部不变,因此被显式分类为 `kernel-no-op`,不冒充接受。
- FreeCAD `Part::Thickness` 对同一 Fillet Solid 和 `Face2` 返回 `Valid/Up-to-date` 且 Shape 非空,但结果 Shape 摘要与输入逐字段相同,因此同样记为 `freecadProfileNoOp`。
- transaction abort 后对象集、源 Shape 和 BREP 哈希精确恢复;干净 FCStd save/reopen/resave 三阶段一致focused gate 已锁定双 no-op、回滚和持久化证据。
### `TSN-PAIR-fillet-linear-pattern`
`fillet->linear-pattern` 已完成原生接受分类:
- 上游使用真实 `BRepFilletAPI_MakeFillet` 单输入 builder对 10x10x10 Box 的全部边执行圆角,生成有效 1 Solid、26 Face、体积 `995.9653557` 和 150 条原生 history。
- 下游使用真实 `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` builder 沿 X 方向复制并融合 Fillet 结果;名义结果为有效 1 Solid、42 Face、体积 `1794.8665943`,包含 266 条原生 history。
- `8 -> 9 -> 8` 平移轨迹使体积在 `1794.8665943 -> 1894.7292492 -> 1794.8665943` 间变化X 上界从 18 变为 19 后恢复并精确恢复名义摘要、history 与语义 naming。
- 上游 Fillet naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段 Shape 与 naming evidence 稳定focused gate 已锁定交叠融合、变异、恢复和持久化证据。
### `TSN-PAIR-fillet-polar-pattern`
`fillet->polar-pattern` 已完成原生接受分类:
- 上游使用真实 `BRepFilletAPI_MakeFillet` 单输入 builder对 10x10x10 Box 的全部边执行圆角,生成有效 1 Solid、26 Face、体积 `995.9653557` 和 150 条原生 history。
- 下游使用真实 `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` builder 绕 Z 轴旋转复制并融合 Fillet 结果30 度名义结果为有效 1 Solid、46 Face、体积 `1417.6209625`,包含 234 条原生 history。
- `30 -> 45 -> 30` 角度轨迹使体积在 `1417.6209625 -> 1580.485276 -> 1417.6209625` 间变化面积和边界也同步变化并精确恢复名义摘要、history 与语义 naming。
- 上游 Fillet naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段 Shape 与 naming evidence 稳定focused gate 已锁定旋转融合、变异、恢复和持久化证据。
### `TSN-PAIR-fillet-multi-transform`
`fillet->multi-transform` 已完成原生接受分类,并闭合 Fillet 起始行中尚需分类的全部有序操作对:
- 上游使用真实 `BRepFilletAPI_MakeFillet` 单输入 builder对 10x10x10 Box 的全部边执行圆角,生成有效 1 Solid、26 Face、体积 `995.9653557` 和 150 条原生 history。
- 下游使用 ordered `BRepBuilderAPI_Transform+BRepAlgoAPI_Fuse` builder依次执行 X 平移、关于 `x=5` 的镜像并融合;名义结果为有效 1 Solid、58 Face、体积 `2593.7678329`,包含 1103 条原生 history。
- `8 -> 9 -> 8` 首步 X 平移轨迹使体积在 `2593.7678329 -> 2793.4931426 -> 2593.7678329` 间变化,边界从 `[-8, 18]` 扩展为 `[-9, 19]` 后恢复并精确恢复名义摘要、history 与语义 naming。
- 上游 Fillet naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段 Shape 与 naming evidence 稳定focused gate 已锁定 ordered builder、变异、恢复和持久化证据。
### `TSN-PAIR-chamfer-fuse`
`chamfer->fuse` 已完成原生接受分类:
- 上游使用真实 `BRepFilletAPI_MakeChamfer` 单输入 builder对 10x10x10 Box 的全部边执行倒角,生成有效 1 Solid、26 Face、体积 `990.7413333` 和 150 条原生 history。
- 下游使用真实 `BRepAlgoAPI_Fuse` 双输入 builder以相交工具融合 Chamfer 结果;名义结果为有效 1 Solid、33 Face、体积 `1066.6586667`,包含 78 条原生 history。
- `8 -> 7 -> 8` 工具 X 偏移轨迹使体积在 `1066.6586667 -> 1041.7386667 -> 1066.6586667` 间变化X 上界从 13 变为 12 后恢复并精确恢复名义摘要、history 与语义 naming。
- 上游 Chamfer naming 证据向下游传播FreeCAD FCStd save/reopen/resave 三阶段 Shape 与 naming evidence 稳定focused gate 已锁定相交融合、变异、恢复和持久化证据。
### `TSN-PAIR-chamfer-cut`
`chamfer->cut` 已完成原生接受分类:
- 上游使用真实 `BRepFilletAPI_MakeChamfer` 单输入 builder对 10x10x10 Box 的全部边执行倒角,生成有效 1 Solid、26 Face、体积 `990.7413333`、面积 `571.4001834` 和 150 条原生 history。
- 下游使用真实 `BRepAlgoAPI_Cut` 双输入 builder名义结果为有效 1 Solid、31 Face、体积 `927.0613333`、面积 `604.1774417` 和 42 条原生 history。
- `4 -> 3 -> 4` 工具尺寸轨迹使体积在 `927.0613333 -> 963.9813333 -> 927.0613333` 间变化编辑态面积同步变化恢复态的几何摘要、history hash 和语义 naming 精确回到名义态。
- 上游 Chamfer naming evidence 向下游传播;下游结果因对称拓扑保持 `ambiguous`,未伪造唯一私有 tokenJSON round-trip 稳定。
- FreeCAD 1.1.1 FCStd save/reopen/resave 三阶段均保持有效 1 Solid、31 Face、63 Edge、34 Vertex、体积 `927.0613333`、面积 `604.1774417` 及 naming evidence hash `fbd3e2b6...` 一致focused ordered-pair gate 已通过。
- 机器队列已自动前移一项;新的活动任务仍以 `config/freecad-active-work-queue.json.nextTask` 为唯一来源。
后续任务必须从机器队列的最新 `nextTask` 继续,不在本文手工维护任务名称。