(一)
苏 小 红
哈尔滨工业大学计算机科学与技术学院
2
实体造型( Solid Modeling)
几何造型技术
? 第一代:手工绘制工程图
? 第二代:二维计算机绘图
? 第三代:三维线架系统
? 第四代:曲面造型
? 第五代:实体造型
3
实体造型系统的发展( 1/3)
60年代初期
70年代初期
? 英国剑桥大学的 BUILD-1系统
? 德国柏林工业大学的 COMPAC系统
? 日本北海道大学的 TIPS-1系统
? 美国罗切斯特大学的 PADL-1,PADL-2系统等
? 5年后推出 BUILD-2系统
4
实体造型系统的发展( 2/3)
早期系统的特点:
? 用多面体表示形体,不支持精确的曲面表示
1978年,英国 Shape Data公司,ROMULUS系统,
首次引入精确的二次曲面方法用于精确表示几何形

1980年,Evans & Sutherland开始将 ROMULUS投
放市场
80年代末,NURBS曲线曲面设计方法,不仅能对
已有的曲线曲面(如 Bezier方法,B样条方法等)进
行统一表示,还能精确表示二次曲线曲面。
5
实体造型系统的发展( 3/3)
国际标准化组织
? 将 NURBS作为定义工业产品形状的唯一数学方
法 。
最有代表性的两个几何造型系统
? Parasolid,1985年,Shape Data公司
? ACIS,1990年,美国 Spatial Technology公司
目前,许多流行的商用 CAD/CAM软件,如
Unigraphics,Solidedge,Solidwork、
MDT等,都在 Parasolid或 ACIS基础上开发。
6
三维实体的表示( 1/7)
模型分类
7
三维实体的表示( 2/7)
数据模型
? 完全以数据描述
? 以数据文件的形式存在
? 包括 ----边界表示、分解表示、构造表示等
8
线框模型
表面模型
实体模型
三维实体的表示( 3/7)
----物体的骨架
----物体的皮肤
----”有血有肉”的物体模型
9
? 形体表示成一组轮廓线的集合,只需建立三维线段表
? 数据结构简单、处理速度快
? 所构成的图形含义不确切,与形体之间不存在一一对应关系,
有二义性
? 不便进行光照或消隐处理,不适合真实感显示和数控加工
线框模型
三维实体的表示( 4/7)
----物体的骨架
用线框模型表示的有二义性的物体
10
表面模型
三维实体的表示( 5/7)
----物体的皮肤
? 将形体表示成一组表面的集合,形体与其表面一一对应,避
免了二义性
? 能够满足真实感显示和数控加工等需求
? 只有面的信息,形体信息不完整
? 无法计算和分析物体的整体性质(如体积、重心等), 限制
了在工程分析方面的应用
11
实体模型
三维实体的表示( 6/7)
----”有血有肉”的物体模型
? 用来描述实体,主要用于 CAD/CAM
? 包含了描述一个实体所需的较多信息,如几何信息、拓
扑信息
? 表示完整而无歧义
12
过程模型
三维实体的表示( 7/7)
? 包括 ----随机插值模型、迭代函数系统,L系统、粒
子系统、复变函数迭代等
? 以一个过程和相应的控制参数描述
? 以一个数据文件和一段代码的形式存在
13
数据模型 —— 边界表示( 1/12)
Boundary Representation,
也称 BR表示或 BRep表示
? 最成熟、无二义性
物体的边界与物体一一对应
? 实体的边界是表面的并集
? 表面的边界是边的并集
14
数据模型 —— 边界表示( 2/12)
用于表示物体边界的有
? 平面多边形
? 曲面片
平面多面体
? 表面由平面多边形组成的多面体
曲面体
? 由曲面片组成的物体
15
描述形体的信息,
? Geometry
? Topology
数据模型 —— 边界表示( 3/12)
描述形体的几何元素(顶点、边、面)之间的连接关系,
形成物体边界表示的“骨架”
描述形体的几何元素性质和度量关系,
如位置、大小、方向、尺寸、形状等信息
犹如附着在“骨架”上的肌肉
16
表示形体的基本几何元素,
? 顶点( Vertex)
? 边( Edge)
? 面( Face)
? 环( Loop)
? 体( Body)
数据模型 —— 边界表示( 4/12)
17
数据模型 —— 边界表示( 5/12)
正则形体与非正则形体,
? 要保证几何造型的可靠性和可加工性,形体上任意一点的
足够小的邻域在拓扑上必须是一个等价的封闭圆,即该点
的邻域在二维空间中是一个单连通域
? 点至少和三个面(或三条边)邻接,不允许存在孤立点
? 边只有两个邻面,不允许存在悬边
? 面是形体表面的一部分,不允许存在悬面
P
有悬面 有悬边 一条边有两个
以上的邻面
点 P 的邻域非
单连通
18
几何元素 正则形体 非正则形体
面 是形体表面的一部分
可以是形体表面的一
部分,也可以是形体
内的一部分,也可以
与形体相分离。
边 只有两个邻面
可以有多个邻面、一
个邻面或没有邻面。
点 至少和三个面(或三条边)邻

