欢迎来到天天文库
浏览记录
ID:39464917
大小:449.50 KB
页数:43页
时间:2019-07-03
《autolisp教程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第十四章AutoLISP初步第十四章AutoLISP14.1关于AutoLISPAutoLISP是由Autodesk公司开发的一种LISP程序语言(LISP是ListProcessor的缩写)。第一篇关于LISP的参考文献是由JohnMcCarthy在1960年4月的《ACM通讯》中发表的。除了FORTRAN和COBOL,大多数在六十年代早期开发出来的语言都过时了,可是LISP却生下来,并且已经成为人工智能(AI)的首选程序序言。AutoLISP解释程序位于AutoCAD软件包中,然而AutoCADR2.17及更低版本中并不包
2、含AutoLISP解释程序,这样,只有通过AutoCADR2.18及更高版本才可以使用AutoLISP语言。AutoCAD软件包中包含大多数用于产生图形的命令,但仍有某些命令末被提供。例如,AutoCAD中没有在图形文本对象内绘制矩形及作全局改变的命令。通过AutoLISP,你可以使用AutoLISP程序语言编制能够在图形文本对象内绘制矩形或作全局选择性改变的程序。事实上,可以用AutoLISP编制任何程序,或把它嵌入到菜单中,这样定制你的系统会取得更高的效率。现在,已经有数以百计的第三方软件开发人员使用AutoLISP语言编
3、制各种应用程序软件包,例如,本文作者开发了一个名为SMLayout的软件包,用它可以产生各种复杂几何图形的平面布局图,这些几何图形包括管道的交叉部、过渡都、圆柱、弯管接头、圆锥以及罐顶。目前社会上非常需要AutoLISP程序员为应用软件及客户菜单的开发提供顾问。在本章中,我们假定读者已经熟悉了AutoCAD命令及AutoCAD的系统变量。但是,在开始学习AutoLISP时,却并不需要你是一位AutoCAD或编程专家。同时,本章还假定读者并无编程方面的知识。如果你熟悉任何一种编程语言,那么学习AutoLISP就会很容易。对各种函
4、数的评细探讨以及对例题的逐步讲解会使你学起来很有兴趣。本章讨论常用的AutoLISP函数以及它们S程序编制中的应用。对于本章中未涉及的函数,请参阅Autodesk公司的《AutoLISP程序员参考手册》。AutoLISP对硬件没有任何特殊要求。如果系统能够运行AutoCAD,那么同样也可以运行AutoLISP。AutoLISP程序可以使用任何文本编辑器进行编制。14.2数学运算任何编程语言都提供数学函数。在AutoLISP中,同样提供了编程以及数学计算所需的大部分数学函数,你可以使用AutoLISP对数字进行加、减、乘、除运算
5、,还可以得到以弧度表示的角度的正弦值、余弦值及反正切值等。使用AutoLISP还可以进行许多其他计算。这一节主要讨论AutoLISP程序语言支持的常用数学函数。1.加法格式(+num1num2num3…)此函数(+)计算加号(+)右边所有数字的和(+num1num2num3…)。这些数字可以是整数或实数。如果均为整数,则和为整数;如果均为实数,则和为实数。但是如果既有整数又有实数,则和为实数。如下所示,在前两个例子中,所有数字均为整数,所以结果是整数。在第三个例子中,一个是实数(50.0),故结果为实数。示例:311第十四章A
6、utoLISP初步Command:(+25)返回7Command:(+230450)返回86Command:(+230450.0)返回86.02.减法格式(-num1num2num3…)此函数(-)从第一个数中减去第二个数(num1-num2)。如果多于两个数,就用第一个数字减去其后所有数字的和[num1-(num2+num3…)]。在下面的第一个例子中,28减去14后返回14。因为两个数均为整数,结果亦为整数。在第三个例子中20与10.0相加,并用50减去两数的和(30.0),返回一个实数20.0。示例:Command:(-
7、2814)返回14Command:(-25711)返回7Command:(-502010.0)返回20.0Command:(-2030)返回河0Command:(-20.030.0)返回-10.03.乘法格式(num1num2num3…)此函数(*)计算乘号右边所有数字的乘积(num1×num2×num3…)。若均为整数,它们的乘积亦为整数;若其中含有一个实数,乘积即为实数。示例:Command:(25)返回10Command:(253)返回30Command:(2532.0)返回60.0Command:(2-5.5)返回-1
8、1.0Command:(2.0-5.5-2)返回22.04.除法格式(/num1num2num3…)此函数(/)用第一个数除以第二个数。如果多于两个数,就用第一个数除以其后所有数的乘积[num1/(num2×num3×…)]。在下面的第四个例子中,用200除以5.0与4的乘积
此文档下载收益归作者所有