- 1、本文档共166页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第一章绪论 LISP(LISt Processing language)是一种计算机表处理语言,是迄今为止人工智能领域应用最为广泛的一种程序设计语言。60年由美国麻省理工学院的J.McCarthy提出。LISP语言又称符号式语言(Symbolic Language)、函数式语言(functional language)。在LISP语言中,最基本的数据类型是符号表达式(symbolic expression),LISP程序看起来是一个一个的函数调用。 LISP语言的一个突出的特点是程序和数据二者都取符号表达式的形式,也就是说一个LISP程序可以把另一个LISP程序作为它的数据处理。 LISP语言的优势是处理表形式的数据(知识工程),知识可方便地表达成表的形式,这就是LISP语言在人工智能科学领域广泛应用的原因。 AutoLISP语言是一种嵌入在AutoCAD内部的LISP编程语言,从AutoCAD2.18版开始提供,从AutoCAD14有了Visual LISP的试用版,AutoCAD2000有了VLISP1.0版。 为了提高AutoCAD的使用效率,需要对其进行二次开发,以满足具体的应用要求,从早期的DXF文件(利用其他语言开发)、SCR文件(批处理)过渡到AutoLISP。 AutoCAD二次开发工具的发展: 第二章AutoLISP概述 2.0 AutoLISP表达式 AutoLISP 程序由一系列表达式组成,在表达式中又包含其它数据类型,表达式和数据类型是AutoLISP程序的基础,AutoLISP没有语句的概念。 AutoLISP 表达式的格式如下所示: (函数 参数) 每个表达式都以一个左括号开始,由一个函数名和一个该函数的可选参数组成,并且每个参数都可以是一个表达式。表达式以右括号结束。每个表达式都返回一个可由外层表达式使用的值。最后表达式的值返回给调用表达式。 AutoLISP程序可以在AutoCAD命令行提示符、VLISP控制窗口的提示符下输入,也可输入到文件中,然后加载。 例如,如下代码样例调用了三个函数: (fun1 (fun2 参数)(fun3 参数)) 例如: _$ (* 2 27 2) 108 例如: _$ (* 2 (+ 5 10)) 30 如果输入的闭(右)括号数量不对,AutoLISP 将显示如下提示: (_ 此提示中开括号的数目表明有多少层开括号没有闭合。如果出现此提示,用户必须输入所需数目的闭括号后才能对表达式求值。 _$ (* 2 (+ 5 10 ((_ ) ) 30 常见错误是忽略了文本字符串中的双引号 ()。在这种情况下,右括号被解释为字符串的一部分,而不会被用来和开括号配对。要改正此错误,可按 SHIFT+ESC 键取消该函数,然后重新输入正确的表达式。 2.1 AutoLISP的数据类型 整型(INT)、实型(REAL)、字符型(STR)、符号(SYM)、表(LIST)、内部函数(SUBR)、文件描述符(FILE)、实体名(ENAME)、选择集(PICKSET)、函数分页表(PAGETB)、VLA对象(Visual Lisp Activex)。 2.1.1整型 整数由数字组成,不包含小数点。AutoLISP 的整数是 32 位带符号的数,取值范围从 +2,147,483,647 到 -2,147,483,648(注意,getint 函数只接受 16 位的数,即 +32767 到 -32678)。当用户在 AutoLISP 表达式中直接使用整数时,该值被称为常量。数字 2、-56 和 1,200,196 都是有效的 AutoLISP 整数。 如果输入的数超出了允许的最大整数(导致整数溢出),AutoLISP 会将整数转换为实数。然而,如果对两个有效整数执行算术运算,其结果超出了允许的最大整数,得出的数是无效的。下面样例说明 AutoLISP 如何处理整数溢出。 最大的正整数保留其值: _$ 2147483647 2147483647 如果输入一个大于允许最大值的整数,AutoLISP 将其值返回为实数: _$ 2147483648 2.14748e+009 对两个有效整数进行算术运算,但造成了整数溢出,产生无效结果: _$ (+ 2147483646 3) -2147483647 此样例得出的结果显然是无效的,因为两个正数相加得出了负数。但请注意下列运算如何产生有效的结果: _$ (+ 2147483648 2) 2.14748e+009 在这个例子中,AutoLISP 先将 2147483648 转换为一个有效的实数,再对其作加法运算。得出的结果是一个有效的实数。 最大的负整数值保留其值: 有问题: -21
您可能关注的文档
最近下载
- nikkidenso喜开理日VPH-HA-disc伺服驱动器使用说明.pdf
- 附件一1#群房天井落地式盘扣式卸料平台计算书20241028.doc VIP
- 糖尿病周围神经病变临床诊疗规范.ppt VIP
- 2025河北省省直事业单位招聘 (统一招聘)1363人笔试备考题库及答案解析.docx VIP
- (完整版)公司合规管理制度(试行).pdf VIP
- 朗文9000核心词汇.pdf VIP
- 2025秦皇岛市海港区招聘中小学教师371名笔试模拟试题及答案解析.docx VIP
- 2025天保出入境边防检查站第一次边境管控专职辅警招聘(10人)模拟试卷含答案详解.docx VIP
- 2025年河北秦皇岛市海港区公开招聘中小学教师371名笔试参考题库附答案解析.docx VIP
- 小学语文阅读理解万能答题公式模版 .pdf VIP
文档评论(0)