Open CASCADE 翻译文档
欢迎使用 Open CASCADE Technology (OCCT),这是一个软件开发平台,提供 3D 曲面和实体建模、CAD 数据交换和可视化服务。大多数 OCCT 功能都以 C++ 库的形式提供。OCCT 最适合用于处理 3D 建模 (CAD)、制造/测量 (CAM) 或数值模拟 (CAE) 的软件开发。
概述
Open CASCADE Technology (OCCT) 是一个面向对象的 C++ 类库,旨在快速生成复杂的特定领域 CAD/CAM/CAE 应用程序。
使用 OCCT 开发的典型应用程序处理通用或专用计算机辅助设计 (CAD) 系统、制造或分析应用程序、模拟应用程序甚至插图工具中的二维或三维(2D 或 3D)几何建模。
OCCT 库旨在实现真正的模块化和可扩展性,提供 C++ 类用于:
- 基本数据结构(几何建模、可视化、交互式选择和特定应用服务);
- 建模算法;
- 使用网格(多面)数据;
- 与中性格式(IGES、STEP)的数据互操作性;
C++ 类和其他类型被分组到包中。包被组织成工具包(库),您可以将应用程序链接到这些工具包。最后,工具包分为七个模块。
这种模块化结构如下图所示。
- 基础类模块是所有其他 OCCT 类的基础;
- 建模数据模块提供数据结构以将 2D 和 3D 几何图元及其组合表示为 CAD 模型;
- 建模算法模块包含大量的几何和拓扑算法;
- “建模算法”模块中的网格工具包实现了对象的镶嵌表示;
- 可视化模块为图形数据表示提供了复杂的机制;
- 数据交换模块与流行的数据格式互操作,并依靠形状修复来提高不同供应商的 CAD 软件之间的兼容性;
- 应用程序框架模块提供现成的解决方案,用于处理特定于应用程序的数据(用户属性)和常用功能(保存/恢复、撤消/重做、复制/粘贴、跟踪 CAD 修改等)。
此外,Open CASCADE Test Harness,也称为Draw,提供了库的入口点,可用作其模块的测试工具。
基础类
Foundation Classes模块包含更高级别的 Open CASCADE Technology 类使用的数据结构和服务:
- 原始类型,例如布尔、字符、整数或实数;
- 处理 Unicode 字符串的字符串类;
- 处理静态或动态大小的数据聚合的集合类,例如数组、列表、队列、集合和哈希表(数据映射)。
- 提供常用数值算法和基本线性代数计算(向量和矩阵的加法、乘法、转置、求解线性系统等)的类。
- 颜色、日期和时间信息等基本类型;
- 提供定义和操作基本数据结构的基本几何和代数实体的基本几何类型。
- 描述情况的异常类,当程序的正常执行被放弃时;
该模块还提供了多种通用服务,例如:
- 安全处理动态创建的对象,确保自动删除未引用的对象(智能指针);
- 标准和专用内存分配器;
- 扩展的运行时类型信息 (RTTI) 机制维护完整的类型层次结构并提供对其进行迭代的方法;
- C++ 流的封装;
- 表达式的基本解释器,便于创建自定义脚本工具、表达式的通用定义等;
- 用于处理配置资源文件和可定制消息文件的工具,有助于应用程序中的多语言支持;
- 进度指示和用户中断接口,即使是低级算法也有可能以通用和便捷的方式与用户进行通信;
- 和许多其他……
建模数据
建模数据提供数据结构以实现 3D 对象的边界表示 (BRep)。在 BRep 中,形状表示为拓扑内几何图形的聚合。几何被理解为形状的数学描述,例如曲线和曲面(简单或规范、Bezier、NURBS 等)。拓扑是一种将几何对象绑定在一起的数据结构。
几何类型和实用程序提供几何数据结构和服务:
- 点、向量、曲线和曲面的描述:
- 使用轴或坐标系在 3D 空间中定位,以及
- 它们的几何变换,通过应用平移、旋转、对称、缩放变换及其组合。
- 通过插值和逼近创建参数曲线和曲面;
- 直接构造算法;
- 将曲线和曲面转换为 NURBS 形式;
- 计算 2D 和 3D 曲线上的点坐标;
- 计算几何对象之间的极值。
拓扑定义简单几何实体之间的关系。形状是基本的拓扑实体,可以分为组件(子形状):
- 顶点——对应于一个点的零维形状;
- 边——对应于曲线的形状,并以每个端点的顶点为界;
- 连线——由顶点连接的一系列边;
- 面——平面(2D 中)或曲面(3D 中)的一部分,以线为界;
- 壳 – 由其线边界的边缘连接的面的集合;
- 实体——由壳包围的 3D 空间的有限封闭部分;
- 复合实体——由壳边界面连接的实体集合;
- 复合——任意类型形状的集合。
复杂的形状可以定义为简单实体的组合(复合)。
3D 几何模型可以以 OCCT 原生 BREP 格式存储。有关格式的详细信息,请参阅BREP 格式说明白皮书。
建模算法
建模算法模块将几何建模中使用的各种拓扑和几何算法分组。基本上,Open CASCADE Technology 中有两组算法:
- 实际设计中使用的高级建模例程;
- 用作建模 API 基础的低级数学支持函数。
低级几何工具提供了以下算法:
- 计算两条曲线、曲面或曲线与曲面的交点;
- 将点投影到 2D 和 3D 曲线上,将点投影到曲面上,将 3D 曲线投影到曲面上;
- 从约束构造线和圆;
- 根据约束(插值、逼近、蒙皮、间隙填充等)构建自由曲线和曲面。
低级拓扑工具提供了以下算法:
- 镶嵌形状;
- 检查形状的正确定义;
- 确定形状的局部和全局属性(导数、质量惯性属性等);
- 执行仿射变换;
- 找到边所在的平面;
- 将形状转换为 NURBS 几何体;
- 从单独的拓扑元素(面和边)缝合连接的拓扑(壳和线)。
顶级 API 提供以下功能:
- 基元的构造:
- 盒子;
- 棱镜;
- 气缸;
- 锥体;
- 球体;
- 圆环。
- 运动学建模:
- 拉伸——线性扫描;
- 旋转——旋转扫掠;
- 扫掠——一般形式的扫掠;
- 放样
- 布尔运算,允许从源形状的组合创建新的形状。对于两个形状S1和S2:
- Common包含S1和S2中的所有点;
- Fuse包含S1或S2中的所有点;
- Cut包含S1中而不是S2中的所有点。
有关详细文档,请参阅布尔运算用户指南。
- 局部修改的算法,例如:
- 镂空;
- 脱壳;
- 使用拔模角创建锥形形状;
- 在形状边缘上制作圆角和倒角的算法,包括具有可变半径(弦)的那些。
- 用于创建机械特征的算法,即沿着平面或旋转表面的凹陷、突起、肋和凹槽或槽。
请参阅建模算法用户指南中的详细信息。
网
Mesh工具包提供了以三角形面的形式处理对象的镶嵌表示的功能。该工具包包含:
- 存储与形状相关的表面网格数据的数据结构和处理它们的基本算法;
- 从BRep对象(形状)构建三角形表面网格的数据结构和算法;
- 用于显示具有相关预处理和后处理数据(标量或矢量)的网格的工具。
Open CASCADE SAS 还提供高级网格产品:
可视化
可视化模块提供现成的算法来从各种对象创建图形表示:形状、网格等。
在 Open CASCADE 技术中,可视化基于 CAD 数据及其图形表示的分离。该模块还支持快速而强大的交互式选择机制。
可视化模块依赖于以下关键工具包:
- TKV3d工具包定义了一个名为(Application Interactive Services* ( AIS ))的高级 API ,用于处理交互式对象。
- TKService工具包定义了一个用于管理和从原始数组创建表示的低级 API。该工具包定义了一个抽象层,用于定义负责实际渲染的任意图形驱动程序。
- TKOpenGl工具包使用 OpenGL 和 OpenGL ES 库实现图形驱动程序。
虽然低级 API 使用原始数组(三角形、线、点)进行操作,但更高级别包括为 B-Rep 形状(阴影和线框)构建表示的服务。标准交互式对象的综合列表包括拓扑形状、网格表示、各种尺寸、操纵器等。它为快速应用程序开发提供了坚实的基础,而灵活和可扩展的 API 允许开发高度定制的特定于应用程序的演示文稿。
以下是 OCCT 可视化功能的一些示例:
- 相机驱动的视图投影和方向。支持透视、正交和立体投影。
- 支持常见(漫反射/环境/镜面反射)和 PBR 金属粗糙度材料模型。
- 可以灵活调整 3D 视图中的尺寸外观。3D 文本对象将给定的文本字符串表示为模型空间中的真实 3D 对象。
- 通过平面方程系数定义裁剪平面。能够在级别或单个剪裁平面上定义横截面的视觉属性。在下图中,火箭的不同部分被不同的平面剪裁并带有阴影线。
- 支持内置和特定于应用程序的 GLSL 着色器。
- 通过以下算法优化渲染性能:
- 视锥体剔除,在渲染阶段跳过相机外的呈现;
- 背面剔除,可减少渲染的三角形数量并消除形状边界处的伪影。
- 实时光线追踪技术采用递归Whitted算法和Bounded Volume Hierarchy有效优化结构。
有关更多详细信息,请参阅可视化用户指南。
通过 VIS 组件提供的 VTK 库对 OCCT 拓扑形状的可视化在单独的VTK 集成服务用户指南中进行了描述。
数据交换
Data Exchange允许开发基于 OCCT 的应用程序,这些应用程序可以通过在外部数据中写入和读取 CAD 模型来与其他 CAD 系统交互。
数据交换以模块化方式组织为一组符合各种 CAD 格式的接口:IGES、STEP、STL、VRML 等。这些接口允许基于 OCCT 的软件与各种 CAD/PDM 软件包交换数据,维护一个良好的互操作性水平。该模块处理由于模型有效性标准和对内部表示的要求不同而导致的 CAD 系统之间互操作性的各种问题。
- 标准化数据交换接口允许查询和检查输入文件,将其内容转换为 CAD 模型,并对完全转换的形状运行有效性检查。当前支持以下格式:
- 扩展数据交换(XDE) 允许翻译附加到几何数据(颜色、图层、名称、材料等)的附加属性。
- 除了标准数据交换接口外,还提供高级数据交换组件,以支持与使用以下专有格式的 CAD 软件的互操作性和数据适应(也使用形状修复):
这些组件基于与 STEP 和 IGES 接口相同的架构。
形状修复
形状修复库提供算法来纠正和调整从其他 CAD 系统导入到 OCCT 的形状的几何形状和拓扑结构。
形状修复算法包括但不限于以下操作:
- 分析形状特征,特别是通过分析几何对象和拓扑来识别不符合 OCCT 几何和拓扑有效性规则的形状:
- 检查边缘和线的一致性;
- 检查线中的边缘顺序;
- 检查面边界的方向;
- 分析形状公差;
- 识别边界中的闭合和开放导线。
- 修复不正确或不完整的形状:
- 提供 3D 曲线与其对应的参数曲线之间的一致性;
- 修复有缺陷的线;
- 将形状拟合到用户定义的公差值;
- 填充补丁和边缘之间的间隙。
- 升级和改变形状特征:
- 减少曲线和曲面度;
- 分割形状以获得 C1 连续性;
- 将任何类型的曲线或曲面转换为 Bezier 或 B 样条曲线或曲面并返回;
- 分割闭合曲面和旋转曲面。
Shape Healing 的每个子域都有自己的功能范围:
子域 | 描述 | 对形状的影响 |
---|---|---|
分析 | 探索形状属性、计算形状特征、检测违反 OCCT 要求的情况。 | 形状本身不会被修改。 |
定影 | 修复形状以满足 OCCT 要求。 | 形状可能会改变其原始形状:修改、删除或创建子形状等) |
升级 | 改进形状以适应某些特定算法。 | 形状被替换为新形状,但在几何上它们是相同的。 |
定制 | 修改形状表示以满足特定需求。 | 形状没有被修改,只是其内部表示的数学形式发生了变化。 |
加工 | 通过用户可编辑的资源文件修改形状的机制。 |
有关详细信息,请参阅Shape Healing 用户指南。
应用框架
开放 CASCADE 应用程序框架(OCAF) 基于应用程序/文档范式处理应用程序数据。它使用关联引擎来简化 CAD 应用程序的开发,这要归功于以下即用型功能和服务:
- 管理应用数据的数据属性,可根据开发需要进行组织;
- 数据存储和持久化(打开/保存);
- 可以修改和重新计算文档中的属性。使用 OCAF,可以轻松地表示模型中的修改历史和参数依赖关系;
- 可以管理多个文档;
- CAD/CAM/CAE 应用程序通用的预定义属性(例如存储尺寸);
- 撤消-重做和复制-粘贴功能。
由于 OCAF 处理应用程序结构,因此唯一的开发任务是创建特定于应用程序的数据和 GUI。
OCAF 在应用程序数据的组织方面不同于任何其他 CAD 框架,因为那里的数据结构基于参考键而不是形状。在模型中,形状数据、颜色和材料等属性附加到一个比形状更深的不变结构。形状对象成为Shape属性的值,就像整数是Integer属性的值,字符串是Name属性的值一样。
OCAF 将这些属性组织并嵌入到文档中。OCAF 文档又由 OCAF 应用程序管理。
有关详细信息,请参阅OCAF 用户指南。
绘制测试线束
Test Harness或Draw是 OCCT 库的便捷测试工具。它可用于在构建整个应用程序之前测试和原型化各种算法。这包括:
- 基于TCL语言的命令解释器;
- 多个 2D 和 3D 查看器;
- 一组预定义的命令。
查看器支持缩放、平移、旋转和全屏视图等操作。
基本命令提供通用服务,例如:
- 获得帮助;
- 从文件中评估脚本;
- 捕获文件中的命令;
- 管理视图;
- 显示对象。
此外,Test Harness提供了创建和操作曲线和曲面(几何)和形状、访问可视化服务、处理 OCAF 文档、执行数据交换等的命令。
您可以添加自定义命令来测试或演示您开发的任何新功能。
有关详细信息,请参阅绘制测试线束手册。
要求
Open CASCADE 技术被设计为高度便携,并且可以在广泛的平台上工作。当前版本已在 Windows (x86-64)、Linux (x86-64)、OS X / macOS (x86-64, arm64)、Android (arm64) 和 iOS (arm64) 平台上获得官方认证。
下表描述了 OCCT 经认证可以工作的推荐软件配置。
C++ 编译器/IDE
你 | 编译器 |
---|---|
视窗 | Microsoft Visual Studio:2015 更新3、2017 1、2019、2022、 LLVM (ClangCL)、GCC 4.3+ (Mingw-w64) |
Linux | GNU gcc 4.3+ LLVM CLang 3.6+ |
OS X / macOS | XCode 6 或更新版本 |
安卓 | NDK r12、GNU gcc 4.9 或更新版本 |
网络 | Emscripten SDK 1.39 或更新版本 (CLang) |
1) VC++ 141 64-bit 用于常规测试和在Windows上构建OCCT官方发布的二进制包。
第三方库和工具
以下第三方库和工具不包含在 OCCT 源代码中,但它们要么是必需的,要么可以选择性地用于 OCCT 的指定组件。如果不需要相关组件,则不需要它们 – 可以构建核心 OCCT 模块而无需额外依赖。
请注意,许多列出的库的预构建包可在https://dev.opencascade.org/resources/download/3rd-party-components获得
零件 | 在哪里可以找到 | 用于 | 目的 |
---|---|---|---|
CMake 3.1+ | https://cmake.org/ | 配置 | 从源代码构建 |
英特尔 oneTBB 2021.5.0 | https://github.com/oneapi-src/oneTBB/releases/tag/v2021.5.0 | 全部 | 算法的并行化(替代内置线程池) |
OpenGL 3.3+,OpenGL ES 2.0+ | 系统 | 可视化 | 需要使用 3D 查看器 |
OpenVR 1.10+ | https://github.com/ValveSoftware/openvr | 可视化 | 3D 查看器中的 VR(虚拟现实)支持 |
FreeType 2.4+ | https://www.freetype.org/download.html | 可视化 | 3D 查看器中的文本渲染 |
免费图片 3.17+ | https://sourceforge.net/projects/freeimage/files | 可视化 | 读/写图像文件 |
FFmpeg 3.1+ | https://www.ffmpeg.org/download.html | 可视化 | 视频录制 |
VTK 6.1+ | https://www.vtk.org/download/ | IVtk | VTK集成模块 |
Flex 2.6.4+ 和 Bison 3.7.1+ | https://sourceforge.net/projects/winflexbison/ | 数据交换 | 更新 STEP 和ExprIntrp解析器 |
RapidJSON 1.1+ | https://rapidjson.org/ | 数据交换 | 读取 glTF 文件 |
天龙 1.4.1+ | https://github.com/google/draco | 数据交换 | 读取压缩的 glTF 文件 |
Tcl/Tk 8.6.3+ | https://www.tcl.tk/software/tcltk/download.html | DRAW 测试线束 | Draw模块 中的 Tcl 解释器 |
Qt 5.3.2+ | https://www.qt.io/download/ | 检查员和样品 | 检查员 Qt 样本和 |
多氧 1.8.5+ | https://www.doxygen.nl/download.html | 文档 | (重新)生成文档 |
Graphviz 2.38+ | https://graphviz.org/ | 文档 | 生成依赖图 |
硬件
零件 | 要求 |
---|---|
最小内存 | 512 MB,推荐 1 GB |
可用磁盘空间(完整安装) | 约 1,5 GB |
在台式机上,要获得最佳性能的 3D 查看器需要支持 OpenGL 3.3 或更高版本的图形处理单元 (GPU)。光线追踪需要带有GL_ARB_texture_buffer_object_rgb32扩展的 OpenGL 4.0+ 或 OpenGL 3.3+ 。仅当驱动程序提供GL_ARB_bindless_texture 扩展时,光线追踪中的纹理才可用。
在移动平台上,3D 查看器需要 OpenGL ES 2.0+(推荐使用 OpenGL ES 3.1+)。光线追踪需要 OpenGL ES 3.2。一些旧硬件可能无法执行复杂的 GLSL 程序(例如,具有大量光源、剪切平面)。
一般来说,OCCT 3D 查看器支持范围广泛的图形硬件 – 从非常旧的到新的。因此,如果您观察到一些意外的视觉问题 – 首先检查 OpenGL 驱动程序更新(或移动平台的固件更新);但请注意,驱动程序更新也可能带有新的错误。不要忘记向供应商报告这些错误。
下载和安装
OCCT 可以从https://dev.opencascade.org/release下载
在大多数情况下,您希望在项目中使用之前从平台上的源代码(操作系统、编译器)重建 OCCT,以确保二进制兼容性和库的适当配置。有关从受支持平台上的源代码构建 OCCT 的说明,请参阅构建、调试和升级。
以下小节描述了如何从不同平台上的现成包安装 OCCT。
视窗
在 Windows 上,可以使用官方下载页面上提供的安装程序安装带有 Visual C++ 2017 预编译的二进制文件的 Open CASCADE 技术。
推荐:
如果您的工作站上安装了以前版本的 OCCT,并且您不打算将其与新版本一起使用,您可能需要在安装之前卸载以前的版本(使用控制面板、添加/删除程序)新版本,以避免可能出现的问题(系统变量、路径等的冲突)。
带有参考文档的完整 OCCT 安装需要 1.8 Gb 的磁盘空间。
安装完成后,您将找到 3rd 方产品的目录(在自定义安装的情况下可能不存在)和主OCCT目录:
OCCT-7.4.0 目录(进一步称为“OCCT root”或 $CASROOT)的内容如下:
- adm此文件夹包含允许重建 OCCT 的管理文件;
- adm/cmake此文件夹包含 CMake 构建程序的文件;
- adm/msvc此文件夹包含 Visual C++ 2013、2015、2017、2019 和 2022 的 Visual Studio 项目,允许在 32 位和 64 位模式下在 Windows 平台下重建 OCCT;
- adm/scripts此文件夹包含用于不同平台的 OCCT 半自动化构建和打包的辅助脚本;
- data此文件夹包含不同格式的 CAD 文件,可用于测试 OCCT 功能;
- doc此文件夹包含 HTML 和 PDF 格式的 OCCT 文档;
- dox此文件夹包含纯文本 (MarkDown) 格式的 OCCT 文档源;
- inc此文件夹包含所有 OCCT 头文件的副本;
- 示例此文件夹包含示例应用程序。
- src此文件夹包含 OCCT 源文件。它们被组织在文件夹中,每个开发单元一个;
- tests此文件夹包含用于 OCCT 测试的脚本。
- tools此文件夹包含 Inspector 工具的来源。
- win64/vc14该文件夹包含Visual C++ 2015在Windows平台优化模式下构建的可执行文件和库文件;
Linux
OCCT 在许多 Linux 发行版的官方存储库中以包“opencascade”的形式提供。
有关可用存储库的概述,请参阅https://repology.org/project/opencascade/versions。
苹果系统
在 macOS 上,OCCT 在 Homebrew ( https://formulae.brew.sh/formula/opencascade ) 和 MacPorts ( https://ports.macports.org/port/opencascade/summary ) 存储库中可用。
环境变量
要运行任何 Open CASCADE Technology 应用程序,您需要设置环境变量。
在 Windows 上
您可以使用 $CASROOT 文件夹中的 env.bat 脚本定义环境变量。此脚本接受两个要使用的参数:Visual Studio 的版本 (vc12 – vc143) 和体系结构(win32 或 win64)。
可以使用位于同一文件夹中的脚本 custom.bat 设置 Microsoft Visual Studio 编译 OCCT 库和示例所需的其他环境设置。如果第三方库安装在系统上的非默认位置,您可能需要编辑此脚本以更正第三方库的路径。
脚本 msvc.bat 可以与相同的参数一起使用,以立即启动 Visual Studio 以(重新)编译 OCCT。
在 Unix 上
如果 OCCT 是由 Code::Blocks 构建的,您可以使用 env_cbp.sh 或 custom_cbp.sh 脚本定义环境变量。
如果 OCCT 是 Automake 构建的,您可以使用 env_amk.sh 或 custom_amk.sh 脚本定义环境变量。
这些脚本位于 OCCT 根文件夹中。
系统变量说明:
- CASROOT用于定义Open CASCADE Technology的根目录;
- 需要PATH来定义 OCCT 二进制文件和 3rdparty 文件夹的路径;
- 需要LD_LIBRARY_PATH来定义 OCCT 库的路径(仅在 UNIX 平台上;在 macOS 的情况下为DYLD_LIBRARY_PATH变量);
- MMGT_OPT(可选)如果设置为 1,内存管理器执行如下所述的优化;如果设置为 2,则使用 Intel (R) TBB 优化内存管理器;如果为 0(默认),则每个内存块都直接在 C 内存堆中分配(通过 malloc() 和 free() 函数)。在后一种情况下,以 MMGT 开头的所有其他选项(MMGT_CLEAR除外)都将被忽略;
- MMGT_CLEAR(可选)如果设置为 1(默认),则每个分配的内存块都被零清除;如果设置为 0,则按原样返回内存块;
- MMGT_CELLSIZE(可选)定义在大型内存池中分配的块的最大大小。默认为 200;
- MMGT_NBPAGES(可选)定义为页面中的小块分配的内存块的大小(取决于操作系统)。默认为 10000;
- MMGT_THRESHOLD(可选)定义内部回收而不是返回到堆的块的最大大小。默认为 40000;
- MMGT_MMAP(可选)设置为1(默认)时,使用操作系统的内存映射函数分配大内存块;如果设置为 0,它们将被 malloc() 分配到 C 堆中;
- CSF_LANGUAGE(可选)定义消息的默认语言;
- CSF_DEBUG(可选,仅限 Windows):如果已定义,则在出现异常时显示诊断消息;
- CSF_DEBUG_BOP(可选):如果已定义,则应指定保存布尔运算中发生的问题的诊断数据的目录;
- CSF_MDTVTexturesDirectory定义了使用纹理映射时可用纹理的目录;
- CSF_ShadersDirectory(可选)为光线追踪渲染器定义 GLSL 程序的目录(当变量未定义时使用嵌入式资源);
- CSF_SHMessage (可选)定义ShapeHealing消息文件的路径;
- CSF_XSMessage(可选)为STEP和IGES转换器定义消息文件的路径;
- CSF_StandardDefaults、CSF_StandardLiteDefaults、CSF_XCAFDefaults和CSF_PluginDefaults定义了 OCAF 持久性配置文件所在目录的路径(使用 OCAF 文档进行打开/保存操作时需要);
- CSF_IGESDefaults和CSF_STEPDefaults (可选)定义IGES和STEP翻译器资源文件所在目录的路径;
- 需要CSF_XmlOcafResource来设置XSD资源的路径,它定义了 XML 语法。
- 需要CSF_MIGRATION_TYPES才能读取包含旧数据类型的文档,例如TDataStd_Shape;
执照
Open CASCADE Technology 和所有材料(包括本文档)的版权 (c) 1999-2020 归 OPEN CASCADE SAS 所有。保留所有权利。
Open CASCADE Technology 是免费软件;您可以根据GNU 宽通用公共许可证 (LGPL) 2.1 版的条款重新分发和/或修改它,但有额外的例外。
请注意,LGPL 对与 Open CASCADE 技术链接的应用程序施加了一些义务。如果您希望在专有应用程序中使用 OCCT,请特别注意满足 LGPL 第 6 节的要求。至少应考虑以下几点:
- 添加对您的应用程序用户可见的通知,明确说明此应用程序中使用了 Open CASCADE 技术,并且根据 LGPL,他们在这方面拥有权利。此类通知可以添加到关于对话框(如果此框包含版权声明,则这是强制性的)或类似位置和/或文档中。用户应该可以访问 LGPL 许可证的文本。
- 将应用程序使用的 OCCT 源的副本提供给其用户,并在必要时提供有关如何以与应用程序兼容的方式构建它的说明。
- 确保用户实际上可以行使使用修改后的 OCCT 版本运行您的应用程序的权利。如果应用程序以不允许用户修改 OCCT 部分的形式分发(例如应用程序静态链接到 OCCT 或通过 iOS 上的 AppStore、Android 上的 GooglePlay、Windows Store 等分发),应用程序应该是以可修改的形式单独提供,其中包含用户能够使用修改后的 OCCT 版本运行应用程序所需的所有材料。
如果您想在不受 LGPL 要求约束的情况下使用 Open CASCADE 技术,请联系 Open CASCADE 公司以获得商业许可。
请注意,Open CASCADE 技术是按“原样”提供的,不提供任何形式的保证。与使用 OCCT 代码和材料相关的全部风险由您承担。请参阅正式免责声明的许可文本。
致谢
以下各方因制作 Open CASCADE 技术库中使用的工具或发布准备而受到认可。
特此通知您,以下列出的软件的所有权利均属于其各自的作者,并且此类软件可能无法免费获得和/或免费用于任何用途或目的。我们强烈建议您仔细阅读这些产品的许可,如果您需要任何进一步的信息,请直接联系其作者。
Qt是一个跨平台的应用程序框架,广泛用于开发具有图形用户界面 (GUI) 的应用程序软件。Qt 是根据 GNU 宽通用公共许可证条款分发的免费和开源软件。在 OCCT 中,Qt 用于编程示例。如果您需要有关 Qt 的更多信息,请参阅 Qt 主页 ( https://www.qt.io/ )
Tcl是一种高级编程语言。Tk 是一个图形用户界面 (GUI) 工具包,具有按钮、菜单、列表框、滚动条等。Tcl 和 Tk 一起提供了一个解决方案来开发具有原生外观和感觉的跨平台图形用户界面。Tcl/Tk 的版权归 Scriptics Corp.、Sun Microsystems 和其他公司所有。但是,Tcl/Tk 是开源的,版权允许您出于任何目的使用、修改和重新分发 Tcl/Tk,无需明确的许可协议,也无需支付任何许可费或版税。要使用 Tcl/Tk,请参阅许可条款 ( https://www.tcl.tk/software/tcltk/license.html )。
FreeType 2由 Antoine Leca、David Turner、Werner Lemberg 等人开发。它是一个软件字体引擎,设计小巧、高效、高度可定制和便携,同时能够产生高质量的输出(字形图像)。该产品可用于图形库、显示服务器、字体转换工具、文本图像生成工具和许多其他产品。FreeType 2 在两个开源许可证下发布:类似 BSD 的 FreeType 许可证和 GPL ( https://www.freetype.org/license.html )。
英特尔(R) 线程构建模块 (TBB)提供了一种丰富而完整的方法来表达 C++ 程序中的并行性。它是一个库,可帮助您利用多核处理器性能,而无需成为线程专家。Threading Building Blocks 不仅仅是一个线程替换库。它代表了一种更高级别的、基于任务的并行性,它抽象了平台细节和线程机制,以实现可伸缩性和性能。英特尔 oneTBB 2021.5.0 在 Apache 2.0 许可下可用 ( https://www.threadingbuildingblocks.org )。
OpenGL是 OCCT 用于实现 3D 查看器的 3D 图形的行业标准 API。OpenGL 规范由 Khronos 小组开发,https: //www.khronos.org/opengl/ 。OCCT 代码包括从 Khronos 网站获得的头文件glext.h 。
OpenVR是一种 API 和运行时,它允许访问来自多个供应商的 VR 硬件,而无需应用程序对其所针对的硬件有特定的了解。OCCT 可选择使用 OpenVR 来支持 VR。OpenVR 在类似 BSD 的许可下发布 ( https://github.com/ValveSoftware/openvr/blob/master/LICENSE )。
VTK –可视化工具包 (VTK)是一个开源、免费提供的软件系统,用于 3D 计算机图形、图像处理和可视化。OCCT VIS组件通过VTK库提供了OCCT拓扑形状可视化的适配功能。如果您需要有关 VTK 的更多信息,请参阅 VTK 主页https://www.vtk.org/。
由 Dimitri van Heesch 开发的Doxygen是用于 C++、C、Java、Objective-C、Python、IDL、PHP 和 C# 的开源文档系统。本产品用于 Open CASCADE 技术,用于从 C++ 头文件自动创建技术文档。如果您需要有关 Doxygen 的更多信息,请参阅https://www.doxygen.nl/index.html。
Graphviz是由 John Ellson、Emden Gansner、Yifan Hu 和 Arif Bilgin 开发的开源图形可视化软件。图形可视化是将结构化信息表示为抽象图形和网络的图表。该产品与 Open CASCADE 技术中的 Doxygen 一起使用,用于自动创建技术文档(生成依赖图)。当前版本的 Graphviz 在 Eclipse 公共许可证 (EPL) ( https://www.graphviz.org/license/ )下以开源方式获得许可。
Inno Setup是由 Jordan Russell 在 CodeGear Delphi 中创建的免费脚本驱动安装系统。在 OCCT 中,Inno Setup 用于在 Windows 上创建安装向导。它根据 Inno Setup License ( http://www.jrsoftware.org/files/is/license.txt ) 获得许可。
FreeImage是一个开源库,支持流行的图形图像格式,例如 PNG、BMP、JPEG、TIFF 和多媒体应用程序使用的其他格式。该库由 Hervé Drolon 和 Floris van den Berg 开发。FreeImage 易于使用、快速、多线程安全、兼容所有 32 位或 64 位版本的 Windows,并且是跨平台的(适用于 Linux 和 Mac OS X)。在 FreeImage 公共许可证 (FIPL) ( https://freeimage.sourceforge.net/freeimage-license.txt ) 的条件下,OCCT 可选择使用 FreeImage 来处理图像。
FFmpeg是一个开源框架,支持各种图像、视频和音频编解码器。OCCT 可选择在 LGPL 条件下(https://www.ffmpeg.org/legal.html)使用 FFmpeg 进行视频录制。
David M. Gay 的浮点例程(dtoa.c) 用于从文本字符串中快速读取浮点值。这些例程在类似 MIT 的许可下可用(参见https://www.netlib.org/fp/)。
Flex是词法分析器(扫描器)的生成器,可在 BSD 许可下使用(https://github.com/westes/flex)。
GNU Bison是一个解析器生成器(与Flex一起),用于实现 STEP 文件格式的读取器和表达式解析器。它在 GNU GPL v3 许可下可用 ( https://www.gnu.org/software/bison/ )。
Delabella是 Newton Apple Wrapper 算法的开源跨平台实现,可生成 2D Delaunay 三角剖分。BRepMesh 使用 Delabella 作为替代的 2D 三角剖分算法之一。Delabella 在 MIT 许可下获得许可 ( https://github.com/msokalski/delabella )。
CMake是一个开源、跨平台的工具系列,旨在构建、测试和打包软件。CMake 用于使用简单的平台和编译器独立配置文件来控制软件编译过程,并生成可在您选择的编译器环境中使用的本机 makefile 和工作区。OCCT 使用 CMake 作为构建系统。CMake 在 BSD 3-Clause 许可下可用。在https://cmake.org/上查看更多信息
Cotire(编译时间缩减器)是一个 CMake 模块,它通过完全自动化的技术(如预编译头使用和 C 和 C++ 的单个编译单元构建)来加速基于 CMake 的构建系统的构建过程。Cotire 包含在 OCCT 存储库中,OCCT CMake 脚本可选择使用 Cotire 通过使用预编译的头文件来加速构建。Cotire 在 MIT 许可下获得许可 ( https://github.com/sakra/cotire/blob/master/license )。
MikTEX是最新的 TeX/LaTeX 和 Windows 相关程序的实现。它用于生成 PDF 格式的用户和开发人员指南。有关此工具的信息,请参见https://miktex.org。
RapidJSON是 C++ 的开源 JSON 解析器和生成器。OCCT 可选择使用 RapidJSON 来读取 glTF 文件 ( https://rapidjson.org/ )。
Draco是一个用于 C++ 的开源 JSON 解析器和生成器。OCCT 可以选择使用 Draco 来使用 KHR_draco_mesh_compression 扩展 ( https://github.com/google/draco ) 读取 glTF 文件。Draco 在 Apache 2.0 许可下可用。
DejaVu字体是一个基于 Vera 字体的字体系列,在许可许可下(类似 MIT,https://dejavu-fonts.github.io/License.html)。当没有可用的系统字体时,OCCT 使用 DejaVu Sans(基本拉丁语子集)作为备用字体。
Adobe Systems, Inc. 提供Adobe Reader,可用于查看可移植文档格式 (PDF) 的文件。
CAS.CADE和Open CASCADE是 OPEN CASCADE SAS 的注册商标
Linux是 Linus Torvalds 的注册商标。
Windows是微软公司在美国和其他国家的注册商标。
Mac、OS X、macOS和 Mac 徽标是 Apple Inc. 在美国和其他国家/地区注册的商标。
Android是 Google LLC 的商标。