1.1 AutoCAD 2000的新特性 1
第一章 AutoCAD 2000简介 1
1.2 AutoCAD 2000支持的编程环境 2
1.2.1 硬件环境 2
1.2.2 开发工具 2
第二章 ObjectARX入门 4
2.1 学习ObjectARX所需的知识 4
2.2 安装必要的软件 4
2.2.1 安装ObjectARX SDK 5
2.2.2 配置Microsoft Visual C++6.0 5
2.3 编写第一个ObjectARX应用程序 6
2.3.1 创建一个Project 6
2.3.3 设置连接选项 8
2.3.2 设置编译器选项 8
2.3.4 添加C++源文件 9
2.3.5 添加代码 10
2.3.6 创建一个DEF文件 13
2.3.7 加载和运行 14
2.4 ObjectARX应用程序的结构 14
2.4.1 ObjectARX应用程序的AutoCAD消息 16
2.4.2 ARX应用程序中的事件的顺序 17
2.5 注册新的命令 20
2.5.1 命令找(command stack) 20
2.5.2 查找顺序 21
2.5.3 全球(global)与地区(local)命令名 22
2.5.5 查询命令 23
2.6 示例应用程序 23
2.5.4 透明命令 23
2.7 加载一个ObjectARX应用程序 24
2.8 卸载一个ObjectARX应用程序 24
第三章 了解ObjectARX SDK 26
3.1 ObjectARX Wizard 26
3.1.1 安装ObjectARX 2000 AppWizard 26
3.1.2 使用ObjectARX 2000 AppWizard 27
3.2 ObjectARX Addln 29
3.2.1 配置ObjectARX Addln 29
3.2.2 使用ObjectARX Addln 30
3.2.3 使用ObjectARX Online Help 32
3.3 ObjectARX文档和帮助文件 32
3.4 范例 33
4.1.1 创建ARX-MFC Project 34
4.1.2 添加对话框资源 34
第四章 在ObjectARX中使用MFC 34
4.1 使用MFC对话框的ObjectARX应用程序 34
4.1.3 编写代码 36
4.2 在MFC对话框中添加ActiveX控件 37
4.2.1 添加ActiveMovie控件 37
4.2.2 添加ActiveMovie控件的代码 38
4.2.3 运行 39
第五章ObjectARX类库 41
5.1 AcRx库 41
5.2 AcEd库 42
5.3 AcDb库 43
5.4 AcGi库 44
5.5 AcGe库 44
6.1 AutoCAD 数据库 46
第六章 数据库初步 46
6.1.1 多个数据库 47
6.1.2 获取对象ID 47
6.2 重要的数据库对象 47
6.2.1 创建对象 48
6.2.2 ObjectARX代码示例 49
6.3 运行示例代码 53
第七章 数据库操作 55
7.1 初始化数据库 55
7.2 创建并向数据库中存入数据 55
7.3 存储一个数据库 56
7.4 wblock操作 56
7.4.1 从已有的数据库创建一个新的数据库 56
7.5 插入一个数据库 57
7.4.2 用实体创建一个新的数据库 57
7.6 设定当前数据库的值 58
7.6.1 数据库颜色值 58
7.6.2 数据库线型值 58
7.6.3 数据库线型比例值 58
7.6.4 数据库图层值 59
7.7 外部引用 59
7.8 数据库操作示例 60
7.9 运行示例程序 62
第八章 数据库对象 63
8.1 打开和关闭数据库对象 63
8.2 删除对象 65
8.4 添加对象指定的数据 66
8.4.1 扩展数据 66
8.3 数据库的对象所有权 66
8.4.2 扩展字典 70
8.5 删除对象 77
8.6 对象归档 78
第九章 实体 79
9.1 已定义的实体 79
9.2 实体所有权 79
9.3 AutoCAD Release 12实体 81
9.4 共同的(common)实体属性 81
9.4.1 实体颜色 82
9.4.2 实体线型 83
9.4.3 实体线型比例 83
9.4.4 实体可见性 84
9.4.5 实体图层 84
9.5 共同的实体函数 85
9.5.1 对象捕捉点 86
9.5.2 转换函数 86
9.5.3 求交点 87
9.5.4 GS标记和子实体 88
9.5.5 炸开实体 106
9.6 创建AutoCAD实体的实例 108
9.6.1 创建一个简单实体 108
9.6.2 创建一个简单的图块表记录 108
9.6.3 创建有属性定义的图块表记录 110
9.6.4 创建一个有属性的图块引用 112
9.6.5 搜索一个图块表记录 117
9.7 复合实体 120
9.7.1 创建一个复合实体 120
9.7.2 在polyline中搜索顶点 122
9.8.1 实体坐标系 124
9.8 坐标系访问 124
9.8.2 AcDb2dPolylineVertex 125
9.9 曲线函数 125
9.10 将实体与超链接相关联 128
9.10.1 AcDbHyperlink类 128
9.10.2 AcDbHyperlinkCollection类 128
9.10.3 AcDbEntityHyperlinkPE类 128
9.10.4 超链接示例 128
第十章 容器对象 132
10.1 符号表和字典的比较 132
10.2 符号表 133
10.2.1 图块表 135
10.2.2 图层表 135
10.2.3 搜索器 138
10.3 字典 140
10.3.1 组和组字典 141
10.3.2 Mline形式字典 144
10.3.3 创建一个字典 144
10.3.4 搜索字典实体 145
10.4 Xrecord 147
10.4.1 Xrecord的DXF组码 147
10.4.2 例子 148
10.5 版面(Layout) 152
10.5.1 ObjectARX版面类 153
第十一章 派生一个定制的ObjectARX类 155
11.1 定制类的派生 155
11.2 运行时类识别 156
11.3 类声明宏 157
11.4 类实现宏 158
11.5 类初始化函数 160
第十二章 从AcDbObject派生 161
12.1 重载AcDbObject 虚拟函数 161
12.1.1 AcDbObject:要重载的基本函数 161
12.1.2 AcDbObject:经常被重载的函数 161
12.1.3 AcDbObject:有时被重载的函数 162
12.1.4 AcDbObject:很少被重载的函数 162
12.1.5 AcRxObject:很少被重载的函数 164
12.1.6 AcDbEntity:要重载的函数 164
12.1.7 AcDbEntity:经常被重载的函数 165
12.1.8 AcDbEntity:很少被重载的函数 167
12.1.9 AcDbCurve:要重载的函数 168
12.2 实现成员函数 171
12.3 归档对象到DWG和DXF文件 171
12.3.1 dwgOut()函数 172
12.3.2 dwgIn()函数 173
12.3.3 dxfOut()函数 173
12.3.4 dxfIn()函数 173
12.3.5错误检查 173
12.3.6 实现DWG归档函数 173
12.3.7 实现DXF归档函数 175
12.4 对象引用 181
12.5 所有权引用 182
12.5.1 所有权的使用 183
12.5.2 所有权的类型 183
12.5.3 建立一个所有权层次 184
12.6 指针引用 195
12.6.1 硬指针 195
15.2.5 使用一个对象响应器 196
12.8 撤消(Undo)和重复(Redo) 196
12.6.2 软指针 196
12.7 清除(Purge) 196
12.8.2 部分undo 197
12.8.1 自动undo 197
12.8.3 redo 200
12.9 subErase、subOpen、subClose和subCancel 200
12.10 一个定制的对象类的例子 213
12.10.1 头文件 213
12.10.2 源文件 214
12.11 对象版本支持 220
第十三章 从AcDbEntity派生 223
13.1 显示实体 223
13.1.1 重载AcDbEntity:saveAs() 225
13.1.2 AcGi对象的范围 225
13.1.4 设置实体特性 226
13.1.3 重生成类型 226
13.1.5 体素 232
13.1.6 线性模拟 244
13.1.7 等值线 245
13.1.8 视口 245
13.1.9 转换 245
13.2 内部实体函数 257
13.2.1 实现物体捕捉点函数 257
13.2.2 实现夹点函数 260
13.2.3 实现?展点函数 263
13.2.4 转换函数 265
13.2.5 与其它实体相交 266
13.2.6 一个定制的实体与另一个实体相交 272
13.4 使用AcEdJig 273
13.2.7 炸开一个实体 273
13.3 扩展实体功能 273
134.2 使用AcEdJig的一般步骤 274
13.4.3 为拖动序列设置参数 274
13.4.1 从AcEdJig派生一个新的类 274
13.4.4 拖动循环 275
13.4.5 实现sampler()、update()和entity()函数 276
13.4.6 添加实体到数据库 279
13.4.7 示例代码 279
第十四章 代理对象 286
14.1 已定义的代理对象 286
14.2 代理对象生命周期 286
14.3 用户遇到代理对象 287
14.4 代理实体的显示 287
14.5 编辑代理实体 288
14.6 卸载一个应用程序 288
第十五章 通知(Notification) 289
15.1 通知概览 289
15.1.1 响应器类 289
15.1.2 对象响应器的类型 290
15.2 使用响应器 290
15.2.1 AcDbobject和数据库通知事件 291
15.2.2 定制的通知 292
15.2.3 使用一个编辑器响应器 292
15.2.4 使用一个数据库响应器 292
15.3 通知使用原则 308