兼容边界
CadFlow 在一个 Package 中提供多个公共层。“兼容”表示与紧凑原生 Model 前端并存的更广泛函数式和声明式 API,并不默认表示不受支持或已弃用。
分层
| 层 | 常见导入 | 最适合 |
|---|---|---|
| 原生前端 | Model、Shape、Graph、NativeSession | 直接几何、有限批处理、原生 Handle |
| 函数式建模 | make_*、*_rsolid、Query 与 Topology Helper | 现有的完整建模流程 |
| 声明式工作流 | @model、GraphSession、Serialization | Recording、Model JSON、Replay、Semantic State |
| 工程领域 | Assembly、Scene、Flexible、Physical、Simulation | 类型化产品与交接契约 |
| 懒加载命名空间 | cadflow.compat | 不提前导入所有实现即可访问公共兼容清单 |
命名约定
函数式名称经常在 _r 后编码返回领域,例如 make_box_rsolid、inspect_sketch_rsketchresult 或 export_scene_rpath。这使生成计划和自动派发更容易检查;Suffix 是公共名称的一部分,不是 Python 类型转换。
受支持导入
存在顶层导出时优先使用顶层名称。本参考列出的公共模块导入同样受支持。cadflow.compat 会懒加载解析相同的已发布兼容 API。
from cadflow import compat
body = compat.make_box_rsolid(40.0, 25.0, 6.0)
不要从 cadflow._engine 导入。这些路径暴露实现所有权、可选依赖与内部类型,公共 Facade 正是用于隔离这些细节。
混合 API 层
只在文档明确的转换点混合不同层。原生 Shape 与兼容 Solid 具有不同所有权模型;Product Geometry Reference、Recorded Graph Node 与 Scene Resource 也携带领域特定身份。
适配时:
- 确定结果值属于哪个 API 层;
- 保持 Session 或 Graph 所有权;
- 显式转换单位;
- 在目标领域中验证结果;
- 不保留私有实现对象。