Open Cascade-Foundtion与Modeling介绍

目录

一、介绍

二、模块介绍

2.1 Foundation模块

1. Standard

2. TCollection

3. NCollection

4. Message

5. Units

6. Quantity

7. Precision

8. OSD (Operating System Dependent)

2.2 Modeling模块

1. TopoDS (Topological Data Structure)

2. Geom (Geometry)

3. Geom2d (2D Geometry)

4. BRep (Boundary Representation)

5. Modeling Algorithms

6. GProp (Geometric Properties)

7. TopTools

8. Shape Analysis and Repair

三、附录


一、介绍

Open CASCADE Technology (OCCT) 是一个功能强大且灵活的开源 3D CAD、CAM、CAE 软件开发平台。它提供了丰富的模块,涵盖几何建模、数据交换、可视化、图形显示、几何运算等方面。

 既然大家能够使用到Open Cascade 了那无疑是需要使用到他来进行建模了。所以也是最先围绕Modeling 模块来开展工作。后续的需求比如数据导出、网格化 之类的功能,OCC也做了相应的实现。唯独可视化模块,OCC内置的AIS模块实现了可视化功能,也可以使用vtk。甚至如果用户有自己的三维可视化端,甚至可以只导出数据,然后用自己的可视化模块来进行可视化。

因此,接下来文章有限对Modeling进行开展,其他模块用到时候在展开。

 

二、模块介绍

2.1 Foundation模块

在开发者文档中,对于Foundtion内容介绍主要在这里。Open CASCADE Technology (OCCT) 的 Foundation Classes(基础类)模块提供了构建和管理其他模块所需的基本工具和数据结构。这些基础类为整个 OCCT 框架提供了坚实的基础。

 

1. Standard

功能

  • 提供基本的数据类型和工具。
  • 提供异常处理、内存管理和智能指针等功能。

主要类和功能

  • Standard_Integer:整型数据类型。
  • Standard_Real:浮点型数据类型。
  • Standard_Boolean:布尔型数据类型。
  • Standard_Handle:智能指针,用于管理对象的内存生命周期。
  • Standard_Transient:所有可持久化对象的基类。
  • Standard_Type:提供类型信息和运行时类型识别(RTTI)。
  • Standard_GUID:全局唯一标识符,用于唯一标识对象。

2. TCollection

功能

  • 提供集合类和字符串处理工具。

主要类和功能

  • TCollection_AsciiString:处理ASCII字符串。
  • TCollection_ExtendedString:处理Unicode字符串。
  • TCollection_HAsciiString:处理带有引用计数的ASCII字符串。
  • TCollection_HExtendedString:处理带有引用计数的Unicode字符串。
  • TCollection_List:通用链表类。
  • TCollection_Set:集合类,用于存储唯一元素。
  • TCollection_Array:动态数组类。

3. NCollection

功能

  • 提供更高效的集合类和内存管理工具。

主要类和功能

  • NCollection_Vector:动态数组类。
  • NCollection_List:链表类。
  • NCollection_Sequence:顺序容器类。
  • NCollection_Map:哈希表,用于存储键值对。
  • NCollection_DataMap:数据映射类,用于存储键值对。
  • NCollection_CellFilter:空间过滤器,用于快速查找对象。

4. Message

功能

  • 提供消息传递和日志记录工具。

主要类和功能

  • Message_Messenger:消息传递类,用于发送和接收消息。
  • Message_Alert:警告和错误信息类。
  • Message_Printer:打印消息的类,支持控制台输出和文件输出。
  • Message_Report:报告生成类,用于收集和输出消息。

5. Units

功能

  • 提供单位处理和转换工具。

主要类和功能

  • UnitsAPI:单位转换接口,用于在不同单位制之间进行转换。
  • Units_Dimensions:处理物理量的维度。
  • Units_Sentence:处理单位表达式。

6. Quantity

功能

  • 提供物理量和颜色处理工具。

主要类和功能

  • Quantity_Color:颜色处理类。
  • Quantity_Date:日期处理类。
  • Quantity_Period:时间周期处理类。
  • Quantity_LengthQuantity_AreaQuantity_Volume:处理长度、面积、体积等物理量的类。

7. Precision

功能

  • 提供几何计算中的精度管理工具。

主要类和功能

  • Precision:包含各种精度常量和工具函数,例如计算容差、比较浮点数等。

8. OSD (Operating System Dependent)

功能

  • 提供与操作系统相关的功能,例如文件操作、环境变量、进程管理等。

