当前位置:首页 > 工业技术
AutoCAD ObjectARX 2000开发技术指南
AutoCAD ObjectARX 2000开发技术指南

AutoCAD ObjectARX 2000开发技术指南PDF电子书下载

工业技术

  • 电子书积分:18 积分如何计算积分?
  • 作 者:邵俊昌,李旭东编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2000
  • ISBN:7505357689
  • 页数:625 页
图书介绍:
《AutoCAD ObjectARX 2000开发技术指南》目录

第一篇 ObjectARX基础 3

第1章 概述 3

1.1 ObjectARX程序设计环境 3

1.1.1 访问AutoCAD数据库 3

1.1.2 与AutoCAD编辑器通信 3

1.1.3 使用MFC创建用户界面 4

1.1.4 支持MDI 4

1.1.5 创建自定义类 4

1.1.6 编制复杂应用程序 4

1.1.7 与其他环境通信 4

1.2 ObjectARX类库 4

1.2.1 AcRx库 5

1.2.2 AcEd库 6

1.2.3 AcDb库 6

1.2.5 AcGe库 7

1.2.4 AcGi库 7

1.3 开始前的准备工作 8

1.3.1 系统要求 8

1.3.2 ObjectARX目录的树形结构 8

第2章 AutoCAD数据库入门 11

2.1 AutoCAD数据库概述 11

2.1.1 多元数据库 12

2.1.2 获得对象ID 12

2.2 基本的数据库对象 12

2.3 在AutoCAD中创建对象 13

2.4 在ObjectARX中创建对象 14

2.4.1 创建实体 14

2.4.2 创建新层 16

2.4.3 打开和关闭ObjectARX对象 16

2.4.4 在组词典中添加组 17

3.1.1 创建自定义类 18

第3章 ObjectARX应用程序基础 18

3.1 创建ObjectARX应用程序 18

3.1.2 响应AutoCAD消息 19

3.1.3 提供AutoCAD的人口 22

3.1.4 初始化ObjectARX应用程序 23

3.1.5 卸载准备 23

3.2 应用程序例子 24

3.3 注册新命令 24

3.3.1 命令栈 25

3.3.2 查找顺序 26

3.3.3 全局与本地命令名 26

3.3.4 透明与模态命令 26

3.3.5 建立一个简单的ObjectARX应用程序的例子 27

3.4 加载ObjectARX应用程序 31

3.5 卸载ObjectARX应用程序 32

3.5.1 解锁应用程序 32

3.4.2 列示已加载的ObjectARX应用程序 32

3.4.1 库搜索路径 32

3.6 请求加载 33

3.6.1 AutoCAD、Windows系统注册表和ObjectARX应用程序 33

3.6.2 在ObjectARX应用程序安装时修改注册表的有关说明 34

3.6.3 DEMANDLOAD系统变量 36

3.6.4 检测到自定义对象时的请求加载 36

3.6.5 在命令执行时请求加载 37

3.6.6 在AutoCAD启动时请求加载 38

3.6.7 使用系统注册表来管理应用程序 38

3.8 在AutoLISP中启动ObjectARX应用程序 40

3.9 错误处理 40

第4章 数据库操作 44

4.1 初始化数据库 44

4.2 创建和移植数据库 44

4.3.1 设置缺省文件格式 45

4.3 存储数据库 45

4.3.2 全局保存函数 46

4.4 写块操作 46

4.4.1 从既有的数据库创建新数据库 46

4.4.2 创建带有实体的新数据库 47

4.5 插入数据库 47

4.6 设置数据库当前值 48

4.7 数据库操作的例子 49

4.8 长事务 50

4.8.1 类和函数概述 51

4.8.2 长事务例子 52

4.9 外部引用 55

4.9.1 外部引用的前、后处理 56

4.9.2 文件锁定和一致性检查 57

4.10 索引和筛选器 57

4.11 图形摘要信息 58

4.12 Autodesk软件上次存盘信息 59

第5章 数据库对象 61

5.1 打开和关闭数据库对象 61

5.2 删除对象 63

5.3 对象的数据库隶属关系 63

5.4 添加对象专有数据 64

5.4.1 扩展数据 64

5.4.2 扩展词典 67

5.5 从数据库中删除对象 72

5.6 对象编档 73

第6章 实体 74

6.1 实体的定义 74

6.2 实体的隶属关系 74

6.3 AutoCAD R12实体 74

6.4 实体的公共属性 76

6.4.1 颜色 76

6.4.3 线型比例 77

6.4.2 线型 77

6.4.4 可见性 78

6.4.5 层 78

6.5 实体的公共函数 79

