第1部分 基础知识 1
第1章 Civil 3D二次开发简介 2
1.1 了解AutoCAD Civil 3D及其APIs 2
1.2 Civil 3D二次开发的意义 3
1.3 Civil 3D二次开发所需的条件 3
1.4 从哪儿开始 4
第2章 开发环境的配置 7
2.1 编译环境 7
2.2.NET项目设置 8
2.2.1 手动创建解决方案及项目 8
2.2.2 利用向导创建解决方案和项目 10
2.3 混合项目设置 11
2.4 定义命令 12
2.5 编译 13
2.6 加载及运行 13
2.6.1 手动加载程序及运行命令 13
2.6.2 通过工具空间加载并运行 14
2.6.3 通过注册表按需加载 15
2.7 帮助文档 17
2.7.1 帮助文档 18
2.7.2 如何查看帮助文档 18
第3章 程序设计基础 20
3.1 数据类型和操作符 20
3.1.1 常量与变量 20
3.1.2 简单数据类型 21
3.1.3 算数运算符 22
3.1.4 关系与逻辑运算符 23
3.1.5 值类型与引用类型 24
3.2 方法 25
3.2.1 方法签名 25
3.2.2 方法访问 26
3.2.3 方法参数 26
3.2.4 返回值 27
3.2.5 通过引用传递参数 27
3.2.6 方法的递归调用 29
3.3 选择语句 30
3.3.1 if语句 30
3.3.2 switch语句 32
3.4 循环语句 32
3.4.1 for循环 32
3.4.2 foreach循环 33
3.4.3 while和do while循环 34
3.5 字符串的操作 35
3.5.1 字符串的比较 35
3.5.2 字符串的拆分 35
3.5.3 获取指定字符串的位置 36
3.5.4 字符串的提取 37
3.5.5 字符替换 37
3.5.6 大小写转换 38
3.5.7 判断是否存在指定字符 38
3.5.8 插入 38
3.5.9 删除 38
3.5.10 清空空格及指定字符 38
3.6 集合 39
3.6.1 集合中元素数量 40
3.6.2 遍历集合 40
3.7 类型转换 42
3.7.1 隐式转换 42
3.7.2 显式转换 42
3.7.3 字符串与数字 43
3.8 命名空间 45
3.8.1 命名空间的用途 46
3.8.2 导入命名空间 47
3.8.3 AutoCAD及Civil 3D命名空间简介 49
第2部分 基本操作 51
第4章 访问数据库中的对象 52
4.1 了解AutoCAD对象层次结构 53
4.1.1 应用程序 53
4.1.2 文档 54
4.1.3 数据库 56
4.1.4 符号表 56
4.1.5 块表 57
4.1.6 块表记录 58
4.1.7 字典 63
4.2 了解Civil 3D对象层次结构 66
4.2.1 应用程序 67
4.2.2 文档 67
4.2.3 集合 67
4.3 由ObjectId获取Object 68
4.4 事务(Transaction) 70
4.5 捕捉异常 71
4.6 人机交互 72
4.6.1 命令行输出 73
4.6.2 输入整数 73
4.6.3 输入实数及关键字 74
4.6.4 拾取点 75
4.6.5 拾取角度 76
4.6.6 拾取单个实体 77
4.6.7 拾取选择集 79
第5章 创建对象 82
5.1 创建AutoCAD对象 82
5.1.1 创建直线 83
5.1.2 创建图层 86
5.1.3 创建布局及视口 88
5.2 创建Civil 3D对象 95
5.2.1 创建几何空间点 96
5.2.2 创建曲面 100
5.2.3 创建采样线 104
5.2.4 小结 109
5.3 创建Civil 3D样式 110
5.3.1 创建点样式 110
5.3.2 创建曲面样式 113
5.3.3 创建标签样式 115
5.3.4 小结 117
第6章 编辑对象 120
6.1 编辑AutoCAD对象 120
6.1.1 修改对象的属性 121
6.1.2 复制、删除、分解对象 124
6.1.3 平移、旋转、缩放对象 126
6.1.4 多段线修改 135
6.2 编辑Civil 3D对象 141
6.2.1 修改曲面顶点 142
6.2.2 修改纵断面 144
6.2.3 拆分道路区域 147
6.3 编辑Civil 3D设定 150
6.3.1 访问各种设定 150
6.3.2 编辑要素设定 151
6.3.3 编辑命令设定 152
6.3.4 使用属性字段 153
第3部分 进阶应用 155
第7章 对象信息的提取 156
7.1 创建标签 156
7.2 数据插入表格 161
7.2.1 获取表格样式 162
7.2.2 创建表头 164
7.2.3 填充数据 167
7.2.4 插入表格 170
7.2.5 获取桩号文本 172
7.3 输出数据到外部文件 173
第8章 用户界面的应用 177
8.1 自定义对话框 177
8.1.1 界面设计 178
8.1.2 代码实现 184
8.1.3 调用对话框 187
8.2 功能区 190
8.2.1 了解功能区 190
8.2.2 将功能区面板添加至已有选项卡 192
8.2.3 将功能区面板添加至上下文选项卡 197
8.3 面板 200
8.3.1 了解Palette 200
8.3.2 创建简单的WPF用户控件 201
8.3.3 创建面板 202
8.4 上下文菜单 204
第9章 程序部署 206
9.1 自动加载简介 206
9.2 BUNDLE软件包 207
9.2.1 文件夹结构 207
9.2.2 XML文件基础知识 210
9.3 MSI安装程序 211
9.3.1 组织安装程序 212
9.3.2 指定应用程序数据 213
9.3.3 配置目标系统 214
9.3.4 定制安装程序界面 215
9.3.5 定义安装需求及行为 215
9.3.6 准备发布 217
第4部分 相关主题 221
第10章 COM互操作的应用 222
10.1 了解COM API 222
10.2 实现.NET与COM互操作 223
10.2.1 根对象及COM中的基本概念 224
10.2.2 访问Civil 3D对象 227
10.3 COM对象与.NET对象的转换 232
10.3.1 .NET对象转换为COM对象 232
10.3.2 COM对象转换为.NET对象 233
第11章 C++API的应用 235
11.1 了解CustomDraw 235
11.2 自定义纵断面竖轴 237
11.3 绘制挡墙分隔缝 244
第12章 LINQ的应用 249
12.1 了解LINQ 249
12.1.1 匿名类型 249
12.1.2 扩展方法 251
12.1.3 Lambda表达式 252
12.2 LINQ功能初体验 254
12.2.1 排序 254
12.2.2 筛选 255
12.2.3 数据投影 256
12.2.4 分组 256
12.3 针对对象查询 257
第13章 创建部件 259
13.1 部件程序的基本结构 259
13.1.1 模板类SATemplate 259
13.1.2 CorridorState对象 261
13.1.3 支持文件 261
13.2 创建自定义部件 262
13.3 创建.atc文件 269
13.4 通过.pkt文件加载部件 272
附录A 视频部分说明及下载地址 273
索引 274
参考文献 276