可以与多个面(或边)
邻接,也可以是聚集
体、聚集面、聚集边
或孤立点。
数据模型 —— 边界表示( 6/12)
19
数据模型 —— 边界表示( 7/12)
欧拉特征
? 设表面 s由一个平面模型给出,且 v,e,f分别表示其顶点、
边和小面的个数,那么 v-e+f是一个常数,它与 s划分形
成平面模型的方式无关。该常数称为 Euler特征。
v=8,e=13,f=7
v-e+f=2欧拉公式
20
欧拉物体
? 满足欧拉公式的物体
欧拉运算
? 增加或者删除面、边和顶点以生成新的欧拉物
体的过程
数据模型 —— 边界表示( 8/12)
21
欧拉运算时,必须要保证欧拉公式和下述条件成
立,才能够保证形体的拓扑有效性。
? 面单连通,没有孔,且被单条边环围住;
? 实体的补集是单连通,没有洞穿过它;
? 边完全与两个面邻接,且每端以一个顶点结束;
? 顶点至少是三条边的汇合点。
数据模型 —— 边界表示( 9/12)
(c) v=9,e=16,f=9
5
1
2 3
4
正则
形体
形体的欧拉运算
(a)v=8,e=12,f=6 (b) v=9,e=14,f=7
1
2
5
1
2 3
4
增加一条边,v=8,e=13,f=7
22
数据模型 —— 边界表示 (10/12)
广义欧拉公式
v-e+f-r=2(s-h)
r,多面体表面上内孔数
s,相互分离的多面体数
h,贯穿多面体的孔洞数
v=16,e=32,f=16
r=0,s=1,h=1
v=24,e=36,f=15
r=3,s=1,h=1
23
数据模型 —— 边界表示 (11/12)
在边界表示的数据结构中,比
较著名的有:
半边数据结构
辐射边数据结构
翼边数据结构
? 1972年由美国斯坦福大学
B.G.Baumgart等人提出
? 是以边为核心来组织数据的一种
数据结构 翼边数据结构
左上边 右上边
左下边 右下边
左外环 右外环
e
P2
P1
24
数据模型 —— 边界表示 (12/12)
缺点
? 数据结构及其维护数据结构的程序复杂
? 需大量的存储空间
? 有效性难以保证
优点
? 精确表示物体
? 表示覆盖域大,表示能力强
? 容易确定几何元素间的连接关系,几何变换容易
? 显式表示点、边、面等几何元素,绘制速度快
25
数据模型 —— 分解表示( 1/8)
空间位置枚举表示
? 选择一个立方体空间,将其均匀划分
? 用三维数组 C[I][J][K]表示物体,数组中的元素与
单位小立方体一一对应
26
数据模型 —— 分解表示( 2/8)
? 优点
可以表示任何物体
容易实现物体间的集合运算
容易计算物体的整体性质,如体积等
? 缺点
是物体的非精确表示
占用大量的存储空间,如 1024*1024*1024 = 1G bits
没有边界信息,不适于图形显示
对物体进行几何变换困难,如非 90度的旋转变换
27
数据模型 —— 分解表示( 3/8)
八叉树 ( octrees) 表示
? 自适应分割
28
数据模型 —— 分解表示( 4/8)
(a)
(b)
z
y
x
5
5
5
54
7 7
7 F
P
E E E E EE
E E E F EF FE
P
10 2 3 4 5 6
0 1 2 3 4 5 6
7
7
八叉树建立过程
? 八叉树的根节点对应整个物体空间
? 如果它完全被物体占据,将该节点标记为
F(Full),算法结束;
? 如果它内部没有物体,将该节点标记为
E(Empty),算法结束;
? 如果它被物体部分占据,将该节点标记为
P(Partial),并将它分割成 8个子立方体,对每一
个子立方体进行同样的处理
29
数据模型 —— 分解表示( 5/8)
? 优点
可以表示任何物体,数据结构简单
容易实现物体间的集合运算
容易计算物体的整体性质,如体积等
较空间位置枚举表示占用的存贮空间少
? 缺点
是物体的非精确表示
没有边界信息,不适于图形显示
对物体进行几何变换困难
30
数据模型 —— 分解表示( 6/8)
单元分解( cell decomposition)表示
? 多种体素
(a) 棱锥体素 (b) 长方体体素 (c) 图 (a)和 (b)两种体素的并集
31
数据模型 —— 分解表示( 7/8)
三种空间分割方法的比较
? 空间位置枚举表示 ----同样大小立方体
? 八叉树表示 ----不同大小的立方体单元
分解表示 ----多种体素
32
数据模型 —— 分解表示( 8/8)
? 优点
表示简单
容易实现几何变换
基本体素可以按需选择,表示范围较广
可以精确表示物体
? 缺点
物体的表示不唯一
物体的有效性难以保证
33
数据模型 —— 构造实体几何表示( 1/5)
构造实体几何表示
constructive solid gemetry,简称 CSG
采用单一的“建筑块”形式的实体造型方
法,由两个物体的 正则集合 操作生成新的
物体
? 并( union)
? 交( intersection)
? 差( difference)
34
数据模型 —— 构造实体几何表示( 2/5)
普通的集合运算会产生悬边、悬面等低于三维的形体
正则集合运算保证集合运算的结果仍是一个正则形体
即丢弃悬边、悬面等
A
B
A
B
普通集合的交 正则集合的交
C
悬边
C
35
数据模型 —— 构造实体几何表示( 3/5)
将物体表示成一棵二叉树,称为 CSG树
? 叶节点 ----基本体素,如立方体、圆柱体、圆环、锥体、球体等
? 中间节点 ----并、交、差正则集合运算
U*
U*— *
— *
36
数据模型 —— 构造实体几何表示( 4/5)
优点
? 表示简单、直观,无二义性
? 数据量比较小,内部数据的管理比较容易
? 形体形状容易被修改
? 可用作图形输入的一种手段
? 容易计算物体的整体性质
? 物体的有效性自动得到保证
缺点
? 表示物体的 CSG树不唯一
? 受体素种类和对体素操作种类的限制,CSG方法表示形
体的覆盖域有较大的局限性
? 形体的边界几何元素(点、边、面)隐含地表示在 CSG
中,因此,显示与绘制 CSG表示的形体需要较长的时间
? 求交计算麻烦
37
数据模型 —— 构造实体几何表示( 5/5)
基于正则形体表示的实体造型形体
? 只能表示正则的三维“体”
? 不能表示线架模型中的“线”,表面模型中
的“面”
? 但在实际应用中,有时候人们希望在系统中
也能处理低于三维的形体
于是,产生了 非正则造型技术。
要求造型系统的数据结构能统一表示线架、表面、
实体模型。
38
数据模型 —— 扫描表示 (1/6)
sweep representations
基于一个 基体 (一般为封闭的二维区域)
沿某一路径运动 而产生形体
sweep体
两个分量
? 被运动的 基体
? 基体运动的 路径
? 如果是变截面的扫描,还要给出 截面变化规律
39
数据模型 —— 扫描表示 (2/6)
根据扫描路径和方式的不同,可将 sweep体
分为以下几种类型,
? 平移 sweep体
? 旋转 sweep体
? 广义 sweep体
40
数据模型 —— 扫描表示 (3/6)
平移 sweep
? 将一个二维区域沿着一个矢量方向(线性路
径)推移,拉伸曲面
41
数据模型 —— 扫描表示 (4/6)
旋转 sweep
? 将一个二维区域绕旋转轴旋转一特定角度(如一
周),旋转曲面
旋转轴 旋转轴 旋转轴
42
数据模型 —— 扫描表示 (5/6)
广义 sweep
? 任意剖面沿着任意轨迹扫描指定的距离,
? 扫描路径可以用曲线函数来描述
? 可以沿扫描路径变化剖面的形状和大小
? 或者当移动该形状通过某空间时变化剖面相对于
扫描路径的方向
? 也称扫描曲面
扫描体的扫描路径为曲线时得到的广义 sweep体
基面 基面
(a) 等截面扫描 (b) 变截面扫描
43
数据模型 —— 扫描表示 (6/6)
优点
? 表示简单、直观
? 适合做图形输入手段
缺点
? 作几何变换困难
? 不能直接获取形体的边界信息
? 表示形体的覆盖域非常有限
44
产生背景
传统的基于几何和拓扑信息的建模方法
? 效率较低
? 需要用户懂得几何造型理论
用户需求
? 用他们熟悉的 设计特征 来对物体进行建模
? 实体造型系统需要与应用系统的集成
以机械设计为例,机械零件在实体系统中
设计完成以后,需要进行结构、应力分析、
工艺设计,加工和检验等
数据模型 —— 特征表示 (1/4)
45
为适应面向应用、面向用户的几何造型的需求
80年代末期,出现了
? 参数化、变量化的特征造型技术
? 以 Pro/ Engineering为代表的特征造型系统
? 在几何造型领域产生重要影响,给用户设计带来极
大便利
数据模型 —— 特征表示 (2/4)
46
数据模型 —— 特征表示 (3/4)
用一组特征( Feature)参数表示一组类似的
物体
特征包括形状特征、材料特征等
通常特征的形状是用若干参数来定义的
适用于工业上标准件的表示
圆锥
H
R
H
R
正方体
H
R
圆柱
47
数据模型 —— 特征表示 (4/4)
优点:
? 用户输入形体非常方便
? 在 CAD/CAM系统中,通常作为辅助的表示手

主要缺点
? 用户不能根据特征参数直接获取特征的几何元
素信息,而在对特征及在特征之间进行操作时
需要这些信息
? 表示形体的覆盖域受限于特征的种类。