6.5.1 对象捕捉点 80

6.5.2 几何变换函数 80

6.5.3 交点 81

6.5.4 GS标记和子实体 82

6.5.5 分解实体 97

6.6 创建AutoCAD实体对象 98

6.6.1 创建一个简单实体 98

6.6.2 创建一个简单块表记录 99

6.6.3 创建一个带属性定义的块表记录 99

6.6.4 创建一个带属性的块引用 102

6.6.5 遍历块表记录 105

6.7.1 创建复杂实体 107

6.7 复杂实体 107

6.7.2 遍历多义线的顶点 108

6.8 坐标系统的访问 109

6.8.1 实体坐标系 109

6.8.2 AcDb2dPolylineVertex 109

6.9 曲线函数 110

6.10 给实体加入超链接 111

6.10.1 AcDbHyperlink类 111

6.10.2 AcDbHyperlinkCollection类 111

6.10.3 AcDbEntityHyperlinkPE类 111

6.10.4 超链接的例子 112

第7章 容器对象 114

7.1 符号表和词典的比较 114

7.2 符号表 115

7.2.1 块表 117

7.2.2 层表 117

7.2.3 遍历器 120

7.3.1 组和组词典 121

7.3 词典 121

7.3.2 MLINE线型词典 124

7.3.3 布局词典 124

7.3.4 创建词典 124

7.3.5 遍历词典表项 125

7.4 布局 126

7.4.1 ObjectARX布局类 127

7.5 扩展记录(Xrecords) 128

7.5.1 扩展记录的DXF组码 128

7.5.2 扩展记录的例子 129

8.1 简介 135

8.2.1 MFC和非模态的对话框 135

8.2 使用MFC建立ObjectARX应用程序 135

第8章 MFC专题 135

第二篇 用户界面 135

8.3 使用动态链接MFC的ObjectARX应用程序 136

8.3.1 动态链接MFC的VC++工程选项设置 136

8.3.2 用动态MFC调试ObjectARX应用程序 136

8.3.3 资源管理 136

8.4 MFC内置用户界面的使用 138

8.4.1 类的层次关系 139

8.4.2 AdUi的消息传送 139

8.4.3 AdUi提示签窗口 140

8.4.4 AdUi Dialog类集 140

8.4.5 AcUi Dialog类集 141

8.4.6 AdUi类库对标签扩展的支持 141

8.4.7 AdUi和AcUi控制条类集 142

8.4.8 AdUi和AcUi的编辑控制 142

8.4.9 AdUi和AcUi的组合框控件 143

8.4.10 AcUi MRU组合框 144

8.4.11 AdUi Button类集 146

8.4.12 AcUi Button类集 146

8.4.13 对话框数据的记忆 147

8.4.14 使用并扩展AdUi标签式对话框系统 147

8.4.15 构造一个自定义的可展开标签式对话框 147

8.4.16 扩展AutoCAD内部的标签式对话框 148

8.5 通过VC++ AppWizard使用AdUi和AcUi 149

8.5.1 创建ObjectARX MFC应用程序框架 149

8.5.2 用App Studio创建MFC对话框 151

8.5.3 创建类和控件 152

8.5.4 创建对话框控制函数 153

8.5.5 给对话框控制函数增加代码 154

第9章 选择集、实体和符号表函数 161

9.1 选择集和实体名 161

9.2 选择集的处理 161

9.2.1 选择集筛选表 164

9.2.2 选择集的管理 169

9.2.3 选择集的变换 171

9.3 实体名和实体数据操作函数 173

9.3.1 实体名函数 173

9.3.2 实体数据函数 181

9.3.3 实体数据函数和图形屏幕 191

9.3.4 对扩展数据的注解 192

9.3.5 扩展记录(Xrecord)对象 196

9.4 符号表的访问 197

第10章 访问AutoCAD的全局函数 200

10.1 AutoCAD的查询及命令 200

10.1.1 通用访问函数 200

10.2 获取用户输入 211

10.2.1 用户输入类函数 211

10.2.2 对用户输入函数的控制 212

10.2.4 用户中断函数 215

10.2.3 动态拖动函数 215

10.2.5 向AutoLISP返回值的函数 217

10.3 类型转换 217

10.3.1 字符串转换 218

10.3.2 量钢单位转换函数 220

10.4 字符处理函数 220

10.5 坐标变换函数 221

10.6 显示控制函数 222

10.6.1 交互式输出函数 222

10.6.2 图形和文本屏幕控制函数 223

10.6.3 低级图形和用户输入类控制函数 224

10.7 数字化仪校准函数 224

10.8 通配符的匹配 226

第11章 派生自定义的ObjectARX类 231

