🎈升级概况

2025年11月22日,OCCT 管理员在Github发布OCC8.0 升级声明,其中详细列举了开发者需要关注的要点。
OCCT 8.0 关键理念:现代化、性能良好、可靠。
OCCT 8.0 关键升级一个明显的特点就是编码风格更靠近现代C++。升级后,先前广泛使用的Handle宏、自定义类型Standard_Real, Standard_Integer、异常类型等将替换为C++标准库风格,明显减少了冗余,编码风格和C++也不会那么割裂。同时,采样 C++17 标准。
此次升级,除了引入TKHelix(详见Open Cascade 8.0.0 新增模块:TKHelix 螺旋线工具)之外,还将引入一个新的建模模块,值得期待。
OCCT 开发团队进行了大量重构,清理架构,移除弃用方法,并使库与现代 C++ 标准保持一致。虽然核心逻辑保持一致——意味着应用可能需要调整而非架构重写——但这次现代化是一个战略举措。它确保 OCCT 长期保持可维护性、安全性和高效性。
🚀主要技术细节
原生 C++ 类型:弃用了自定义类型,如Standard_Real, Standard_Integer,直接使用double, int。这简化了代码并提高了编译器的兼容性;
标准数学库:正弃用 OCCT 专用一些数学封装函数,如Abs, Min, Max,直接使用STL标准库std::abs, std::min, std::max;
命名空间更新:为了简化和现代化,引入短命名空间occ,代替原先的opencascade。
注意:在升级过渡期间,示例代码 Sample中仍然使用命名空间opencascade;
现代风格的handle<>:常用的宏函数 Handle()将不再使用,直接使用模板函数写法:occ::handle<MyClass>。记得OCCT从6.x升级到7.0时,废弃Handle_MyClass写法,并统一使用Handle(MyClass),此次进一步清理,则更靠近现代C++风格。
Handle_Geom_Curve curve = ...; // OCC 6.x
Handdle(Geom_Curve) curve = ...; // OCC 7.x
occ::handle<Geom_Curve> curve = ...; // OCC 8.x
现代风格的容器:逐步淘汰别名,如NCollection, TColStd_SequenceOfReal,鼓励直接使用模板类,如occ::Seq<double>, NCollection_Sequence<double>;
新别名:在命名空间中引入短别名,如NCollection_Sequence<T>替换为occ::Seq<T>;
标准属性:用标准 C++ 属性替换宏,如Standard_NODISCARD替换为 [[nodiscard]][[maybe_unused]];
错误处理:Geom基本函数使用 std::optional作为返回值,减少对无值异常的依赖;
译者说明:
std::optional是一个极其重要的特性,可以更清晰明了的处理无效值、异常等情况。
安全性与速度:广泛使用限定词constexpr, noexcept;
C++17 标准:升级为 C++17,以利用现代语言特性;
整合异常:减少基于派生自Standard_Failure的自定义故障类型数量,并将其整合到集中式结构中。Standard_Failure
🔮路线图和未来构想
OCCT团队目前正在验证8.0.0发布周期的多项重大增强。路线图如下:这些功能处于不同规划和开发阶段:
标准化异常:有针对性地替换,Standard_Failure>>>std::exception;
文档升级:将文档从 Doxygen 迁移到基于 Markdown 的系统,以显著提升可读性和可访问性;
全新“ODE”格式(公告):DataExchange 模块中提出的格式,用于替代遗留的 BRep 格式。ODE(Open Data Exchange)专注于纯拓扑,但具备现代架构、版本控制支持和可扩展性;
新“XDE”格式(公告):通过XDE(扩展数据交换)扩展XCAF支持。该格式侧重于装配和产品结构数据(颜色、图层、材质),采用模块化架构,便于功能添加;关于XDE的一次实践,可参考文章Open CASCADE:模型带颜色导出至 STEP / IGES 文件
译者说明:此举或有助于实现对商软格式全量数据的支持。
🛠️ Light OCC
公告:Light OCCT(测试版)
OCCT开发团队正在积极开发名为Light OCCT的开源包装程序,计划在OCCT 8.0.0发布前进行测试版发布。
Light OCCT旨在通过优先考虑可用性、安全性和性能,降低使用门槛。该包装的主要目标包括:
现代C++接口:减少模板化,并无缝集成现代C++应用
增强安全性:融入内置最佳实践以提升应用可靠性
简化API:直观且用户友好接口,降低了学习曲线
多语言支持:现成的 Python 和 JavaScript/TypeScript 绑定(支持 Web 版)
译者说明:目前越来越多的传统桌面应用正在搬上云端。
随着OCCT 8.0即将发布,敬请关注更多技术深度解析!
1253

被折叠的 条评论
为什么被折叠?



