编者的话 1
第1章 AutoLISP基础 1
1.1 概述 1
1.2 AutoLISP表达式 1
前言 1
1.3 AutoLISP数据类型 2
1.3.1 整数 2
1.3.3 字符串 3
1.3.4 表 3
1.3.2 实数 3
1.3.5 选择集 4
1.3.6 实体名 4
1.3.7 VLA对象 4
1.3.8 文件描述符 4
1.3.9 符号和变量 5
1.4 AutoLISP程序文件 6
1.4.1 格式化AutoLISP代码 7
1.4.2 注释 7
1.5 AutoLISP变量 8
1.5.1 显示一个变量的值 8
1.4.3 代码着色 8
1.5.2 预定义的变量 9
1.5.3 Nil变量 9
1.6 数据处理 10
1.7 字符串处理 11
1.8 基本输出函数 13
1.8.1 显示信息 13
1.8.2 字符串控制字符的使用 14
1.8.3 统配符匹配 15
1.9 关系和条件处理 16
1.10 表处理 19
1.10.1 点表 23
1.10.2 点对 25
1.11 符号和函数处理 26
1.11.1 符号处理 26
1.11.2 函数处理 28
1.11.3 使用defun定义函数 29
1.11.4 向AutoCAD增加命令的C:XXX函数定义 30
1.11.5 函数的局部变量定义 32
1.11.6 函数参数 33
1.12 错误处理 34
1.12.1 使用*error*函数 35
1.12.2 捕获错误并继续执行程序 36
1.13 应用程序处理 38
1.13.1 应用程序处理函数 38
1.13.2 装载AutoLISP应用程序 40
1.13.3 装载ARX应用程序 41
第2章 AutoLISP与AutoCAD通信 43
2.1 查询和命令函数 43
2.1.1 执行AutoCAD命令 43
2.1.2 系统及环境变量 45
2.2.1 控制菜单 46
2.2 显示控制 46
2.1.3 配置控制 46
2.2.2 控制图形和文本窗口 48
2.2.3 控制低层图形 49
2.3 获取用户输入 49
2.3.1 用户输入函数getxxx 50
2.3.2 用户输入函数条件的控制 51
2.4 几何实用函数 53
2.4.1 对象捕捉(Object Snap) 53
2.4.2 文字区域 54
2.5.1 字符串转换 57
2.5 转换 57
2.5.2 角度转换 59
2.5.3 ASCII码转换 60
2.5.4 单位转换 61
2.5.5 坐标系转换 63
2.6 文件处理 65
2.6.1 写字符到屏幕或文件中 65
2.6.2 写字符串到屏幕或文件中 65
2.6.3 读一个字符 66
2.6.4 读一个字符串 66
2.6.6 文件的查找 67
2.6.5 打开与关闭文件 67
2.6.7 搜索选择指定扩展名的文件 68
2.6.8 访问帮助文件 69
2.7 设备访问与控制 70
2.7.1 访问用户输入 71
2.7.2 数字化仪的校准 71
第3章 操作AutoCAD对象 73
3.1 选择集处理 73
3.1.1 选择集过滤器表 75
3.1.2 在AutoLISP和ObjectARX之间传递选择集 78
3.2.1 实体名函数 79
3.2 对象处理 79
3.2.2 实体数据函数 83
3.2.3 实体数据函数与图形屏幕 89
3.2.4 老式多段线与优化多段线对象 90
3.2.5 非图形对象的处理 90
3.3 扩展数据(XDaTa) 91
3.3.1 扩展数据的组织结构 92
3.3.2 注册应用程序 94
3.3.3 检索扩展数据 95
3.3.6 扩展数据的句柄 96
3.3.4 附加扩展数据于实体 96
3.3.5 使用扩展数据内存管理 96
3.4 扩展记录XRecord对象 97
3.5 访问符号表与词典 98
3.5.1 符号表 98
3.5.2 词典条目 99
第4章 设计对话框 101
4.1 对话框部件 101
4.2.1 base.dcl和acad.dcl文件 103
4.2.2 引用DCL文件 103
4.2 使用DCL定义对话框 103
4.2.3 DCL语法 104
4.3 使用Visual LISP显示对话框 106
4.3.1 预览错误处理 107
4.3.2 DCL文件语义核查 108
4.4 调整对话框的布置 109
4.4.1 对话框实例 109
4.4.2 建立控件组 110
4.4.3 控件间的间距 111
4.4.5 加框行和列周围的空间 112
4.4.4 右端和底端的空间 112
4.4.6 自定义退出按钮文本 113
4.5 设计指导 114
4.5.1 美观和功效性 114
4.5.2 前后一致的设计和清晰明了的语言 114
4.5.3 用户控制 115
4.5.4 容错处理 116
4.5.5 提供帮助功能 116
4.5.6 对残疾用户的考虑 116
4.5.9 布局 117
4.5.10 控件的大小和位置 117
4.5.8 缩略语的使用 117
4.5.7 单词字母的大写 117
4.5.11 将控件置为无效 118
4.5.12 对话框的嵌套使用 118
4.5.13 隐藏对话框 118
4.5.14 提供缺省数值 118
4.5.15 键盘输入 119
4.5.16 预定义控件和控件组的指导 119
4.5.17 错误处理 122
5.1.1 快速入门 123
5.1 使用AutoLISP程序控制对话框 123
第5章 管理对话框 123
5.1.2 一个对话框打开时的函数使用限制 124
5.2 动作表达式和回调 125
5.2.1 动作程序与回调函数 125
5.2.2 动作表达式 126
5.2.3 回调原因 127
5.2.4 缺省值和DCL动作 127
5.3 处理控件 128
5.3.1 初始化模式与值 128
5.3.2 在回调时改变模式和值 128
5.3.3 处理单选控制组 129
5.3.4 处理滑块 130
5.3.5 处理编辑框 130
5.4 嵌套对话框 131
5.5 隐藏对话框 131
5.5.1 隐藏对话框 131
5.5.2 要求口令 133
5.6 列表框和弹出式列表 134
5.6.1 列表操作 134
5.6.2 处理列表元素 135
5.7.1 创建图像 136
5.7 图像控件和按钮 136
5.7.2 处理图像按钮 138
5.8 特定应用数据 139
5.9 DCL错误处理 139
5.10 对话框函数概要 141
5.10.1 函数调用顺序 141
5.10.2 样例块定义对话框 141
第6章 可编程对话框参考 142
6.1 控件属性 142
6.1.1 属性类型 142
6.1.3 用户自定义属性 143
6.2 预定义属性概要 143
6.1.2 受限制的属性 143
6.3 DCL属性分类 145
6.4 对话框控件功能概要 152
6.4.1 预定义活动控件 152
6.4.2 控件组 152
6.4.3 用于修饰和说明的控件 152
6.4.4 文本控件组 153
6.4.5 对话框的退出按钮和错误控件 153
6.4.6 限制使用的控件 153
6.5 DCL控件分类 153
6.6.1 对话框的打开和关闭函数 164
6.6 可编程对话框函数概要 164
6.6 2 控件和属性处理函数 165
6.6.3 列表框和弹出式列表处理函数 165
6.6.4 图像控件处理函数 165
6.6.5 应用程序特定数据处理函数 165
第7章 熟悉Visual LISP环境 166
7.1 启动Visual LISP 166
7.2 熟悉Visual LISP用户界面 167
7.2.1 Visual LISP文本编辑器 167
7.3.1 可变的菜单内容 168
7.2.2 其他Visual LISP窗口 168
7.3 了解Visual LISP菜单 168
7.3.2 Visual LISP菜单概述 169
7.4 熟悉控制台窗口 170
7.5 使用Visual LISP文本编辑器 171
7.6 装载和运行AutoLISP程序 171
7.6.1 运行选择代码行 172
7.6.2 使用扩展的AutoLISP函数 172
7.7 退出Visual LISP环境 173
8.2 使用控制台窗口 174
8.1 开始组织 174
第8章 使用Visual LISP开发程序 174
8.2 1 控制台特性简述 175
8.2.2 对多个图形使用控制台窗口 177
8.2.3 使用控制台快捷菜单 177
8.2.4 记录控制台窗口的动作 178
8.3 使用文本编辑器 179
8.3.1 编辑一个文件 179
8.3.2 使用文本编辑器快捷菜单 180
8.3.3 使用文本编辑器快捷键 181
8.3.4 移动和拷贝文本 183
8.3.5 文本搜索 184
8.3.6 给文本做书签标记 186
8.4 使用控制台和编辑器辅助编码工具 187
8.4.1 熟悉Visual LISP代码的语法着色 188
8.4.2 使用自动匹配功能 188
8.4.3 Visual LISP的完词功能 191
8.4.4 为AutoLISP函数获取帮助 194
8.5 使用Visual LISP将源代码格式化 194
8.5.1 Visual LISP格式化样式 195
8.5.2 应用格式化选项 197
8.5.4 保存和恢复格式选项 200
8.5.3 应用Visual LISP注释样式 200
8.5.5 格式化器的约束 201
8.5.6 格式化快捷键 201
8.6 检查语法错误 202
8.6.1 检查括号的平衡 202
8.6.2 利用代码着色检测语法错误 203
8.6.3 使用检查命令查找语法错误 204
8.6.4 查找程序中语法错误位置 205
第9章 调试程序 206
9.1 Visual LISP调试特征 206
9.2 调试实例 206
9.2.1 设置中断程序运行的断点 207
9.2.2 单步执行程序 208
9.2.3 监视表达式的求值结果 209
9.2.4 继续程序的执行 210
9.2.5 在“自动执行”模式下运行 210
9.3 使用Visual LISP调试功能 210
9.3.1 启动一个调试过程 211
9.3.2 中断循环 211
9.3.3 使用断点 213
9.4 使用Visual LISP数据检验工具 215
9.4.2 跟踪堆栈窗口 216
9.4.1 使用“监视”窗口 216
9.4.3 使用符号服务对话框 221
9.4.4 使用“检验”窗口 222
9.4.5 查看AutoCAD图形实体 226
第10章 编译应用程序 229
10.1 编译和链接程序 229
10.1.1 使用编译器 229
10.1.2 从一个文件编译一个程序 229
10.1.3 浏览一个编译实例 231
10.1.4 装载并运行编译程序 232
10.2.1 创建一个新应用程序 233
10.1.5 链接函数调用 233
10.2 创建应用程序模块 233
10.2.2 装载和运行Visual LISP应用程序 237
10.2.3 修改应用程序选项 238
10.2.4 重新编译一个应用程序 238
10.2.5 更新一个应用程序 238
10.3 针对多文档环境设计 239
10.3.1 名称空间 239
10.3.2 在自己的名称空间中运行一个应用程序 240
10.3.3 共享名称空间中的数据 244
10.3.4 处理多文档环境中的错误 245
10.3.5 在一个多文档环境下使用AutoLISP的限制 246
第11章 维护Visual LISP应用程序 247
11.1 管理多个LISP文件 247
11.2 定义一个工程 248
11.2.1 设置工程文件属性 249
11.2.2 使用工程窗口操作工程文件 251
11.3 使用现有工程 253
11.3.1 打开一个工程 253
11.3.2 在工程源文件中查找字符串 253
11.3.3 在Visual LISP应用程序中包括一个工程 254
11.4.1 定义编译选项 255
11.4 优化应用程序代码 255
11.4.2 选择一个编译模式 256
11.4.3 选择一个链接模式 257
11.4.4 安全优化 257
第12章 使用ActiveX 260
12.1 在AutoLISP中使用ActiveX对象 260
12.2 掌握AutoCAD对象模型 260
12.2.3 对象集合 262
12.3 访问AutoCAD对象 262
12.2.2 对象方法 262
12.2.1 对象特性 262
12.3.1 使用检验工具查看对象特性 263
12.3.2 从Application对象向前移动 264
12.3.3 过程概述 264
12.3.4 编程技巧 265
12.4 在Visual LISP函数中使用ActiveX方法 266
12.4.1 确定用户需要的Visual LISP函数 266
12.4.2 确定如何调用一个函数 266
12.4.3 转换AutoLISP数据类型为ActiveX数据类型 266
12.4.4 查看和更新对象特性 271
12.4.5 使用通过参数返回值的ActiveX方法 273
12.4.6 列出对象的特性和方法 274
12.4.7 使用集合对象 276
12.4.8 释放对象和内存 278
12.4.9 转换对象引用 279
12.4.10 处理由ActiveX方法返回的错误 280
12.5 使用ActiveX与其他应用程序交互 281
12.5.1 输入一个类型库 282
12.5.2 建立与应用程序的连接 283
12.5.3 编写一个实例应用程序 283
12.5.4 不输入类型库时使用ActiveX 286
13.2 熟悉反应器类型和事件 288
第13章 附加反应器到AutoCAD图形 288
13.1 反应器概述 288
13.3 定义回调函数 290
13.4 创建反应器 292
13.4.1 使用对象反应器 292
13.4.2 附加数据到反应器对象 294
13.5 在多重名称空间中使用反应器 294
13.6 查询、修改和删除反应器 295
13.6.1 检验反应器 295
13.6.3 修改反应器 296
13.6.2 使用函数调用查询反应器 296
13.6.4 删除反应器 297
13.7 临时反应器和永久反应器 298
13.8 反应器用户指导 298
第14章 Visual LISP环境和格式设置 300
14.1 窗口属性设置 300
14.2 环境选项设置 302
14.2.1 基本选项 302
14.2.3 页面设置选项 304
14.3 保存设置 304
14.2.2 Visual LISP格式选项 304
第15章 AutoLISP和VLISP开发实例 305
15.1 开发一个轴段绘制应用程序 305
15.1.1 绘图程序的编写 305
15.1.2 用户界面程序(DCL)的编写 310
15.1.3 主调函数及参数处理函数的编写 313
15.1.4 进行轴的设计及绘图 317
15.2 开发一个花园路径绘制应用程序 318
15.2.1 编写主程序 318
15.2.2 编写绘图函数 320
15.2.3 编写一些工具函数 325
15.2.4 建立Gpath应用程序 327