内容简介
第一章 最简单的ARX程序——HelloARX
1.1目标及结果
1.2知识要点及思路分析
1.2.1建立ARX程序的基本步骤
1.2.2AutoCAD与ARX程序之间的消息传递
1.3实现步骤
1.4源程序清单
1.4.1清单1-1源文件HelloARX.cpp
1.4.2清单1-2 HelloARX.def源定义文件
1.5补充说明
1.5.1ARX应用程序的加载方式
1.5.2 ARX应用程序的卸载方式
1.6小结
第二章AutoCAD数据库概述
2.1目标及结果
2.2知识要点及思路分析
2.2.1 AutoCAD数据库的结构
2.2.2对象的ID
2.2.3基本数据库对象
2.2.4创建对象
2.3实现步骤
2.3.1创建实体
2.3.2创建新层
2.3.3打开和关闭ObjectARX对象
2.3.4创建新组
2.4源程序清单
2.4.1清单2-1源文件Entities.cpp
2.4.2清单2-2模块定义文件Entities.def
2.5补充说明
2.5.1清单2-3 加入了容错处理代码的源文件ErrorText.cpp
2.5.2清单2-4 模块定义文件ErrorTestdef
2.5.3说明
2.6小结
第三章AutoCAD数据库操作
3.1目标及结果
3.2知识要点及思路分析
3.2.1初始化数据库
3.2.2创建数据库
3.2.3保存数据库
3.2.4创建块操作
3.2.5插入块操作
3.2.6设置当前数据库属性值
3.2.7数据库长事务(LongTransaction)操作
3.3实现步骤
3.3.1创建数据库
3.3.2读取数据库内容
3.3.3数据库长事务操作
3.4源程序清单
3.4.1清单3-1 源文件OperateDb.cpp
3.4.2清单3-2 模块定义文件OperateDb.def
3.5补充说明
3.5.1外部参照
3.5.2图形统计信息
3.6小结
第四章 数据库对象的操作
4.1目标及结果
4.2知识要点及思路分析
4.2.1打开和关闭对象
4.2.2删除对象
4.2.3数据库对象的从属关系
4.2.4对象的特殊附加数据
4.2.5删除数据库对象
4.3实现步骤
4.3.1对象的选择
4.3.2结果缓冲区链表内容打印
4.3.3对象扩展数据的添加和打印
4.3.4对象扩展词典的添加和打印
4.4源程序清单
4.4.1清单4-1源文件operateObj.cpp
4.4.2清单4-2模块定义文件operateObj.def
4.5补充说明
4.5.1DXF(Drawing Exchange Format)组码模式
4.5.2对象归档操作
4.6小结
第五章 实体对象的操作
5.1目标及结果
5.2知识要点及思路分析
5.2.1实体的定义
5.2.2实体的从属关系
5.2.3AutoCAD R12版实体
5.2.4实体的公用属性
5.2.5坐标系统
5.2.6曲线函数
5.3实现步骤
5.3.1创建一个带有属性的块表记录
5.3.2创建一个带有属性的块引用
5.3.3遍历块表记录
5.3.4复杂实体的操作
5.3.5曲线函数的使用
5.4源程序清单
5.4.1清单5-1源文件complexEnt.cpp
5.4.2清单5-2模块定义文件complexEnt.def
5.5补充说明
5.5.1实体名操作函数
5.5.2用户输入函数
5.5.3系统变量查询和设置函数
5.6小结
第六章 高亮度显示实体对象
6.1目标及结果
6.2知识要点及思路分析
6.2.1实体的公共函数
6.2.2实体分解函数
6.2.3GS标志和子实体路径
6.2.4高亮度显示子实体的步骤
6.3实现步骤
6.3.1高亮度显示长方体的子实体
6.3.2高亮度显示嵌套块中的实体
6.4源程序清单
6.4.1清单6-1源文件entHilight.cpp
6.4.2清单6-2模块定义文件entHilight.def
6.5补充说明
6.5.1选择集的操作函数
6.6小结
第七章 容器对象的操作
7.1目标及结果
7.2知识要点及思路分析
7.2.1符号表
7.2.2符号表迭代器
7.2.3词典
7.2.4符号表与词典的区别
7.2.5扩展实体记录(Xrecord)
7.3实现步骤
7.3.1添加一个层表记录
7.3.2遍历层表
7.3.3创建组并添加到组词典中
7.3.4创建词典和扩展实体记录
7.3.5浏览词典条目
7.4源程序清单
7.4.1清单7-1主源文件containerObi.cpp
7.4.2清单7-2源文件layer.cpp
7.4.3清单7-3头文件layer.h
7.4.4清单7-4源文件group.cpp
7.4.5清单7-5头文件group.h
7.4.6清单7-6源文件xrecord.cpp
7.4.7清单7-7头文件xrecord.h
7.4.8清单7-8模块定义文件containerObj.def
7.5小结
第八章 派生AcDbObject自定义类
8.1目标及结果
8.2知识要点及思路分析
8.2.1使用ObjectARX宏
8.2.2重载基类AcDbObject的虚函数
8.2.3实现成员函数
8.2.4文件操作函数
8.2.5重载DWG文件操作函数
8.2.6重载DXF文件操作函数
8.2.7对象的引用
8.2.8撤销和重做
8.2.9 subErase、subOpen、subClose和subCancel函数
8.3实现步骤
8.3.1从基类AcDbObject中派生自定义类
8.3.2创建所有关系(ownership)体系
8.3.3重载基类AcDbObject的文件操作函数
8.3.4自定义类的初始化和卸载
8.3.5编写命令调用函数
8.4源程序清单
8.4.1清单8-1源文件customObject.cpp
8.4.2清单8-2模块定义文件customObject.def
8.5补充说明
8.5.1派生自定义ARX类的其它说明
8.5.2清除操作(Purge)
8.5.3自定义对象的版本信息
8.6小结
第九章 派生AcDbEntity自定义类
9.1目标及结果
9.2知识要点及思路分析
9.2.1重载类AcDbEntity的函数
9.2.2重载实体类公用函数
9.2.3扩展实体功能
9.3实现步骤
9.3.1派生自定义实体类
9.3.2重载基类AcDbEntity的成员函数
9.3.3重载基类AcDbObject的成员函数
9.3.4编写命令执行函数
9.4源程序清单
9.4.1清单9-1头文件customEntity.h
9.4.2清单9-2源文件customEntity.cpp
9.4.3清单9-3模块定义文件customEntity.def
9.5补充说明
9.5.1图形界面类库(AcGi)简介
9.5.2协议扩展机制
9.6小结
第十章 使用AcEdJig基类
10.1目标及结果
10.2知识要点及思路分析
10.2.1从基类AcEdJig中派生新类
10.2.2使用类AcEdJig的一般步骤
10.2.3拖动循环
10.2.4函数sampler()、update()和entity()的实现方法
10.2.5添加实体到数据库中
10.3实现步骤
10.3.1定义类CRectItfo
10.3.2由基类AcEdJig派生自定义类
10.3.3实现拖动循环
10.3.4实现命令“RECT”的执行函数createRect()
10.4源程序清单
10.4.1清单10-1源文件rectJig.cpp
10.4.2清单10-2模块定义文件rectJig.def:
10.5小结
第十一章 在ObjectARX中使用MFC类库
11.1目标及结果
11.2知识要点及思路分析
11.2.1在ObjectARX应用程序中使用MFC
11.2.2在ObjectARX应用程序中使用动态链接的MFC库
11.2.3使用与AutoCAD相同版本的MFC动态链接库
11.3实现步骤
11.3.1创建ObjectARX MFC应用程序框架
11.3.2创建模式对话框
11.3.3创建非模式对话框
11.4源程序清单
11.4.1清单11-1源文件dialogTest.cpp
11.4.2清单11-2类CModalDlg定义文件modalDlg.h
11.4.3清单11-3类CmodalDlg实现文件modalDlg.cpp
11.4.4清单11-4类CModelessDlg定义文件modelessDlg.h
11.4.5清单11-5类CModelessDlg实现文件modelessDlg.cpp
11.4.6清单11-6预定义头文件stdafx.h
11.4.7清单11-7资源定义头文件Resource.h
11.4.8清单11-8模块定义文件dialogTest.def
11.5补充说明
11.6小结
第十二章 使用ObjectARX的MFC用户界面类
12.1目标及结果
12.2知识要点及思路分析
12.2.1类的层次
12.2.2AdUi消息
12.2.3AdUi提示窗口
12.2.4AdUi对话框类
12.2.5 AcUi对话框类
12.2.6支持可扩充标签的AdUi类
12.2.7 AdUi和AcUi的编辑控件
12.2.8 AdUi和AcUi组合框控件
12.2.9 AcUi和MRU组合框
12.2.10 AdUi按钮类
12.2.11 AcUi按钮类
12.2.12对话框数据驻留
12.3实现步骤
12.3.1创建ObjectARX MFC应用程序框架
12.3.2使用AppStudio创建MFC对话框
12.3.3创建对话框类和控件变量
12.3.4使用AcUi类库
12.3.5创建对话框处理函数
12.4源程序清单
12.4.1清单12-1源文件AcUiSample.cpp
12.4.2清单12-2对话框定义文件AcUiDialogSample.h
12.4.3清单12-3对话框实现文件AcUiDialogSample.cpp
12.4.4清单12-4资源定义文件Resource.h
12.4.5清单12-5模块定义文件AcUiSample.ref
12.5补充说明
12.5.1使用并扩展AdUi标签对话框系统
12.5.2创建可扩展的自定义标签对话框
12.5.3扩展AutoCAD内建的标签对话框
12.6小结
第十三章 通知
13.1目标及结果
13.2知识要点及思路分析
12.5.1通知概述
12.5.2反应器类
12.5.3使用反应器
12.5.4类AcDbObject和数据库通知事件
12.5.5通知使用原则
13.3实现步骤
13.3.1创建数据库反应器
13.3.2创建永久对象反应器
13.4源程序清单
13.4.1清单13-1主源文件NotifySample.cpp
13.4.2清单13-2头文件dbreactor.h
13.4.3清单13-3源文件dbreactor.cpp
13.4.4清单13-4头文件persreactor.h
13.4.5清单13-5主源文件persreactor.cpp
13.4.6清单13-6模块定义文件NotifySample.def
13.5补充说明
13.5.1获取对象反应器的ID值
13.5.2立即事件和提交时事件
13.6小结
第十四章 多文档界面
14.1目标及结果
14.2知识要点及思路分析
14.2.1 MDI简介
14.2.2专用术语
14.2.3兼容级别
14.2.4 MDI唤醒级
14.2.5与多文档的交互方式
14.2.6文档事件通知
14.2.7专用文档对象
14.2.8非重入命令
14.2.9多文档命令
14.2.10禁止文档切换
14.2.11应用程序执行上下文
14.3实现步骤
14.3.1创建自定义的数据库反应器类CDbReactor
14.3.2创建自定义的文档管理反应器类CDocReactor
14.3.3创建自定义的文档信息类CPerDocData
14.3.4创建自定义的文档全局数据类CAppDocGlobals
14.3.5其它函数
14.4源程序清单
14.4.1清单14-1主源文件MDISample.cpp
14.4.2清单14-2模块定义文件MDISample.def
14.5补充说明
14.5.1SDI系统变量
14.5.2数据库撤销和事务处理功能
14.5.3与文档无关的数据库
14.6小结