目录
概览
基础类
建模数据
建模算法
Mesh
可视化
数据交换
形状修复
应用程序框架
绘制测试线束
要求
第三方库和工具
硬件
下载与安装
Windows
欢迎使用开放式CASCADE技术(OCCT),这是一个软件开发平台,为三维表面和实体建模、CAD数据交换和可视化提供服务。OCCT的大部分功能都是以C++库的形式提供的。OCCT最适用于处理三维建模(CAD)、制造/测量(CAM)或数值模拟(CAE)的软件开发。
Open CASCADE Technology(OCCT)是一个面向对象的C++类库,用于快速生成复杂的特定领域CAD/CAM/CAE应用程序:
使用OCCT开发的典型应用程序处理通用或专业计算机辅助设计(CAD)系统、制造或分析应用程序、模拟应用程序甚至插图工具中的二维或三维(2D或3D)几何建模。
OCCT库被设计为真正的模块化和可扩展性,为以下各项提供C++类:
C++类和其他类型被分组到包中。包被组织成工具包(库),您可以将应用程序链接到这些工具包。最后,工具包被分为七个模块。
这种模块化结构如下图所示。
此外,Open CASCADE Test Harness(也称为Draw)提供了库的入口点,可以用作其模块的测试工具。
Foundation Classes模块包含更高级别的Open CASCADE Technology类使用的数据结构和服务:
该模块还提供各种通用服务,例如:
请参阅 Foundation Classes User's Guide中的详细信息
建模数据提供数据结构来实现三维对象的边界表示(BRep)。在“重新绘制”中,形状表示为拓扑中几何图形的集合。几何体被理解为形状的数学描述,例如曲线和曲面(简单或规范、Bezier、NURBS等)。拓扑是将几何对象绑定在一起的数据结构。
几何类型和实用程序为以下各项提供几何数据结构和服务:
拓扑定义简单几何图元之间的关系。形状是一个基本的拓扑实体,可以分为组件(子形状):
复杂的形状可以定义为简单实体的组合(化合物)。
请参阅Modeling Data User's Guide中的详细信息
三维几何模型可以以OCCT原生BREP格式存储。有关格式的详细信息,请参阅BREP Format Description White Paper说明白皮书。
建模算法模块对几何建模中使用的各种拓扑和几何算法进行分组。基本上,Open CASCADE Technology中有两组算法:
低级几何工具提供了以下算法:
低级拓扑工具提供了以下算法:
顶级API提供以下功能:
基本要素的构造:
运动学建模:
布尔运算,允许从源形状的组合中创建新形状。对于两种形状S1和S2:
有关详细文档,请参阅Boolean Operations用户指南。
用于创建机械特征的算法,即沿着平面或旋转表面的凹陷、突起、肋和凹槽或槽。
有关细节Modeling Algorithms User's Guide.
网格工具包提供了使用三角形镶嵌面的对象镶嵌表示的功能。此工具包包含:
Open CASCADE SAS还提供高级网格产品:
开放式级联网格框架(OMF)
Express网眼布
可视化模块提供了现成的算法,可以从各种对象(形状、网格等)创建图形演示。
在开放式CASCADE技术中,可视化是基于CAD数据及其图形表示的分离。该模块还支持快速而强大的交互式选择机制。
可视化模块依赖于以下关键工具包:
虽然低级API使用基本数组(三角形、直线、点),但高级API包括用于构建B-Rep形状(着色和线框)的表示的服务。标准交互式对象的综合列表包括拓扑形状、网格表示、各种尺寸、操纵器和其他。它为快速应用程序开发提供了坚实的基础,而灵活和可扩展的API允许开发高度定制的特定于应用程序的演示。
以下是OCCT可视化功能的几个示例:
支持内置和特定于应用程序的GLSL着色器。
通过以下算法优化渲染性能:
更多的细节查看 Visualization User's Guide.
通过VIS组件提供的VTK库实现OCCT拓扑形状的可视化在单独的VTK集成服务用户指南中进行了描述。
数据交换允许开发基于OCCT的应用程序,该应用程序可以通过向外部数据写入CAD模型和从外部数据读取CAD模型来与其他CAD系统交互。
数据交换以模块化的方式组织为一组符合各种CAD格式的接口:IGES、STEP、STL、VRML等。这些接口允许基于OCCT的软件与各种CAD/PDM软件包交换数据,保持良好的互操作性。该模块处理CAD系统之间互操作性的各种问题,这些问题是由模型有效性标准和内部表示要求的差异引起的。
标准化的数据交换接口允许查询和检查输入文件,将其内容转换为CAD模型,并对完全转换的形状进行有效性检查。当前支持以下格式:
扩展数据交换(XDE)允许转换附加到几何数据的附加属性(颜色、图层、名称、材质等)。
除了标准数据交换接口外,还提供了高级数据交换组件,以支持使用以下专有格式的CAD软件的互操作性和数据自适应(也使用形状修复):
这些组件基于与STEP和IGES接口相同的体系结构。
形状修复库提供了算法来纠正和调整从其他CAD系统导入到OCCT的形状的几何结构和拓扑结构。
形状修复算法包括但不限于以下操作:
识别边界中的闭合导线和开放导线。
填充补片和边之间的间隙。
形状治疗的每个子域都有自己的功能范围:
子域 | 描述 | 对形状的影响 |
分析 | 探索形状财产,计算形状特征,检测违反OCCT要求的情况。 | 形状本身不会被修改。 |
修复 | 固定形状以满足OCCT要求。 | 形状可能会改变其原始形式:修改、删除或创建子形状等) |
升级 | 改进形状以适应某些特定的算法。 | 形状被替换为新的形状,但在几何上它们是相同的。 |
自定义 | 修改形状表达以满足特定需要。 | 形状不会被修改,只会改变其内部表示的数学形式。 |
过程 | 通过用户可编辑的资源文件进行形状修改的机制。 |
更多的细节查看 Shape Healing User's guide.
开放式CASCADE应用程序框架(OCAF)基于应用程序/文档范式处理应用程序数据。它使用关联性引擎来简化CAD应用程序的开发,这要归功于以下现成的功能和服务:
由于OCAF处理应用程序结构,因此唯一的开发任务是创建特定于应用程序的数据和GUI。
OCAF在应用程序数据的组织方面不同于任何其他CAD框架,因为那里的数据结构基于参考键而不是形状。在模型中,形状数据、颜色和材质等属性被附加到一个不变的结构上,该结构比形状更深。形状对象成为shape属性的值,就像整数是integer属性的值而字符串是Name属性的值一样。
OCAF将这些属性组织起来并嵌入到文档中。OCAF文档则由OCAF应用程序进行管理。
更多的细节查看 OCAF User's Guide.
Test Harness或Draw是OCCT库的一种方便的测试工具。在构建整个应用程序之前,它可以用于测试和原型化各种算法。它包括:
基本命令提供通用服务,例如:
此外,Test Harness还提供了创建和操作曲线、曲面(几何体)和形状、访问可视化服务、使用OCAF文档、执行数据交换等命令。
您可以添加自定义命令来测试或演示您开发的任何新功能。
有关详细信息,请参见Draw Test Harness Manual.
开放式CASCADE技术被设计为高度便携,并且已知可在各种平台上工作。当前版本在Windows(x86-64)、Linux(x86-66)、OS X/macOS(x86-6,arm64)、Android(arm64)和iOS(arm64。
下表描述了OCCT经认证可以工作的推荐软件配置。
C++编译器/IDE
操作系统 | 编译环境 |
Windows | Microsoft Visual Studio: 2015 Update 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 or newer |
Android | NDK r12, GNU gcc 4.9 or newer |
Web | Emscripten SDK 1.39 or newer (CLang) |
1) VC++141 64位用于定期测试和在Windows上构建OCCT正式发布的二进制包。
以下第三方库和工具不包括在OCCT源中,但对于OCCT的指示组件是必需的或可以选择性地使用。如果不需要相关组件,则不需要它们——可以在没有额外依赖性的情况下构建核心OCCT模块。
请注意,许多列出的库的预构建包可 在3rd party Components | Open CASCADE Technology
Component | Where to find | Used for | Purpose |
---|---|---|---|
CMake 3.1+ | CMake | Configuration | Build from sources |
Intel oneTBB 2021.5.0 | Release oneTBB 2021.5.0 · oneapi-src/oneTBB · GitHub | All | Parallelization of algorithms (alternative to built-in thread pool) |
OpenGL 3.3+, OpenGL ES 2.0+ | System | Visualization | Required for using 3D Viewer |
OpenVR 1.10+ | GitHub - ValveSoftware/openvr: OpenVR SDK | Visualization | VR (Virtual Reality) support in 3D Viewer |
FreeType 2.4+ | FreeType Downloads | Visualization | Text rendering in 3D Viewer |
FreeImage 3.17+ | FreeImage - Browse Files at SourceForge.net | Visualization | Reading/writing image files |
FFmpeg 3.1+ | Download FFmpeg | Visualization | Video recording |
VTK 6.1+ | Download | VTK | IVtk | VTK integration module |
Flex 2.6.4+ and Bison 3.7.1+ | Win flex-bison download | SourceForge.net | Data Exchange | Updating STEP and ExprIntrp parsers |
RapidJSON 1.1+ | RapidJSON: Main Page | Data Exchange | Reading glTF files |
Draco 1.4.1+ | GitHub - google/draco: Draco is a library for compressing and decompressing 3D geometric meshes and point clouds. It is intended to improve the storage and transmission of 3D graphics. | Data Exchange | Reading compressed glTF files |
Tcl/Tk 8.6.3+ | Download Tcl/Tk Sources | DRAW Test Harness | Tcl interpretor in Draw module |
Qt 5.3.2+ | Download Qt | Develop Desktop & Embedded Systems | Qt | Inspector and Samples | Inspector Qt samples and |
Doxygen 1.8.5+ | Doxygen: Downloads | Documentation | (Re)generating documentation |
Graphviz 2.38+ | Graphviz | Documentation | Generating dependency graphs |
硬件 | 要求 |
---|---|
最小内存 | 512 MB, 1 GB recommended |
硬盘 | 1,5 GB approx. |
在桌面上,为了获得最佳性能,3D查看器需要支持OpenGL 3.3或更高版本的图形处理单元(GPU)。光线跟踪需要OpenGL 4.0+或OpenGL 3.3+,扩展名为GL_ARB_texture_buffer_object_rgb32。只有当驱动程序提供GL_ARB_bindless_texture扩展名时,光线跟踪中的纹理才可用。
在移动平台上,3D查看器需要OpenGL ES 2.0+(建议使用OpenGL ES 3.1+)。光线跟踪需要OpenGL ES 3.2。一些旧硬件可能无法执行复杂的GLSL程序(例如,具有大量光源、剪裁平面)。
OCCT 3D Viewer通常支持从非常旧到新的各种图形硬件。因此,如果您观察到一些意外的视觉问题,请首先检查OpenGL驱动程序更新(或移动平台的固件更新);但要注意,驱动程序更新可能也会带来新的错误。别忘了向供应商报告这些错误。
OCCT可从下载https://dev.opencascade.org/release
在大多数情况下,在项目中使用OCCT之前,您需要从平台上的源代码(操作系统、编译器)重建OCCT,以确保二进制兼容性和库的适当配置。有关在支持的平台上从源代码构建OCCT的说明,请参阅构建、调试和升级。
以下小节描述了如何在不同的平台上从现成的软件包安装OCCT。
在Windows Open CASCADE Technology上,通过Visual C++2017预编译的二进制文件可以使用官方下载页面上的安装过程进行安装。
建议:
如果您的工作站上安装了以前版本的OCCT,并且您不打算将其与新版本一起使用,您可能需要在安装此新版本之前卸载以前版本(使用“控制面板”、“添加/删除程序”),以避免可能出现的问题(系统变量、路径等冲突)。
带参考文档的完整OCCT安装需要1.8 Gb的磁盘空间。
安装完成后,您将找到第三方产品的目录(在自定义安装的情况下,有些可能不存在)和主OCCT目录:
OCCT-7.4.0目录(也称为“OCCT根目录”或$CASROOT)的内容如下:
OCCT在许多Linux发行版的官方存储库中以“opencascade”包的形式提供。
从https://repology.org/project/opencascade/versions
这个网址里可以看到耕读哦信息
在macOS上,OCCT在Homebrew中可用(https://formulae.brew.sh/formula/opencascade)和Mac端口(https://ports.macports.org/port/opencascade/summary)存储库。
要运行任何Open CASCADE Technology应用程序,您需要设置环境变量。
您可以使用位于$CASROOT文件夹中的env.bat脚本定义环境变量。此脚本接受两个要使用的参数:Visual Studio的版本(vc12–vc143)和体系结构(win32或win64)。
通过Microsoft Visual Studio编译OCCT库和示例所需的其他环境设置可以使用位于同一文件夹中的脚本custom.bat进行设置。如果第三方库安装在系统的非默认位置,则可能需要编辑此脚本以更正到第三方库的路径。
脚本msvc.bat可以与相同的参数一起使用,以便立即启动Visual Studio以(重新)编译OCCT。
如果OCCT是由Code::Blocks构建的,则可以使用env_cbp.sh或custom_cbp.sh脚本定义环境变量。
如果OCCT是由Automake构建的,则可以使用env_amk.sh或custom_amk.sh脚本定义环境变量。
脚本位于OCCT根文件夹中。
Open CASCADE Technology和所有材料,包括本文档,版权所有(c)1999-2010 by Open CASCADE.S.A.S.。保留所有权利。
Open CASCADE技术是免费软件;您可以根据GNU宽松通用公共许可证(LGPL)2.1版的条款重新分发和/或修改它,但有其他例外。
请注意,LGPL对与Open CASCADE Technology链接的应用程序施加了一些义务。如果您希望在专有应用程序中使用OCCT,请特别注意解决LGPL第6节的要求。至少应考虑以下内容:
如果您想在不受LGPL要求约束的情况下使用Open CASCADE技术,请联系Open CASCADE公司获取商业许可。
请注意,开放级联技术是在“按原样”的基础上提供的,没有任何形式的保证。与OCCT代码和材料的任何使用相关的全部风险由您承担。有关正式免责声明,请参阅许可证文本。
以下各方因生产Open CASCADE Technology库中使用的工具或用于发布准备而受到认可。
特此通知您,以下所列软件的所有权利属于其各自的作者,此类软件不得免费提供和/或出于任何用途或目的免费提供。我们强烈建议您仔细阅读这些产品的许可证,如果您需要任何进一步的信息,请直接联系其作者。
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等人开发。它是一个软件字体引擎,设计为小型、高效、高度可定制和便携,同时能够产生高质量的输出(字形图像)。该产品可用于图形库、显示服务器、字体转换工具、文本图像生成工具和许多其他产品。FreeType2是在两个开源许可证下发布的:类似BSD的FreeType许可证和GPL(https://www.freetype.org/license.html).
“英特尔(R)线程构建块”(TBB)为在C++程序中表达并行性提供了一种丰富而完整的方法。它是一个库,可以帮助您在不必成为线程专家的情况下利用多核处理器的性能。线程构建块不仅仅是一个线程替换库。它代表了一种更高级别的基于任务的并行性,它抽象了平台细节和线程机制,以实现可扩展性和性能。Intel 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 Technology,用于从C++头文件自动创建技术文档。如果您需要更多关于Doxygen的信息,请参阅https://www.doxygen.nl/index.html.
Graphviz是由John Ellson、Emden Gansner、Yifan Hu和Arif Bilgin开发的开源图形可视化软件。图形可视化是将结构化信息表示为抽象图形和网络的图表。本产品与开放式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)的条件下,OCCT可以选择使用FreeImage来处理图像(https://freeimage.sourceforge.net/freeimage-license.txt).
FFmpeg是一个开源框架,支持各种图像、视频和音频编解码器。在LGPL条件下,OCCT可选择使用FFmpeg进行视频录制(https://www.ffmpeg.org/legal.html).
David M.Gay的浮点例程(dtoa.c)用于从文本字符串中快速读取浮点值。这些例程在类似麻省理工学院的许可证下可用(请参阅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三角测量。Delabella被BRepMesh用作替代2D三角测量算法之一。Delabella获得麻省理工学院许可(https://github.com/msokalski/delabella).
CMake是一个开源、跨平台的工具系列,旨在构建、测试和打包软件。CMake用于使用简单的平台和编译器独立的配置文件控制软件编译过程,并生成可在您选择的编译器环境中使用的本地makefile和工作区。OCCT使用CMake作为构建系统。CMake在BSD 3条款许可下可用。更多信息,请访问https://cmake.org/
Cotire(编译时间减少器)是一个CMake模块,它通过完全自动化预编译头的使用和C和C++的单个编译单元构建等技术,加快了基于CMake的构建系统的构建过程。Cotire包含在OCCT存储库中,OCCT CMake脚本可以选择使用它来通过使用预编译的头文件来加速构建。Cotire获得麻省理工学院许可(https://github.com/sakra/cotire/blob/master/license).
MikTEX是针对Windows的TeX/LaTeX和相关程序的最新实现。它用于生成PDF格式的用户和开发人员指南。看见https://miktex.org有关此工具的信息。
RapidJSON是一个面向C++的开源JSON解析器和生成器。RapidJSON可供OCCT选择用于读取glTF文件(https://rapidjson.org/).
Draco是一个面向C++的开源JSON解析器和生成器。OCCT可选择使用Draco来读取使用KHR_Draco_mesh_compression扩展名的glTF文件(https://github.com/google/draco). 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.S.A.S.的注册商标。
Linux是Linus Torvalds的注册商标。
Windows是微软公司在美国和其他国家/地区的注册商标。
Mac、OS X、macOS和Mac徽标是Apple Inc.在美国和其他国家/地区注册的商标。
Android是谷歌有限责任公司的商标。