第1篇 AutoCAD ObjectARX开发教程第1章 AuotCAD开发概览 3
1.1 AutoCAD开发概述 3
1.1.1 AutoCAD的开发接口 4
1.1.2 ObjectARX开发环境 6
1.1.3 ObjectARX程序结构 7
1.2 ObjectARX工程 9
1.2.1 手动创建ObjectARX工程 9
1.2.2 程序的加载、运行和卸载 13
1.2.3 程序的调试 13
1.3 ObjectARX向导的安装和使用 14
1.4 练习 15
第2章 用户交互 16
2.1 概述 16
2.2 用户输入 16
2.3 结果缓冲区 20
2.4 调用AutoCAD内部命令 21
2.5 选择集 21
2.5.1 创建选择集 21
2.5.2 过滤选择集 22
2.5.3 操作选择集 23
2.6 练习 24
第3章 AutoCAD数据库 25
3.1 AutoCAD数据库介绍 25
3.1.1 AutoCAD的主要组成 25
3.1.2 数据库操作 26
3.2 符号表 26
3.2.1 符号表概述 26
3.2.2 符号表操作 27
3.2.3 遍历符号表 29
3.3 练习 30
第4章 实体对象 32
4.1 实体对象介绍 32
4.2 对象标识 34
4.3 对象的类型判断 36
4.4 实体操作 36
4.4.1 实体操作方式 36
4.4.2 实体的删除 39
4.4.3 复杂实体的操作 39
4.5 实体属性 40
4.5.1 实体颜色 40
4.5.2 实体线型 41
4.5.3 实体线型比例 42
4.5.4 实体可见性 42
4.5.5 实体图层 43
4.6 块定义和块引用 43
4.7 练习 45
第5章 扩充数据 46
5.1 扩展数据 46
5.2 扩展词典 50
5.2.1 命名对象词典 51
5.2.2 数据库对象的扩展词典 55
5.3 练习 57
第6章 几何类 58
6.1 几何类概述 58
6.2 三维几何类 58
6.2.1 三维点AcGePoint3d 58
6.2.2 三维向量AcGeVector3d 59
6.2.3 三维矩阵AcGeMatrix3d 60
6.2.4 误差精度AcGeTol 61
6.2.5 三维几何实体 61
6.3 几何类应用 63
6.4 练习 64
第7章 用户界面 65
7.1 ObjectARX应用程序中使用MFC 65
7.2 模式和非模式对话框 66
7.2.1 模式对话框 66
7.2.2 无模式对话框 71
7.3 练习 74
第8章 自定义对象 75
8.1 自定义对象 75
8.2 从AcDbObject派生 78
8.3 从AcDbEntity派生 85
8.3.1 实现对象捕捉功能 86
8.3.2 自定义实体的夹点 88
8.3.3 自定义实体的拉伸点 89
8.3.4 自定义实体的几何变换 90
8.3.5 自定义实体的相交函数 90
8.3.6 自定义实体的分解 92
8.4 练习 96
第9章 反应器 98
9.1 通知消息 98
9.2 反应器概述 99
9.3 反应器的分类 99
9.4 反应器的使用 99
9.4.1 编辑反应器 100
9.4.2 数据库反应器 102
9.5 练习 104
第2篇 AutoCAD.NET开发教程第10章 AutoCAD.NET API概览 107
10.1 AutoCAD.NET API概述 107
10.2 .NET简介 107
10.3 程序集和命名空间 109
10.4 创建工程 110
10.5 程序的加载和调试 112
10.6 练习 113
第11章 用户交互 114
11.1 用户交互概述 114
11.2 选择集处理 116
11.3 练习 118
第12章 AutoCAD数据库 119
12.1 AutoCAD数据库 119
12.2 事务介绍和使用 120
12.3 符号表 121
12.4 练习 123
第13章 实体对象 124
13.1 实体概述 124
13.2 对象标识 125
13.2.1 句柄Handle 125
13.2.2 ObjectId 126
13.3 类型识别 126
13.4 实体属性 127
13.4.1 实体颜色 127
13.4.2 实体线型 128
13.5 块定义和块参照 128
13.6 练习 130
第14章 词典和扩展数据 132
14.1 扩展数据XData 132
14.1.1 结果缓存 132
14.1.2 使用扩展数据(XData) 133
14.2 词典 135
14.2.1 命名对象词典 136
14.2.2 对象的扩展词典 138
14.3 练习 141
第15章 用户界面 142
15.1 加载程序时进行初始化 142
15.2 自定义上下文菜单 143
15.3 有模式窗体 145
15.4 自定义工具面板和无模式窗体 147
15.5 选项对话框页 149
15.6 练习 150
第16章 AutoCAD中的事件 152
16.1 C#中的委托和事件 152
16.2 .NET中的AutoCAD事件 153
16.3 使用AutoCAD事件 154
16.4 练习 159
第3篇 MapGuide开发教程 163
第17章 MapGuide概览 163
17.1 MapGuide系统架构 164
17.2 MapGuide系统组成 165
17.2.1 MapGuide服务器 165
17.2.2 MapGuide网络扩展(Web Extension) 165
17.2.3 MapGuide Studio 166
17.2.4 MapGuide Viewer 166
17.3 MapGuide站点管理器 167
17.4 MapGuide Studio的使用 170
17.4.1 配置和载入数据 171
17.4.2 创建图层 172
17.4.3 创建地图 173
17.4.4 把地图发布到Internet 173
17.5 练习 175
第18章 MapGuide API介绍 176
18.1 概述 176
18.2 MapGuide Viewer API 177
18.2.1 Main frame 178
18.2.2 Map Frame 179
18.3 MapGuide Web API 180
18.4 使用ASP.NET开发 181
18.5 定制命令 185
18.6 练习 188
第19章 站点和资源管理 189
19.1 站点管理 189
19.1.1 会话 189
19.1.2 站点服务 190
19.1.3 程序开发过程 192
19.2 仓储和资源 194
19.2.1 仓储 194
19.2.2 资源和资源数据 194
19.2.3 资源识别符 195
19.3 资源管理 196
19.3.1 管理站点资源 197
19.3.2 管理站点的资源数据 202
19.4 练习 204
第20章 层和地图 205
20.1 层和层组 205
20.1.1 层 205
20.1.2 层的基本属性 207
20.1.3 层组 209
20.2 地图 211
20.2.1 获取地图 211
20.2.2 地图操作 212
20.3 创建新层 213
20.3.1 向地图中添加层 213
20.3.2 动态创建层 214
20.4 练习 218
第21章 要素操作 219
21.1 要素服务 219
21.2 FDO概述 220
21.2.1 FDO介绍 220
21.2.2 FDO的性能 222
21.3 要素和要素源 224
21.3.1 要素源 224
21.3.2 要素源标识 225
21.3.3 要素模式 225
21.4 要素查询 225
21.4.1 要素查询 225
21.4.2 要素读取器(MgFeature Reader) 227
21.4.3 查询过滤条件 231
21.5 选择集及其操作 233
21.5.1 当前选择集 234
21.5.2 处理选择集 234
21.6 要素类 238
21.6.1 要素类介绍 238
21.6.2 要素属性 239
21.6.3 创建要素类 241
21.7 要素操作 243
21.8 几何模型 244
21.8.1 空间数据 244
21.8.2 几何对象 247
21.8.3 几何对象的创建 247
21.9 坐标系和测距 249
21.9.1 坐标系 249
21.9.2 测距 252
21.10 用户交互创建几何对象 252
21.10.1 数字化几何对象 252
21.10.2 用户交互创建临时要素层 253
21.11 练习 260
第22章 定制输出 262
22.1 输出为图像 262
22.2 输出为DWF 265
22.2.1 创建eMap格式DWF文件 265
22.2.2 创建ePlot格式的DWF文件 266
22.3 练习 268
第23章 与其他系统整合 269
23.1 网络服务 269
23.2 MapGuide和Google Map集成 273
23.3 MapGuide和Google Earth集成 277
23.4 练习 280
第4篇 AutoCAD Map 3D开发教程第24章 AutoCAD Map 3D开发概览 283
24.1 AutoCAD Map 3D的开发简介 283
24.1.1 AutoCAD Map 3D API发展状况 283
24.1.2 AutoCAD Map 3D .NET API的命名空间 284
24.2 AutoCAD Map 3D的开发过程 285
24.2.1 创建工程 285
24.2.2 使用.NET语言开发 287
24.2.3 调试工程 288
24.3 练习 290
第25章 图形集及查询 291
25.1 图形集 291
25.1.1 概述 291
25.1.2 图形的附着与分离 292
25.1.3 别名机制 293
25.1.4 事件响应 295
25.2 查询 296
25.3 练习 299
第26章 对象数据 301
26.1 概述 301
26.2 表 302
26.3 字段定义 302
26.4 记录 303
26.5 对象数据操作 303
26.5.1 附着对象数据 303
26.5.2 访问对象数据 303
26.5.3 更新和删除记录集合 304
26.6 练习 305
第27章 注释 306
27.1 注释 306
27.1.1 概述 306
27.1.2 特性 307
27.1.3 注释样板 307
27.2 注释操作 309
27.2.1 插入注释 309
27.2.2 更新注释 309
27.2.3 注释重载 309
27.3 练习 310
第28章 对象过滤 311
28.1 对象过滤 311
28.1.1 概述 311
28.1.2 基本过滤 312
28.1.3 自定义过滤 312
28.2 练习 314
第29章 显示管理器 315
29.1 显示管理器 315
29.1.1 地图工程 316
29.1.2 要素 317
29.1.3 数据源 318
29.1.4 样式 319
29.1.5 创建新地图 320
29.2 练习 320
第30章 拓扑 321
30.1 拓扑 321
30.1.1 几何拓扑模型 321
30.1.2 拓扑的API概述 322
30.1.3 创建拓扑 324
30.2 拓扑分析 325
30.2.1 寻找最短/最优路径 325
30.2.2 叠加分析 327
30.3 练习 329
第31章 输入/输出 330
31.1 概述 330
31.1.1 输入/输出API概述 331
31.1.2 输入设置 331
31.1.3 输入 332
31.1.4 输出 333
31.2 练习 335
第32章 Geospatial Platform API 337
32.1 Geospatial Platform API和MapGuide的关系 337
32.2 开发环境 338
32.3 Geospatial Platform API的功能 339
32.3.1 管理资源 339
32.3.2 处理要素 340
32.3.3 管理地图和地图层 342
32.3.4 操作几何模型 346
32.4 练习 347
第5篇 AutoCAD Civil 3D开发教程第33章 AutoCAD Civil 3D开发概览 351
33.1 开发概述 351
33.2 开发环境和开发语言 352
33.3 使用VBA开发 352
33.4 练习 355
第34章 样式 356
34.1 标签和标签样式 356
34.2 点样式 359
34.3 曲面样式 360
34.4 练习 361
第35章 点 362
35.1 对象模型 362
35.2 点 363
35.2.1 使用点的集合 363
35.2.2 访问文件中的点数据 364
35.2.3 使用点对象 365
35.2.4 使用点的描述码 366
35.3 点编组 368
35.3.1 创建点编组 368
35.3.2 用QueryBuilder向点编组中添加点对象 368
35.3.3 使用点编组 369
35.4 练习 370
第36章 曲面 371
36.1 对象模型 371
36.2 使用曲面集合 371
36.3 创建曲面 373
36.3.1 从LandXML文件创建曲面 373
36.3.2 创建三角网(TIN)曲面 373
36.3.3 创建栅格曲面 374
36.3.4 创建体量曲面 375
36.4 编辑曲面对象 376
36.4.1 添加边界 376
36.4.2 从DEM文件中添加数据到现有曲面 378
36.4.3 使用快照来改善曲面的执行效能 378
36.5 编辑三角网(TIN)曲面 378
36.5.1 添加点数据到TIN曲面 378
36.5.2 添加特征线到TIN曲面 380
36.5.3 添加等高线到TIN曲面 382
36.6 执行曲面分析 383
36.7 练习 384
第37章 场地和地块 386
37.1 对象模型 386
37.2 场地 386
37.2.1 创建场地 386
37.2.2 使用场地 387
37.3 地块 388
37.3.1 使用地块线段创建地块对象 388
37.3.2 关于地块线段 388
37.3.3 确定地块环路 389
37.4 练习 390
第38章 路线 391
38.1 对象模型 391
38.2 路线基本操作 391
38.2.1 创建一条路线 391
38.2.2 使用图元定义一条路线的布线位置 393
38.2.3 确定路线内部的图元对象 394
38.3 路线属性 394
38.3.1 用断链调整路线里程 394
38.3.2 创建里程集合 395
38.3.3 设定设计速度 396
38.3.4 设置超高 396
38.4 练习 397
第39章 纵断面 398
39.1 对象模型 398
39.2 纵断面 398
39.3 纵断面视图 401
39.4 练习 402
第40章 横断面 403
40.1 对象模型 403
40.2 采样线 403
40.2.1 创建采样线编组 404
40.2.2 定义采样线 405
40.3 横断面 407
40.3.1 创建横断面 407
40.3.2 横断面应用 407
40.4 横断面视图 408
40.5 练习 409
第41章 道路 410
41.1 道路程序对象 410
41.2 道路对象 411
41.2.1 获取道路对象 412
41.2.2 创建道路对象 412
41.3 道路基准线 412
41.3.1 获取道路基准线区域 414
41.3.2 访问和修改基准线里程 414
41.3.3 偏移路线 414
41.4 装配和部件 415
41.5 道路要素线 417
41.6 道路曲面 419
41.7 练习 422
第42章 自定义部件 423
42.1 设计自定义部件 423
42.1.1 命名自定义部件 423
42.1.2 附着和插入方法 424
42.1.3 用户定义的参数与硬编码参数 424
42.1.4 输入参数的类型 424
42.1.5 超高行为和部件 425
42.1.6 创建部件帮助文件 425
42.2 创建自定义部件 426
42.2.1 部件程序模块介绍 426
42.2.2 基本过渡车道范例 428
42.3 安装自定义部件 432
42.3.1 创建部件工具目录 433
42.3.2 创建工具目录ATC文件 433
42.3.3 创建工具目录注册表文件 434
42.3.4 创建工具目录封面 435
42.4 练习 435
第43章 管网 436
43.1 管网程序对象 436
43.2 环境设置 438
43.3 零件特性 438
43.4 管网对象 439
43.5 管道对象 440
43.6 结构对象 441
43.7 练习 441
第44章 测量 442
44.1 程序对象 442
44.2 测量设置 444
44.2.1 环境设置 444
44.2.2 用户设置 444
44.3 测量设备数据库 445
44.4 项目 445
44.5 测量网络 446
44.5.1 添加控制点 447
44.5.2 创建方向 447
44.5.3 创建非控制点 448
44.5.4 创建测量网络的设置 448
44.5.5 创建导线测量 449
44.6 图形对象 449
44.7 练习 451
第45章 CustomDraw 452
45.1 CustomDraw介绍和实现原理 452
45.2 CustomDraw开发实例 453
45.3 练习 457
第6篇 Revit开发教程 461
第46章 Revit开发概览 461
46.1 Revit及Revit API简介 461
46.2 API使用限制 462
46.2.1 API使用限制 462
46.2.2 限制API使用的部分原因 462
46.2.3 普通用户模式下如何使用API应用程序 462
46.3 获取API SDK 462
46.4 如何使用帮助文档 464
46.5 练习 464
第47章 Revit开发基础知识 465
47.1 概述 465
47.2 创建外部命令 466
47.2.1 概述 466
47.2.2 步骤 466
47.2.3 实例 466
47.3 高亮显示错误元素 471
47.3.1 概述 471
47.3.2 步骤 471
47.3.3 实例 472
47.4 创建用户自定义菜单 472
47.4.1 概述 472
47.4.2 步骤 473
47.4.3 实例 473
47.5 创建用户自定义工具条 474
47.5.1 概述 474
47.5.2 实例 474
47.6 响应Revit内部事件 475
47.6.1 概述 475
47.6.2 步骤 475
47.6.3 实例 476
47.7 练习 477
第48章 获取Revit对象 478
48.1 获取应用程序句柄 478
48.1.1 概述 478
48.1.2 重要属性和方法 478
48.1.3 实例 479
48.2 获取当前活动文档或其他打开文档 479
48.2.1 概述 479
48.2.2 重要属性及方法 480
48.2.3 实例 480
48.3 获取文档选择集 480
48.3.1 概述 480
48.3.2 重要属性和方法 481
48.3.3 实例 481
48.4 遍历文档所有元素 481
48.4.1 概述 481
48.4.2 重要属性和方法 482
48.4.3 实例 482
48.5 获取文档的各种类型集 483
48.5.1 概述 483
48.5.2 重要属性和方法 483
48.5.3 实例 483
48.6 练习 484
第49章 获取或设置Revit对象的属性 485
49.1 Element 485
49.1.1 概述 485
49.1.2 重要属性和方法 486
49.2 获取或设置对象参数 486
49.2.1 概述 486
49.2.2 重要属性和方法 487
49.2.3 实例 487
49.3 获取对象类别及名称 489
49.3.1 概述 489
49.3.2 重要属性和方法 489
49.3.3 实例 490
49.4 Family(族)及FamilySymbol 490
49.4.1 概述 490
49.4.2 重要属性和方法 491
49.4.3 实例 491
49.5 FamilyInstance 492
49.5.1 概述 492
49.5.2 重要属性和方法 492
49.5.3 实例 493
49.6 Room 494
49.6.1 概述 494
49.6.2 重要属性 494
49.6.3 实例 494
49.7 View 495
49.7.1 概述 495
49.7.2 重要属性和方法 495
49.7.3 实例 496
49.8 Wall 497
49.9 Face 497
49.9.1 概述 497
49.9.2 重要属性和方法 497
49.9.3 实例 498
49.10 Edge 499
49.11 练习 499
第50章 创建Revit对象 500
50.1 创建直线/圆弧/颜色等 500
50.1.1 概述 500
50.1.2 创建直线 501
50.1.3 创建圆弧 502
50.1.4 创建颜色 503
50.2 创建墙/地板/房间等 503
50.2.1 创建墙 503
50.2.2 创建地板 505
50.2.3 创建房间 506
50.3 创建FamilyInstance 507
50.3.1 概述 507
50.3.2 实例 507
50.4 创建视图相关对象 508
50.4.1 概述 508
50.4.2 实例 508
50.5 创建尺寸标注 509
50.5.1 概述 509
50.5.2 实例 509
50.6 创建其他更多对象 510
50.7 练习 511
第51章 打印及导入导出 512
51.1 打印一个视图 512
51.1.1 概述 512
51.1.2 实例 512
51.2 打印所有视图 513
51.2.1 概述 513
51.2.2 实例 513
51.3 导入外部对象 514
51.3.1 概述 514
51.3.2 导入方法 514
51.3.3 实例 514
51.4 导出Revit对象 515
51.4.1 概述 515
51.4.2 导出方法 515
51.4.3 实例 515
51.5 练习 516
第52章 使用分析模型(仅对Structure) 517
52.1 AnalyticalModel 517
52.1.1 概述 517
52.1.2 实例 517
52.2 AnalyticalSupportData和AnalyticalSupportInfo 518
52.2.1 重要属性 518
52.2.2 实例 519
52.3 练习 520
第7篇 Inventor开发教程 523
第53章 Inventor开发概览 523
53.1 概述 523
53.1.1 Inventor API概述 523
53.1.2 Inventor API的访问方法 524
53.1.3 自动化编程基础 526
53.2 编写第一个插件程序 528
53.2.1 创建插件项目 528
53.2.2 添加基本功能 529
53.2.3 在Inventor中测试编写的插件 530
53.3 练习 532
第54章 用户界面的定制开发 533
54.1 概述 533
54.2 用于界面定制的API 536
54.2.1 ButtonDefinition 536
54.2.2 命令栏和弹出控件 537
54.2.3 环境 542
54.2.4 浏览器 548
54.3 自定义用户界面 555
54.3.1 插件程序的界面处理 555
54.3.2 版本 555
54.4 练习 556
第55章 文档和属性 557
55.1 文档和文档特性 557
55.1.1 概述 557
55.1.2 使用API访问文档特性 557
55.2 属性和属性集 562
55.2.1 概述 562
55.2.2 属性的作用 562
55.2.3 通过API访问属性 562
55.3 练习 565
第56章 工作特征 567
56.1 工作特征介绍 567
56.2 工作特征API的作用 567
56.3 通过API使用工作特征 568
56.3.1 创建工作点 569
56.3.2 创建工作轴 569
56.3.3 创建工作平面 570
56.4 练习 571
第57章 零件建模 572
57.1 草图 572
57.1.1 概述 572
57.1.2 零件文档中的草图 575
57.1.3 零件文档中的轮廓 578
57.2 草图约束 580
57.2.1 概述 580
57.2.2 草图约束的作用 580
57.2.3 通过API使用草图约束 580
57.2.4 API与用户界面中约束的区别 583
57.3 特征 583
57.3.1 概述 583
57.3.2 特征的作用 583
57.3.3 通过API使用特征 583
57.4 边界表达——BRep 587
57.4.1 概述 587
57.4.2 边界表达数据的作用 587
57.4.3 使用BRep API 587
57.5 练习 590
第58章 装配建模 591
58.1 概述 591
58.2 零件装配的作用 591
58.3 通过API使用被装配的零件 591
58.4 BOM 595
58.4.1 概述 595
58.4.2 BOM API的作用 595
58.4.3 通过API使用BOM 595
58.5 练习 597
第59章 工程图 598
59.1 工程图 598
59.1.1 概述 598
59.1.2 工程图API的作用 598
59.1.3 通过API使用工程图 598
59.2 引出序号 601
59.2.1 概述 601
59.2.2 引用序号的作用 601
59.2.3 通过API使用引用序号 601
59.3 练习 602
第60章 选择及交互 603
60.1 概述 603
60.2 选择集 603
60.3 交互选择 605
60.4 练习 609
第61章 数据读写及格式转换 610
61.1 DataIO 610
61.1.1 概述 610
61.1.2 DataIO对象的作用 610
61.1.3 通过API使用DataIO对象 611
61.2 TranslatorAddin 612
61.2.1 概述 612
61.2.2 使用TranslatorAddin 613
61.3 练习 614
附录 术语表 616