跳到主要内容

原生与兼容边界

CadFlow 正在把几何密集型工作迁入原生 C++ Session,同时保留完整公共功能面。兼容测试通过,并不意味着每条几何路径都已经原生化。

当前测量范围

CadFlow 0.1.0 仓库快照记录了:

指标数量
保留的兼容导出329
当前完整包导出414
兼容功能面的公共函数213
建模操作层函数164
原生 Dispatcher 操作36
回归测试1010 个测试,另有 313 个参数化子测试

这些计数是实现证据,不是兼容性承诺。应用应依赖公共 Import 和能力报告,不要根据总数进行分支。

当前原生 C++ 能力

Session 拥有并执行:

  • 长方体、圆柱、球体和圆台基本体;
  • 折线、圆、圆弧、插值样条、螺旋线和精确 B-spline 曲线;
  • 平面 Face、Bezier 曲面、拟合 B-spline 曲面和曲面构造;
  • 拉伸、旋转、放样、扫掠、扭转扫掠、圆角、倒角和抽壳;
  • 精确 Cut、Union 和 Intersection;
  • 平移、旋转、镜像和缩放;
  • 质量属性、包围盒、拓扑、距离、法向、曲率和 Face Pair 指标;
  • 三角化、STEP/BREP/STL 导入、STEP/STL 导出和 GLB 源 Buffer;
  • 通过一次 C ABI 调用执行多操作批处理 Graph。

按设计保留在 Python 的能力

以下内容有意由 Python 负责:

  • 表达式 Graph 和单位系统;
  • Model JSON、严格重放、Scene 归档与 Schema 验证;
  • 产品装配、连接器和约束报告;
  • 材料、物理连接声明和求解器中性接触交接包;
  • 语义标签、来源映射和谱系;
  • Translator、文档工具和标准件参数化。

即使它们不是原生实现,仍然属于公共功能。

剩余内核迁移

两条更丰富的兼容路径仍被明确跟踪:

  1. 包含完整旧版 N 边约束参数集的孔洞填充。
  2. 与可选 ocp_gordon 行为逐字节一致的精确 Gordon 曲线网络插值。

原生 Facade 已提供确定性的曲面填充和 Gordon 构造,但不承诺覆盖旧版每个参数或完全相同的实现细节。

集成规则

依赖公共行为和模块,不依赖实现所在位置:

import cadflow as cad

with cad.Model() as model:
part = model.box(10, 20, 3)

不要导入 cadflow._engine、持有 OCP 对象、检查私有 Shape Handle 或直接加载 libcadflow_core。正是这一边界保证了功能从 Python 迁至 C++ 时应用代码无需重写。