原生与兼容边界
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、文档工具和标准件参数化。
即使它们不是原生实现,仍然属于公共功能。
剩余内核迁移
两条更丰富的兼容路径仍被明确跟踪:
- 包含完整旧版 N 边约束参数集的孔洞填充。
- 与可选
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++ 时应用代码无需重写。