理论教育 VisuaILISP语言中变量与数据类型介绍

VisuaILISP语言中变量与数据类型介绍

时间:2023-10-09 理论教育 版权反馈
【摘要】:在Visual LISP语言中,包括以下变量和数据类型:1)Visual LISP支持的变量Visual LISP支持AutoCAD系统变量和Visual LISP变量。Visual LISP变量是用户在程序中定义的变量,它可以赋予不同类型的值,也可在程序运行中根据需要进行修改。2)Visual LISP支持数据类型整型数它可由0,1,2,…Visual LISP支持的整数是32位,取值范围为+2147483647到-2147483648。例如:在Visual LISP中实数用双精度浮点数表示,至少有15位有效精度。

VisuaILISP语言中变量与数据类型介绍

每种语言都有自己特定的数据类型、程序格式、表达式结构等规定。在Visual LISP语言中,包括以下变量和数据类型:

1)Visual LISP支持的变量

Visual LISP支持AutoCAD系统变量和Visual LISP变量。

AutoCAD系统变量是系统本身定义的用于控制绘图系统某种状态的变量。它们可以在AutoCAD的命令提示符下直接输入变量名进行修改,也可以在Visual LISP程序中引用或修改。

Visual LISP变量是用户在程序中定义的变量,它可以赋予不同类型的值,也可在程序运行中根据需要进行修改。

2)Visual LISP支持数据类型

(1)整型数(INT)

它可由0,1,2,…,9,+,-共12个字符组成,不包括小数点。Visual LISP支持的整数是32位,取值范围为+2147483647到-2147483648。

例如:1233,-123,+4563等是合法的整型数,而76A,100-2,88.23等则是非法的整型数。

注意:getint函数只能接受16位的数,取值范围为+32767到-32768。

(2)实型数(REAL)

实型数是带有小数点的数,它可由0,1,2,…,9,.,+,-,E,e共15个字符组成。有两种表示法,即十进制表示法和科学计数表示法。例如:

在Visual LISP中实数用双精度浮点数表示,至少有15位有效精度。

例如:88.96,-345,779,0.003等是合法的实型数,而76A3,+100-2等则是非法的实型数。

(3)符号(SYM)

在其他高级语言中,符号或变量需要事先定义,并且使用中不能互换,但Visual LISP中符号用于存储数据,因此“符号”和“变量”这两个词含义相同,可以互相交换使用。符号名可以由除下列6个字符外的任何可以打印的字符序列来组成:

当这6个字符中的任一字符在符号名中出现时,将终止符号名。

在Visual LISP中符号的大小写是等价的,例如:ABCD,abcd,AbcD都表示同一个符号名。符号名的长度不限,因此用户可以方便地取有含义的符号名,以便于阅读和理解。

例如:A88,66B,ABC-B,ACB?等是合法的符号,而(A3,25.6,A;B等则是非法的符号。

(4)字符串型(STR)

字符串又称字符串常数,由一对双引号括起来的字符串列组成。在字符串中,同一字母的大小写认为是不同的字符,空格是一个有意义的字符。

例如:″ABCGDEFG″,″abcdefg″,″234ABC-B″等是合法的符号。

(5)表(LIST)

所谓表是指在一对相匹配的左、右圆括号之间元素的有序集合。表中的每一项称为表的元素,表中的元素可以是整数、实数、字符串、符号,也可以是另一个表。元素之间要用空格隔开,元素和括号之间不用隔开。例如:

(setq p1(getpoint″\n输入高程点位置:″))

上表中有三个元素,即setq、p1、(getpoint″\n输入高程点位置:″),其中第三个也是一个表,表可以嵌套,从外往里依次称为0层、1层、2层、……。(www.daowen.com)

表的大小用其长度来度量。长度是指表中顶层元素的个数。

如果表中没有任何元素,则称为空表,在AutoLISP中用NIL或()表示。

表有两种基本类型:标准表和引用表。

标准表是从左括号(“(”)开始到配对的右括号(“)”)结束。对于标准表中的第一个元素(0号元素)必须是一个合法的已存在的系统内部函数或用户定义函数。AutoCAD将按照此函数的功能,完成其操作。例如,下面算术函数的调用,即采用标准表形式。

(-6 3)

表中第一个元素“-”为系统内部定义的减函数,6、3为相应的运算数据(元素)。

引用表常用来存储数据,表中第一个元素不是函数,一般用定义方法产生。

例如,为了处理图形中点的坐标,AutoLISP对二维和三维点的坐标按如下规则表示:

两个实数所构成的表(100 200);可以作为二维点坐标。

三个实数所构成的表(100 200 1);可以作为三维点坐标。

引用表一般不对其求值,是在左括号前方加一撇号,表示不对此表作求值处理。

(6)文件描述符(FILE)

当Visual LISP打开一个文件时,系统将给该文件赋一个数字标号,相当于其他高级语言的文件号,在以后要访问该文件时(读该文件或写该文件),可利用该文件描述符对指定的文件进行操作。

下面的例子打开一个名为″myfile.dat″的文件,把打开文件时的文件描述符赋给符号,再把“This is a sample under AutoLISP.”写入该文件。

元素(Open″myfile.dat″″w″)——表,该表为一个表达式,其执行结果由该表的第一个元素open(打开文件函数)确定,f是一个文件描述符,本例中该表执行的结果是使符号f得到约束其值为文件名″myfile.dat″的文件描述符。

第二句是把字符串″This is a sample under AutoLISP.″输出到文件描述符f所表示的文件(myfile.dat)中。

(7)内部函数(SUBR)

由AutoLISP提供的函数称为子程序,也称为内部函数。它包括算术运算函数、字符串函数、表处理函数、条件函数、图形处理函数、实体处理函数、输入输出函数等。

ADS或ARX应用程序定义的子程序称为外部子程序,即外部函数。

(8)AutoCAD选择集(PICKSET)

选择集是一个或多个实体的集合,类似AutoCAD的实体选择过程,在AutoLISP程序中也可以构造一个选择集,并给它赋予一个符号供其他函数使用。例如创建一个选择集,该选择集由最近所选择的对象组成,把这个选择集赋给变量slect:

返回值(即slect的值)可能是〈selection:2〉,其中的数值随不同的选择而变化。

(9)AutoCAD实体名(ENAME)

实体名是AutoCAD系统在绘图过程中赋予所绘实体的一个数字标号。确切地说,它是指向一个AutoCAD系统内部的数据文件的一个指针,利用它AutoLISP可以查找到实体的数据库记录,并对实体进行各种方式的处理。下面的例子把最后绘制的一个实体用符号“elast”来表示。

执行后的返回值可能是〈Entity name:*******〉。它代表最后一个实体名elast的约束值。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