内容简介
在AutoCAD能提供的多种程序设计界面里,AutoLISP是最容易入门及精通的程序语言。当更新到更高级版本的环境下,用AutoLISP编写的程序几乎不需任何改动即可直接使用。本书以单元方式逐步引导你使用AutoLISP解决日常工作上的问题,并提供相关的设计概念和技巧,让你可以触类旁通,举一反三。书中涉及的程序源代码在http://www.tqbooks.net/download.asp网上可免费下载。如有疑问可登录作者网站httn://www.ericlan.idv.tw与作者联系。
本书由台湾春峰资讯股份有限公司提供版权,经中国铁道出版社计算机图书中心审选,由夏梦谨、邵静、孙峰、孙丽华、陈小莹、王国平、段红娟、杨宝卫、陈贤淑、陈晓娟、廖康良等同志完成了本书的整稿及排版工作。
中国铁道出版社
2002年12月
《AutoLISP学习引导》书籍目录
为什么要学autolisp 1
学会运用autolisp的益处 1
学习autolisp的条件 1
基本计算机配备 2
编排说明 2
autolisp参考手册 3
单位 3
重点复习 3
进阶挑战 4
autolisp基本语法 5
四则运算 5
加 5
减 6
乘 6
除 6
如果漏了括号 7
选择性参数 7
重点复习 8
进阶挑战 8
常量、变量与数据类型 9
.常量 9
序列 9
原子 9
设定变量 10
变量名称设定要诀 10
查询及取用变量内容 11
set与quote函数 12
数据类型 13
重点复习 15
进阶挑战 15
autolisp语句的写法 16
范例一 16
范例二 16
范例三 17
重点复习 17
进阶挑战 17
lisp程序文件存放位置 18
建立autolisp程序文件专用目录 18
将lisp文件夹加入支持文件搜寻路径 19
提升lisp文件夹的搜寻优先级 20
重点复习 21
进阶挑战 21
编辑及保存lisp程序文件 22
建立第一个autolisp程序文件 22
首次保存autolisp程序文件 22
visual lisp编辑器 22
notepad 24
wordpad 25
word 26
编辑已有的autolisp程序文件 27
重点复习 27
进阶挑战 27
加载及执行lisp程序 28
加载程序文件 28
执行程序 28
在visual lisp窗口加载及执行程序 29
load函数 29
filename参数 29
onfailure参数 30
文件载入的可能情况 30
lisp文件载入情况一 30
lisp文件载入情况二 31
lisp文件载入情况三 31
lisp文件载入情况四 31
重点复习 32
进阶挑战 32
从菜单执行程序 33
菜单文件 33
菜单文件类型 33
自定义局部菜单 34
菜单组 34
下拉菜单 34
载入自定义菜单文件 34
mnl文件 37
判断程序是否已经加载 38
卸载菜单组 38
重点复习 39
进阶挑战 39
自定义函数 40
参数 40
错误的参数 41
全局变量 41
局部变量 42
自定义autocad命令 43
重点复习 44
进阶挑战 44
程序编写原则 45
注释 46
建立autolisp程序文件 46
加载程序文件 47
函数的数据类型 47
执行函数 48
重点复习 48
进阶挑战 49
基本输入 50
取得点坐标 50
取得坐标的xyz分量 51
自组坐标序列 52
取得整数 52
取得实数 53
取得角度 54
取得字符串 54
字符串中的句柄 55
查询及设定系统变量 56
只读的系统变量 56
重点复习 57
进阶挑战 57
程序设计基本流程 58
在autocad内执行autolisp语句 58
从autolisp调用autocad命令 58
切换图形/文字窗口 60
编辑程序 60
加载程序 61
程序内容错误信息 61
执行程序 61
nil返回值 62
关闭命令与程序响应 62
编辑新程序 62
维持程序的流畅性 63
加载及执行新程序 64
重点复习 64
进阶挑战 64
自定义命令 65
等待用户输入 65
如果cmdecho = 0 65
如果cmdecho = 1 66
pause 参数的缺点 66
取消autocad内置命令 67
强制调用autocad内置命令 67
以自定义命令取代autocad内置命令 67
重点复习 69
进阶挑战 69
autolisp错误信息 70
*error*函数 70
errno系统变量 70
自定义*error*函数 71
在程序内自定义*error*函数 72
errno系统变量表 73
重点复习 76
进阶挑战 76
整数 77
整数范围 77
二进制表示法 77
负整数 78
负整数二进制值推算法 79
4位有符号整数表 79
最大与最小整数之外 79
重点复习 80
进阶挑战 81
实数 82
实数范围 82
实数的有效位数 83
误差 85
累积误差 86
重点复习 87
进阶挑战 88
字符串与字符 89
改变字母的大小写 89
组合字符串 89
字符串长度 90
字符串中的句柄 90
字符的ascii码 91
获取子字符串 93
搜寻子字符串 93
重点复习 94
进阶挑战 95
坐标 96
坐标 96
位移 96
两点距离 97
两点连线角度 98
等分点 99
两线交点 99
点到线的最短距离 100
重点复习 103
进阶挑战 103
序列 104
多数据计算 104
矩阵 106
一般序列 107
字符串序列 111
点对序列 111
关联数据序列 112
重点复习 113
进阶挑战 114
画矩形 115
讨论 115
程序流程 115
用到的函数 116
程序初步内容 116
加载及执行程序 116
修改程序 117
重新加载及执行程序 118
紧缩程序 118
声明局部变量 119
重点复习 120
进阶挑战 120
标注 121
讨论 121
程序流程 122
用到的函数 122
编辑程序 122
加载及执行程序 123
紧缩程序 123
重点复习 124
进阶挑战 124
画双线 125
讨论 125
程序流程 125
用到的函数 126
编辑程序 126
加载及执行程序 127
紧缩程序 127
重点复习 128
进阶挑战 128
对象数据 129
以list指令查询 129
以autolisp函数查询 130
查询直线段的对象数据 130
查询单行文字的对象数据 132
取出对象数据项 133
查询dxf群码代表的意义 134
重点复习 134
进阶挑战 134
更新对象数据序列 135
准备动作 135
改变对象的图层 135
有没有bylayer 137
不是bylayer 137
不要bylayer 137
改成bylayer 139
修改对象数据序列的基本步骤 139
重点复习 139
进阶挑战 140
选择集 141
建立选择集 141
选择集内的对象数目 142
选择集建立方式 142
自由选取 142
选取通过指定点的对象 142
指定选取区域 143
取用上一个选择集 143
选取最后建立的可见对象 143
选取图文件内的所有对象 144
过滤对象 144
关系过滤 144
坐标关系 145
逻辑过滤 146
取出选择集内的对象数据 147
查询对象是否在选择集内 148
将对象加入选择集 148
将对象从选择集删除 150
重点复习 151
进阶挑战 151
计算图块插入数目 152
建立及插入图块 152
插入图块的对象数据库 152
讨论 154
程序流程 154
用到的函数 154
编辑程序 154
加载及执行程序 155
测试错误情况 155
没有选取到图形 155
选取到其他类型的对象 155
重点复习 156
进阶挑战 156
简单判断 157
if函数语句的写法 157
程序流程 158
用到的函数 158
编辑程序 158
程序结构 159
程序编写过程 160
加载及执行程序 164
紧缩程序 165
重点复习 166
进阶挑战 166
改变当前图层 167
讨论 167
程序流程 167
用到的函数 168
编辑程序 168
错误情况 169
修订程序 169
紧缩程序 170
重点复习 170
进阶挑战 170
改变图块中的子对象颜色 172
对象的颜色数据项 172
图块内的子对象 173
nentsel与entsel函数 174
程序流程 176
用到的函数 176
编辑程序 177
加载及执行程序 178
提前结束程序 178
重点复习 179
进阶挑战 179
多种情况判断 180
使用if函数做多重判断 180
使用cond函数做多重判断 181
cond函数的多重语句结构 182
重点复习 183
进阶挑战 183
有限与无限循环 184
repeat循环 184
计数器的位置 185
while循环 185
重点复习 186
进阶挑战 186
更新对象图层 187
讨论 187
程序流程 187
用到的函数 188
编辑程序 188
加载及执行程序 189
重点复习 190
进阶挑战 190
改变文字高度 191
讨论 191
程序流程 191
用到的函数 192
编辑程序 192
紧缩程序 193
以while取代repeat 193
重点复习 194
进阶挑战 194
多行文字输入 196
讨论 196
程序流程 196
用到的函数 196
事前演练 197
编辑程序 200
加载及执行程序 200
紧缩程序 201
重点复习 201
进阶挑战 201
同时更新多个对象的颜色 202
讨论 202
程序流程 202
用到的函数 203
编辑程序 203
quote函数 205
重点复习 205
进阶挑战 206
相对误差与累积误差 207
相对误差 207
累积误差位数 207
重点复习 209
进阶挑战 209
公切线 210
讨论 210
程序流程 210
用到的函数 211
编辑程序 211
加载及执行程序 212
如果没有相切点 213
为何循环重复七次 213
重点复习 213
进阶挑战 213
关键字与输入限制 214
autocad指令提示标准写法 214
中文版autocad的指令提示 215
设定输入限制 215
句柄 215
关键字设定 216
initget对getxxx函数的影响 216
关键字使用范例 217
输入限制与关键字使用范例 218
重点复习 219
进阶挑战 219
改变文字的对齐方式 220
讨论 221
程序流程 223
用到的函数 223
编辑程序 224
加载及执行程序 225
加入循环 226
重点复习 227
进阶挑战 227
子程序 228
子程序加载方案 229
子程序加载方案一 229
子程序加载方案二 229
子程序加载方案三 230
做法一 230
做法二 230
做法三 231
重点复习 231
进阶挑战 231
图块内部对象的转换矩阵 232
转换矩阵的用途 233
转换子对象的坐标 234
转换矩阵函数 239
重点复习 239
进阶挑战 239
两圆交点 241
讨论 241
两圆外切 242
两圆内切 242
两圆交于两点 242
两圆不相交 243
程序流程 243
用到的函数 244
编辑程序 244
加载及执行 247
重点复习 247
进阶挑战 247
质数 248
判断质数 248
程序流程 249
用到的函数 249
编辑子程序 250
加载及执行子程序 250
寻找质数 251
加载及执行主程序 252
重点复习 253
进阶挑战 253
随机数 254
随机数的产生 254
种子数 256
小数取法一 257
小数取法二 257
带入随机数函数 257
随机数产生器 258
指定范围的随机数产生器 259
同时取得多个随机数 260
重点复习 261
进阶挑战 261
符号表 262
逐一查询符号表对象 262
查询指定的符号表对象 263
字型使用的字体文件 264
编辑符号表数据 265
重点复习 266
进阶挑战 266
改变所有图层的颜色 267
讨论 267
程序流程 268
用到的函数 268
编辑程序 268
利用autocad指令 269
编辑图层符号表 269
重点复习 270
进阶挑战 270
计算所有图块数目 271
讨论 271
查询符号表 271
取得图块名称 272
计算图块插入数目 272
组成元素序列 272
建立数据序列 273
查询数据 274
程序流程 274
用到的函数 275
编辑程序 275
加载及执行程序 276
重点复习 276
进阶挑战 277
再写多行文字 278
讨论 278
程序流程 278
用到的函数 279
编辑程序 279
加载及执行程序 280
重点复习 281
进阶挑战 281
读写数据库 282
数据库内容 282
序列格式 282
建立新的数据文件 282
取得数据 282
打开数据文件 283
写出数据 284
关闭文件 285
查看数据文件 285
添加数据到数据文件 285
产生数据 285
打开数据文件 286
写出数据 286
关闭文件 286
查看更新后的数据文件 286
从数据文件读取数据 287
打开数据文件 287
读取数据 287
关闭文件 288
数据文件内的注释 288
重点复习 289
进阶挑战 289
图块使用量报表 291
讨论 291
文件名与路径 291
日期与时间 292
程序流程 293
编辑程序 294
加载及执行程序 295
重点复习 295
进阶挑战 296
读写序列格式文件 297
建立数据库 297
空行与空格的影响 297
读取序列数据库的子程序 299
产生图块材料表 301
建立序列数据库的子程序 303
建立零件用量报表 304
添加数据到序列数据库的子程序 306
重点复习 306
进阶挑战 307
对话框基本组件与属性 308
dcl基本语法 308
对话框组件 309
定义一个对话框 309
定义对话框内的组件 310
单选钮 310
复选框 310
按钮 311
编辑框 311
图像框 312
滚动条 312
标签 313
图像按钮 313
下拉列表框 314
列表框 314
dcl属性 315
属性类型 315
已定义的属性 316
不可使用的属性 319
对话框定义范例 319
打开对话框范例程序 320
重点复习 322
进阶挑战 322
对话框组件组 323
按钮组 323
区的基本定义 324
有边线和标题的区 324
激活对话框的基本程序语句 326
无边线和标题的区 326
多列排列 327
当两列高度不等时 328
单选按钮组 329
预设选项 330
当两行长度不等时 331
加大间距 332
错误信息框 333
重点复习 335
进阶挑战 336
对话框操控函数 337
对话框函数调用顺序 337
标准的对话框调用语句 337
打开及关闭对话框的函数 338
加载dcl文件 338
打开对话框 338
显示对话框 339
卸载dcl文件 339
对话框显示时禁用的函数 340
设定组件的状态、动作与回复 340
设定组件的值 340
设定组件的状态 340
设定动作 341
回复变量 341
结束对话框 342
结束所有的对话框 342
处理回复 343
取得组件当前值 343
读取属性初始值 343
应用程序专用数据 343
重点复习 343
单选按钮组与复选框 345
处理单选按钮组 345
处理复选框 347
重点复习 352
进阶挑战 352
编辑框、密码输入与滚动条 353
处理编辑框 353
输入密码 354
处理滚动条 355
编辑框的动作函数 358
滚动条的动作函数 358
确定按钮的动作函数 358
确定或取消 359
重点复习 359
进阶挑战 359
列表框与下拉列表框 360
列表框与下拉列表框的响应 360
多重选取 362
列表编辑函数 363
建立列表 364
文件对话框 367
重点复习 368
进阶挑战 368
图像框与图像按钮 369
处理图像框 369
画线及填满 370
切换图像 374
制作符合宽高比的幻灯片 377
处理图像按钮 377
重点复习 379
进阶挑战 380
按钮 381
暂时隐藏对话框 381
多层次对话框界面 383
重点复习 386
进阶挑战 386
autolisp函数分类摘要 387
基本函数 387
应用程序处理 387
算数 388
条件 388
错误处理 389
函数处理 389
序列处理 390
字符串处理 391
符号处理 392
工具函数 393
转换 393
设备存取 393
显示控制 393
文件处理 394
几何 395
查询及指令 395
用户输入 396
选择集、对象与符号表函数 396
扩展数据处理 396
对象处理 397
选择集处理 397
符号表与字典处理 398
对话框函数 398
内存管理函数 399
visual lisp扩充函数 399
activex集合处理 399
activex数据转换 400
activex方法调用 400
activex对象处理 401
activex性质处理 401
曲线测量 401
字典处理 402
对象处理 402
反应器 403
vlx名称集函数 405
名称集通讯函数 405
windows登录处理函数 405
外部定义指令函数 406
r14特有的函数 407
1