11.1 自定义类的派生 231

第三篇 定义新类 231

11.2 运行时类标识 232

11.3 类声明宏 233

11.4 实现类的宏 234

11.5 类初始化函数 235

第12章 从AcDbObject类中派生新类 236

12.1 重载AcDbObject虚函数 236

12.1.1 AcDbObject类必须重载的函数 236

12.1.2 AcDbObject类时常重载的函数 236

12.1.3 AcDbObject:类有时重载的函数 237

12.1.4 AcDbObject类很少重载的函数 237

12.1.5 AcRxObject类函数很少重载的函数 238

12.1.6 AcDbEntity类的函数重载 239

12.1.7 AcDbCurve类重载的函数 239

12.2 成员函数的实现 242

12.3 生成对象到DWG和DXF文件 242

12.3.2 dwgIn()函数 243

12.3.1 dwgOut()函数 243

12.3.3 dxfOut()函数 244

12.3.4 dxfIn()函数 244

12.3.5 错误检查 244

12.3.6 DWG文件生成函数的实现 244

12.3.7 DXF文件生成函数的实现 246

12.4 对象的引用 254

12.5 隶属关系的引用 255

12.5.1 隶属关系的使用 255

12.5.2 隶属关系的类型 255

12.5.3 建一个隶属关系的层次结构 256

12.6 指针引用 263

12.6.1 硬指针 263

12.6.2 软指针 264

12.7 自定义对象的长事务处理问题 264

12.9.1 自动撤销 266

12.9 撤销(Undo)和重做(Redo) 266

12.8 清理 266

12.9.2 局部撤销 267

12.9.3 重做(Redo) 269

12.10 subErase、subOpen、subClose和subCancel 269

12.11 一个自定义对象类的例子 280

12.11.1 头文件 280

12.11.2 源程序文件 280

12.12 对象的版本支持 284

12.12.1 类的版本 284

12.12.2 类的更名 286

12.12.3 类的数据及扩展数据的版本号 287

第13章 从AcDbEntity类中派生新类 289

13.1 派生自定义实体 289

13.1.1 必须重载的AcDbEntity类函数 289

13.1.2 通常重载的AcDbEntity类函数 290

13.1.3 很少重载的AcDbEntity类函数 291

13.2.1 重载worldDraw()和viewportDraw()函数 292

13.2 重载公用实体函数 292

13.2.2 重载saveAs()函数 294

13.2.3 对象捕捉点函数的实现 295

13.2.4 控制点(grip point)函数的实现 297

13.2.5 拉伸点函数的实现 299

13.2.6 变换函数 301

13.2.7 实体的相交 302

13.2.9 分解实体 307

13.2.8 自定义实体和另一个实体的相交 307

13.3 扩充实体的功能 308

13.4 AcEdJig类的使用 308

13.4.1 从AcEdJig派生一个新类 308

13.4.2 用AcEdJig类的一般步骤 308

13.4.3 为拖动过程序列设置参数 309

13.4.4 拖动循环 309

13.4.5 实现sampler()、update()和entity()函数 310

13.4.7 例子程序 313

13.4.6 把实体加入数据库 313

第四篇 专项论题 319

第14章 代理对象 319

14.1 代理对象的定义 319

14.2 代理对象的生存期 319

14.3 用户与代理对象 320

14.4 显示代理实体 320

14.5 编辑代理实体 320

14.6 卸载应用程序时的代理 321

第15章 通知 322

15.1 通知概述 322

15.1.1 反应器类 322

15.1.2 对象反应器的类型 323

15.2 反应器的使用 323

15.2.1 AcDbObject类和数据库通知事件 324

15.2.4 数据库反应器的使用 325

15.2.2 自定义通知 325

15.2.3 编辑器反应器的使用 325

15.2.5 对象反应器的使用 328

15.3 通知使用原则 339

第16章 多文档界面 340

16.1 概述 340

16.2 专用名词 341

16.3 SDI系统变量 344

16.4 兼容级别 344

16.4.1 SDI级 344

16.4.2 MDI唤醒级 345

16.4.3 MDI能够级 347

16.4.4 MDI增强级 347

16.5 与多文档进行交互 347

16.5.1 访问当前文档及其相关对象 347

16.5.3 在不激活的情况下设置当前文档 348

16.5.2 访问与非当前文档有关的数据库 348

16.6 文档事件通知 349

16.7 应用程序专用的文档对象 349

16.8 不可重入的命令 349

16.8.1 创建不可重入的命令 349

18.8.2 不可重入的AutoCAD命令 350

16.9 多文档命令 350

16.10 禁止文档切换 351

