定制篇 1
第1章 AutoCAD定制开发概述 1
1.1 AutoCAD 2002定制和开发的主要内容 1
1.2 设置AutoCAD环境 2
1.2.1 库搜索路径 2
1.2.2 目录结构样例 3
1.2.3 设置多配置 3
1.2.4 创建多个图形文件目录 4
1.3 AutoCAD 2002的主要支持文件 5
1.4 AutoCAD 2002定制开发形式和方法 6
第2章 系统及外部命令的定制 8
2.1 AutoCAD命令的基本知识 8
2.1.1 命令形式 8
2.1.2 命令输入方式 8
2.1.3 命令搜索过程 9
2.2 程序参数文件的结构与功能 9
2.3 在ACAD.PGP中定义外部命令 10
2.3.1 使用Windows系统命令 11
2.3.2 使用自定义命令 12
2.3.3 标准ACAD.PGP文件中的外部命令定义 12
2.4 定义命令别名和缩写 13
2.5 命令别名定制示例 16
2.6 内部命令的定制 16
第3章 幻灯片和脚本的定制 18
3.1 幻灯片文件 18
3.1.1 创建幻灯片 18
3.1.2 观看幻灯片 19
3.1.3 建立和观看幻灯片库 20
3.1.4 幻灯片及幻灯片库文件的格式 21
3.1.5 幻灯片库文件操作实用程序 23
3.2 脚本文件 24
3.2.1 脚本文件的格式与运行 24
3.2.2 脚本文件的编写与调用示例 25
3.2.3 建立脚本式幻灯片显示 26
3.2.4 脚本文件与高级语言的接口 27
第4章 线型与填充图案的定制 32
4.1 线型文件的格式 32
4.2 标准线型和线型文件 33
4.3 简单线型的定制方法 33
4.3.1 在AutoCAD内部用“-LINETYPE”命令生成新线型 34
4.3.2 直接编辑线型文件来生成新线型 34
4.4 复合线型的定义与定制 35
4.4.1 复合线型的定义格式 35
4.4.2 复合线型的创建 37
4.4.3 AutoCAD 2002提供的标准复合线型 37
4.5 新线型的使用 37
4.5.1 线型的装入 37
4.5.2 线型的调用 39
4.5.3 线型的比例 39
4.6 填充图案概述 40
4.7 图案的构成及定义格式 42
4.7.1 图案的构成 42
4.7.2 图案的定义格式 42
4.7.3 填充图案的定制方法 43
4.8 图案文件与图案库的建立 45
4.8.1 在ACAD.PAT中增加新内容或修改原有的图案定义 45
4.8.2 建立用户图案文件 45
4.9 含圆类复杂填充图案的定制 47
4.9.1 圆多边形拟合的基本原理 47
4.9.2 多边形拟合的数学模型 48
4.9.3 定制和应用实例 49
4.10 填充图案的可视化定制 50
第5章 形和字体的定制 53
5.1 形的概念 53
5.2 定义形 53
5.2.1 形定义的格式 54
5.2.2 描述码 54
5.3 生成形文件 59
5.3.1 建立形文件 59
5.3.2 编译形文件 59
5.4 调用形 59
5.4.1 加载形文件 59
5.4.2 插入形 60
5.5 形的应用示例 60
5.5.1 用形文件建立符号库 60
5.5.2 用形文件定义汉字 61
5.6 文字字体 62
5.7 大字体文件 63
5.7.1 定义大字体文件 63
5.7.2 扩充大字体文件 65
5.7.3 其他方面应用 67
5.7.4 使用大字体文件 68
5.7.5 大字体文件的反编译 69
5.8 PostScript支持 74
5.8.1 acad.psf——AutoCAD PostScript支持文件 74
5.8.2 高级PostScript处理 78
第6章 菜单的定制 79
6.1 菜单文件的类型及调用过程 79
6.1.1 菜单文件的类型 80
6.1.2 菜单文件的调用过程 80
6.2 菜单文件的结构 82
6.2.1 菜单文件的总体结构 82
6.2.2 菜单文件的格式 83
6.2.3 菜单项的表示 84
6.2.4 菜单调用命令和特殊字符 85
6.2.5 菜单项定义和菜单显示的关系 86
6.3 菜单定制的一般方法 89
6.3.1 在标准菜单文件中增加新内容 89
6.3.2 建立用户菜单 89
6.3.3 用基础菜单和局部菜单的不同组合来建立用户菜单 90
6.3.4 快捷键的定义方法 93
6.3.5 状态行帮助的定义方法 94
6.4 菜单定制示例 95
6.4.1 下拉菜单/快捷菜单定制举例 95
6.4.2 图像块菜单定制示例 104
第7章 定制工具栏 106
7.1 AutoCAD 2002的工具栏及其基本控制 106
7.1.1 工具栏的显示和关闭 107
7.1.2 工具栏的可视化定制 107
7.2 工具栏在菜单文件中的结构 112
7.3 用编辑菜单文件的方法定制工具栏 113
第8章 DIESEL语言 116
8.1 状态栏的定制 116
8.2 在菜单定制中应用DIESEL 118
8.3 DIESEL的调试方法 120
8.4 DIESEL函数 121
第9章 定制上网模板 125
9.1 AutoCAD 2002内置的主要网络功能 125
9.2 定制网上发布模板 127
9.2.1 概述 127
9.2.2 定制网上发布模板 128
9.3 定制“今日”公告牌模板 129
9.3.1 定制公告牌模板 129
9.3.2 观看定制的公告牌模板 130
9.3.3 恢复默认的公告牌文件 130
开发篇 131
第10章 AutoLISP语言基础 131
10.1 AutoLISP语言的基本知识 132
10.1.1 AutoLISP语言的特性 132
10.1.2 AutoLISP中的数据类型 133
10.1.3 程序结构 137
10.1.4 求值、表达式及变量 138
10.1.5 AutoLISP程序的自动装载 139
10.1.6 S::STARTUP函数 140
10.2 赋值与数值计算函数 141
10.3 逻辑运算函数 144
10.4 程序分支与循环函数 147
10.5 字符串与类型转换函数 149
10.6 表处理函数 152
10.7 自定义函数 155
10.8 交互数据输入函数及相关的计算函数 157
10.9 文件及应用程序操作函数 161
10.10 AutoCAD命令及显示方式函数 164
10.11 实体和设备访问类函数 168
第11章 对话框的定制与开发技术 174
11.1 对话框的组成 174
11.2 对话框的选项 175
11.2.1 定义选项的DCL表达式 175
11.2.2 选项的属性 176
11.3 DCL文件的编写 178
11.3.1 选项的定义格式 178
11.3.2 选项的调用格式 178
11.3.3 DCL文件中的特殊字符 180
11.3.4 其他DCL文件的引用 180
11.4 对话框的布局设计 181
11.5 AutoCAD可编程对话框的控制 182
11.6 对话框管理程序设计应注意的几个问题 186
11.6.1 对话框管理函数的调用次序 186
11.6.2 在对话框显示期间不能使用的函数 187
11.6.3 动作定义方式及其优先级 187
11.6.4 嵌套对话框的使用 188
11.6.5 隐藏对话框的使用 188
11.7 对话框及管理程序开发示例 188
11.7.1 图块定义程序 188
11.7.2 AutoCAD初始环境设置程序 196
第12章 用AutoLISP开发应用程序 203
12.1 应用程序设计目标 203
12.2 获取输入 204
12.3 计算参数并绘制楼梯 205
12.4 绘制砖墙 207
12.5 向AutoCAD增加命令 208
12.6 优化程序中的变量定义 209
12.7 增加对话框界面 211
12.7.1 DCL文件 211
12.7.2 控制对话框的AutoLISP函数 213
12.8 “炮击弹药车”游戏程序 216
12.9 分形程序 220
12.9.1 柯奇曲线 220
12.9.2 分形树 221
第13章 Visual LISP语言 224
13.1 Visual LISP概述 224
13.2 Visual LISP的使用 224
13.2.1 启动Visual LISP 224
13.2.2 使用Visual LISP文本编辑器录入程序 226
13.2.3 加载并运行程序 227
13.2.4 调入已存在的AutoLISP程序文件 228
13.3 Visual LISP控制台 230
13.4 使用Visual LISP文本编辑器 233
13.4.1 代码颜色 233
13.4.2 文本编辑器中的单词 233
13.4.3 动态帮助 234
13.4.4 快捷菜单 234
13.5 Visual LISP格式化器 234
13.5.1 运行格式化器 234
13.5.2 格式化代码 235
13.5.3 格式化注释 236
13.5.4 改变格式化选项及编辑文件类型 237
13.6 检查程序语法 238
13.7 调试程序 239
13.7.1 设置断点和分步执行调试 239
13.7.2 自动运行模式调试 241
13.7.3 跟踪变量 242
13.8 构造应用程序 243
13.8.1 通过vlisp-compile函数编译单个文件为FAS文件 243
13.8.2 通过“新建应用程序向导”打包编译为VLX文件 244
13.8.3 加载和运行已编译的程序 247
第14章 Visual LISP扩展函数及其编程 249
14.1 概述 249
14.2 在Visual LISP函数中使用ActiveX方法 250
14.2.1 确定所需的Visual LISP函数 250
14.2.2 确定Visual LISP函数的调用方法 250
14.3 Visual LISP扩展函数 252
14.4 有关ActiveX的函数 257
14.5 与反应器有关的函数 261
14.6 程序设计示例 264
14.6.1 ActiveX方式绘图 264
14.6.2 对象反应器功能 267
第15章 AutoCAD VBA基础 269
15.1 了解嵌入和全局VBA工程 269
15.2 用VBA管理器组织工程 269
15.2.1 装载已有的VBA工程文件 270
15.2.2 卸载工程 270
15.2.3 嵌入工程到图形中 271
15.2.4 从图形中分离工程 271
15.2.5 创建新的工程 271
15.2.6 保存嵌入工程 271
15.3 处理宏 272
15.3.1 运行宏 272
15.3.2 编辑宏 272
15.3.3 创建新的宏 273
15.3.4 删除宏 273
15.3.5 设置工程选项 273
15.4 用VBA IDE编辑工程 273
15.4.1 打开VBA IDE 274
15.4.2 查看工程信息 274
15.4.3 定义工程的部件 275
15.4.4 导入已有部件 275
15.4.5 编辑部件 275
15.4.6 运行宏 277
15.4.7 命名工程 277
15.4.8 保存工程 277
15.4.9 引用其他VBA工程 278
15.5 编程入门示例 278
15.6 AutoCAD VBA工程术语和命令小结 279
第16章 ActiveX自动化基础 281
16.1 理解AutoCAD对象模型 281
16.1.1 应用程序对象 281
16.1.2 文档对象 282
16.1.3 图形和非图形对象 282
16.1.4 参数选择、打印出图和实用工具对象 283
16.2 访问对象层 283
16.2.1 在对象层中引用对象 283
16.2.2 访问应用程序对象 284
16.3 通过集合对象操作 284
16.3.1 访问集合对象 285
16.3.2 添加新成员到集合对象 285
16.3.3 在集合对象中循环 285
16.3.4 删除集合对象中的成员 286
16.4 理解属性和方法 286
16.5 理解父对象 286
16.6 定位类型库 286
16.7 在数据库中返回第一个图元 287
16.8 在方法和属性中使用变体 287
16.8.1 什么是变体 287
16.8.2 在数组数据中使用变体 287
16.8.3 转换数组为变体 287
16.8.4 解释变体数组 288
16.9 使用其他程序语言 289
第17章 用VBA设置AutoCAD环境 292
17.1 打开、保存和关闭图形文件 292
17.2 设定和返回系统变量 293
17.3 精确绘图 293
17.3.1 调整捕捉和栅格对齐 293
17.3.2 使用正交模式 294
17.3.3 计算点和值 295
17.3.4 计算面积 295
17.4 提示用户输入 296
17.4.1 GetString方法 296
17.4.2 GetPoint方法 297
17.4.3 GetKeyword方法 297
17.4.4 控制用户输入 298
17.5 访问AutoCAD命令行 299
第18章 创建和编辑AutoCAD图元 300
18.1 创建对象 300
18.1.1 确定容器对象 300
18.1.2 创建直线 301
18.1.3 创建多段线对象 301
18.1.4 创建曲线对象 301
18.1.5 创建点对象 302
18.2 编辑对象 303
18.2.1 工作于命名的对象 303
18.2.2 选择对象 303
18.2.3 复制对象 305
18.2.4 移动对象 309
18.2.5 删除对象 311
18.2.6 比例缩放对象 311
18.2.7 延伸和修剪对象 312
18.3 使用图层、颜色和线型 313
18.3.1 使用图层 313
18.3.2 使用颜色 316
18.3.3 使用线型 317
18.3.4 分配图层、颜色和线型给对象 318
18.4 添加文本到图形中 319
18.4.1 处理文字样式 320
18.4.2 使用单行文字 322
第19章 用VBA开发应用程序 323
19.1 更多的VBA技术 323
19.2 在VBA中使用窗体 323
19.2.1 窗体的设计模式和运行模式 324
19.2.2 在工程中创立一个新的窗体 324
19.2.3 向窗体中添加控件 324
19.2.4 显示和隐藏窗体 325
19.2.5 加载和卸载窗体 326
19.2.6 设计模式窗体下的应用程序 326
19.3 错误处理 326
19.3.1 捕获运行错误 327
19.3.2 对捕获的错误作出响应 328
19.3.3 对AutoCAD用户输入错误作出响应 328
19.4 加密VBA代码模块 329
19.5 从工具条或菜单中运行VBA宏 329
19.6 自动载入一个VBA工程 329
19.7 自动运行VBA宏 329
19.8 发布应用程序 330
第20章 ActiveX和VBA应用程序设计实例 331
20.1 检查运行环境 331
20.2 定义目标 331
20.3 编写第一个函数 332
20.4 获取输入 333
20.4.1 声明变量 333
20.4.2 输入“用户输入”子程序 334
20.5 绘制小径轮廓 335
20.6 绘制瓷砖 336
20.7 把所有内容集成到一起 338
20.8 单步执行代码 339
20.9 执行宏 340
20.10 加入对话框环境 341
20.10.1 建立对话框 341
20.10.2 使用项目窗口为工程导航 344
20.10.3 更新已有代码 344
20.10.4 给对话框添加代码 346
第21章 ObjectARX编程基础 349
21.1 ObjectARX 2000开发工具简介 349
21.1.1 安装必要的软件 349
21.1.2 设置ObjectARX 2000开发环境 350
21.1.3 ObjectARX应用程序的特点 351
21.1.4 ObjectARX类库 352
21.2 ObjectARX编程环境 356
21.2.1 访问AutoCAD数据库 357
21.2.2 与AutoCAD编辑器交互作用 357
21.2.3 使用MFC创建用户界面 357
21.2.4 支持多文档界面(MDI) 357
21.2.5 创建用户自定义类 357
21.2.6 建立复杂的应用程序 357
21.2.7 与其他编程环境交互作用 357
21.3 AutoCAD数据库 358
21.3.1 基本的数据库对象 358
21.3.2 在AutoCAD中创建对象 359
21.3.3 创建ObjectARX对象 361
21.4 建立一个ObjectARX应用程序 364
21.4.1 建立一个ObjectARX应用程序的基本步骤 364
21.4.2 建立第一个ObjectARX应用程序的例子 368
21.5 ObjectARX Wizard的安装与使用 374
21.5.1 ObjectARX Wizard的安装 374
21.5.2 ObjectARX Wizard的使用 375
第22章 数据库操作 379
22.1 初始化数据库 379
22.2 创建和删除一个数据库 379
22.3 保存数据库 380
22.4 插入一个数据库 381
22.5 设定当前数据库的值 382
22.6 数据库操作实例 383
22.7 长事务处理 384
22.7.1 类和函数简介 385
22.7.2 长事务处理实例 386
22.8 数据库对象 390
22.8.1 打开和关闭数据库对象 390
22.8.2 删除对象 392
22.8.3 对象的数据库所有权 393
22.8.4 添加特定对象的数据 393
第23章 实体和容器对象及综合应用实例 400
23.1 实体简介 400
23.2 实体的共同属性 401
23.2.1 实体颜色 401
23.2.2 实体线型 401
23.2.3 实体线型比例 402
23.2.4 实体可见性 403
23.2.5 实体所在的图层 403
23.3 关于实体的示例 403
23.4 符号表和字典的比较 413
23.5 符号表简介 415
23.5.1 块表 416
23.5.2 图层表 416
23.5.3 遍历器 417
23.6 字典 418
23.6.1 组和组字典 418
23.6.2 关于组的示例 419
23.7 综合性应用实例 422
23.7.1 程序的功能 422
23.7.2 程序的数学模型 422
附录A AutoCAD 2002命令集 428
附录B AutoCAD 2002系统变量表 439
附录C AutoLISP错误代码和错误信息 455
C.1 错误代码 455
C.2 错误信息 456