第零章 专业工具盘及环境配置 1
0.1 专业工具盘(PT-DISK) 1
0.1.1 安装 1
0.1.2 许可权 1
0.1.3 声明 2
0.2 WCEDIT 2
0.3 PROTOBOX 3
0.4 LISPSQL 3
0.5 AUTOEXEC.BAT的组织 4
0.6 CONFIG.SYS的组织 4
0.7 AutoCAD启动批处理文件的组织 5
0.8 编译器和连接器 5
0.9 硬件配置 6
第一部分 AutoCAD开发系统 7
第一章 AutoCAD开发系统概述 7
1.1 AutoCAD开发系统(ADS) 7
1.1.1 应用程序接口(API) 7
1.1.2 应用程序的SQL接口(ASI) 8
1.2 ADS和AutoLISP的比较 8
1.2.1 AutoLISP 8
1.2.2 ADS 9
1.2.3 对比ADS与AutoLISP 10
1.3 使用ADS的条件 10
1.3.1 编程及软件知识 10
1.3.2 硬件环境 10
1.3.3 软件环境 11
1.4 了解AutoCAD的ADS接口 11
1.4.1 与AutoLISP连接 11
1.4.2 运行ADS应用程序 12
1.5 ADS应用程序的分类 12
1.5.1 实模式 12
1.5.2 保护模式 13
1.6 使用C++ 14
1.6.1 ADS C++的未来 15
1.7 选择编译器 15
1.8 有关C语言 15
1.9 小结 15
第二章 ADS编程 16
2.1 ADS的结构 16
2.1.1 准备 16
2.1.2 文头件和库文件 16
2.1.3 ADS_INIT和ADS_LINK 16
2.1.4 应用程序的请求码和结果码 18
2.1.5 函数结果码 22
2.1.6 内部函数 25
2.1.7 外部函数及应用程序 25
2.1.8 综合实例 27
2.2 数据类型 34
2.2.1 ADS_REAL 34
2.2.2 ADS_POINTS 35
2.2.3 ADS_MATRIX矩阵 36
2.2.4 ADS_NAME 36
2.2.5 ADS_BINARY 37
2.2.6 结果缓冲器(RESBUF) 37
2.2.7 链表 40
2.3 不同的ADS应用程序构造技术 41
2.3.1 死循环 41
2.3.2 使用函数表 41
2.4 编译并连接ADS应用程序 44
2.5 小结 45
第三章 ADS技术 46
3.1 在ADS中调用AutoCAD命令 46
3.1.1 ADS_COMMAND 46
3.1.2 ADS_CMD 47
3.1.3 ADS_BUILDLIST 48
3.1.4 在ADS_COMMAND和ADS_CMD中暂停等待用户输入 49
3.1.5 在ADS_COMMAND和ADS_CMD中传递实体名/拾取点 49
3.1.6 ADS_COMMAND和ADS_CMD的局限 50
3.2 调用其他ADS应用程序中定义的函数 51
3.2.1 ADS_INVOKE 51
3.2.2 用ADS_GETARGS获取函数参数 53
3.2.3 注册被调用的函数 56
3.3 在AutoLISP中调用ADS外部函数 56
3.3.1 从AutoLISP调用中获取函数参数 56
3.4 在ADS中调用AutoLISP函数 56
3.5 链表 57
3.5.1 链表的结构 57
3.5.2 创建结果缓冲器链表 58
3.5.3 定义新的结果缓冲器 59
3.5.4 在结果缓冲器链表中检索 60
3.5.5 在结果缓冲器链表中追加新值 61
3.5.6 释放链表 64
3.6 用户交互函数 65
3.6.1 ADS GETxxx函数 66
3.6.2 在GETxxx函数中控制用户输入 66
3.6.3 用户中断和NULL实体 67
3.6.4 ADS_USRBRK 68
3.7 显示信息 68
3.7.1 ADS_PROMPT 68
3.7.2 ADS_PRINTF 68
3.7.3 ADS_ALERT 68
3.7.4 ADS_FAIL 69
3.7.5 ADS_ABORT 69
3.8 访问文件 70
3.9 数据类型转换 70
3.9.1 坐标系转换 71
3.10 选择集 72
3.10.1 处理选择集函数 72
3.10.2 特殊ADS函数 72
3.11 处理图形数据库 74
3.11.1 实体数据处理函数 74
3.11.2 扩展实体数据 75
3.12 显示控制 76
3.13 出错处理 76
3.13.1 ERRNO 76
3.13.2 函数的返回值和错误码 77
3.13.3 避免和控制出错 77
3.14 附加的提示、注释和警告 77
3.15 小结 78
第二部分 对话框 79
第四章 构造对话框 79
4.1 基本要求 79
4.1.1 编程知识 79
4.1.2 硬件 79
4.1.3 软件 80
4.2 对话框概述 80
4.2.1 两点说明 80
4.2.2 创建对话框 80
4.2.3 对话框和DCL语言 81
4.2.4 驱动程序 82
4.3 理解对话框的结构 87
4.3.1 结构 87
4.3.2 组成部件 88
4.4 部件属性探讨 112
4.4.1 预定义属性 112
4.4.2 用户定义的属性 126
4.5 小结 126
第五章 对话控制语言 127
5.1 对话控制语言简介 127
5.1.1 DCL文件中的类型 127
5.1.2 AutoCAD的DCL文件 128
5.2 DCL语法 129
5.2.1 定义(Definitions) 129
5.2.2 引用(References) 132
5.2.3 对话框(Dialog Boxes) 133
5.3 设计并创建对话框 136
5.3.1 基本设计要素 136
5.3.2 测试 138
5.3.3 标准和约定 138
5.3.4 布局、设定尺寸和修改对话框 142
5.4 小结 143
第六章 AutoLISP对话框驱动程序 144
6.1 驱动程序的结构 144
6.1.1 流程 144
6.1.2 特殊处理 152
6.2 对话框构件的驱动程序 164
6.2.1 通用的初始化、修改和驱动程序 164
6.2.2 专用的初始化、修改和驱动程序 165
6.3 函数说明 175
6.3.1 对话框函数 176
6.3.2 相关的AutoLISP函数 181
6.4 小结 182
第七章 ADS对话框驱动程序 184
7.1 如何使用ADS 184
7.1.1 优点 184
7.1.2 缺点 184
7.1.3 ADS与AutoLISP 185
7.1.4 ADS驱动程序 185
7.1.5 构件驱动程序 202
7.2 小结 211
第三部分 使用SQL 212
第八章 AutoCAD SQL扩充 212
8.1 要求 212
8.1.1 编程和软件知识 212
8.1.2 硬件 213
8.1.3 软件 213
8.2 AutoCAD SQL扩充介绍 213
8.2.1 什么是SQL? 214
8.2.2 什么是ASE? 214
8.2.3 什么是ASI? 215
8.3 通过AutoCAD接口使用SQL 215
8.3.1 数据库和SQL的概念 215
8.4 配置ASE 217
8.4.1 在AutoCAD中配置DBMS 217
8.5 使用ASE 219
8.5.1 装入ASE 219
8.5.2 配置DBMS 220
8.5.3 使用SQL 222
8.6 小结 234
第九章 SQL语言 236
9.1 数据库和SQL术语 236
9.1.1 关系数据库 236
9.1.2 SQL 236
9.2 SQL语法 238
9.2.1 使用ASESQLED 238
9.3 SQL语句的语法及其使用指南 242
9.3.1 SELECT 242
9.3.2 子查询 247
9.3.3 多表查询 248
9.3.4 INSERT INTO 249
9.3.5 DELETE FROM 249
9.3.6 UPDTATE 250
9.3.7 CREATE TABLE 251
9.3.8 DROP TABLE 252
9.3.9 CREATE INDEX 252
9.3.1 0 DROP INDEX 253
9.4 只适用于INFORMIX和ORACLE的命令 253
9.4.1 ALTER TABLE 253
9.4.2 CREATE VIEW 254
9.4.3 DROP VIEW 254
9.4.4 GRANT 254
9.4.5 REVOKE 254
9.5 不被支持的命令 255
9.6 非标准命令 255
9.7 小结 255
第十章 ASE命令及其编程 256
10.1 ASE命令和语法 256
10.1.1 管理命令 256
10.1.2 操作命令 263
10.1.3 链接命令 266
10.1.4 实用命令 270
10.2 在AutoLISP中使用ASE命令 273
10.2.1 SQL.LSP详解 279
10.3 小结 283
第十一章 在AutoLISP中使用AutoCAD SQL程序接口 284
11.1 在AutoLISP函数中访问外部文件 284
11.1.1 AutoLISP所支持ASI命令 284
11.1.2 ASI命令说明 286
11.1.3 ASE和ASI编程 301
11.2 小 结 331
第十二章 在ADS中使用AutoCAD SQL程序接口 332
12.1 AutoLSIP和ADS的比较 332
12.1.1 ASE ADS语法 332
12.1.2 ASI ADS语法 334
12.1.3 文件、库和编译器 335
12.1.4 数据类型 335
12.1.5 返回值和数据类型指示符 336
12.1.6 错误检测 338
12.1.7 附加命令 338
12.1.8 释放内存 342
12.1.9 ADS还是AutoLISP? 342
12.2 ASI ADS示例程序 343
12.2.1 表查询 343
12.2.2 建立一个链表并返回给AutoLISP 348
12.3 小结 359
第四部分 AME编程 360
第十三章 AME编程 360
13.1 系统要求 360
13.1.1 编程及软件知识 360
13.1.2 硬件 361
13.1.3 软件 361
13.2 释 疑 361
13.3 AutoLISP AME编程 361
13.3.1 C:命令函数与命令的区别 361
13.3.2 制约及局限 365
13.3.3 加载AME 366
13.3.4 AME编程示例 366
13.4 AutoLISP AME API编程 374
13.4.1 API AME编程准则 375
13.5 使用ADS 378
13.5.1 在ADS AME编程中使用ADS_INVOKE 379
13.5.2 ADS AME编程示例 380
13.5.3 ADS API编程准则 384
13.5.4 ADS API AME编程示例 384
13.6 小结 387
第十四章 AME渲染编程 388
14.1 系统要求 388
14.1.1 编程及软件知识 388
14.1.2 硬件 388
14.1.3 软件 388
14.2 AutoLISP渲染编程 389
142.1 何时进行渲染编程 389
14.2.2 语法 389
14.2.3 渲染命令函数 389
14.2.4 加载渲染模块 390
14.2.5 AME和AVE渲染 391
14.2.6 AutoLISP AVE渲染示例 391
14.3 使用ADS 400
14.3.1 编译器、头文件和库文件 400
14.3.2 语法 400
14.3.3 ADS AVE渲染应用程序示例 401
14.4 小结 409
第五部分 Windows编程环境 410
第十五章 AutoCAD for Windows编程技术 410
15.1 Windows环境入门 410
15.1.1 Windows界面 410
15.1.2 遵循界面标准 412
15.1.3 多任务 413
15.1.4 数据交换和通信 414
15.2. AutoCAD for Windows的特点 416
15.2.1 空中视窗 416
15.2.2 工具条 417
15.2.3 工具箱 417
15.2.4 多作业 417
15.2.5 支持元文件 418
15.2.6 拖放 418
15.2.7 支持DDE 418
15.2.8 支持OLE 418
15.3 编程要求 418
15.3.1 编程和软件知识 419
15.3.2 硬件 419
15.3.3 软件 420
15.4 Windows程序入门 420
15.4.1 用户I/O 420
15.4.2 资源 421
15.4.3 事件和消息 421
15.4.4 Windows消息和消息循环 422
15.4.5 消息处理程序 423
15.5 资源开发 423
15.5.1 资源编辑器 424
15.5.2 图标 424
15.5.3 对话框 425
15.5.4 其他资源 425
15.6 编制Windows ADS程序 426
15.6.1 WINMAIN() 426
15.6.2 创建窗口 427
15.6.3 在ADS中使用消息 427
15.6.4 模块化函数 428
15.7 调用Windows动态链接库 428
15.7.1 调用的过程(COMMDLG.DLL举例) 428
15.7.2 进入开发阶段 430
15.8 如何使用Quick C for Windows 430
15.8.1 QuickCase:W 430
15.8.2 图象编辑器 432
15.9 如何使用Visual C++ 433
15.9.1 AppWizard 433
15.9.2 App Studio 433
15.9.3 ClassWizard 434
15.9.4 其他开发工具 435
15.10 如何使用Visual Basic 2.0 436
15.10.1 设计程序界面 436
15.10.2 增加程序代码 437
15.10.3 测试及生成EXE文件 438
15.10.4 联机帮助和例程 438
15.11 AutoCAD ADS文件简介 439
15.11.1 基本ADS文件 439
15.11.2 WINADS.C和WINBLANK.C 440
15.12 小结 440
第十六章 使用DDE 442
16.1 DDE入门 442
16.1.1 定义DDE链接 443
16.1.2 控制系统开销 444
16.1.3 DDE消息的定义 444
16.1.4 DDE对话的定义 445
16.2 AutoCAD中的DDE文件和程序 445
16.2.1 DDE.LSP 446
16.2.2 其他的DDE文件 446
16.3 在AutoCAD中建立DDE链接 446
16.4 把AutoCAD用作DDE服务者 451
14.6.1 创建控制AutoCAD的Excel宏命令 451
16.5 AutoLISP和DDE 453
16.5.1 AutoLISP中的DDE函数 453
16.5.2 AutoLISP中的DDE过程 454
16.5.3 AutoLISP程序SENDIT.LSP 454
16.5.4 测试SENDIT.LSP 456
16.6 Visual Basic入门 457
16.6.1 Visual Basic软件配置 458
16.6.2 创建Visual Basic应用程序 458
16.6.3 Properties(特性) 458
16.6.4 Events(事件) 460
16.6.5 Methods(方法) 460
16.6.6 生成EXE文件 461
16.7 用Visual Basic开发ADS应用程序 462
16.7.1 AutoCAD中的Visual Basic文件 462
16.7.2 Visual Basic DDE应用程序是如何工作的 462
16.8 一个简单的ADS Visual Basic应用程序:DDETest 462
16.8.1 调整表格尺寸及设置特性 464
16.8.2 增加简单的控件 465
16.8.3 为DDETest增加文本框 466
16.8.4 为表格增添DDE链接代码 466
16.8.5 为DDETest赋以AutoCAD命令 468
16.8.6 编译DDETest 469
16.8.7 为DDETest增加“勿覆盖”行为 470
16.9 向Visual Basic应用程序中添加ADS函数 474
16.9.1 为ADS建立一个DDE链接 474
16.9.2 向/V应用程序中增加ADS函数 474
16.10 在C ADS应用程序中使用DDE 476
16.10.1 C DDE应用程序是如何工作的 476
16.10.2 SHAFT.EXE例程和其他文件 476
16.11 小结 476
附录A ADS标准和扩充实体数据 477
A.1 通用ADS标准 477
A.2 潜在的陷阱及错误 477
A.2.1 ADS_ENTMAKE,ADS_DRAGGEN,ADS_XFORMS 477
A.3 使用扩展实体数据 478
A.3.1 应用程序名和注册方法 480
A.4 Xdata函数源码清单 480
A.5 小结 492