第1章 AutoLISP语言简介 1
1.1 AutoLISP语言的特点 1
1.2 AutoLISP的数据类型 2
1.2.1 原子 2
1.2.2 表和点对 5
1.2.3 文件描述符 6
1.2.4 AutoLISP的内部函数 6
1.2.5 选择集 6
1.2.6 图元名 7
1.3 AutoLISP语言的程序结构 7
1.4 AutoLISP的求值过程 9
1.5 AutoLISP程序的装入及运行 11
1.5.1 AutoLISP程序的装入 11
1.5.2 AutoLISP程序的运行 12
1.5.3 AutoLISP程序的自动装入 13
第2章AutoLISP语言的基本函数 14
2.1 数值函数 14
2.1.1 算术运算函数 15
2.1.2 三角函数 15
2.1.3 数的类型转换函数 16
2.2 赋值函数、求值与禁止求值函数 16
2.3 表处理函数 16
2.3.1 选取表中部分内容的函数 16
2.3.2 表的构造与修改函数 18
2.3.3 联结表 19
2.3.4 表处理函数综合举例 20
2.4 字符串处理函数 21
2.4.1 字符与ASCII码互换函数 21
2.4.2 测量字符串长度的函数strlen 21
2.4.3 数字与字符串互换函数 22
2.4.5 字符串截取函数substr 23
2.4.4 实现字符串连接的strcat函数 23
2.4.6 字符串大小写转换函数strcase 24
2.4.7 字符串转换成表或原子的read函数 24
2.4.8 字符串匹配函数wcmatch 25
2.4.9 字符串处理函数综合举例 25
2.5交互式输入函数 27
2.5.1 get族函数 27
2.5.2 其他输入函数 30
2.6 屏幕输出函数 32
2.6.1 用于屏幕和文件的输出函数 32
2.6.2 只用于屏幕输出的函数 33
3.1 COMMAND函数 34
3.1.1 参数及规则 34
第3章AutoLISP的绘图功能 34
3.1.2 求值 36
3.1.3 应用command函数的注意事项 37
3.1.4 应用举例 38
3.2 图形处理函数 39
3.2.1 目标捕捉函数osnap 40
3.3 屏幕操作函数 43
3.3.1 文本、图形屏幕转换函数 43
3.4 访问输入设备函数grread 44
3.5 存取AutoCAD系统变量函数 47
3.5.1 获取系统变量函数getver 47
3.5.2 设置系统变量函数setver 47
第4章 函数定义与程序结构 49
4.1 defun函数 49
4.1.1 函数的定义 49
4.1.2 函数的调用 50
4.1.3 函数的副作用 51
4.1.4 应用defun函数的注意事项 53
4.2 增加和修改AutoCAD的命令 54
4.2.1 增加AutoCAD命令 54
4.2.2 修改AutoCAD命令 55
4.2.3 恢复AutoCAD的命令 55
4.3 逻辑测试函数 56
4.3.1 数的比较函数 56
4.3.2 逻辑判断函数 57
4.3.3 数的性质测试函数 58
4.3.4 数据类型测试函数 58
4.3.5 等值测试函数 60
4.3.6 从属关系测试函数member 60
4.4.1 if函数 61
4.4.2 cond函数 61
4.4 条件分支函数 61
4.5 循环结构 62
4.5.1 while函数 63
4.5.2 repeat函数 64
4.5.3 foreach函数 65
4.5.4 mapcar函数 66
4.6 调用函数的函数apply 67
4.7 顺序控制函数progn 69
4.8 函数的递归定义 69
4.9 文件操作函数 71
4.9.1 打开文件函数open 72
4.9.2 关闭文件函数close 72
4.9.3 输入输出函数 73
4.9.4 文件查找函数findfile 74
4.9.5 文件操作函数综合举例 75
5.1.1 创建选择集 78
5.1 选择集的处理 78
第5章 利用AutoLISP管理图形数据库 78
5.1.2 操作选择集 84
5.1.3 选择集操作函数实例 86
5.2 处理图元对象 87
5.2.1 获取图元名称 88
5.2.2 修改图元数据 91
5.2.3 增加图元和删除图元 93
5.3 扩展图元数据的处理 95
5.3.1 扩展图元数据的组织及DXF组码 96
5.3.2 注册应用名 97
5.3.3 添加扩展图元数据 98
5.3.4 访问扩展图元数据 99
5.3.5 护展图元数据内存管理 101
5.4 符号表和词典 102
5.3.6 扩展图元数据中的句柄 102
5.4.1 符号表 103
5.4.2 词典 115
第6章 Visual LISP集成化开发环境 119
6.1 安装Visual LISP 119
6.1.1 运行安装向导 119
6.1.2 软件许可协议 119
6.1.3 设置软件安装路径 119
6.1.4 设置软件文件夹名称 121
6.1.5 确认安装路径和文件夹 122
6.1.6 完成软件安装 123
6.2 Visual LISP集成开发环境(IDE) 124
6.2.1 Visual LISP集成开发环境(IDE)的特点 126
6.2.2 Visual LISP集成开发环境窗口的几类构件 126
6.3 Visual LISP集成开发环境(IDE)的应用 136
7.1 编辑Visual LISP程序 139
7.1.1 创建文件 139
第7章 编辑和调试Visual LISP程序 139
7.1.2 编辑文件 140
7.1.3 保存文件 141
7.1.4 格式化文件 141
7.1.5 设置编辑器AutoLISP格式 143
7.1.6 设置编辑器窗口属性 145
7.1.7 附加程序描述 146
7.1.8 检查程序语法 148
7.1.9 保存文件 150
7.2 调试AutoLISP程序 150
7.2.1 打开文件 151
7.2.2 加载应用程序 151
7.2.3 运行应用程序 151
7.2.4 设置断点 151
7.2.6 中断执行程序 154
7.2.5 重新加载程序 154
7.2.7 变量跟踪 156
7.2.8 恢复程序的执行 159
7.2.9 Symbol Service对话框 160
7.2.10 Trace Stack窗口 161
7.2.11 Inspector窗口 163
第8章 DCL语言及其应用 164
8.1 概述 164
8.2 对话框部件 164
8.3 DCL文件结构 166
8.3.1 base.dcl和acad.dcl文件 166
8.3.2 引用DCL文件 166
8.3.3 DCL语法 167
8.4.1 建立控件组 173
8.4.2 控件间的间距 173
8.4 DCL技巧 173
8.4.3 右端和底端的空间 174
8.4.4 加框行和列周围的空间 175
8.4.5 自定义退出按钮文本 175
8.5 对话框设计原则 177
8.6 预定义控件和控件组的原则 182
8.7 对话框控制语言 185
8.7.1 属性 186
8.7.2 DCL控件功能 196
8.7.3 DCL控件分类 198
第9章 DCL对话框的管理 213
9.1 打开和关闭对话框 213
9.2 控件处理和属性处理 215
9.2.1 动作表达式与回调 215
9.2.3 回调原因 216
9.2.2 动作表达式 216
9.2.4 缺省值与DCL动作 217
9.2.5 处理控件 218
第10章 维护与编译Visual LISP应用程序 231
10.1 工程管理器 231
10.1.1 创建工程 232
10.1.2 工程窗口 236
10.1.3 设置工程编译模式 239
10.1.4 打开工程 242
10.1.5 在工程成员文件中搜索 243
10.2 编译应用程序 244
10.2.1 Visual LISP编译器 244
10.2.2 发行应用程序 247
10.2.3 Visual LISP编译向导 248
第11章Visual LISP中的ActiveX对象 259
11.1 Visual LISP中新增的面向对象的特性 259
11.2.1 对象的属性 260
11.2 理解AutoCAD 对象模型 260
11.2.2 对象的方法 261
11.2.3 对象的集合 262
11.3 处理AutoCAD对象 262
11.3.1 利用变量监视工具查看对象的属性 263
11.3.2 应用程序对象的层次 264
11.3.3 小结 264
11.4 在Visual LISP函数中利用ActiveX方法 265
11.4.1 如何调用Visual LISP提供的ActiveX函数 265
11.4.2 将Visual Basic变量转换成Visual LISP变量 267
11.4.3 查看及更改对象的属性 268
11.4.4 判断对象是否可以访问 270
11.4.5 使用变量保存ActiveX函数的返回值 270
11.4.6 列出对象的属性及方法 272
11.4.7 判断对象的方法或属性是否可用 272
11.4.8 处理对象集合 273
11.4.9 查找对象集合中的对象 275
11.5 变量的转换 276
11.6 释放对象及内存 276
11.7 对象数据转换 277
第12章 AutoCAD图形中的事件反应器 279
12.1 事件反应器的类型及事件 279
12.2 回调函数 280
12.3 创建事件反应器 281
12.4 利用对象事件反应器 282
12.4.1 定义回调函数 282
12.4.2 将事件反应器附着在相应的对象上 284
12.5 查询、修改及关闭事件反应器 284
12.5.1 监视事件反应器 285
12.5.2 调用函数来查询事件反应器 285
12.5.3 修改事件反应器 286
12.5.5 暂时和永久事件反应器 288
12.5.4 关闭事件反应器 288
12.6 例程 289
12.6.1 文件GPDRAW.LSP清单 289
12.6.2 文件GPREACT.LSP清单 295
12.6.3 文件GP-IO.LSP清单 302
12.6.4 文件GPPOLY.LSP清单 306
12.6.5 文件UTILS.LSP清单 316
第13章Visual LISP for AutoCAD2000功能解析 321
13.1 Visual LISP for AutoCAD2000的特色 321
13.1.1 Visual LISP for AutoCAD2000的目的 321
13.1.2 Visual LISP for AutoCAD2000的新增功能 322
13.1.3 迁移助手的使用 323
13.2 Visual LISP的启动和界面 325
13.2.1 启动Visual LISP 325
13.2.2 Visual LISP界面及菜单 325
13.3 设计程序 328
13.3.1 主程序设计 329
13.3.2 子函数的编写 331
13.3.3 程序的检查 333
13.3.4 程序的执行及结果 335
13.4 工程文件的创建 336
13.4.1 分解程序 337
13.4.2 创建工程文件 338
13.4.3 运行工程文件 340
第14章Visual LISP新增函数 346
14.1 VL-类函数 346
14.2 VLAX-类函数 364
14.3 VLISP-类函数 375
14.4 VLR-类函数 376
附录A ASCII代码 384
附录B AutoLISP系统变量 387