第1章 Visual LISP概况 1
1.1 启动Visual LISP 1
1.2 Visual LISP界面概述 1
1.2.1 菜单区 1
1.2.2 工具栏区 2
1.2.3 控制台窗口 3
1.2.4 状态栏 4
1.2.5 跟踪窗口 4
1.2.6 文本编辑器 4
1.3.2 加载并运行程序片断 5
1.3.1 打开一个AutoLISP程序 5
1.3 加载和运行AutoLISP程序 5
1.2.7 Visual LISP 的其他窗口 5
1.3.3 加载并运行整个程序 6
1.4 使用扩展的AutoLISP函数 7
1.5 关闭Visual LISP 7
第2章 使用Visual LISP文本编辑器 8
2.1 文本编辑器概要 8
2.2 文本编辑器快捷菜单 8
2.3 文本编辑器的快捷键 9
2.3.1 修改文本 9
2.3.2 选定文本 10
2.3.4 格式化 11
2.3.3 浏览 11
2.3.5 移动和复制 12
2.4 查找、替换与书签 13
2.4.1 查找和替换 13
2.4.2 书签 14
2.5 语法结构分色和匹配 15
2.5.1 语法分色 16
2.5.2 匹配 17
2.5.3 使用自动匹配搜寻结果 18
2.5.4 按历史匹配 18
2.6 程序代码格式化 20
2.5.5 按系统匹配 20
2.6.1 Visual LISP程序格式样式 21
2.6.2 Visual LISP的注释 22
2.7 语法检查 22
2.7.1 检查括号匹配 22
2.7.2 用语法分色检查拼写错误 23
2.7.3 使用检查命令检查其他语法错误 23
第3章 调试程序 25
3.1 Visual LISP的调试器功能 25
3.2 调试器使用方法 25
3.2.1 调试准备 25
3.2.2 试验跟踪和分步调试过程 26
3.2.3 试验动态跟踪调试 27
3.3 使用Visual LISP调试功能 28
3.3.1 调试功能概况 28
3.3.2 VLISP中程序中断的基本概念 31
3.3.3 关于可继续中断循环 32
3.3.4 关于进入可继续中断循环后的调试方法 33
3.3.5 关于不可继续中断循环 34
3.3.6 断点操作 34
3.4 数据检验工具 36
3.4.1 打开和关闭日志文件 37
3.4.2 使用监视窗口 37
3.4.3 使用跟踪堆栈窗口 39
3.4.4 使用符号服务对话框 44
3.4.5 使用检验窗口 45
3.5 访问AutoCAD图形对象 48
第4章 AutoLISP程序设计 53
4.1 AutoLISP程序设计初步 53
4.1.1 AutoLISP比较容易学会和使用 54
4.1.2 AutoLISP适于给专业用户作开发工具 54
4.1.3 AutoLISP程序语法特点 57
4.1.4 AutoLISP程序与AutoCAD应用开发 58
4.2 编写AutoLISP专业用户功能的一般过程 59
4.2.1 专业应用程序设计的一般过程 60
4.2.2 专业应用程序设计的质量要求 62
4.2.3 专业应用程序设计的辅助手段 63
4.3 在命令行使用AutoLISP表达式 65
4.3.1 建立和引用AutoLISP变量响应命令提示 65
4.3.2 用AutoLISP表达式响应命令提示 66
4.4 在其他定制文件中使用Visual LISP表达式 67
4.4.1 在脚本文件中使用表达式 67
4.4.2 在菜单文件中使用表达式 68
4.4.3 AutoCAD.LSP、*.MNL和AutoCADDOC.LSP 69
4.4.4 将AutoLISP 表达式放在某个图形对象中 70
4.5 给AutoCAD添加用户命令 70
4.5.1 用户自定义函数之一 70
4.5.2 (Command)(VL-CmdF)函数 71
4.5.3 在程序中引用AutoCAD命令时的注意事项 72
4.5.4 实例I 74
4.5.5 实例II 75
4.5.6 怎样描述关于点位的响应 76
4.5.7 简单响应 选择对象 的提示 78
4.5.8 向AutoCAD注册用户命令 79
4.5.9 重新定义AutoCAD原有命令 83
4.5.10 怎样描述关于长度数据输入的程序段 84
4.5.11 程序中数据的表达 84
4.5.12 数据与字串的转换问题 85
4.6.1 选择集过滤器的使用实例 86
4.6 怎样在AutoLISP程序中组织和使用对象选择集 86
4.6.2 在程序中对象选择集组建和对象的响应 88
4.7 给AutoLISP添加用户函数 90
4.7.1 Defun 函数的再认识 90
4.7.2 形式参数和实际参数 91
4.7.3 自定义函数的必要性 91
4.7.4 制造自定义函数的返回值 93
4.7.5 自定义函数的变量表写法 94
4.8 Visual LISP 程序可能的运行模式 96
4.9 在程序中使用DCL作界面 99
4.9.1 概论 99
4.9.2 DCL 程序的语法 100
4.9.3 对话框的使用 101
4.9.4 察看对话框 101
4.9.5 制作第一个DCL 102
4.9.6 使用图像控件 104
4.9.7 DCL支持程序 108
4.9.8 DCL的检验和出错处理 108
4.9.9 DCL程序的简单控制和使用 113
4.9.10 用DCL查设计参数表和默认值控制 115
4.9.11 图像按钮的控制和使用 117
4.9.12 DCL结束的控制方法 120
4.9.13 自定义图像按钮集 121
4.9.14 列表盒与用户对有限参数的选择输入 123
4.9.15 列表盒内容设置的几个技术要点 124
4.9.16 不确定值的输入问题 130
4.9.17 关于DCL的自我动作描述问题 137
4.10 对象数据库的访问与数据使用 137
4.10.1 传统的数据库访问方法 138
4.10.2 找到要分析对象的图元名的方法 142
4.10.3 多段线对象数据的使用 143
4.10.4 用ActiveX 数据结构访问数据库 146
4.10.5 CAGD在专业设计程序中的应用 148
5.1 理解和正确使用AutoLISP 的条件函数 158
第5章 AutoLISP应用程序设计技巧集锦 158
5.2 正确理解和使用AutoCAD的数据库 160
5.3 对象描述双元表及其使用 166
5.4 利用绘图时建立的条件进行尺寸标注 169
5.5 永久型选择集和(HandEnt)函数 171
5.6 在AutoLISP中定义和使用多维数组 173
5.7 使用外部参数文件 174
5.7.1 其他应用程序生成的参数文件 175
5.7.2 AutoLISP 程序专用的外部数据文件 176
5.7.3 读入外挂数据文件的结束处理 177
5.7.4 外挂数据文件与VLX程序包编译 177
5.8 设计手册查找的自动化 180
5.9 建立和使用非图形数据 185
5.9.1 属性格式的非图形数据结构 186
5.9.2 扩展的对象数据库 189
5.9.3 词典中的非图形数据 195
5.9.4 图形词典 197
5.10 自定义出错处理 201
5.10.1 设置公用的自定义出错处理功能 201
5.10.2 在自定义函数中,函数实参的检验和出错退出功能 203
5.10.3 在函数的定义中处理出错 205
5.11 参数化的、柔性的图形库 206
5.12 在Get族函数中使用关键词 208
5.13 怎样编写设计过程模拟程序 210
5.14 正确使用AutoCAD的系统变量 215
5.15 在程序中使用 Fillet 功能 216
5.16 怎样在一个程序中处理多个图形文件 218
5.17 根据图文件自动加载应用程序 222
5.18 自定义工具栏图标丢失问题 224
5.19 Read函数的灵活使用 225
5.20 Eval函数的用法 228
5.21 Set函数的用法 233
5.22 SsGet函数的用法 233
5.23 从另外一个图形数据库中获取对象信息 235
5.24 Boundarygon功能在程序中引用时的问题 235
5.25 LWPolyLine在程序中处理的问题和性能评价 238
5.26 沿圆或弧写字 246
5.27 在程序中控制文本字行的格式 248
5.28 AutoCAD 2000之后的VLISP中,输入对话框的控制问题 252
5.29 VLISP程序中DOS功能的引用 253
5.30 已有块的更新处理问题 260
5.31 *.MNL程序设计概要 269
5.32 =/Eq/Equal函数的区别 278
5.33 Not/Null/BoubdP函数的区别 280
5.34 曲线的任意点坐标的探测和曲线的转换 282
5.35 外部参照修剪的特殊用法和功能修补 284
5.36 在程序中字体高度设置问题 288
5.37 程序间公用数据的处理方法 290
5.38 图线遮挡的产生方法 297
5.39 组(Group)的数据分析 301
5.40 点选轮廓中间点得到轮廓索引名 304
第6章 工程--应用程序集的管理和编译 305
6.1 管理多个程序文件 305
6.1.1 Visual LISP 的工程 305
6.1.2 工程中涉及到的文件类型 305
6.2 使用 Visual LISP 工程 306
6.2.1 创建一个新的工程 307
6.2.3 调入文件的次序 308
6.2.2 确定工程中 AutoLISP 源程序 308
6.2.4 选择编译器选项 309
6.3 工程文件的操作 311
6.3.1 在工程中查找源文件中的内容 313
6.3.2 将工程放在应用程序包中 314
第7章 应用程序包的编译 315
7.1 程序包的编译和链接 315
7.1.1 VLISP的编译器 316
7.1.2 用(VLisp-Compile)函数编译程序 316
7.1.3 加载和运行已编译程序 317
7.2 制作应用程序包 318
7.1.4 编译后的函数调用问题 318
7.2.1 生成一个新的应用程序包 319
7.2.2 应用程序包的更新和修改 323
7.3 关于多图档下的程序设计与编译 324
7.3.1 变量空间 324
7.3.2 使函数在全部图档中有效 325
7.3.3 应用程序的独立变量空间 325
7.3.4 使具有独立变量空间的非C:函数对外部引用有效 326
7.3.5 在其他VLX程序中引用独立变量空间的函数 327
7.3.6 在独立变量空间的VLX中使用图档变量空间中的变量 328
7.3.7 使图档变量空间中的变量在所有图档中都有效 328
7.3.9 在多图档环境中的自定义错误处理 329
7.3.8 在各个变量空间之间进行数据共享 329
第8章 ActiveX的使用 331
8.1 ActiveX对象概论 332
8.2 AutoCAD的对象模型构架 332
8.2.1 对象的属性 332
8.2.2 对象的方法 332
8.3 ActiveX对象访问概论 333
8.3.1 访问应用程序对象 333
8.3.2 生成和访问图形对象 334
8.4 使用ActiveX方法的VLISP函数 338
8.4.1 查找所需要的函数 339
8.4.2 确定函数的参数 340
8.4.3 将数据转换为ActiveX类型 342
8.4.4 使用变体类型数据 343
8.4.5 使用安全数组 344
8.4.6 转换其他AutoLISP数据类型,为ActiveX方法准备数据 347
8.4.7 实例分析 348
8.4.8 确定方法或属性是否适用于某对象 350
8.4.9 使用集合(Collections)对象 350
8.4.10 释放对象和空出内存 357
8.4.11 转换对象的引用 358
8.4.12 ActiveX方法出错的处理 359
8.5 ActiveX与其他应用程序的交互 362
8.5.1 引入一个类型库 363
8.5.2 与应用程序建立联系 364
8.5.3 应用程序实例 366
8.5.4 不引入类型库使用 ActiveX 方法 369
8.5.5 访问和更新图形对象属性 371
8.5.6 使用参数带回返回值的 ActiveX 方法 373
8.6 ActiveX应用评价和定位 374
第9章 反应器的使用 390
9.1 反应器 391
9.1.1 反应器类型 391
9.1.2 反应器的回调事件 392
9.1.3 反应器的回调函数 393
9.2 生成反应器 395
9.2.1 生成对象反应器 395
9.2.2 给反应器添加应用数据 397
9.2.3 在多图档中使用反应器 397
9.2.4 查询、修改和删除反应器 398
9.3 临时或永久的反应器 401
9.4 对象反应器支持程序的自动加载 401
9.5 反应器应用注意事项 404
第10章 Visual LISP函数详解 406
10.1 AutoLISP数据类型 406
10.2.1 应用程序管理函数 408
10.2 AutoLISP基本函数 408
10.2.2 数学计算函数 410
10.2.3 等式和条件函数 413
10.2.4 出错处理函数 416
10.2.5 函数处理函数 417
10.2.6 表操作函数 421
10.2.7 字串处理函数 426
10.2.8 符号操作函数 429
10.3 AutoLISP实用函数 432
10.3.1 转换函数 432
10.3.2 设备访问函数 436
10.3.3 显示控制函数 437
10.3.4 文件操作函数 439
10.3.5 几何函数 443
10.3.6 命令与查询函数 444
10.3.7 用户输入函数 448
10.4 AutoLISP选择集和符号表函数 451
10.4.1 扩展的数据库操作函数 451
10.4.2 对象操作函数 451
10.4.3 选择集操作函数 454
10.4.4 符号表操作函数 458
10.5 AutoLISP内存管理函数 460
10.6.1 ActiveX集合操作函数 461
10.6 Visual LISP 的扩展函数 461
10.6.2 ActiveX数据转换函数 462
10.6.3 ActiveX方法调用函数 467
10.6.4 ActiveX对象处理函数 467
10.6.5 ActiveX属性处理函数 470
10.6.6 应用程序对象处理函数 471
10.6.7 Visual LISP反应器函数 472
10.6.8 VLX变量空间函数 493
10.6.9 VLX变量空间通信函数 494
10.7.1 对话框打开与关闭控制函数 495
10.7 DCL操作函数 495
10.6.10 系统注册表函数 495
10.7.2 控件和属性操作函数 496
10.7.3 列表类控件操作函数 497
10.7.4 图像控件操作函数 498
10.8 DCL预定义控件 498
10.8.1 DCL控件的预定义属性 498
10.8.2 DCL控件的自定义属性 502
10.8.3 DCL的预定义动作控件 502
10.8.4 DCL的预定义控件簇 505
10.8.5 DCL的预定义修饰和提示性控件 507
10.9.1 用分析器分析程序的操作过程 509
10.9 AutoLISP 程序分析器 509
10.8.6 DCL的预定对话框结束和出错处理控件 509
10.9.2 程序分析 511
10.9.3 主对话框中的有关功能 511
10.9.4 选项 对话框中的有关功能 512
10.9.5 一些说明 512
10.9.6 程序分析规则文件 513
第11章 用户化和系统定制 514
11.1 概论 514
11.2 AutoCAD 2002运行参数设置 514
11.2.1 文件 选项卡的设置 514
11.2.2 打开和保存 选项卡下的设置 517
11.2.3 AutoCAD启动条件的设置 520
11.3 操作系统参数设置和日常维护 521
11.4 几个操作系统的比较 524
11.5 线型库的定义与使用 525
11.5.1 在命令行生成线形库 525
11.5.2 直接编辑、生成带有文字片段的线形库文件 526
11.5.3 直接编辑生成带有形定义的线性库文件 527
11.6 多线样式库的定义与使用 528
11.6.1 多线样式命令 528
11.6.2 在命令交互中生成用户多线样式 528
11.6.3 多线样式库文件 530
11.7.1 加入DOS 命令 531
11.7 AutoCAD.PGP文件的用户化 531
11.7.3 定义常用命令的缩写 532
11.7.2 加入Windows命令的方法 532
11.8 脚本文件设计与使用 533
11.9 形定义生成与字体文件 533
11.9.1 Shape的特点 533
11.9.2 形定义的生成 534
11.9.3 大字库字体文件格式介绍 535
11.10 自定义填充图案库 537
11.10.1 填充图案库文件的格式 537
11.10.2 生成自定义填充图案库 537
11.10.3 使用自定义填充图案库 539
11.11 自定义符号库 540
11.10.4 特殊填充图案的处理 540
11.12 实时助手的运行条件设置 542
11.13 几个限制 546
11.14 菜单定制于应用 547
11.14.1 菜单文件的加载和组合 547
11.14.2 单文件的基本构成 550
11.14.3 单项的基本语法 551
11.14.4 下拉菜单段(pull-down menus) 551
11.14.5 光标菜单(cursor menu) 554
11.14.6 关联菜单(following shortcut menu) 554
11.14.8 按钮和辅助菜单段 557
11.14.7 菜单组名段 557
11.14.9 工具栏段 558
11.14.10 图像控件菜单段 562
11.14.11 菜单的帮助 566
11.14.12 加速键设置菜单段 566
第12章 AutoCAD 2002新增功能和函数 569
12.1 关联标注 569
12.2 文字处理新功能 571
12.3 图形标准的设置与使用 573
12.4 属性处理新功能 577
12.5 新的Visual LISP函数 579
13.1 议论 581
第13章 因特网上的问与答 581
13.2 命令使用 620
13.3 程序设计 649
第14章 DXF组码参考 683
14.1 DXF基本概念 683
14.2 DXF通用组码 683
14.3 TABLET(符号表)中的DXF组码 686
14.4 BLOCKS(块定义表)中的DXF组码 696
14.5 ENTITIES(图形实体表)中的DXF组码 697
14.6 OBJECTS(命名对象表)中的DXF组码 714