主要类和功能

  • OSD_File:文件操作类。
  • OSD_Directory:目录操作类。
  • OSD_Environment:环境变量操作类。
  • OSD_Process:进程管理类。

2.2 Modeling模块

Open CASCADE Technology (OCCT) 的 Modeling 模块提供了用于几何建模和拓扑操作的工具和数据结构。这个模块是 OCCT 的核心部分之一,涵盖了从基本几何体到复杂拓扑结构的创建和操作。

建模过程最关注的事情就是我们有拓扑数据结构可以给我们构建模型,以及基础模型之间怎么运算能够帮我们构建出更多模型。最后就是最重要的遵循OCC的建模思路,一步步把模型建出来。

1. TopoDS (Topological Data Structure)

TopoDS 是 Open CASCADE Technology (OCCT) 中一个非常重要的类前缀,代表 "Topological Data Structure"。它用于表示几何形状和拓扑结构。OCCT 是一个开源的 3D CAD、CAM、CAE 软件开发平台,广泛用于工业界和学术界。提供拓扑数据结构,用于描述几何模型的拓扑关系。

TopoDS 前缀用于一系列类,这些类表示不同类型的拓扑元素,如顶点、边、面、线框(wire)、壳(shell)和固体(solid)。这些类共同构成了 OCCT 的几何和拓扑建模基础。

TopoDS 类结合几何数据类(如 gp_Pnt、gp_Vec 等)和建模算法类(如 BRepBuilderAPI_MakeVertex、BRepPrimAPI_MakePrism 等)共同用于构建和操作复杂的3D模型。

例如:

TopoDS_Shape aTopoBox = BRepPrimAPI_MakeBox(3.0, 4.0, 5.0).Shape();

备注:这句话其实就是把建模算法以及数据结构关联了起来了,这两个概念不能够独立开来,而是通过这两个概念的封装,共同完成建模工作 。不同的数据结果,在不同的建模场景中有各自的作用。

主要类和功能

  • TopoDS_Shape:所有拓扑实体的基类。
  • TopoDS_Compound:复合体,包含多个子形状。
  • TopoDS_CompSolid:复合实体,包含多个固体。
  • TopoDS_Solid:固体,表示3D实体。
  • TopoDS_Shell:壳,表示一组面。
  • TopoDS_Face:面,表示有限区域的曲面。
  • TopoDS_Wire:线框,表示一组连接的边。
  • TopoDS_Edge:边,表示连接两个顶点的曲线段。
  • TopoDS_Vertex:顶点,表示几何图形的点。

2. Geom (Geometry)

功能

  • 提供几何数据结构,用于描述几何模型的形状。

主要类和功能

  • Geom_Point:几何点。
  • Geom_Curve:几何曲线的基类。
    • Geom_Line:直线。
    • Geom_Circle:圆。
    • Geom_Ellipse:椭圆。
    • Geom_BezierCurve:贝塞尔曲线。
    • Geom_BSplineCurve:B样条曲线。
  • Geom_Surface:几何曲面的基类。
    • Geom_Plane:平面。
    • Geom_CylindricalSurface:圆柱面。
    • Geom_ConicalSurface:圆锥面。
    • Geom_SphericalSurface:球面。
    • Geom_BezierSurface:贝塞尔曲面。
    • Geom_BSplineSurface:B样条曲面。

3. Geom2d (2D Geometry)

功能

  • 提供二维几何数据结构,用于描述二维几何模型。

主要类和功能

  • Geom2d_Point:二维几何点。
  • Geom2d_Curve:二维几何曲线的基类。
    • Geom2d_Line:二维直线。
    • Geom2d_Circle:二维圆。
    • Geom2d_Ellipse:二维椭圆。
    • Geom2d_BezierCurve:二维贝塞尔曲线。
    • Geom2d_BSplineCurve:二维B样条曲线。

4. BRep (Boundary Representation)

功能

  • 提供边界表示的数据结构和工具,用于描述和操作几何模型的边界。

主要类和功能

  • BRep_Tool:提供获取和操作拓扑实体几何信息的工具函数。
  • BRep_Builder:提供构建拓扑结构的工具。
  • BRepAdaptor_Curve:适配器类,用于将TopoDS_Edge适配为Geom_Curve。
  • BRepAdaptor_Surface:适配器类,用于将TopoDS_Face适配为Geom_Surface。

5. Modeling Algorithms

功能

  • 提供用于操作和修改几何模型的算法。