16.11 应用程序执行上下文 352

16.11.1 在应用程序执行上下文中调用的代码 352

16.11.2 在应用程序执行上下文中的代码特点 352

16.11.3 其他应用程序执行上下文的考虑 353

16.12 数据库撤消和事务管理功能 354

16.13 与文档无关的数据库 354

16.14 一个MDI唤醒应用程序的例子 355

17.2 事务管理器 364

第17章 事务处理 364

17.1 事务处理概述 364

17.3 嵌套事务 365

17.4 事务边界 365

17.5 在事务中获得对象指针 366

17.6 新创建的对象和事务 367

17.7 提交时注意要点 367

17.8 撤销与事务处理的关系 367

17.9 用打开和关闭机制混合事务模型 367

17.10 事务处理和图形的生成 368

17.11 事务管理反应器 368

17.12 嵌套事务的例子 369

第18章 深层克隆 380

18.1 深层克隆基础知识 380

18.1.1 使用clone()与deepClone() 380

18.1.2 克隆的基本概念 381

18.1.3 典型的深层克隆操作 382

18.1.4 从不同所有者中克隆对象 383

18.2 为自定义类实现deepClone()函数 386

18.2.1 使用深层克隆和写块克隆的AutoCAD命令 387

18.2.2 克隆阶段 387

18.2.3 转换阶段 387

18.2.4 命名对象词典 390

18.2.5 重载deepClone()函数 393

18.2.6 重载wblockClone()函数 396

18.2.7 在克隆过程中使用appendAcDbEntity()函数 403

18.2.8 在wblockClone()中处理指向AcDbEntitie对象的硬引用 405

18.2.9 编辑器反应器通知函数 408

第19章 协议扩展 413

19.1 协议扩展的定义 413

19.2 协议扩展的实现 413

19.2.1 声明并定义协议扩展类 413

19.2.3 协议扩展的缺省类 414

19.2.2 注册协议扩展类 414

19.2.5 在应用程序中使用协议扩展函数 415

19.3 为MATCH命令进行协议扩展 415

19.2.4 卸载应用程序 415

19.4 协议扩展例子 416

第20章 ObjectARX全局实用函数 421

20.1 ObjectARX库函数的普遍特性 421

20.1.1 ObjectARX全局函数和AutoLISP的差异 421

20.1.2 函数返回值与函数的结果 422

20.1.3 外部函数 423

20.1.4 出错处理 425

20.1.5 应用程序之间的通信 425

20.1.6 外部应用程序的处理 429

20.2 ObjectARX中定义的变量、类型和值 430

20.2.1 通用类型和定义 430

20.2.3 结果缓冲区结构和类型代码 435

20.2.2 常量符号 435

20.2.4 ObjectARX函数结果码 439

20.2.5 控制用户输入的位控码 440

20.3 表与其他动态数据结构 441

20.3.1 结果缓冲区内存管理 443

20.4 扩展数据所特有的数据类型 448

第21章 点输入的处理 450

21.1 自定义对象捕捉方式 450

21.1.1 对自定义对象捕捉方式进行创建和注册 450

21.1.2 创建协议扩展类 451

21.1.3 创建自定义点符 452

21.1.4 自定义对象捕捉方式的例子 452

21.2 输入点处理 458

21.2.1 输入点管理器 458

21.2.2 输入上下文事件 458

21.2.3 输入点筛选器和监视程序 464

第22章 程序配置文件的管理 473

22.1 配置文件管理器 473

22.1.1 AcApProfileManager类 473

22.1.2 AcApProfileManagerReactor类 473

22.1.3 程序配置文件管理的例子 474

第五篇 与其他环境进行通信 481

第23章 COM、ActiveX自动控件和对象属性管理器 481

23.1 ObjectARX中的COM介绍 481

23.2 在ObjectARX和其他环境使用AutoCAD COM对象 481

23.2.1 在ObjectARX中访问COM接口 482

23.3 AutoCAD ActiveX自动控件的实现 492

23.3.1 AcDbObjects和自动控件对象之间的关系 492

23.3.2 创建COM对象 495

23.4 与AutoCAD进行交互 497

23.6 建立一个注册文件 498

23.5 文档锁定 498

23.7 开放自动控件功能 500

23.7.1 建立ATL工程文件 500

23.7.2 设计一个COM 501

23.7.3 建立并注册一个COM DLL 505

23.8 对象属性管理器API 507

23.9 静态OPM COM接口 507

23.10 实现静态的OPM接口 509

23.11 动态属性和OPM 513

第24章 AutoCAD设计中心COM API 514

24.1 AutoCAD设计中心API 514

