标题：AutoLISP语言程序设计
版权信息
书 名: AutoLISP语言程序设计 
作　者：郭秀娟 范小鸥
出版社： 化学工业出版社
出版时间： 2008
ISBN: 9787122032362
开本： 16
定价: 29.00 元
内容简介
在工程设计领域中，AutoCAD得到了普遍应用，有许多人在研究使用AutoCAD，并画出了很多工程图纸。然而，人们总会感到作图效率还不够高，这是因为AutoCAD是一个通用绘图软件，不具备专业特色。AutoCAD开放的结构为不同的使用者留出了广阔的空间，提供了许多二次开发工具，AutoLISP是其中最强的一个，可以利用AutoLISP开发出具有专业特点的高效率的应用软件。鉴于此，人们希望了解AutoLISP的程序结构，掌握AutoLISP程序设计方法，进而开发出适合本专业特点的应用CAD系统。一些高等院校的工程设计相关专业也开设了AutoLISP语言课程。然而，各类现行出版的AutoLISP参考手册，除了屈指可数的几个例子之外，剩下的就是按字典顺序排列起来的函数功能简介，使人望之却步，看后却不得要领，无法实现深度学习及开发设想和愿望。
编者通过查阅有关资料，阅读现存的参考手册，在计算机上慢慢摸索研究，历经多年，对AutoLISP语言有了较为深入的理解，积累了一些难得的实践资料，已成功应用于教学实践之中。同时，和从事CAD工作的同志切磋交流，开发了相关的CAD应用软件，在工程设计领域得到了应用。
本书共11章，前9章系统而详细地介绍了AutoLISP的各类函数和语法规则，提供了大量的AutoLISP程序，使读者从例子中深化对概念的理解，领悟程序设计方法；第10章提供了若干个建筑设计制图AutoLISP程序范例，便于建筑专业学生作课程设计或工程设计人员对AutoCAD二次开发。第11章介绍了Auto CAD的基本命令。书中每章后面附有练习题，以供读者练习。
本书第1章至第5章由郭秀娟编写，第6章由王祥瑞编写，第7章、第11章和附录部分由范小欧编写，第8章至第10章由于全通老师编写，全书的图形部分由孙东和林娜撰稿，程序实例验证由崔星华和吉林省经济管理干部学院的张树彬共同完成。最后，全书由郭秀娟老师统稿，于全通老师排版设计。
目录
第1章AutoLISP语言概述1
1.1AutoLISP语言简介1
1.1.1开发AutoCAD的重要工具1
1.1.2AutoLISP的特点1
1.2AutoLISP数据类型2
1.2.1原子（ATOM）2
1.2.2表和点对4
1.3AutoLISP的程序结构5
1.4AutoLISP的运行环境7
1.5AutoLISP的内存分配8
1.6AutoLISP程序的执行过程8
练习题9
第2章数值函数11
2.1计算函数11
2.1.1(+<数1><数2>…)11
2.1.2(–<数1><数2>…)11
2.1.3(1+<数>)和(1–<数>)12
2.1.4(*<数1><数2>…)12
2.1.5(/<数1><数2>…)12
2.1.6(REM<数1><数2>…)12
2.1.7(GCD<数1><数2>)13
2.1.8(MAX<数1><数2>…)(MIN<数1><数2>…)13
2.1.9(EXP<数>)13
2.1.10(EXPT<底数><幂>)13
2.1.11(LOG<数>)14
2.1.12(SQRT<数>)14
2.1.13(ABS<数>)14
2.1.14(MINUSP<数>)14
2.1.15(ZEROP<数>)14
2.1.16(NUMBERP<项>)14
2.1.17(FLOAT<数>)15
2.1.18(FIX<数>)15
2.2布尔运算函数15
2.2.1(LOGAND<整数><整数>…)15
2.2.2(LOGIOR<整数><整数>…)15
2.2.3(LSH<整数><次数>)16
2.3三角函数16
2.3.1(SIN<角度>)16
2.3.2(COS<角度>)16
2.3.3(ATAN<数1>[<数2>])16
2.4综合举例17
练习题18
第3章表处理函数20
3.1提取表中数据的函数20
3.1.1(CAR<表>)20
3.1.2(CDR<表>)20
3.1.3(LAST<表>)21
3.1.4(NTH<表>)N=0,1,2,…21
3.1.5(LENGTH<表>)22
3.2构造和修改表的函数22
3.2.1(LIST<表达式>…)22
3.2.2(APPEND<表>…)22
3.2.3(CONS<新的第一个元素><表>)23
3.2.4(REVERSE<表>)23
3.3提取并修改表中数据的函数23
3.3.1(ASSOC<关键字><关联表>)23
3.3.2(SUBST<新项><旧项><表>)24
3.4表的循环处理函数24
3.4.1(FOREACH<符号原子><表><表达式>…)24
3.4.2(MAPCAR<函数名><表1><表2>…<表n>)25
3.5其他表处理函数26
3.5.1(MEMBER<表达式><表>)26
3.5.2(LISTP<项>)26
3.6综合举例26
练习题27
第4章符号和函数处理函数29
4.1符号处理函数29
4.1.1赋值函数29
4.1.2禁止求值函数与再求值函数30
4.1.3其他符号处理函数31
4.2函数处理函数34
4.3综合举例40
练习题43
第5章AutoCAD函数45
5.1GET类输入函数45
5.2图形处理函数50
5.2.1（POLAR<点><方向角><距离>）50
5.2.2（DISTANCE<点1><点2>）51
5.2.3（ANGLE<点1><点2>）51
5.2.4（INTERS<端点1><端点2><端点3><端点4>[<任选项>]）51
5.2.5目标捕捉函数OSNAP52
5.3COMMAND函数53
5.4坐标系转换及单位变换函数56
5.4.1(TRANS<点>FROMTO[位移量])56
5.4.2(CVUNITVALUEFROM—UINTTO—UNIT)57
5.5查询和设置系统状态的函数58
5.5.1(SETVAR<变量名><值>)58
5.5.2（GETVAR<变量名>）58
5.5.3（GETENV<变量名>）58
5.5.4（SETCFGCFGNAMEEFGVALUE）59
5.5.5（GETCFGCFGNAME）59
5.5.6（ACAD_COLORDLGcolornum[flag]）59
5.5.7（VER）59
5.6显示控制函数60
5.6.1（GRAPHSCR）60
5.6.2（TEXTSER）60
5.6.3（TEXTPAGE）60
5.6.4（PRIN1[<表达式>[<文件标识符>]]）60
5.6.5（PRINT[<表达式>[<文件标识符>]]）60
5.6.6（PRINC[<表达式>[<文件标识符>]]）60
5.6.7（TERPRI）61
5.6.8（MENUCMD<字符串>）61
5.6.9（GRVECSVLIST[TRANS]）62
5.6.10（VPORTS）63
5.7综合举例63
练习题71
第6章字符串处理函数73
6.1字符与ASCII码互换函数73
6.1.1（ASCII<字符串>）73
6.1.2（CHR<整数>）73
6.2数串互换函数74
6.2.1（ITOA<整数>）74
6.2.2（ATOI<数字串>）74
6.2.3（ATOF<数字串>）74
6.2.4(RTOS<数>[<模式>[<精度>]])75
6.2.5（DISTOF<字符串>[模式]）76
6.2.6（ANGTOS<弧度表示的角度值>[模式[精度]]）76
6.2.7（ANGTOF<字符串>[模式]）77
6.3字符串处理函数77
6.3.1（STRCAT<字符串1><字符串2>…）77
6.3.2（SUBSTR<字符串><开始><长度>）79
6.3.3（STRCASE<字符串>[<模式>]）79
6.3.4（STRLEN[字符串]…）79
6.3.5（WCMATCH<字符串><样本>）80
6.4尺寸标注方式80
6.5综合举例82
练习题83
第7章判断函数85
7.1相等验证函数85
7.1.1关系运算函数85
7.1.2逻辑运算函数85
7.2条件函数86
7.2.1(IF<条件>是——<表达式1>[<否——表达式2>])86
7.2.2(PROGN<标准表>…)（该函数也称顺序执行函数）87
7.2.3(COND(<条件1><表达式1>)87
7.3循环函数88
7.3.1(WHILE<条件>[<标准表>…])88
7.3.2(REPEAT<数><表达式>…)90
7.4函数递归定义91
7.4.1递归的概念91
7.4.2递归模型91
7.4.3递归算法的设计92
7.5综合举例94
练习题109
第8章文件处理函数112
8.1搜索、获得文件的函数112
8.1.1(FINDFILE<文件名>)112
8.1.2(GETFILED$quot$对话框标题$quot$$quot$文件名$quot$$quot$扩展名$quot$标志值)112
8.2打开、关闭文件的函数113
8.2.1(OPEN<文件名><方式>)113
8.2.2(CLOSE<文描述符>)114
8.3用于文件的输入输出函数114
8.3.1(READ[符串])114
8.3.2(READ-LINE<文件描述符>)115
8.3.3(WRITE-LINE<字符串><文件描述符>)116
8.3.4(READ-CHAR<文件描述符>)116
8.3.5(WRITE-CHAR<数><文件描述符>)117
8.4综合举例117
练习题117
第9章实体和设备访问函数119
9.1基本概念119
9.1.1实体119
9.1.2实体名119
9.1.3选择集119
9.2选择集操作函数120
9.2.1(SSGETstrPtlPt2)120
9.2.2(SSGET$quot$x$quot$[<过滤表>])121
9.2.3(SSLENGTHs)122
9.2.4(SSNAME<选择集>n)n=0，1，2，…122
9.2.5(SSADD<实体名><选择集>)123
9.2.6(SSDEL<实体名><选择集>)124
9.3实体名操作函数124
9.3.1(ENTNEXT<实体名>)124
9.3.2（ENTLAST）124
9.3.3(SSNAME<选择集><序号>)125
9.3.4(NAMEDOBJEICT)125
9.3.5(HANDENTHANDLE)126
9.3.6(ENTSEL[<提示>])126
9.4实体数据函数126
9.4.1获得实体定义数据函数ENTGET126
9.4.2(ENTMOD<实体数据表>)130
9.4.3(ENTUPD<实体名>)130
9.4.4(ENTMAKE<实体数据表>)131
9.5对符号表的访问135
9.5.1(TBLNEXT<符号表名>[<第一>])135
9.5.2(TBLSEARCH<符号表名><符号>)136
9.6对图形屏幕和输入设备的访问136
9.6.1(GRCLEAR)137
9.6.2(GRTEXT[<框区><文本字符串><加亮>])137
9.6.3(GRREAD[track][allkeys[curtype]])137
9.7综合举例139
9.7.1实体名和选择集在开发CAD程序中的实际应用139
9.7.2生成局部放大视图的简便方法140
9.7.3求圆或圆弧中心线143
练习题147
第10章建筑设计制图的AutoLISP程序范例149
10.1常用建筑设计AutoLISP程序149
10.1.1建筑符号设计AutoLISP程序149
10.1.2双线墙插门窗AutoLISP程序154
10.2墙体设计AutoLISP程序161
10.2.1单线墙AutoLISP程序161
10.2.2双线墙AutoLISP程序168
10.3楼梯设计AutoLISP程序181
10.3.1绘制平面楼梯AutoLISP程序181
10.3.2剖面楼梯AutoLISP程序187
练习题190
第11章AutoCAD基本命令192
11.1基本图形的绘制192
11.1.1绘制直线192
11.1.2构造线192
11.1.3多线193
11.1.4多段线193
11.1.5矩形193
11.1.6正多边形194
11.1.7圆195
11.1.8弧线195
11.1.9椭圆195
11.1.10圆环196
11.2基本图形的编辑196
11.2.1复制图形196
11.2.2移动图形197
11.2.3偏移图形197
11.2.4旋转图形198
11.2.5比例缩放图样199
11.2.6图形镜像199
11.2.7阵列图形200
11.2.8修剪图形201
11.2.9延伸和拉伸202
11.2.10倒角和圆角203
11.2.11分解图块204
附录A图形绘制与编辑各命令中英文及简捷命令一览表206
附录B联机程序错误代码207
附录C标准ASCII码表209
附录DAutoLISP函数概要211
参考文献219
……