autolisp程序语言设计.pptx
文本预览下载声明
AutoLISP平程序语言设计AutoLISP程序语言概述AutoLISP数据类型AutoLISP程序结构AutoLISP内部函数函数定义及装载AutoLISP程序调试与编程实例5.1 AutoLISP程序语言概述1. AutoLISP语言简介 LISP(list processing language)语言是一种计算机的表处理语言,是在人工智能学科领域中广泛采用的一种程序设计语言。(Lisp 语言最早是在 20 世纪 50 年代末由麻省理工学院(MIT)为研究人工智能而开发的。) 美国AutoDesk公司在AutoCAD内部嵌入AutoLISP的目的是使用户充分利用AutoCAD进行二次开发:实现直接增加和修改AutoCAD命令,随意扩大图形编辑功能,建立图形库和数据库并对当前图形进行直接访问和修改等。2. AutoLISP的特点(1)AutoLISP语言是在普通的LISP语言基础上,又扩充了许多适用于CAD应用的功能而形成的一种程序设计语言。它是一种解释性求值语言,速度较慢,难以保密,可用任何文字编辑软件编辑,用纯文本的格式保存。(2)AutoLISP语言中的一切成分都是以函数形式给出的,它没有语句概念或其他语法结构。执行AutoLISP程序就是执行一些函数,再调用其它函数。(3)AutoLISP把数据和程序统一表达为表结构,故可把程序当作数据来处理,也可把数据当作程序来执行。(4)AutoLISP语言中程序运行过程就是对函数求值的过程,是在对函数求值的过程中实现函数的功能。(5)AutoLISP语言的主要控制结构是采用递归方式。递归方式的使用,使得程序设计简单易懂。 5.2 AutoLISP数据类型 AutoLISP主要有如下数据类型:整数 (INT)实型数 (REAL)符号原子 (SYM)字符串 (STR)表(及用户定义的函数) (LIST)文件描述符 (FILE)AutoLISP的内部函数 (SUBR)AutoCAD的选择集 (PICKSET)AutoCAD的实体名 (ENAME)函数分页表 (PAGETB)5.2.1 整数 整数是由0,1,2,…,9,+,-字符组成,不许出现其它字符,+号可有可无。例如:+256,103,-15,0。5.2.2 实型数 实型数是用双精度的浮点数表示并且有至少14位有效精度,即整数后跟小数。 ※如果实数的绝对值小于1,小数点前必须加0,不要直接以小数点开头。否则,计算机误认为是点对而出错。例如,“.4”是错误的表示,“0.4”才是正确的写法。实型数也可以用科学计数法表示,即数字后可有一个可选择的“e”或“E”,后跟数的指数。例如:0.12E9表示0.12×109。5.2.3 符号原子?符号原子可以包含除以下字符以外的任何可打印字符: ( )用作表的定义; ·用作点对;也是一种表。 用作QUOTE函数的简写; ” 用作字符串常数的定界符; ; 用作程序的注释标志。?符号原子的长度没有限制,但尽量不要超过6个字符,否则要占用额外的内存,降低运行速度。?在AutoLISP中,符号的大小写是等效的。例如,ABCD,Abcd,abcd,AbcD都表示一个符号原子。? AutoLISP中的任何符号都是有值的,即符号都要赋以一定的数值,或者说符号总是约束在一定值上。一般用赋值函数setq进行赋值。例如:(setq X 25.0) 意思是将25.0赋给x,这时x的当前约束值为25.0一个符号在使用前如没有赋以任何值,则该符号的值为nil(空),它不占用内存空间。5.2.4 字符串?字符串是由包括在一对双引号内的一组字符组成的。?字符串包含任何可打印的字符。?字符串中字母的大小写及空格都是有意义的。?字符串的最大长度为100个字符?若字符串中没有任何字符,则为空串“”。 字符串中可以包含ASCⅡ表中的任何字符,通用的表示格式为“\nnn”,其中nnn是其字符的八进制ASCⅡ码。例如,字符串“ABCD”也可表示为“\101\102\103\104”。由于反斜杠已作为前导的标识字符,在字符串中有特殊作用,如果字符串中要包含它,则必须用两个相邻的反斜杠来表示:“\\”,当然,反斜杠也可表示为“\114”。由于双引号已用作字符串的定界符,若需在字符串中包含双引号,则可用“\042”表示。 除可用“\nnn”的形式表示ASCⅡ表中的控制字符外,在AutoLISP中,对于常用的控制
显示全部