第1章 几何造型 1
1.1 简介 1
1.2 边界表示法 2
1.3 为什么要用有向边 6
1.4 几何体的表示 7
1.5 插值曲线 9
1.6 共享几何体 9
1.7 内外有别 10
1.8 形状构造 11
1.9 非二边流形体和多维度模型 12
1.10 单元拓扑 13
1.11 形状的移动和缩放 14
1.12 模型管理 14
1.13 模型显示 15
第2章 关于AClS 17
2.1 概述 17
2.1.1 什么是ACIS 17
2.1.2 SAT文件 17
2.1.3 结构 18
2.1.4 造型 18
2.1.5 应用程序与ACIS的接口 18
2.1.7 辅助程序 19
2.1.6 扩展ACIS 19
2.2 ACIS结构 20
2.2.1 ACIS组件 20
2.2.2 ACIS产品 22
2.2.3 目标库 25
2.3 ACIS概念 25
2.3.1 ACIS和C++ 25
2.3.2 几何体 26
2.3.3 拓扑体 26
2.3.4 边界表示法 26
2.3.5 容限造型 26
2.3.8 维度 27
2.3.6 实体和模型对象 27
2.3.7 属性 27
2.3.9 模型空间和参数空间 28
2.3.10 连续性 28
第3章 几何与拓扑 30
3.1 几何体 30
3.1.1 曲线和曲面的类型 30
3.1.2 构造几何体和模型几何体 31
3.1.3 抽象和具体几何体 31
3.2 曲线和曲面 32
3.2.1 曲线 32
3.2.2 曲面 34
3.2.3 参数空间曲线和曲面 36
3.2.4 曲线和曲面的连续性 37
3.2.5 曲线和曲面延伸 37
3.2.6 曲线和曲面的分割 37
3.3 拓扑 37
3.3.1 拓扑和边界表示法 38
3.3.2 体 39
3.3.3 块 39
3.3.4 壳 39
3.3.5 子壳 40
3.3.6 面 41
3.3.9 有向边 42
3.3.7 环 42
3.3.8 线 42
3.3.10 边 43
3.3.11 顶点 44
3.3.12 容限造型 44
3.4 实体对象 45
第4章 实体属性 48
4.1 ATTRIB类 48
4.1.1 ATTRIB类的派生类 49
4.1.2 属性的分割、融合以及变换 49
4.2.1 偏差 50
4.2 ACIS的偏差和单位 50
4.2.2 动态范围 51
4.2.3 单位和模型数据转换 51
4.2.4 偏差变量的比例缩放 52
第5章 规则与图论 53
5.1 规则 53
5.1.1 API和字符表达式 53
5.1.2 规则类 54
5.1.3 规则中的数值工具 54
5.1.4 用规则产生几何体 55
5.2 图论 57
5.2.1 图的基本概念 58
5.2.2 图的布尔运算 60
5.2.3 边和顶点的类型 60
5.2.4 有序图 61
5.2.5 产生子图 62
第6章 几何造型方法 64
6.1 曲面技术 64
6.1.1 覆盖 64
6.1.2 蒙面和放样 65
6.1.3 网格面 69
6.2.1 规则扫掠 70
6.2 扫掠 70
6.2.2 垂直扫掠 72
6.2.3 刚性扫掠 72
6.3 混合 72
6.3.1 体积增加与减少 73
6.3.2 构造混合曲面 73
6.3.3 滚动球 74
6.3.4 混合几何体 74
6.3.5 混合拓扑 78
6.3.6 封顶 79
6.3.7 多边混合 79
6.3.8 顶点混合顺序 82
6.3.9 面-面混合 84
6.3.10 局部和全局干涉检查 84
6.3.11 薄面之间的混合 85
6.3.12 混合属性 86
6.3.13 混合预览 86
6.4 布尔运算 86
6.4.1 求交器 87
6.4.2 布尔运算 87
6.4.3 缝合 91
7.1 混合功能 93
7.1.1 横截面半径 93
第7章 高级曲面混台 93
7.1.2 拓扑 94
7.2 混合比较 96
7.3 混合属性 97
7.4 混合过程 97
7.5 有序边混合 98
7.6 实体/实体混合 98
7.6.1 混合过渡 99
7.6.2 封顶的限制 102
7.7.2 指示属性 103
7.7.1 混合的中断和封顶 103
7.7 高级混合中的几个特殊情况 103
7.6.3 局限性 103
7.7.3 边顺序列 105
7.7.4 尖端混合 105
7.7.5 复杂顶点混合 106
第8章 变形造型技术 107
8.1 变形造型原理 107
8.2 变形的类型 108
8.2.1 变形曲面 108
8.2.2 变形曲线 109
8.2.3 雕塑 110
8.3.2 数据管理 115
8.3 ACIS中的变形造型 115
8.3.1 接口 115
8.4 SDM组件内核和变形造型库 116
第9章 图形交互 117
9.1 观察和着色 117
9.1.1 着色 117
9.1.2 视窗 117
9.1.3 着色管理 118
9.2 着色器类型 118
9.2.1 动态着色器 118
9.3.1 离散密度 119
9.3 离散面 119
9.2.2 静态着色器 119
9.3.2 网格管理 120
9.3.3 自适应离散面 120
9.4 交互线消隐 121
9.5 拾取和过滤 121
9.6 橡皮线 122
9.7 栅格管理 122
9.8 可视化管理 123
9.8.1 基于组件的结构 123
9.8.2 分层结构 123
9.8.6 概念和术语 124
9.8.5 底层着色器的控制 124
9.8.3 数据格式 124
9.8.4 自定义对象 124
9.8.7 结构 125
9.9 着色器 127
9.9.1 高级着色 127
9.9.2 基本着色 127
9.9.3 OpenGL着色 128
9.9.4 着色基础组件*1289.9.5 渲染 128
9.9.6 着色器比较 129
9.9.8 视图控制 140
9.9.7 模型数据和实体方向 140
第10章 模型管理与模型分析 141
10.1 模型管理 141
10.1.1 SAT文件的保存与打开 141
10.1.2 零件管理 141
10.1.3 历史树和回溯 142
10.1.4 永久标识符 144
10.1.5 特征名称支持 145
10.2 模型分析 146
10.2.1 对象关系 146
10.2.5 单元拓扑 147
10.2.4 几何分析 147
10.2.2 物理特性 147
10.2.3 光线测试 147
第11章 ACIS中的C++技术 148
11.1 面向对象编程 148
11.2 类型、指针和引用 149
11.2.1 类型 149
11.2.2 指针 150
11.2.3 强制类型转换 151
11.2.4 引用 152
11.2.5 常量 152
11.3 枚举 154
11.4.2 默认参数 155
11.4 C++函数 155
11.4.1 函数原型 155
11.4.3 引用参数 156
11.4.4 指针引用参数 157
11.4.5 NULL引用参数 158
11.5 类的术语 159
11.5.1 类成员的访问标识符 159
11.5.2 继承和虚函数 160
11.5.3 使用构造函数产生对象 161
11.6 控制 161
11.6.2 for循环 162
11.6.1 while循环 162
11.7 ACIS类 163
11.7.1 回溯 164
11.7.2 保存、恢复和实体标志功能 164
11.7.3 ACIS中的属性 166
11.7.4 ENTITY对象的删除 166
11.8 组件结构 167
11.9 编程接口 168
第12章 Scheme语言 170
12.1 ACIS中的Scheme 170
12.1.3 Scheme过程 171
12.1.2 Elk Scheme语言 171
12.1.1 Scheme解释器 171
12.1.4 Scheme扩展 172
12.1.5 ACIS中的Scheme解释器 172
12.2 Scheme程序设计 174
12.2.1 基础 174
12.2.2 表达式 175
12.2.3 外部描述符 176
12.2.4 变量 177
12.2.5 函数 178
12.2.6 条件语句 178
12.2.7 列表和递归 180
12.2.8 for-each结构 182
12.2.9 局部变量 183
12.2.10 Set! 184
12.2.11 lambda 184
12.2.12 begin 185
12.2.13 do循环 185
12.2.14 定义 186
第13章 基本造型 188
13.1 用API函数生成基本几何体 188
13.1.1 编写健全的ACIS程序 190
13.1.2 构造基本几何体 192
13.1.3 用ACIS Scheme产生基本几何体 193
13.2 模型文件的读写 194
13.2.1 写SAT文件 195
13.2.2 读SAT文件 197
13.3 实体列表 198
13.3.1 实体类型转换 199
13.3.2 构造和稀构 199
13.3.3 删除标记 199
13.3.4 ENTITY LIST参数 200
13.3.5 Scheme中的读写操作 201
13.4 用布尔运算构造模型 202
13.4.1 数学类 203
13.4.2 ACIS Scheme中的集合运算 204
13.4.3 布尔运算 204
13.5 计算质量属性 205
13.6 用扫掠方法构造几何体 208
13.7 混合 211
13.8 截面 214
13.9 坐标系 218
13.10 零件管理 221
第14章 直接接口 222
14.1 计算面的数量 222
14.2 访问面的参数 224
14.3 访问边的参数 226
14.4 顶点坐标 229
14.5 构造基本几何体 231
14.6 访问参数曲面 235
14.7 边的搜索算法 237
14.8 面的方向标志与几何体共享 239
第15章 实体求交和布尔运算 243
15.1 点的比较 243
15.2 几何求交 245
15.3 边-面求交 248
15.4 面-面求交 250
15.5 布尔运算 253
15.6 构造交图 256
15.7 交线映射与面的分割 259
15.8 缝合 260
15.9 快速求交 263
15.10 非正则布尔运算 265
15.11 选择布尔运算 267
第16章 真实感图形显示 272
16.1 光线跟踪 273
16.2 构造离散面 275
16.3 线消隐 279
16.5 用C++进行真实感显示 282
16.4 精确线消隐 282
16.6 用Scheme进行真实感显示 285
16.7 高级着色功能 288
16.8 视图旋转 290
16.9 产生PostScript图像 291
16.10 交互功能 292
第17章 样条曲面 294
17.1 与样条有关的概念 294
17.2 Bezier曲线 295
17.2.1 定义 296
17.2.2 曲线挤接 297
17.2.3 Bezier曲线的矩阵形式 298
17.2.4 Bezier曲线的递推定义 299
17.2.5 构造Bezier曲线 299
17.3 B样条曲线 300
17.4 B样条混合函数 304
17.5 有理B样条曲线 308
17.6 B样条曲面 310
17.7 反算控制多边形顶点 312
17.8 变形曲面 314
17.9 蒙面与放样 316
17.10 网格曲面 318
第18章 反悔操作 321
18.1 BULLETIN的统计 322
18.2 产生DELTA STATE 325
18.3 造型器的回溯 327
18.4 其他功能 330
18.4.1 零件历史管理 330
18.4.2 历史的保存与恢复 330
第19章 规则与图的应用 332
19.1 规则表达式 332
19.2 C++中的规则表达式 334
19.3 平面偏移 338
19.4 规则偏移的实际应用 339
19.5 螺旋偏移 343
19.6 基本扫掠 345
19.7 高级扫掠 348
19.8 用规则定义边 352
19.9 用规则定义面 355
19.10 空间弯曲与缩放 359
19.10.1 锥形变形规则 361
19.10.2 扭转变形规则 362
19.11 图的表示与分析 363
19.11.1 VERTEX-EDGE图 364
19.11.2 FACE-EDGE图 364
19.11.4 图的分析 365
19.11.3 CELL邻接图 365
第20章 模型编辑 369
20.1 一个简单的边界重构 369
20.2 局部操作 374
20.2.1 实体的创建和删除 375
20.2.2 自相交 376
20.2.3 多解 378
20.3 偏移与抽壳 380
20.4 混合 382
20.5 变半径边混合 384
20.6 顶点混合 386
20.7 实体/实体混合 387
20.8 修复 388
第21章 属性 395
21.1 字符串属性 396
21.2 通用属性 397
21.3 自定义属性 401
21.4 属性的缺陷 408
第22章 扩展ACIS 409
22.1 自定义实体 409
22.2 自定义API函数 421
22.3 自定义Scheme扩展 424
23.1 Outcome类 426
第23章 程序调试与出错处理 426
23.2 错误跟踪宏 428
23.3 实体调试函数 430
第24章 ACIS辅助开发工具 433
24.1 MFC与AMFC 433
24.1.1 鼠标事件 433
24.1.2 重载new和delete函数 435
24.2 用ACIS AppWizard生成应用程序框架 436
24.3 应用程序框架的功能 438
24.4 扩充应用程序的功能 439
附录A 程序编译方法 441
附录B ACIS数据结构*444+参考文献 467