|
|
AutoLisp笔记 (一) |
|
|
作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站 |
AutoLisp 概述 何志丹 AutoLisp的数据类型,它有10种数据类型,常见的有五种: 整型 INT 实数型 REAL 符号型SYM 字符串 STR 表 LISP 在AutoLisp中,最基本的数据类型称为符号表达式,也称为S-表达式,它是原子和点对的总称,点对通常表示为表。 原子是一个一般符号系列,有两种类型的原子,一种称为数子原子(简称“数”),AutoLIsp可处理整数和实数,其它不是“数”原子称为非数字原子,它包括符号原子(或称为文字原子)和串原子。 注意:0.4不能写成.4 。 符号原子的大小写是等效的。 符号原子可以包含下列字符以外的任何可打印字符。 正反括号 用于定义表 句号 用于作点对 分号 用于注释的开始 ‘ 用作QUOTE函数的简写 双引号 用作字符串常数的定界符 符号原子的长度没有限制,且所有的字符都是有意义的,但尽量不要超过6个字符。 约束是一对符号和值,当将一个值赋给符号时,就说符号被约束到那个值。值(而不是符号)决定所代表信息的类型,故一个符号可以接受任何类型的值,其初始值为nil. 在AutoLisp中,有两个特殊的符号原子,即T和nil. 字符串的个数(不包括定界符)称为字符串的长度。字符串可以是任意长度,它们的存储空间是动态分配的,但字符串常量的最大长度不超过100,长度为0字符串称为空串。 可以用“\nnn”的方式表示字符,其中nnn为八进制。 \e Esc \n 换行 \r 回车 \t 制表符(Tab节) 点对是由一个左括号,后接一个S-表达式和空格再接一个句点和空格和一个右括号。 表是指放在一对相匹配的左右括号中的元素有序集合。表中的项称为表的元素,表中的元素可以是任意类型的S-表达式,序号0到n-1。如果嵌套,0层,1层... 表的长度,顶层元素的个数。 只有nil是表(’())又是原子。 表有两种类型:标准表,引用表。 引用表是在表的前面冠以引用符号(’或Quote)对该表不求值。 标准表:第一个元素的值必须是一个合法的已经存在的AutoLisp函数定义,后跟调用该函数的参数。 AutoLisp采用”前缀表示法“即把运算符放在操作数之前,而不是中间,并把运算符(函数名)和操作数(调用函数的参数)用圆括号括起来,以表的方式表示。 一个完整的AutoLisp程序往往是由一系列按顺序排列的S-表达式组成的。 如: (defun plus (x y) (+ ( + x y) x)) (SetQ a 2.0) (SetQ b 2.0) (plus a b) 一个S-表达式可以分多行写,一行也可以写多个表达式。 注释以分号开始,并在一行的末尾结束,AutoLisp的求值器忽略注释。 AutoLisp是一种求值型语言,求值程序第一次碰到一个求值代码块时,整个块被转换成压宿代码,如果程序中再次碰到那个块,只是简单的运行它。 求值过程: 1,整形,实数,字符串,文件指针,系统内部函数,以及两个特殊的符号原子,对它们求值就是它们本身。 2,符号原子是以当前的约束值作为它们的求值。 3,表是根据它的第一个元素的数据类型进行求值的。 (1)第一个元素的值为表,该表就假定为用户定义的函数 。 (2)如果表的第一个元素的求值结果为一个内部函数,则剩余元素作为参数传给该函数,并执行该函数的代码,由函数的类型确定是否对传给它的参数进行求值。

|
|
相关文章:相关软件: |
|