第1章 应用Visual LISP环境 1
1.1启动Visual LISP 2
1.2 Visual LISP环境界面 3
1.2.1菜单概述 4
1.2.2控制台窗口 6
1.2.3文本编辑器概述 7
1.2.4加载并运行Auto LISP应用程序 8
1.2.5加载Auto LISP扩展函数 9
1.2.6退出Auto LISP环境 10
第2章 应用Visual LISP进行程序开发 11
2.1系统控制台 12
2.1.1系统控制台的功能 12
2.1.2系统控制台的快捷菜单 13
2.1.3分隔符处理 14
2.1.4上下文相关的帮助 15
2.1.5记录控制台事件 15
2.1.6使用控制台历史记录 16
2.1.7在Visual LISP和AutoCAD间切换 17
2.2.1文件操作 18
2.2应用文本编辑器 18
2.2.2彩色代码显示 20
2.2.3上下文相关的帮助 21
2.2.4文本编辑器的快捷菜单 22
2.2.5字段处理 23
2.2.6快捷功能 23
2.3格式化代码 33
2.3.1运行格式化器 33
2.3.2 Visual LISP格式化基础 33
2.4语法错误检查 41
2.4.1检查括号是否匹配 42
2.4.2应用彩色代码功能检查语法错误 43
2.4.3用检查命令查找语法错误 44
2.5 Visual LISP环境和格式设置选项 45
2.5.1窗口属性 45
2.5.2环境选项 48
2.5.3保存设置 52
第3章 调试程序 53
3.1在Visual LISP中进行调试 54
3.1.1设置断点 57
3.1.2单步调试程序 58
3.1.3跟踪表达式的运行结果 60
3.1.4在程序运行时跟踪变量 60
3.1.5继续运行程序 61
3.1.6在“自动执行”模式下运行 62
3.2 Visual LISP的调试功能 62
3.2.1开始调试 63
3.2.2中断循环 63
3.2.3断点 65
3.3.1“监视”窗口 68
3.3数据检验工具 68
3.3.2“跟踪堆栈”窗口 70
3.3.3“符号服务”对话框 76
3.3.4检验器 78
3.3.5查看AutoCAD图形图元 84
第4章 编译应用程序 87
4.1编译和链接程序 88
4.1.1如何应用编译器 88
4.1.2编译举例 90
4.1.3加载并运行编译过的程序 91
4.2生成应用程序 92
4.1.4链接函数调用 92
4.2.1创建新的应用程序 93
4.2.2应用程序输出文件介绍 97
4.2.3加载和运行Visual LISP应用程序 98
4.2.4修改应用程序选项 98
4.2.5重新编译应用程序 99
4.2.6更新应用程序 99
4.3针对多文档环境的设计方法 100
4.3.1理解名称空间 100
4.3.2在自身的名称空间中运行应用程序 102
4.3.3在名称空间中共享数据 106
4.3.4MDI环境下的错误处理 108
4.3.5在MDI环境下使用AutoLISP的限制 109
第5章 程序维护 110
5.1管理多个Visual LISP文件 111
5.2定义一个工程 112
5.2.1设置工程特性 113
5.2.2工程窗口 116
5.3.2在工程文件中查找字符 120
5.3工程操作 120
5.3.1打开一个工程 120
5.3.3由工程编译应用程序 121
5.4优化应用程序 122
5.4.1定义编译选项 122
5.4.2选择编译模式 123
5.4.3选择链接模式 124
5.4.4安全优化 125
第6章 使用ActiveX 127
6.1在AutoLISP中使用ActiveX对象 128
6.2 AutoCAD对象模型 132
6.2.1对象特性 132
6.2.2对象方法 133
6.2.3对象集合 133
6.3访问AutoCAD对象 134
6.3.1用检验工具查看对象特性 134
6.3.2从AutoCAD应用程序对象中获取其他对象 136
6.3.3过程概要 137
6.3.4编程技巧 138
6.4应用Visual LISP函数实现ActiveX方法 139
6.4.1确定所需的Visual LISP函数 140
6.4.2确定如何调用一个函数 141
6.4.3将AutoLISP数据类型转换为ActiveX数据类型 142
6.4.4读取和更新对象特性 147
6.4.5使用通过参数返回值的ActiveX方法 149
6.4.6显示一个对象的特性和方法 150
6.4.7对象集合操作 152
6.4.8释放对象和释放内存 155
6.4.9转换对象引用 155
6.4.10处理ActiveX方法返回的错误 157
6.5使用ActiveX与其他应用程序交互 159
6.5.1输入类型库 159
6.5.2建立与应用程序的连接 161
6.5.3应用程序编码样例 161
6.5.4不输入类型库时使用ActiveX 165
第7章 使用反应器 167
7.1理解反应器类型和事件 168
7.2定义回调函数 170
7.3创建反应器 172
7.3.1使用对象反应器 173
7.3.2将数据附着到反应器对象 175
7.4在多重名称空间中使用反应器 175
7.5查询、修改和删除反应器 177
7.5.1检验反应器 177
7.5.2使用函数调用查询反应器 178
7.5.3修改反应器 179
7.5.4删除反应器 180
7.6临时反应器和永久反应器 181
7.7反应器使用规则 181
第8章 AutoLISP基础 183
8.1 AutoLISP表达式 184
8.1.1 AutoLISP数据类型 185
8.1.2 AutoLISP函数语法 188
8.2 AutoLISP程序文件 188
8.2.1格式化AutoLISP程序 189
8.2.2注释 189
8.3 AutoLISP变量 190
8.3.1显示变量值 190
8.3.3预定义变量 191
8.3.2 nil变量 191
8.4数字操作 192
8.5字符串操作 193
8.6基本输入函数 194
8.6.1显示信息 194
8.6.2字符串中的控制字符 195
8.6.3通配符匹配 196
8.7比较和条件 197
8.8表处理 198
8.8.1点类型表 199
8.8.2点对 201
8.9符号和函数操作 202
8.9.1 C:XXX函数 203
8.9.2函数中的局部变量 205
8.9.3带参数的函数 207
8.10错误处理 208
8.10.1使用*error*函数 209
8.10.2捕获错误和继续执行程序 210
第9章 和AutoCAD通讯 213
9.1.1Command函数 214
9.1查询和Command函数 214
9.1.2系统和环境变量 216
9.1.3系统配置控制 216
9.2显示控制 217
9.2.1控制菜单 217
9.2.2图形和文本窗口显示控制 219
9.2.3低级图形控制 220
9.3获得用户输入 220
9.3.1 getxxx函数 220
9.3.2用户输入函数的条件控制 222
9.4几何实用函数 225
9.4.1对象捕捉 225
9.4.2文本范围 226
9.5转换 229
9.5.1字符串转换 229
9.5.2角度转换 231
9.5.3 ASCII代码转换 232
9.5.4单位转换 235
9.5.5坐标系转换 237
9.6.1文件查找 239
9.6文件处理 239
9.6.2存取帮助文件 240
9.7设备访问和控制 241
9.7.1获取用户输入 241
9.7.2校准数字化仪 241
第10章 操作AutoCAD对象 244
10.1操作选择集 245
10.1.1选择集过滤器表 247
10.1.2在AutoLISP和ObjectARX应用程序间传递选择集 253
10.2.1图元名称函数 254
10.2对象操作 254
10.2.2图元数据函数 260
10.2.3图元数据函数和图形屏幕 265
10.2.4多段线和轻装多段线 266
10.2.5非图形对象操作 267
10.3扩展图元数据——xdata 268
10.3.1扩展图元数据的组织 269
10.3.2注册应用程序 271
10.3.3检索扩展图元数据 272
10.3.4扩展图元数据附着到图元上 274
10.3.5扩展图元数据内存管理 275
10.3.6扩展图元数据中的句柄 275
10.4Xrecord对象 276
10.5获取符号表和词典 277
10.5.1符号表 277
10.5.2词典条目 278
第11章 设计对话框 280
11.1对话框部件 281
11.2.1 base.DCL和acad.DCL文件 282
11.2用DCL定义对话框 282
11.2.2引用DCL文件 283
11.2.3 DCL语法 283
11.3用Visual LISP显示对话框 286
11.3.1预览错误处理 287
11.3.2 DCL文件的语义核查 288
11.4调整对话框的布局 289
11.4.1在控件组中分配控件 289
11.4.2调整控件间距 290
11.4.3调整右端和底部的空间 290
11.4.4调整加框行和列周围的空间 291
11.4.5自定义退出按钮文本 292
11.5设计指南 294
11.5.1美观和功效 294
11.5.2前后一致的设计和清晰明了的语言 294
11.5.3用户控制 294
11.5.4容错处理 296
11.5.5提供帮助 296
11.5.6考虑残疾用户 296
11.5.9布局 297
11.5.8避免缩略语 297
11.5.7单词字母的大写 297
11.5.10控件的大小和位置 298
11.5.11禁用控件 298
11.5.12嵌套对话框 298
11.5.13隐藏对话框 298
11.5.14提供默认值 299
11.5.15处理键盘输入 299
11.5.16预定义控件和控件组的指导 300
11.5.17错误处理 302
第12章 管理对话框 304
12.1.1简介 305
12.1使用AutoLISP程序控制对话框 305
12.1.2对话框打开时限制函数 306
12.2动作表达式和回调 307
12.2.1动作表达式 308
12.2.2回调原因 309
12.3控件处理 310
12.3.1初始化模式和值 310
12.3.2在回调时改变模式和值 310
12.3.4处理滑块 312
12.3.3处理单选控件组 312
12.3.5处理编辑框 313
12.4嵌套对话框 314
12.5隐藏对话框 314
12.6列表框和弹出式列表 317
12.6.1列表操作 318
12.6.2处理列表框 319
12.7图像控件和按钮 320
12.7.1创建图像 320
12.7.2处理图像按钮 322
12.8特定应用数据 323
12.9 DCL错误处理 324
12.10.1函数序列 325
A.2.4错误处理函数 325
12.10对话框函数概要 325
12.10.2样例——块定义对话框 326
第13章 可编程对话框参考 327
13.1控件属性 328
13.1.1属性类型 328
13.1.2受限制的属性 329
13.1.3用户定义的属性 329
13.2预定义属性摘要 330
13.3 DCL属性目录 331
13.4 DCL控件功能摘要 339
13.4.1预定义活动控件 339
13.4.2控件组 339
13.4.3用于装饰和说明的控件 340
13.4.4文本控件组 340
13.4.5对话框退出按钮和错误控件 340
13.5 DCL控件目录 341
13.6可编程对话框函数摘要 354
第十四章 AutoLISP参考 356
附录A AutoLISP函数摘要 621
A.1分类概要 622
A.2基本函数 622
A.2.1应用程序处理函数 622
A.2.2数学函数 623
A.2.3等量和条件函数 624
A.2.5函数处理函数 626
A.2.6表操作函数 626
A.2.7字符串处理函数 628
A.2.8符号处理函数 629
A.3实用函数 629
A.3.1转换函数 630
A.3.2设备访问函数 630
A.3.3显示控制函数 630
A.3.4文件处理函数 631
A.3.5几何函数 632
A.3.6查询和命令函数 633
A.4.1扩展数据处理函数 634
A.4选择集、对象和符号表函数 634
A.3.7用户输入函数 634
A.4.2对象处理函数 635
A.4.3选择集操作函数 636
A.4.4符号表和词典处理函数 636
A.5内存管理函数 637
A.6 Visual LISP的AtuoLISP扩展函数 638
A.6.1 ActiveX集合操作函数 638
A.6.2 ActiveX数据转换函数 638
A.6.3 ActiveX方法调用函数 639
A.6.5 ActiveX特性处理函数 640
A.6.4 ActiveX对象处理函数 640
A.6.6曲线测量函数 641
A.6.7词典函数 642
A.6.8对象处理函数 642
A.7反应器函数 643
A.8 VLX名称空间函数 645
A.9名称空间通信函数 646
A.10 Windows 注册表函数 647
附录B AutoLISP错误代码 648