24.2 AutoCAD设计中心部件注册要求 515

24.2.1 应用程序主键 515

24.2.2 扩展主键 516

24.2.3 CLASSID注册 516

24.3 AutoCAD设计中心实现接口 517

24.4.1 创建ActiveX模板库工程 518

24.4 定制AutoCAD设计中心 518

24.4.2 加入注册表支持和一个新的ATL COM对象 519

24.4.3 添加程序代码支持新的ATL COM对象 521

第六篇 ObjectARX库 533

第25章ObjectDBX库 533

25.1 简要介绍 533

25.2 ObjectDBX的使用 534

25.3 ObjectDBX和ObjectARX的差别 535

25.4 本地化和XMX文件 536

25.5 事务管理 537

25.6 创建观察器 538

25.6.1 观察器部件 538

25.6.2 AcGi类库 538

25.6.3 AcGix类库 539

25.6.4 AcGix与AutoCAD视图的不同 539

25.6.5 SimpleView 541

25.6.6 Whip View类库 542

25.6.7 ViewAcDb类库 542

25.6.8 基本观察器的操作 542

25.6.9 配置建议 543

25.7 请求加载 543

25.8 安装ObjectDBX库文件 544

25.8.1 使用COMMONFILES 544

25.8.2 通过版本控制和以共享方式进行安装 544

25.8.3 保证文件在路径中 545

25.8.4 保证路径更新正确有效 545

25.9 其他技术说明 547

25.9.1 关于ACAD-OBJID-INLINE-INTERNAL 547

25.9.2 关于AcDbDatabase类的说明 547

25.9.3 AcDbDatabase::Insert()函数 549

25.9.4 在模型空间寻找活动视区 549

25.9.6 测试AutoCAD 2000的图形 550

25.9.5 视区的一些细节问题 550

25.9.7 使用较早版本的DWG文件 551

25.9.8 扩展实体数据 551

25.9.9 光栅图像的处理 552

第26章 图形接口类库 553

26.1 AcGi类库概述 553

26.1.1 setAttributes函数 554

26.1.2 worldDraw()函数 555

26.1.3 viewportDraw()函数 556

26.1.4 视区重新生成的类型 557

26.2 设置实体属性 557

26.2.1 子实体属性 558

26.2.2 AcGi常量 559

26.2.3 使用AcGi的例子 560

26.3 图原子 561

26.3.1 格网 561

26.3.2 壳 564

26.3.3 弧 568

26.3.4 多义线 568

26.3.5 文字 569

26.4 在对象中使用可绘制实体 572

26.5 分格处理 573

26.6 等值线 574

26.7 坐标系变换 574

26.7.1 模型坐标系 574

26.7.2 通用坐标系 575

26.7.3 视觉坐标系 575

26.7.4 显示坐标系 575

26.7.5 变换实例 575

26.8 在AcGi类库中使用边界裁剪功能 584

26.8.1 有关背景知识 584

26.8.2 边界裁剪的例子 585

27.1 AcGe库的概貌 587

第27章 使用几何类库 587

27.1.1 全局变量数据和函数 588

27.1.2 允许误差 589

27.2 基本几何计算类型 589

27.3 直线和平面类 591

27.4 参数几何结构 592

27.4.1 曲线 592

27.4.2 曲面 595

27.5 专用的求值类 596

27.5.1 关于曲线和曲面使用效率的一些提示 600

27.6 永久的AcGe实体对象 602

附录ObjectARX嵌入工具 606

A.1 ObjectARX嵌入工具配置 606

A.1.1 安装ObjectARX 2000应用程序向导 606

A.1.2 ObjectARX嵌入工具配置 606

A.2.1 “ObjectARX包含(ObjectARX Includes)”对话框 608

A.2 ObjectARX嵌入工具的功能 608

A.2.2 “ObjectARX定义命令”对话框 609

A.2.3 “ObjectARX入口点消息”对话框 610

A.2.4 “临时ObjectARX反应器”对话框 611

A.2.5 “ObjectARX类向导”对话框 613

A.2.6 ObjectARX类向导——成员函数 614

A.2.7 ObjectARX类向导——成员变量 615

A.2.8 ObjectARX类向导——代理标志 616

A.2.9 ObjectARX类向导——类信息 617

A.2.10 “ObjectARX MFC支持”对话框 617

A.2.11 “ObjectARX入口点API”对话框 619

A.2.12 “ObjectARX请求加载”对话框 620

A.2.13 新ATL对象对话框 621

A.2.14 “ObjectARX部件”对话框 622

A.2.15 ObjectARX在线帮助 623

主要参考文献 625

相关图书
作者其它书籍
返回顶部