Files
pythonocc-step-editor/Face一级关系专项测试说明.md
T

3.6 KiB

Face 一级关系专项测试说明

这份文档用于模型工程师专项测试当前 Face 阶段能力。当前版本还不能说是完整 CAD 级 Face 参数化,但已经可以围绕 STEP/B-Rep 的一级关系做集中验证。

当前目标

当前阶段只处理 Face 的一级拓扑关系:

  • 当前选中 Face 或同域共面/同圆柱面区域。
  • 当前 Face 边界上的 Edge / Vertex。
  • 与当前 Face 共享边的一级相邻 Face。

二级、三级关系暂不自动递归传播。也就是说,相邻 Face 再连接出去的孔壁、槽底、台阶、其它特征,目前只记录为后续能力目标,不会强行一起修改。

建议重点测试

  1. 简单平面 Face

    • 测试 面积U向尺寸V向尺寸中心偏移曲面
    • 分别测试 局部重建移动特征缩放特征拉伸/切除
    • 简单正方体/长方体应优先通过。
  2. 共面碎面

    • 如果一个大平面被 STEP 拆成多个共面 Face,拉伸/切除 应尽量按同一片平面区域处理。
    • 修改后要观察是否仍是单 Solid,边界是否明显丢失。
  3. 圆柱端盖 / 空心圆柱环形端面

    • 可重点测试 偏移曲面拉伸/切除
    • 简单圆柱上底面、下底面和同轴空心圆柱环形端面应能改变高度。
    • 如果完整圆柱侧面被 STEP 拆成多个同域圆柱 Face,属性表仍应按完整圆柱显示 高度直径/半径,不能误显示成槽/半孔参数。
  4. 默认模型里的 Face 594

    • 当前已补充回归:Face 594 的 偏移曲面(拉伸/切除)57.5 改到 90 应能成功。
    • 该操作会重建目标端盖,旧拓扑 Face ID 可能变成新 Face,例如测试中会定位到新目标面 Face 1805
    • 这是正常现象。判断是否成功应看目标偏移曲面是否达到 90、内边界是否保留、逻辑选中对象是否继续指向修改后的新面,而不是死盯旧 Face ID。
    • 这次修复过一个 UI 回归:属性表显示的方向和按钮执行时的快速计划方向必须一致,不能把 normal 和反向的 oriented_normal 混用。
  5. 壳体厚度

    • 识别到相对平面时,可以测试 壳体厚度
    • 当前有 拉伸/切除缩放特征 两种语义,测试时要区分它们。

暂时不要当作失败的情况

  • 修改后 Face ID 变化:STEP/B-Rep 重建后拓扑编号变化是正常的,应看逻辑 Face 是否跟到新面。
  • 复杂多内孔端盖向内切除被阻止:如果会涉及孔壁、槽底、台阶背后的二级/三级关系,当前版本可能会快速阻止,这是预期保护。
  • 自由曲面、B-spline 面、复杂壳体局部区域不能改:这些暂时不是 Face 一级稳定能力。
  • STEP 原 CAD 历史无法恢复:当前参数是 B-Rep 几何语义,不等于原 CAD 软件里的草图尺寸或建模历史参数。

测试时重点观察

  • 软件是否卡死、闪退、长时间无法关闭。
  • 操作失败后原模型是否保持不变。
  • 修改成功后是否仍是有效 B-Rep,是否保持单 Solid。
  • 当前选中对象是否继续指向被修改后的新 Face。
  • 属性表里的当前值是否能回读到新几何。
  • 失败提示是否能说明原因,而不是只报无效 shape。

当前判断

Face 一级关系可以继续交给模型工程师做专项测试,但还不能宣布完全完成。若简单平面、共面碎面、简单圆柱端盖、Face 594 这类基线场景仍失败,应优先修复;若是二级/三级关系、复杂自由曲面或复杂内孔向内切除,暂时可以记录为后续能力。