Brep表达
几何建模技术首先要解决的是几何形体在计算机内部的表达。从线框模型,到表面模型,再到实体模型,CAD系统的表达能力越来越丰富复杂。早期的线框模型和表面模型表达简单,但是其保存的三维形体信息都不完整。实体模型能够完整的,无歧义的表示三维形体。
在实体模型的表示中,出现了许多方法,基本上可以分为空间分解表示(单元枚举、八叉树分解、单元分解等)、构造表示(CSG)和边界表示(BREP)三大类。构造表示是按照生成过程来定义形体的方法,构造表示通常有扫描表示、构造实体几何表示和特征表示三种。
边界表示(Boundary Representation)也称为BRep表示,它是几何造型中最成熟、无二义的表示法。实体的边界通常是由面的并集来表示,而每个面又由它所在的曲面加上其边界来表示,面的边界是边的并集,而边又是由点来表示的。
几何与拓扑数据结构
CATIA几何与拓扑
CATIA中最基本的拓扑结构是拓扑单元(cell)
Space Dimension | Cell Type | Associated geometry |
0 | Vertex | Point |
1 | Edge | Curve |
2 | Face | Surface |
3 | Volume | 3D Space |
CATIA中由Cell组成的拓扑域(domain)
A ... | is a set of ... | bounding ... |
loop | edges connected by vertices | a face |
vertex in face | one vertex | a face |
lump | volumes connected by faces | the 3D space |
shell | faces connected by edges | the 3D space or a volume |
wire | edges connected by vertices | the 3D Space |
vertex in volume | one vertex | the 3D Space or a volume |
CATIA Body是最高层级的拓扑。
Asic内核中的几何与拓扑
不同的几何内核中,拓扑和几何的数据结构大同小异,一个几何造型由几何数据和拓扑数据表达,几何即数学上的点,线,面精确的三维坐标表达,拓扑表达更多的是表达这些基本元素之间的连接关系和边界界定,比如,一条线,由两个点连接而成。几何和拓扑都是相互关联存在的,几何可以是有边界或者无边界的,拓扑描述就是去把几何的边界给描述出来。理论上几何其实可以完整表达造型,还需要拓扑一方面表达更简单,一方面拓扑记录了连接关系,更容易索引。
• 拓扑与几何数据相互关联,相辅相成
• 几何侧重于几何形状的数学描述
• 拓扑侧重于形状的边界描述
这种边界表示有一个很大的好处就是可以通过曲面裁剪,表达复杂几何形体,还能共享几何数据。用裁剪曲面表示能让ZW3D保持基础曲面一致的情况下提供各种形状的曲面供造型或显示使用。
进行布尔操作后,不需要改变曲面的几何形状,只要给面增加裁剪边界即可。
Brep表达实例
球体
球是最简单的基本体之一,但是球的拓扑结构却是较难理解的。这是因为球面是由一个完整的封闭的曲面构成,BRep表达是描述实体的边界,而对于球而言,我们似乎找不到他的边界在哪儿。因而我们不得不假想球面有一条无限小的缝,沿着这个缝把球剖开,这个球面就有边界了。这条缝,叫做球的缝合边,这条缝合边可以想象为一个无线窄的环退化而来。
球的拓扑组成如下:
- 两个顶点,V1,V2
- 三条边,一条边E1,是衔接边或者缝合边(Seam Edge),另外两条边E2和E3为退化边(边的两个端点重合,即边退化为点),注意,两个顶点在三维空间是重合的,但在参数空间是不重合的。
- 一个面Face,Face的几何为球面
- Face对应一条loop,由边E1和退化边E2,E3对应的有向边围成,其中E1使用了两次且方向相反。
- 由Face组成Shell ,由Shell组成了Solid
圆柱
- 圆柱有两个顶点Vertex,V1,V2
- 圆柱共有三条Edge,E1,E2,E3,其中E1为衔接边(Seam Edge)
- 圆柱有三个面,分别为圆柱底部的圆,圆柱顶部的圆,中间的柱面。
- 三个面对应三个Loop环,三个面Face组成一个Shell,Shell组成了一个Solid。