Open CASCADE 技术概述

Open CASCADE 技术概述_第1张图片

今天,科学密集型软件市场提出了大量开源产品,这些产品具有经过验证的高质量并因表现出良好的效果而得到广泛认可。在本文中,我们简要概述了 Open CASCADE 技术 (OCCT) 的能力,不会深入细节,仅关注基本平台组件。本概述将使您初步了解该平台及其可能的应用领域。OCCT 为工程软件的开发提供了广泛的功能。此外,该库可在 LGPL 许可下访问,这意味着对其商业用途几乎没有限制。

1.什么是OCCT?

首先,Open CASCADE Technology SDK 是一个几何建模库,或者更简单地说,它是一个几何内核。OCCT 使用 BRep(边界表示)方法来表示 3D 模型。这将库与 A​​CIS、Parasolid、CGM、C3D 和 RGK 等产品一起排名。主要区别在于 OCCT 源代码完全由开发人员处理,这使他相当独立于供应商公司(这是一家准备帮助客户解决不同类型工程问题的服务公司)。

从结构上讲,该库由几个负责各种功能的相互连接的模块组成(图 1)。下面列出了主要的库组件:

基础类:基本的 OCCT 工具包,包括“智能指针”、集合和其他提供图书馆基础设施的工具。

建模:建模本身。

网格:用于 CAD 模型三角剖分的内置工具。通常,此功能用于 3D 可视化。

数据交换:用于不同 CAD 软件之间数据互操作的组件。

可视化:用于 CAD 模型、网格和任意应用程序数据的集成可视化子系统。

应用程序框架 (OCAF):使用 OCCT 进行快速应用程序开发的组件。

Open CASCADE 技术概述_第2张图片

图 1. Open CASCADE 技术的组件。

2.历史背景

该内核由一家同名公司支持和开发:OPEN CASCADE SAS 其前台位于法国。在俄罗斯,该公司在下诺夫哥罗德市设有一个大型能力中心。

从历史上看,OCCT 继承了自 1980 年代初由 Matra Datavision 公司开发的 EUCLID CAD 系统的数学内核。1993 年发布了一个名为 CAS.CADE(Computer Aided Software for Computer Aided Design and Engineering)的平台。它作为开发新一代 EUCLID 的基础,称为 EUCLID QUANTUM 系统,于 1996 年正式发布。然而几年后(1998 年),Matra Datavision 公司改变了商业模式,专注于提供软件服务。

1999 年,Matra Datavision 的管理层做出了一个历史性的决定,即开放 CAS.CADE 库的源代码,当时称为 Open CASCADE。2000 年底,Matra Datavision 创建了一家名为 OPEN CASCADE SAS 的附属公司,以提供基于新几何内核的支持和服务。2003 年 Matra Datavision 被 IBM 公司收购,而 OPEN CASCADE SAS 被另一家法国公司 Principia 收购。您可以在官方公司网站上阅读有关公司历史的更多信息 。

今天

OPEN CASCADE SAS 公司在过去几年中一直在大力推广其 OCCT 内核。这个开源产品发布时间很早,自然有用户社区。现在,任何有兴趣的人都可以在 OCCT 官方错误跟踪器和 GIT 存储库所在的开发人员门户上填写注册表后参与其开发。

造型

正如我们上面提到的,OCCT 平台实现了 3D 对象的边界表示 (BRep)。几何和拓扑的概念是这种表示的基础。因此,几何通常被理解为形状的数学描述,例如贝塞尔曲线和曲面、NURBS 表示等。反过来,拓扑是将几何对象绑定在一起的数据结构。抽象地说,我们可以在数学意义上将 BRep 拓扑和经典拓扑进行类比。众所周知,数学拓扑研究同胚,即没有切割和粘合的变换。从这个角度来看,圆环(左图2)与咖啡杯完全相同(想象力丰富的读者可以在右图2中认出它)。对于 BRep 拓扑也是如此:描述环面和杯子的数据结构可以完全相同。整个区别在于几何形状。

Open CASCADE 技术概述_第3张图片

