Autolisp开发课件
- 格式:ppt
- 大小:724.00 KB
- 文档页数:61
§5.2 AutoLISP程序设计一、概述LISP语言(List Processing Language的缩写)是一种表处理语言。
因为LISP在描述表方面有独到之处,且本身灵活而精巧,自创立以来,在人工智能的程序设计中得到广泛应用。
在英、美等国应用尤为普遍。
AutoLISP是LISP语言的一个版本,其独特性在于专门为AutoCAD开发的。
所以AutoLISP仅能运行于AutoCAD软件包环境里。
同样,也正是在AutoCAD内置AutoLISP这样一种灵活、精巧的开发语言,使得AutoCAD得到进一步广泛使用。
1. AutoLISP特点:(1)AutoLISP语言是一种仅能以解释方式运行于AutoCAD内的程序设计语言。
即:脱离AutoCAD环境,它就不能运行。
(2)AutoLISP语言是函数型语言,其函数和数据形式是一致的,即(function argument)·function(函数名):内建函数或用户自定义函数名;·argument(参数):参数种类:①变量(Varibles)②常量(Constants)③其他函数(function)所以表达式可以嵌套.④标志数(flag)⑤可选性参数(optional parameters)因此,表达式的形式是:“先说做什麽,再说对谁做”。
(3)可以在AutoLISP程序中引用AutoCAD的几乎所有功能进行图形处理的自动化,尤其是较深层的应用——对象数据库的操作。
在Visual LISP的协助下,对于AutoCAD进行操作功能上的讨论,LISP仅比ARX少一个功能。
在AutoCAD R14已经不再使用ADS程序设计,取而代之的是ARX 程序设计模式。
ARX一般是在AutoCAD和开发商中使用。
使用Visual C++作为基本程序设计语言,其效率、数据处理和软硬件的控制能力都是相当好的。
但是,要想真正发挥这种开发模式的作用,对于程序设计者的要求也较高。
AutoLISP开发方法第一节AutoLISP基本知识一、AutoLISP概论AutoLISP属LISP程序设计语言的扩充。
二、AutoL LISP数据类型1.表表是AutoLISP的基本语法单元,也是最有特色、最灵活的数据类型。
AutoLISP中表的作用同C语言中的数组一样重要。
表是用圆括号“()”括起来的一组数据,可表示为:(元素1 元素2 …)例:三维点(100.O 23.5 11.3)2.符号与其它程序语言一样,AutoLISP也是用符号来代表函数名、常量或变量。
3.字符串字符串可以是任意长的。
4.整数整数即不带小数点的数。
5.实数实数是带有小数点的数,在?到十1之间的小数必须用零作为开始。
6.文件描述等文件描述等用来指定AutoLISP要打开的文件,当AutoLISP函数需要读或写一个文件时,可引用该文件描述符。
7.实体名实体名是分配给一个图中实体的数字标号。
8.选择集选择集是包含一个或多个实体的组。
9.程序和外部子程序在本章中叙述的AutoLISP函数都是子程序,且都是内部子程序。
子程序可以由defun函数重新定义。
10.标点符号(1)单引号单引号(’)表示AutoLIsP的Quote函数,例’ABC苟(Quote ABC)相同。
(2)括号数据表及函数通过括号而被定义并使彼此相隔开。
例如:(十1 2) (一12 4)(3)句号句号被AutoLISP解释器使用的方式有两种。
椫直硎臼凳 惺 菩∈ 悖?/P>另一种被用来将所谓点对这种特殊类型的数据表中的数据项分隔开。
(4)双引号AutoLISP将双引号括起的部分理解成字符串。
(5)分号用以说明AutoLISP程序中的注释行。
(6)空格及换行空格使表中各数据项彼此分开。
换行符也视为空格。
(7)大写和小写在AutoLISP程序中,大写字符和小写字符可被互换使用。
11.弧度AutoLISP使用弧度来度量角度。
许多AutoCAD开发者都用度数来度量角度,所以必要转换。
AutoLISP语言第一节概述1.1简介AutoLISP是一种嵌入AutoCAD内部的LISP语言。
它可让用户和AUTOCAD 开发者以非常强大的高级语言编写出宏语言程序和函数,它非常适合于图形的应用,LISP很易于学习和使用,它也非常灵活多变。
1.2AUTOLIAP中的数据类型.表.符号.字符串.实型数.整型数.文件指针.AUTOCAD实体名.AUTOCAD选择集.子程序整型数是16位带符号的数,因此,它的范围是在—32768和+32767之间。
实型数是以双精度的浮点数表示。
字符串可以是任意长度,它们的存贮空间是动态分配的。
1.3AUTOLISP的求值程序、词汇约定每一个LISP解释程序的核心就是求值程序。
求值程序装入用户的输入行,对它进行计算,并返回一些结果。
AUTOLISP的输入可以采用好几种形式。
它们可以在运行AUTOCAD时从键盘输入,也可以从ASCII文件读入,或者可以从字符串变量读入。
在所有这些形式中,必须要遵守上定的约定:1.符号名称可以由除下列字符之外的所有可打印字符序列组成:().’”;2.符号和函数名称(子程序)在AUTOLISP中大小写等效。
符号名称不能以数字开头。
3.实型数由一个或多个数字组成,后面跟着小数点,再就是一个或多个数字;如:“.4”并不被认作为实型数,“0.4”才是正确的写法。
4.文字字符串是一个由双引号引起来的字符序列。
在引起来的字符串中,可以使用反斜号,使得其中包括的控制字符可被正确识别,规定:\\ 表示字符“\”\n 表示换行\e 表示ESC\r 表示回车\t 表示光标\nnn 表示其八进制码为nnn的字符第二节AUTOLISP函数AUTOLISP提供了大量的预定义函数,本节介绍一些主要的函数。
需要说明的是,逻辑常数T与NIL这两个值相当于逻辑上的真与假。
是两个特殊原子。
这两个原子的值预先设置为T和NIL;常数PI表示数学上的π,它不是一个函数。
2.1数值运算函数1.(+ 〈数〉〈数〉…)函数返回所有数的总和2.(—〈数〉〈数〉…)函数返回所有数的差3.(* 〈数〉〈数〉…)函数返回所有数的积4.(/ 〈数〉〈数〉…)函数返回所有数的商其中的〈数〉可以是整型的,也可以是实型的。