商家名称 |
信用等级 |
购买信息 |
订购本书 |
|
|
AutoLISP语言程序设计 |
|
|
|
AutoLISP语言程序设计 |
|
基本信息·出版社:化学工业出版社
·页码:218 页
·出版日期:2008年08月
·ISBN:7122032361/9787122032362
·条形码:9787122032362
·版本:第1版
·装帧:平装
·开本:16
·正文语种:中文
内容简介 本书主要介绍了AutoCAD内部的编程语言AutoLISP,系统而详细地介绍了AutoLISP的各类函数和语法规则。从AutoLISP的数据类型和程序结构入手,循序渐进地介绍了AutoLISP的基本函数、AutoLISP绘图功能、AutoLISP建筑设计制图程序范例等内容。
本书列举了丰富的程序实例,图文并茂,清晰易懂。
本书可作为高等院校建筑学及相关专业的教材,也可供其他从事设计绘图工作、学习AutoLISP语言的有关人员参考,还可作为AutoLISP培训学习的教材。
目录 第1章 AutoLISP语言概述 1
1.1 AutoLISP语言简介 1
1.1.1 开发AutoCAD的重要工具 1
1.1.2 AutoLISP的特点 1
1.2 AutoLISP数据类型 2
1.2.1 原子(ATOM) 2
1.2.2 表和点对 4
1.3 AutoLISP的程序结构 5
1.4 AutoLISP的运行环境 7
1.5 AutoLISP的内存分配 8
1.6 AutoLISP程序的执行过程 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.1 GET类输入函数 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 目标捕捉函数OSNAP 52
5.3 COMMAND函数 53
5.4 坐标系转换及单位变换函数 56
5.4.1 (TRANS <点> FROM TO [位移量]) 56
5.4.2 (CVUNIT VALUE FROM—UINT TO—UNIT) 57
5.5 查询和设置系统状态的函数 58
5.5.1 (SETVAR <变量名> <值>) 58
5.5.2 (GETVAR <变量名>) 58
5.5.3 (GETENV <变量名>) 58
5.5.4 (SETCFG CFGNAME EFGVALUE) 59
5.5.5 (GETCFG CFGNAME) 59
5.5.6 (ACAD_COLORDLG colornum [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 (GRVECS VLIST [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 (SSGET str Ptl Pt2) 120
9.2.2 (SSGET $quot$x$quot$ [<过滤表>]) 121
9.2.3 (SSLENGTH s) 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 (NAMED OBJEICT) 125
9.3.5 (HANDENT HANDLE) 126
9.3.6 (ENTSEL [<提示>]) 126
9.4 实体数据函数 126
9.4.1 获得实体定义数据函数ENTGET 126
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
附录D AutoLISP函数概要 211
参考文献 219
……
序言 本书主要介绍了AutoCAD内部的编程语言AutoLISP,系统而详细地介绍了AutoLISP的各类函数和语法规则。从AutoLISP的数据类型和程序结构入手,循序渐进地介绍了AutoLISP的基本函数、AutoLISP绘图功能、AutoLISP建筑设计制图程序范例等内容。
本书列举了丰富的程序实例,图文并茂,清晰易懂。
本书可作为高等院校建筑学及相关专业的教材,也可供其他从事设计绘图工作、学习AutoLISP语言的有关人员参考,还可作为AutoLISP培训学习的教材。
在工程设计领域中,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 AutoLISP语言简介
1.1.1 开发AutoCAD的重要工具
LISP(List Processing Language)是一种计算机的表处理语言,是在人工智能学科领域广泛应用的一种程序设计语言。AutoLISP语言是嵌于AutoCAD内部的计算机语言,它是AutoCAD开放式体系结构的具体表现,它是LISP语言和AutoCAD有机结合的产物。使用AutoLISP可直接调用几乎全部的AutoCAD命令。AutoLISP语言既具备一般高级语言的基本结构和功能,又具有一般高级语言所没有的强大图形处理功能,是当今世界上CAD软件中被广泛采用的语言之一。
美国AutoDesk公司在AutoCAD内部嵌入AutoLISP的目的是让用户充分利用AutoCAD进行二次开发,实现直接增加和修改AutoCAD命令,扩大图形编辑功能,建立图形库和数据库,并对当前图形进行直接访问和修改,开发CAD软件包等。在AutoCAD为用户提供的AutoLISP、ARX、VBA等开发工具中,AutoLISP是一种简便易学的解释性语言,具有很强的数据表处理功能,是开发AutoCAD的一种重要手段。
AutoLISP语言最典型的应用之一是实现参数化绘图程序设计,包括尺寸驱动程序,鼠标拖动程序等。尺寸驱动是指通过改变实体标注的尺寸值来实现图形的自动修改;鼠标拖动即利用AutoLISP语言提供的(GRREAD[])函数,让用户直接读取AutoCAD的输入设备(如鼠标),任选项追踪光标移动存在且为真时,通过鼠标移动光标,调整所需的参数值而达到自动改变屏幕图形大小和形状。
到目前为止,大多数参数化程序都是针对二维平面图编制的。实际上,立体图同样可以实现参数化绘图,在AutoCAD中编制实体的立体图参数化程序比其平面三视图程序更简单,而且立体图生成后,可以很方便地生成三视图、剖面图和轴侧图等。
AutoLISP语言还能够利用PDB函数驱动DCL(Dialog Control Language)文件创建自己的对话框。