图 2. Torus 修改而不改变其拓扑结构。相同的拓扑结构可以同样适用于视觉上不同的模型。

从程序员的角度来看,拓扑是表示相邻顶点和相邻面的边的对象图。

Open CASCADE 技术概述_第4张图片

数字。3. 图 2 中“拼凑”圆环的可能拓扑结构。

OCCT 几何和拓扑图元的结构通常对应于 ISO-10303 (STEP) 标准。检查第 42 部分 - “综合通用资源:几何和拓扑表示”非常有用。无论如何,理解 CAD 模型是“拼凑而成”而不是简单对象的想法对于使用 BRep 表示是绝对必要的。BRep 原则是相当标准的,并不是 OCCT 独有的。只有一组使用的拓扑图元从一个内核更改为另一个内核,而诸如面、边和顶点之类的对象始终存在(正是这些对象与几何图元连接,而所有其他对象仅扮演纯粹的结构角色)。

需要注意的是,除了 BRep 之外,CAD 建模的其他表示技术也是已知和实际使用的:多面壳、体素、细胞结构、CSG(构造实体几何)等。 然而,所有这些技术都非常特定于应用程序和仅在有限的任务范围内使用(例如,体素成功地用于并行处理)。

精确的 BRep 模型比离散的模型“更好”,因为它始终可以转换为所需质量的体素和 3D 网格。反向任务(从离散模型中获得精确模型)通常不是微不足道的,并且会带来许多困难。主要的一个事实是几何和拓扑可以以无数种方式重建。这就是为什么 3D 建模任务需要与其实际或设计形式相对应的某种“理想”对象表示。

对于离散模型,其性质通常由特定任务决定。例如,在 CAE 中,现场工程师经常需要观察有限元 (FEA) 形状的一些限制,这些限制可能因求解器而异(例如,流体动力学求解器可能对离散模型的特征敏感在执行结构分析时考虑在内,反之亦然)。

OCCT 几何以标准参数形式定义。众所周知,NURBS 是描述几何形状的最常用方法。除此之外,OCCT 平台还实现了旋转曲面、直纹曲面、曲线、二次曲面等。目前 OCCT 支持整个常用几何集,但 T 样条和细分曲面等技术除外。

Open CASCADE 技术概述_第5张图片

图 4. OCCT 中的 B 样条曲面。

使用拓扑限制修剪和构造几何。可以看出每个人脸的参数域在这个过程中是如何变化的。“参数域”是指 (U, V) 空间,其中定义了感兴趣的面,并辅以参数 2D 曲线(p 曲线)。这些曲线的配置和方向指示如何在面上定义边以及孔的位置。

图 5. 带有内部孔的面的参数域。

在对基本 BRep 原理进行简要概述之后,我们将检查与 CAD 工程领域相关的基本 OCCT 能力。有关可用功能的更多详细信息,请参阅 官方文档 或查看 OCCT 提供的示例应用程序。

从点重建表面

OCCT 支持从一组有序点重建表面几何的工具集。此过程可能涉及全局插值方法(如果结果精度应为零)或具有给定精度的近似方法。

Open CASCADE 技术概述_第6张图片

图 6. NURBS 曲面,从点云重建。

壳(实体)蒙皮

从一组给定的截面重建形状是一项标准的几何建模任务。OCCT 为表面蒙皮和具有端面自动恢复功能的实体重建提供了方法。

Open CASCADE 技术概述_第7张图片

图 7. 由截面构建的模型。

扫描建模

沿着给定的轨迹(脊椎)扫描轮廓允许构建任意形状和截面的管。沿脊柱的轮廓方向由用户定义。

Open CASCADE 技术概述_第8张图片

图 8. 通过扫描圆形轮廓构建的管。

布尔运算

切割、融合、通用、形状和表面的交集——所有这些基本算法都在 OCCT 中实现,并已在许多真实的工业模型上成功测试。

Open CASCADE 技术概述_第9张图片

图 9. 从旋转中切割棱镜。

Open CASCADE 技术概述_第10张图片

Open CASCADE 技术概述_第11张图片

Open CASCADE 技术概述_第12张图片

