第1章 绪论 1
1.1CAD技术概述 1
1.1.1CAD技术简介 1
1.1.2主流CAD工具 2
1.1.3CAD发展趋势 6
1.2CAD二次开发 7
1.2.1CAD二次开发简述 7
1.2.2主流CAD软件的二次开发 8
1.2.3CAD二次开发方法 9
1.3AutoCAD二次开发 11
1.3.1二次开发的意义 11
1.3.2开发工具 11
1.4ObjectARX慨述 13
1.4.1ObjectARX功能简介 14
1.4.2ObjectARX类库介绍 15
1.4.3ObjectARX的优势特点 16
第2章 Visual C++开发平台与面向对象程序设计 17
2.1Visual C++开发环境 17
2.1.1环境介绍 17
2.1.2菜单 17
2.1.3工具栏 18
2.1.4输出窗口 18
2.1.5联机帮助 19
2.1.6项目工作区和客户区 19
2.2面向对象的程序设计 19
2.2.1数据抽象 20
2.2.2类 20
2.2.3对象 23
2.2.4构造函数和析构函数 24
2.2.5继承 27
2.2.6多态性 32
2.2.7ObjectARX类的设计 34
第3章 MFC与控件 36
3.1MFC对话框的创建 36
3.1.1对话框的创建流程 36
3.1.2利用VC向导生成ARX的一般步骤 36
3.1.3创建添加对话框资源 38
3.1.4创建对话框类 39
3.2非模态对话框与消息对话框 43
3.2.1非模态对话框 43
3.2.2非模态对话框的特点 43
3.2.2消息模态对话框 43
3.3Visual C++中的消息机制 45
3.3.1消息概念与结构 45
3.3.2消息种类 46
3.3.3控件通知消息 46
3.3.4控件通知格式 47
3.4常用控件的使用 48
3.4.1控件的共有特征 48
3.4.2控件的创建 49
3.4.3访问控件与销毁控件 50
3.4.4静态控件 50
3.4.5按钮控件 53
3.4.6编辑框(Edit Box)控件 56
3.4.7列表框(List Box)控件 59
3.4.8组合框(Combo Box)控件 63
第4章 ObjectARX基础 67
4.1为什么要用ObjectARX 67
4.2ObjectARX程序设计环境 68
4.2.1ObjectARX开发包 69
4.2.2ObjectARX功能 69
4.3ObjectARX应用程序 70
4.3.1ObjectARX应用程序框架 70
4.3.2ObjectARX应用程序的创建 70
4.3.3一个完整的ObjectARX程序 72
4.3.4ARX应用程序的执行过程 76
4.3.5ARX应用程序的调用 76
4.3.6卸载应用程序 78
4.4访问AutoCAD的全局函数 78
4.4.1查询及命令 78
4.4.2用户输入 81
4.4.3类型转换 83
第5章 ObjectARX类库 86
5.1AcRx库 86
5.1.1概述 86
5.1.2AcRxObject类 87
5.1.3AcRxDictionary类 88
5.1.4AcadAppInfo类 89
5.1.5AcRxDynamicLinker 89
5.2AcEd库 91
5.2.1概述 91
5.2.2AcEdCommand 91
5.2.3AcEdCommandStack 92
5.2.4AcEdUiContext 92
5.2.5AcEdJig 93
5.2.6AcEdInputPointFilter 93
5.2.7AcEdInputPointMonitor 93
5.3AcDb库 94
5.4AcGi库 95
5.4.1概述 95
5.4.2AcGiEdgeData 95
5.4.3AcGiFaceData 95
5.4.4AcGiTextStyle 99
5.4.5其他类 102
5.4.6应用 102
5.5AcGe库 103
5.5.1概述 103
5.5.2直线和平面类 103
5.5.3曲线类 104
5.5.4曲面类 104
5.5.5专用求值类 107
5.6ObjectARX全局实用函数 108
5.6.1变量、类型和值 108
5.6.2结果缓冲区结构与类型代码 110
5.6.3函数结果码 111
5.6.4位控码 111
5.6.5结果缓冲区内存管理 112
5.7选择集、实体和符号表函数 114
5.7.1选择集函数 114
5.7.2实体函数 118
5.7.3符号表函数 123
5.8COM接口 124
5.8.1COM的概念 124
5.8.2AutoCAD COM包 124
5.8.3使用ObjectARX访问COM接口 128
5.9Actives自动控件的实现 130
5.9.1AcDbObjects和自动对象关系 130
5.9.2创建COM对象 132
第6章 AutoCAD数据库 135
6.1数据库入门 135
6.1.1AutoCAD数据库 135
6.1.2基本的数据库对象 136
6.1.3在AutoCAD中创建对象 137
6.1.4ObjectARX代码示例 138
6.2数据库操作 140
6.2.1创建图形数据库 140
6.2.2图块操作 141
6.2.3插入数据库 147
6.2.4设置图形数据库的当前特性值 149
6.2.5事务操作 152
6.2.6图形摘要信息处理 160
6.2.7数据库操作示例 161
6.3数据库对象 162
6.3.1打开和关闭对象 162
6.3.2删除对象 163
6.3.3对象的隶属关系 164
6.3.4数据库对象应用实例 164
第7章 实体 165
7.1实体的定义 165
7.2实体的隶属关系 165
7.3实体对象的公共属性 165
7.3.1实体颜色 166
7.3.2实体线型 167
7.3.3实体线型比例 167
7.3.4实体可见性 168
7.3.5实体图层 168
7.4坐标系统 169
7.5实体的公共函数 170
7.5.1对象捕捉点 171
7.5.2几何变换函数 172
7.5.3交点 172
7.5.4创建简单实体 173
7.5.5创建复杂实体 173
第8章 容器对象 176
8.1符号表 176
8.1.1块表(AcDbBlockTable) 176
8.1.2尺寸标注样式表(AcDbDimStyleTable) 177
8.1.3层表(AcDbLayerTable) 178
8.1.4线型表(AcDbLinetypeTable) 180
8.1.5应用程序注册表(AcDbRegAppTable) 181
8.1.6文字样式表(AcDbTextStyleTable) 182
8.1.7用户坐标系表(AcDbUCSTable) 182
8.1.8视口表(AcDbViewPortTable) 186
8.1.9视窗表(AcDbViewTable) 187
8.2布局 188
8.3扩展数据(XData) 188
8.3.1结果缓冲区 188
8.3.2相关函数 189
8.3.3应用过程 189
8.4字典 191
8.4.1扩展字典 191
8.4.2有名对象字典 194
8.4.3组字典 197
第9章 绘图与设计环境 200
9.1基本绘图环境设置 200
9.1.1绘图环境程序设计思路 200
9.1.2比例设置 200
9.1.3线型设置 202
9.1.4字型与标注变量 106
9.2工程设计标注 211
9.2.1常用标注 211
9.2.2尺寸公差标注 215
9.2.3形位公差标注 224
9.2.4表面粗糙度标注 229
9.3装配图基本要素 234
9.3.1图纸幅面自动生成 234
9.3.2零件号标注 235
9.4图元变换 242
9.5实用程序文件清单 244
9.5.1一般标注程序 244
9.5.2表面粗糙度标注程序 245
9.5.3零件号标注程序 245
9.5.4图纸幅面生成程序 246
第10章 2D参数化绘图与设计 247
10.1图形编程的尺寸驱动 247
10.1.1数据库和参数化变量的传递 248
10.1.2求关键点及绘制实体图形 248
10.1.3标注剖面线 249
10.1.4尺寸标注 249
10.2关系数据库式的变量驱动 250
10.2.1零件实例的生成 250
10.2.2零件实例尺寸驱动修改 251
10.2.3参数化零件的目录式查询 252
10.3面向图形结构单元的参数化 252
10.3.1图形结构单元的分类 252
10.3.2图形结构单元的参数化原理 254
10.4实用程序文件清单 254
10.4.1图形编程尺寸驱动 254
10.4.2关系数据库式变量驱动 258
10.4.3图形结构单元参数化 259
第11章 3D参数化绘图与设计 260
11.1三维建模 260
11.2三维实体图元类 260
11.2.1三维实体类AcDb3dSolid 260
11.2.2面域表示类AcDbRegion 263
11.3三维实体图元生成实例 264
11.3.1公共派生类 264
11.3.2部分功能的实现 266
11.4遍历三维实体图元的拓扑结构 269
11.4.1边界表示类 269
11.4.2应用实例 270
11.5复杂零件三维实体造型 277
11.5.1程序演示功能 277
11.5.2零件模型的生成过程 277
第12章 标准件库参数化 282
12.1标准件库开发方案 282
12.1.1设计目标 282
12.1.2设计思想 282
12.1.3设计过程 283
12.2标准件库实现技术 284
12.2.1事物特性表 284
12.2.2用户界面技术 284
12.2.3数据库管理 286
12.2.4滚动轴承的选型与校核 288
12.2.5参数化技术 290
12.3标准件库的建立 291
12.3.1菜单的定制 291
12.3.2对话框设计 292
12.3.3轴承程序演示 293
12.3.4带设计计算程序演示 294
12.4实用程序文件清单 296
12.4.1轴承 296
12.4.2挡圈 298
12.4.3键 299
12.4.3螺钉 299
12.4.4螺母 300
12.4.5螺栓 301
12.4.6螺柱 301
12.4.7铆钉 302
12.4.8密封圈 302
12.4.9垫圈 303
12.4.10销 303
12.4.11齿轮与带 304
第13章 离线式图纸表格信息提取应用 307
13.1开发工具 307
13.1.1Open Design Alliance的产生 307
13.1.2DWGdirectX技术提供的编程接口 308
13.2提取表格信息Activex控件开发技术 309
13.2.1总体开发方案 309
13.2.2开发思路 310
13.2.3软件总体设计 310
13.3对DWGdirectX进行面向对象化封装 310
13.3.1引入DWGdirectX接口 310
13.3.2封装DWGdirectX接口 311
13.4DWG文件表格信息单元分析 313
13.4.1基本概念定义 313
13.4.2表格信息单元之间存在的语义关系与位置关系 314
13.4.3标题栏分析 314
13.4.4明细栏分析 316
13.5表格信息的识别提取过程 317
13.5.1提取所有实体过程 317
13.5.2表格线分组分析 317
13.5.3交点计算 319
13.5.4交点计算单元格的形成与表格组成 320
13.5.5接口的使用 321
13.6DWG文件表格信息提取实现过程 322
13.6.1测试演示过程 322
13.6.2PDM(产品数据管理系统)中使用情况 323
13.7主要类文件 325
第14章 在液压机设计计算中的应用 333
14.1开发环境配置 333
14.2液压机设计基本知识 334
14.3程序设计总体实现 335
14.4单柱式液压机设计计算程序化实现 339
14.5其他主要实用程序 352
14.6实用程序文件清单 355
附录一 ADS和ARX 函数对照表 359
附录二 网络中的工程案例文件 364
附录三 ObjectARX 2010自带学习案例文件 366
参考文献 369