1. B-Rep表示法
1.1 概述
计算机中表示三维形体的模型,按照几何特点进行分类,大体上可以分为三种:线框模型、表面模型和实体模型。如果按照表示物体的方法进行分类,实体模型基本上可以分为分解表示、构造表示CSG(Constructive Solid Geometry)和边界表示BREP(Boundary Representation)三大类。
边界表示法(B-Rep, boundary representation)是一种用来表示几何形状的方法,常被用于实体建模和计算机辅助设计中。一个实体被表示为一组连接的表面元素,这些元素定义了内部和外部点之间的边界。
1.2 几何与拓扑
几何
描述的是具体位置和形状,拓扑
描述的是位置关系。
几何
就是我们通常所说的点,线,面,体。线又可以分为直线,线段,圆,圆弧,Nurbs曲线,贝赛尔曲线等各种线,面也类似可以分为平面,非参数曲面,参数方程定义的曲面等。而体则定义了各种实体,长方体,圆柱,球,圆环,组合体等。
为什么要有“拓扑”的概念?
举个例子:
一条线段有两个顶点,当我们只知道其中一点的坐标数据时,希望得到该点在哪条线段上。如果没有拓扑信息,简单的办法就是全局计算遍历一遍,缺点显而易见;如果有拓扑信息,记录了该点的拓扑信息,即该点的上层拓扑直线,我们直接拿点的拓扑信息就可以了。
模型的边界表示包括拓扑组件(面(face
)、边(edge
)和顶点(vertex
))和它们之间的连接,以及这些组件(分别是面(surface
)、曲线(curve
)和点(point
))的几何定义。面(face
)是面(surface
)的有界部分;边(edge
)是曲线(curve
)上有边界的部分,顶点(vertex
)位于某一点(point
)上。其他元素壳(shell
,一组连接的面(face
))、环(wire
,包围一个面的边的集合)。
在边界表示法中,边界表示按照solid->face->wire->edge->vertex
的层次,详细记录构成形体的所有几何元素的几何信息及其相互连接的拓扑关系。
1.3 opencascade中的表示
在occ中,几何信息和拓扑信息分别表示成如下数据结构:
几何信息(Geometry
)
- point
- curve
- surface
拓扑信息(topology
)
5. vertex
6. edge
7. wire
8. face
9. shell
10. solid
比如,在下图中,有一个shell
,两个face
,两个wire
,七个edge
和六个vertex
。
occ中的拓扑数据结构关系如下:
拓扑结构和几何的关系如下:
由此可见,只有三种拓扑对象有几何数据:face
,edge
,vertex
,分别表示为BRep_TFace
,BRep_TEdge
,BRep_TVertex
。
2. STEP文件
2.1 STEP简介
1983年,STEP标准由国际标准化组织(ISO)工业自动化与集成技术委员会(TC184)下属的第四分委会(简称SC4)开发。1992年,STEP标准已成为ISO国际标准(ISO10303),国内将其制定为同名国家标准,标准号为GB/T 16656。
STEP全称是Standard for the Exchange of Product Model Data,翻译过来是“产品模型数据交换标准”,是一个比较全面的ISO标准 (ISO10303),该标准描述了如何表示和交换数字产品信息。
由上可知,STEP是一个标准,并不是某个特定的产品。
ISO10303内容按照组件(Part)来划分,每一个组件表示一种标准,每个组件有一个唯一的数据标识号,标识号从1开始,按照“Part+标识号”唯一表示一个组件(Part),所有的组件内容按照内容又可以划分到7大模块中:
- 描述方法:Part11~Part19
- 实现方法:Part21~Part29
- 一致性测试方法和框架:Part31~Part39
- 集成资源通用资源:Part41~Part99
- 集成资源应用资源:Part101~Part199
- 应用协议: Part201~Part1199
- 抽象测试集: Part1021~Part2199
单词缩写:
- AP-Application Protocol
- IR-Integrated Resource
下面的列表显示了 STEP 应用程序协议 (Application Protocol AP),它们都建立在同一组集成资源 (Integrated Resource IR) 之上,因此它们都对相同的信息使用相同的定义。例如,AP203、AP214、AP238 和 AP242 对三维几何、装配数据和基本产品信息使用相同的定义。
- AP 201:显式绘图
- AP 202:关联绘图
- AP 203:配置控制设计
- AP 203e2:配置控制设计(第二版)
- AP 209:复合材料和金属结构分析及相关设计
- AP 210:电气连接包装设计
- AP 214:汽车设计
- AP 215:船舶布置
- AP 216:船模
- AP 218:船舶结构
- AP 219:尺寸检测信息交换
- AP 221:过程工厂的功能数据和示意图
- AP 223:铸件
- AP 224:基于特征的流程规划
- AP 225:建筑元素
- AP 227:植物空间配置
- AP 232:技术数据打包
- AP 235:工程属性
- AP 236:家具目录和室内设计
- AP 238:STEP-NC 集成 CNC
- AP 239:产品生命周期支持
- AP 240:宏观流程规划
- AP 242:基于托管模型的3D工程
其中我们比较常见的是AP214,表示汽车设计中对零部件的描述。
2.2 STEP文件格式
我们打开一个.step
文件,查看其内容:
文件内容分为头部和数据两部分,头部内容包含了AP214
,说明该文件描述的是汽车设计中的某个零部件。
数据内容描述的是几何和拓扑信息。每一行表示一个具体的拓扑信息,其中的每个元素既可以是具体数据,也可以索引到其他信息。
参考文献
[1] https://zhuanlan.zhihu.com/p/433433759
[2] https://zhuanlan.zhihu.com/p/413735139
[3] https://www.cppblog.com/eryar/archive/2013/08/20/202678.html
[4] https://dev.opencascade.org/doc/refman/html/index.html
[5] STEP文件格式