主要类和功能

  • BRepAlgoAPI:提供布尔运算工具。
    • BRepAlgoAPI_Common:求交运算。
    • BRepAlgoAPI_Cut:求差运算。
    • BRepAlgoAPI_Fuse:求并运算。
  • BRepBuilderAPI:提供构建拓扑结构的工具。
    • BRepBuilderAPI_MakeEdge:创建边。
    • BRepBuilderAPI_MakeWire:创建线框。
    • BRepBuilderAPI_MakeFace:创建面。
    • BRepBuilderAPI_MakeSolid:创建固体。

构建拓扑结构 BRepBuilderAPI_MakeShape有需要派生类,这也是太多类容易使人混乱的原因,需要了解这些类的派生关系,才能更好学习OCC。详细内容见附录。

  • BRepOffsetAPI:提供偏移和厚度运算工具。
    • BRepOffsetAPI_MakeOffset:创建偏移面。
    • BRepOffsetAPI_MakeThickSolid:创建厚度实体。
  • BRepFilletAPI:提供倒角和圆角运算工具。
    • BRepFilletAPI_MakeFillet:创建圆角。
    • BRepFilletAPI_MakeChamfer:创建倒角。

6. GProp (Geometric Properties)

功能

  • 提供几何属性计算工具,例如面积、体积、质心等。

主要类和功能

  • GProp_GProps:存储几何属性的类。
  • BRepGProp:提供计算拓扑实体几何属性的工具。
    • BRepGProp::LinearProperties:计算线性几何属性。
    • BRepGProp::SurfaceProperties:计算表面几何属性。
    • BRepGProp::VolumeProperties:计算体积几何属性。

7. TopTools

功能

  • 提供操作拓扑结构的工具和数据结构。

主要类和功能

  • TopTools_ListOfShape:存储TopoDS_Shape对象的链表。
  • TopTools_Array1OfShape:存储TopoDS_Shape对象的一维数组。
  • TopTools_MapOfShape:存储TopoDS_Shape对象的哈希表。
  • TopTools_IndexedMapOfShape:存储带索引的TopoDS_Shape对象的哈希表。

8. Shape Analysis and Repair

功能

  • 提供几何模型的分析和修复工具。

主要类和功能

  • ShapeAnalysis:提供几何模型分析工具。
    • ShapeAnalysis_Edge:分析边的几何特性。
    • ShapeAnalysis_Wire:分析线框的几何特性。
    • ShapeAnalysis_Surface:分析曲面的几何特性。
  • ShapeFix:提供几何模型修复工具。
    • ShapeFix_Shape:修复整个几何模型。
    • ShapeFix_Wire:修复线框的几何特性。
    • ShapeFix_Face:修复面的几何特性。

三、附录

BRepBuilderAPI_MakeShape Class Reference - Open CASCADE Technology Documentation

 

相关推荐

  1. OpenCASCADE:引擎简介编程指南

    2024-07-20 11:28:02       55 阅读
  2. beego的model篇 - 介绍快速入门

    2024-07-20 11:28:02       64 阅读
  3. pytorch之model.eval()、model.fuse()及model.fuse.eval()介绍

    2024-07-20 11:28:02       28 阅读
  4. vue中v-model:model以及v-bind区别

    2024-07-20 11:28:02       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-20 11:28:02       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-20 11:28:02       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-20 11:28:02       45 阅读
  4. Python语言-面向对象

    2024-07-20 11:28:02       55 阅读

热门阅读

  1. springSecurity学习之springSecurity过滤web请求

    2024-07-20 11:28:02       21 阅读
  2. GEE错误:Error: Encoded object too large. (Error code: 3)

    2024-07-20 11:28:02       15 阅读
  3. Spring 定时任务Scheduler监控异常和超时取消

    2024-07-20 11:28:02       13 阅读
  4. 一些高级函数的用法

    2024-07-20 11:28:02       17 阅读
  5. Github 2024-07-19 开源项目日报Top10

    2024-07-20 11:28:02       17 阅读
  6. Spring boot 运行环境搭建之Spring Tools 4 for Eclipse

    2024-07-20 11:28:02       16 阅读
  7. 整车CAN(P-CAN、C-CAN、B-CAN、Info-CAN、D-CAN)

    2024-07-20 11:28:02       18 阅读
  8. am start 命令详解

    2024-07-20 11:28:02       18 阅读
  9. Qt: 窗口停靠框架

    2024-07-20 11:28:02       17 阅读
  10. 贪心算法思想

    2024-07-20 11:28:02       18 阅读
  11. 前端TS语法基础篇

    2024-07-20 11:28:02       19 阅读