第1章 概述 1
1.1 关于LISP 1
1.2 关于AutoLISP 1
目录 1
1.3 关于Visual LISP 2
第2章 数据类型、表达式和函数 3
2.1 数据类型 3
2.2 变量 5
2.2.1 符号 5
2.2.2 变量的数据类型 5
2.2.3 为变量赋值 6
2.2.4 预定义的符号 6
2.3 表达式 7
2.2.5 显示变量的值 7
2.2.6 在交互方式下将变量的值传递给AutoCAD 7
2.3.1 表达式的构成 8
2.3.2 表达式的前缀表示法 8
2.3.3 表达式的求值过程 8
2.3.4 表达式的求值规则 9
2.4 数据的存储结构 9
2.5 函数 11
2.5.1 定义AutoLISP函数 11
2.5.2 调用AutoLISP函数 12
2.5.3 递归定义AutoLISP函数 13
2.5.4 调用AutoCAD命令 13
习题 14
2.5.5 定义AutoCAD命令 14
第3章 程序的流程控制和AutoLISP文件 16
3.1 程序的流程控制 16
3.1.1 分支结构 16
3.1.2 循环结构 18
3.2 AutoLISP程序文件 20
3.2.1 AutoLISP文件的特点 20
3.2.2 程序中的注释 21
3.2.3 在AutoCAD环境下加载AutoLISP文件 21
习题 23
第4章 有关Visual LISP的基本操作 25
4.1 进入和退出Visual LISP 25
4.2 Visual LISP的用户界面 26
4.3 控制台操作 28
4.4 文件操作 29
习题 30
第5章 编辑源程序代码 31
5.1 文本编辑工具 31
5.2 文本操作 33
5.3 设置代码格式 36
5.4 检查语法错误 39
习题 42
第6章 调试程序 43
6.1 概述 43
6.2 监视窗口 44
6.3 在不设置断点的情况下分步调试程序 46
6.4 断点循环 48
6.5 利用断点调试程序 49
6.6 跟踪程序运行 52
6.7 修改变量和函数的特性 57
6.8 检验窗口 59
6.9 访问AutoCAD对象 61
习题 63
第7章 建立应用程序 65
7.1 通过vlisp-compile函数编译LISP文件 65
7.2 用应用程序生成器创建应用程序 68
7.3 利用工程管理器管理和维护LISP文件 73
7.3.1 工程管理器的功能 73
7.3.2 创建一个工程 75
7.3.3 工程窗口 76
7.3.4 在工程中查找源程序代码 77
7.3.5 通过工程创建应用程序 78
7.3.6 优化应用程序 78
习题 80
第8章 编程实例 82
8.1 设置作图环境 82
8.2 设置图层、颜色、线型和线宽 84
8.3 定义字样 88
8.4 尺寸标注 91
8.5 调用AutoCAD的图形编辑功能 98
8.6 调用图案填充功能 101
8.7 定义绘制曲线的命令 102
8.8 定义参数化绘图的命令 104
8.9 读写文件功能 110
习题 114
第9章 访问和修改图形数据库 115
9.1 获取图元的名字 115
9.2 图元表 117
9.2.1 获取图元表 117
9.2.2 对图元表的操作 118
9.2.3 举例 119
9.3 选择集 120
9.3.1 常用的有关选择集的函数 120
9.4.1 符号表操作函数 122
9.4 符号表 122
9.3.2 举例 122
9.4.2 举例 123
习题 124
第10章 在Visual LISP中使用ActiveX对象 125
10.1 AutoCAD对象模型 125
10.2 访问AutoCAD对象 126
10.2.1 访问AutoCAD应用程序 127
10.2.2 访问其他AutoCAD对象 128
10.2.3 使用检验工具了解AutoCAD对象的属性 132
10.2.4 通过Help功能了解AutoCAD对象 134
10.3 在Visual LISP环境下使用ActiveX方法 134
10.3.1 通过Help功能详细了解AutoCAD图形对象的方法 134
10.3.2 将Visual Basic环境下的语句改写为AutoLISP表达式 135
10.3.3 ActiveX能够自动进行转换的AutoLISP的一些数据类型 136
10.3.4 Visual LISP扩充的数据类型 137
10.3.5 AutoCAD实体名和VLA对象之间的转换 142
10.4 获取和修改图形对象的属性 143
10.4.1 获取图形对象属性 143
10.4.2 修改图形对象的属性 144
10.5 确定是否可以修改对象 145
10.6 使用用参数带回返回值的ActiveX方法 146
10.7 判断某方法或属性是否可应用于某对象 147
10.8 使用集合对象 148
10.8.1 将某一个函数应用到集合中的每一个对象 149
10.8.2 将一系列函数应用到集合中的每一个对象 150
10.8.3 获取集合中的成员对象 151
10.9 释放VLA对象和释放内存 152
10.10 处理ActiveX方法返回的错误 152
10.11 举例 154
习题 155
第11章 使用反应器 156
11.1 反应器 156
11.2 定义反应器的回调函数 158
11.2.1 定义对象反应器的回调函数 158
11.2.2 定义其他反应器的回调函数 159
11.2.3 AutoCAD预定义的回调函数 160
11.3 创建反应器 160
11.3.1 创建对象反应器 160
11.3.2 创建其他反应器 163
11.3.3 将数据附着到反应器对象 164
11.4 查询、修改和控制反应器的状态 164
11.4.1 查询反应器 164
11.4.2 修改反应器 166
11.4.3 控制反应器的状态 167
11.5 临时反应器和永久反应器 168
11.6 反应器的使用规则 170
11.7 定义反应器实例 171
习题 174
第12章 对话框设计 175
12.1 概述 175
12.2.1 可以定义动作行为的控件 176
12.2 对话框控件 176
12.2.2 组合类控件 179
12.2.3 装饰性和信息类控件 183
12.2.4 AutoCAD预定义的控件 186
12.3 控件的属性 188
12.4 对话框设计的原则与规范 194
12.4.1 一般原则 194
12.4.2 通用规范 196
12.4.3 预定义控件的使用规范 197
12.5 对话框控制语言 198
12.5.1 对话框文件 198
12.5.2 DCL文件的结构 199
12.5.3 DCL语法 201
12.6.1 驱动对话框的程序流程图 202
12.6 对话框驱动程序 202
12.6.2 对话框驱动函数 204
12.6.3 调用含有对话框的AutoLISP函数 207
12.6.4 编写对话框回调函数的注意事项 210
12.6.5 对话框的特殊处理 212
12.7 几种典型控件的应用实例 219
习题 224
第13章 综合应用实例 226
13.1 定义绘制多种螺钉的命令 226
13.1.1 程序的文件和使用说明 227
13.1.2 定义绘制多种螺钉命令的对话框 228
13.1.3 编写绘制多种螺钉的源程序 231
13.2.1 程序的工作原理与运行过程 238
13.2 建立范成法加工齿轮的仿真演示程序 238
13.2.2 需要解决的几个问题 239
13.2.3 程序的文件和使用说明 240
13.2.4 定义范成法加工齿轮的对话框 241
13.2.5 编写范成法加工齿轮的仿真演示源程序 243
习题 249
附录A AutoLISP函数 251
A.1 赋值、求值与禁止求值函数 251
A.2 数值计算函数 252
A.3 关系运算函数 255
A.4 逻辑运算函数 256
A.5 几何运算函数 258
A.6 判断函数 261
A.7 流程控制函数 263
A.8 表处理函数 264
A.9 字符串处理函数 266
A.10 数据类型转换函数 269
A.11 交互输入函数 271
A.12 有关文件操作的函数 277
A.13 打印输出函数 280
A.14 有关函数的函数 281
A.15 处理错误函数 285
A.16 选择集操作函数 286
A.17 与AutoCAD直接相关的函数 291
A.18 图元操作函数 295
A.19 符号表操作函数 298
A.20 扩展数据操作函数 299
A.21 内存管理函数 300
A.22 对话框操作函数 301
A.23 菜单控制函数 304
A.24 数字化仪控制函数 305
A.25 控制环境变量的函数 305
A.26 词典操作函数 306
A.27 应用程序操作函数 308
A.28 Visual LISP扩展函数 311
A.29 有关ActiveX的函数 329
A.30 与反应器有关的函数 344
附录B AutoLISP程序出错代码 365
附录C AutoLISP程序出错信息 368
参考文献 371