第四节AUTOLSP语言

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第四节Auto LISP语言

本章介绍Auto LISP程序语言的基本概念。它描述Auto LISP的核心部件与数据类型,并提供数字、字符串、输出、表处理函数的简单示例。

由于Auto LISP程序代码不需编译,因此你可以在指令行输入程序代码,并立即看到结果。本章中的某些示例必须在VLISP“控制台”窗口提示(-$)下输入,其他的示例则是在AutoCAD命令提示(Command:)下输入。

Auto LISP表达式

Auto LISP程序是由一连串表达式所组成。Auto LISP表达式的型式如下:

(function arguments)

每一个表达式都是从一个左括号开始,由函数名称和该函数的选择参数所组成。参数本身也可以是一个表达式。表达式最后以右括号括住。每一个表达式返回一个值给括号外层的表达式使用。最后一个

解译的表达式的值会返回给调用的表达式。

例如,下列程序示例包含三个函数:

(fun1(fun2arguments)(fun3arguments))

如果你在VISUALLISP“控制台”提示或AutoCAD“命令”提示下输入此程序代码,Auto LISP解释程序会处理该程序代码。第一个函数是Fun1,它有两个参数;另外两个函数fun2与fun3则各有一个参数。函数fun2与fun3被函数fun1围住,因此它们返回的值会被传送给fun1作为参数。函数fun1计算这两个参数,并将值返回你输入程序代码的窗口。

4.1Auto LISP的数据类型

1.整型

整型只能由十、一、0~9共12个字符织成,其取值范围为[-2147483648,2147483647]。

整数在计算机内是精确表示的,运算速度效快,故在整数取值范围之内的数据应尽量定义为整型。

2.实数

实数是含有小数点的数值。数值在-l与1之间必须以零开始。实数是以双精度浮点将式存储的,提供至少14个有效的精确度位数。请注意,VLISP不会显示所有的有效位数。

实数可以使用科学计数法表示,在e或E后面加上指数(例如,0.0000041与4.1e-6是相同的)。数值3.1、0.23、-56.123和21,000,000.0都是有效的Auto LISP实数。

3.字符串

字符串是一组使用双引号括住的字符。在双引号字符串内,反斜线(\)字符用来表示包含的控制字符(或换码代码)。当你在Auto LISP 表达式内明确地使用一个双引号字符串时,该字符串的值称为文字字符串或字符串常量。

“string l”和“\n输入第—点:”都是有效的字符串

4.表

AutoLISP表就是一组包含在一对括号中的、用空格分开的相关数据的集合。表提供了一个保存各种各样数据的有效方法。。AutoCAD 以三个实数值组成的表表示3D点。

(1.01.000)、(“this”“that”“the other”)和(1“one”)都是有效的表。

5图元名

图元名是指设置在一个图形文件中某个对象上的数字标签。它实际上是一个指向由AntoCAD维护的某个文件的指针,并能被用来查找对象数据库记录和它的向量(如果这个对象是可以被显示的)。AutoLISP函数可以引用这个数字标签来允许对选择的对象进行各种各样的处理。在AutoCAD内部,对象可以被看作为图元。

例如,下面例子用entlast函数来得到在图形中最后生成的对象的图元名:

_$(entlast)

(entity name:27f0540)

设置在一个对象上的图元名只有在当前的编辑进程中有效,当下一次打开图形时AutdAD会为对象设置新的图元名。

4.2符号和变量

AutoLISP是用符号来引用数据的。符号名称是大小写相同的,可以由任意顺序的字母、数字与标注符号组成。符号名不区分大小写,并能够包含除了下面字符外的任意的字母和符号的组合。

((左括号)‘(撇号)

)(右括号)“(引号)

.(句号);(分号)

符号名中不能只包含数字字符。

从技术上讲,在AutoLISP应用程序中包含着符号或者变量值,例如字符串、实型数和整型数。为了使表达更具有条理性,本书用“符号”术语来表示保存静态数据的符号名,如内部函数和用户定义的函数。用“变量”术语来表示保存程序数据的符号名。例如,下面例子用setq函数把一个字符串“this is astring”赋给变量str1:

_$setq(str1“this is astring”)

“this is astring”

AutoLISP变量,承担指定给它的值的数据类型。在它们被指定新的值之前,变量会维持它们原来的值。用户使用AutoLISP setq函数指定值给变量。

(setq variable_name1valuel[variable_name1value2...])

Setq函数分派指定的值给指定的变量名称。

显示变量值

若要在VLSP内操作时显示某个变量的当前值,只要在“控制台”提示下输入该变量名称即可:

_$abc

3.875

若要在AutoCAD“命令”提示下显示变量的值,必须在变量名称前面输入一个惊叹号!例如:

命令:!abc

3.875

4.3预先定义的变量

下列为AutoLIsP应用程序中普遍使用的预先定义变量:

PAUSE定义成由一个双反斜线(\\)字符组成的字符串,这个变量和COMMAND函数搭配使用,暂停并等待用户输入。

PI定义成常数P I。它的值大约是3.14159。

T定义成常数T(相当于高级语言里的true,用来表示非nil值。NIL变量

一个末被指定值的Auto LISP变量即称为nil。这个变量与空格不同,空格被视为字符字符串;也和0不同,0是一个数字。因此除了检查变量的当前值之外,你可以测试判断变量是否己被指定一个值。4.4Auto LISP程序文件

虽然你可以在Visual“核制台”窗口或AutoCAD“命令’’提示上输入Auto LISP程序代码,但是将Auto LISP程序代码存储在文件

相关文档
最新文档