1 of 32 AutoLisp 教程
AutoLisp 教程
1 关于 AutoLISP
AutoLISP 是由 Autodesk 公司开发的一种 LISP 程序语言(LISP 是 List Processor 的缩写)。第一篇关于 LISP 的参考文献是由
John McCarthy 在 1960 年 4 月的《ACM 通讯》中发表的。
除了 FORTRAN 和 COBOL,大多数在六十年代早期开发出来的语言都过时了,可是 LISP 却生下来,并且已经成为人工智能
(AI)的首选程序序言。AutoLISP 解释程序位于 AutoCAD 软件包中,然而 AutoCAD R2.17 及更低版本中并不包含 AutoLISP 解释程
序,这样,只有通过 AutoCAD R2.18 及更高版本才可以使用 AutoLISP 语言。
AutoCAD 软件包中包含大多数用于产生图形的命令,但仍有某些命令末被提供。例如,AutoCAD 中没有在图形文本对象内绘
制矩形及作全局改变的命令。通过 AutoLISP,你可以使用 AutoLISP 程序语言编制能够在图形文本对象内绘制矩形或作全局选择
性改变的程序。事实上,可以用 AutoLISP 编制任何程序,或把它嵌入到菜单中,这样定制你的系统会取得更高的效率。
现在,已经有数以百计的第三方软件开发人员使用 AutoLISP 语言编制各种应用程序软件包,例如,本文作者开发了一个名为
SMLayout 的软件包,用它可以产生各种复杂几何图形的平面布局图,这些几何图形包括管道的交叉部、过渡都、圆柱、弯管接头、
圆锥以及罐顶。目前社会上非常需要 AutoLISP 程序员为应用软件及客户菜单的开发提供顾问。
在本章中,我们假定读者已经熟悉了 AutoCAD 命令及 AutoCAD 的系统变量。但是,在开始学习 AutoLISP 时,却并不需要你
是一位 AutoCAD 或编程专家。同时,本章还假定读者并无编程方面的知识。如果你熟悉任何一种编程语言,那么学习 AutoLISP
就会很容易。对各种函数的评细探讨以及对例题的逐步讲解会使你学起来很有兴趣。本章讨论常用的 AutoLISP 函数以及它们 S 程
序编制中的应用。对于本章中未涉及的函数,请参阅 Autodesk 公司的《AutoLISP 程序员参考手册》。AutoLISP 对硬件没有任何特
殊要求。如果系统能够运行 AutoCAD,那么同样也可以运行 AutoLISP。AutoLISP 程序可以使用任何文本编辑器进行编制。
2 数学运算
任何编程语言都提供数学函数。在 AutoLISP 中,同样提供了编程以及数学计算所需的大部分数学函数,你可以使用 AutoLISP
对数字进行加、减、乘、除运算,还可以得到以弧度表示的角度的正弦值、余弦值及反正切值等。使用 AutoLISP 还可以进行许多
其他计算。这一节主要讨论 AutoLISP 程序语言支持的常用数学函数。
1.加法
格式(+ num1 num2 num3...)
此函数(+)计算加号(+)右边所有数字的和(+ num1 num2 num3...)。这些数字可以是整数或实数。如果均为整数,则和为整数;
如果均为实数,则和为实数。但是如果既有整数又有实数,则和为实数。如下所示,在前两个例子中,所有数字均为整数,所以结
果是整数。在第三个例子中,一个是实数(50.0),故结果为实数。
示例:
Command:(+2 5)返回 7
Command:(+2 30 4 50)返回 86
Command:(+2 30 4 50.0)返回 86.0
2.减法
格式(- num1 num2 num3...)
此函数(-)从第一个数中减去第二个数(num1-num2)。如果多于两个数,就用第一个数字减去其后所有数字的和
[num1-(num2+num3...)]。在下面的第一个例子中,28 减去 14 后返回 14。因为两个数均为整数,结果亦为整数。在第三个例子中
20 与 10.0 相加,并用 50 减去两数的和(30.0),返回一个实数 20.0。
示例:
Command:(- 28 14) 返回 14
Command:(- 25 7 11)返回 7
Command:(- 50 20 10.0)返回 20.0
评论5