词条 | AutoLISP语言程序设计 |
释义 | 本书主要介绍了AutoCAD内部的编程语言AutoLISP,系统而详细地介绍了AutoLISP的各类函数和语法规则。从AutoLISP的数据类型和程序结构入手,循序渐进地介绍了AutoLISP的基本函数、AutoLISP绘图功能、AutoLISP建筑设计制图程序范例等内容。本书列举了丰富的程序实例,图文并茂,清晰易懂。本书可作为高等院校建筑学及相关专业的教材,也可供其他从事设计绘图工作、学习AutoLISP语言的有关人员参考,还可作为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 …… 精彩书摘第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)文件创建自己的对话框。 ....... |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。