图 12. 壳的交集。

倒角和圆角

OCCT 中还提供倒角和圆角。也支持具有可变半径的圆角。

Open CASCADE 技术概述_第13张图片

图 13. 边上的圆角。

Open CASCADE 技术概述_第14张图片

图 14. 具有可变半径的圆角。

还要别的吗?

OCCT 建模功能的最详尽描述由其开放文档提供。我们只能说,现有功能为最广泛的 CAD 任务提供了解决方案。

数据交换

Open CASCADE 技术为 CAD 数据交换提供了先进的工具。它支持 STEP、IGES、STL 和 VRML 等常见格式。使用 STEP 格式的数据传输的正确性不仅通过在工业项目中使用该转换器的丰富经验来确保,而且开发团队参加了 ProSTEP“测试集会”(1998-1999 年,TR 8-10),以及后来的CAX-IF(2000-2002 年,TRJ 3-10)。

Shape Healing 组件放大了翻译质量,该组件用于重建 CAD 模型的后处理,并允许解决几何和拓扑问题(例如,与边的自交、缺少参数曲线、拓扑信息不足有关) , 等等。)

数据转换器不仅可以处理几何信息,还可以处理一些相关的属性。例如,Open CASCADE Technology 能够从 STEP 格式读取组件颜色和名称、它们在组件中的嵌套、层和一些其他属性。

Open CASCADE 技术概述_第15张图片

图 15. 由 Open CASCADE 技术读取的带有颜色的 STEP 文件。

可视化

Open CASCADE Technology 平台提供了基于 OpenGL 的自定义可视化子系统。该子系统不仅允许有效地使用库的几何资源,而且还支持在真实 CAD 应用程序中实现交互式 3D 场景。

Open CASCADE 技术概述_第16张图片

图 16. 借助 OpenGL 的动态部分。

Open CASCADE 技术概述_第17张图片

图 17. 光线追踪方法的可视化(实时 FPS)。

Open CASCADE 技术概述_第18张图片

图 18. 通过结合着色和线框的光线追踪可视化泵模型。

我们可以使用处理基本几何和拓扑的低级工具(带有控制点和结的 NURBS 可视化、等值线渲染以估计参数化的速度和质量、面参数域的渲染)或高级工具使用光线追踪(包括阴影、反射、透明度、抗锯齿等)对模型进行实时质量渲染。看来目前这部分库发展最快。

关于趋势

众所周知,与几何建模相关的功能应该尽可能可靠。当然,没有任何软件是完美无缺的,因此测试非常重要。尽管有大约 16000 个测试场景,但在 Open CASCADE 技术中经常会发现错误(这是不可避免的)。需要注意的是,OCCT 是通过多个内部专家组的协调努力开发的“实时”产品,其中建模是最重要的。

图 19 显示了按功能域分组的最新版本 OCCT 平台中实施的改进图表。可以清楚地看到,大部分修正和改进都属于几何建模,这是库中技术最复杂、知识最密集的部分。这意味着即使在 EUCLID 灭绝之后,OCCT 平台仍在稳步发展和扩展其几何功能及其可靠性。

Open CASCADE 技术概述_第19张图片

图 19. 过去几年 OCCT 的更正和改进(版本 6.5.1、6.5.2、6.5.3、6.5.4、6.5.5、6.6.0、6.7.0 和 6.7.1,目前最新版本7.6)。

结论

Open CASCADE Technology 是一款绝对开放的产品,可以极大地提高您开发高科技软件的能力。值得注意的是,该库甚至可以应用于 CAD/CAM/CAE 领域之外的领域。复杂的数学内核、可视化子系统和应用程序快速原型设计 (OCAF) 组件不仅对工业级软件的开发人员有用,而且作为科学项目的数学“生态系统”对教学和研究人员也很有用。

不可能在一篇简短的介绍性文章中描述所有可用的 OCCT 功能,因此我们邀请我们的读者继续访问官方开发人员网站。与我们一起参与 OCCT 开发,您的创意输入将提供给全世界的工程社区!

你可能感兴趣的:(opengl,GIS,算法,图形渲染)