- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AutoLISP应用程序设计
§12-1 AutoLISP语言的基本知识
AutoLISP语言的特点及功能
LISP(Lisp Processing Language)是一种计算机的表处理语言,是当今人工智能和专家系统学科领域应用最广的一种程序设计语言。其突出特点是程序和数据二者都取符号表达式的形式,一个LISP可以将另一个LISP程序作为其数据处理,这使得其程序设计十分灵活。
AutoLISP语言是一个嵌入AutoCAD内部的LISP语言,它是美国AUTODESK公司发行的,是LISP语言与AutoCAD有机结合的产物。
AutoLISP语言是开发AutoCAD图形软件的强有力工具。利用AutoLISP语言编写程序可进一步开发增强AutoCAD的绘图功能,实现交互设计和绘图领域的智能化,节省时间,提高绘图效率。另外,利用AutoLISP开发参数绘图程序,可通过修改设计参数,在较短的时间里快捷、高质量地完成多方案对比设计,也可以建立各专业的图形库,给出一些必要的参数绘出图形。
二、AutoLISP的数据类型
1.整形数
整型数类似于高级语言中的整数,正数的“+”号可省略,负数的“—”号必不可少。
2.实型数
实型数类似于高级语言中的实数。对于绝对值小于1的实数必须加前导0,不能以小数点开头,否则计算机出错。
3.符号
类似高级语言的符号。在AutoLISP语言中,符号原子可以包含除下列字符以外的任何可以打印的字符:
() 圆括号用作表的定义
. 点符号用作点对
’ 单引号用作QUOTE函数的简写
; 分号用作程序的注释标志
一个符号可以是全局变量,也可以局部变量。若要查看某个符号的当前约束值,可在AutoCAD的命令状态中,键入一个感叹号,后跟要查看的符号,例如:Command:!H,回车后就会显示H的当前约束值。
4.字符串
字符串是由一对双引号(“”)引起来的字符序列组成,双引号是字符串的定界符,不是字符串的内容。
5.表
表提供了在一个符号中存贮大量相关数值的有效方法。可将二维点或三维点坐标作为一个表,如(x,y),(x,y,z),也可将有关数据以表的形式来作排列、计算或排序等。
6.实体名
实体名是赋予绘图中实体的数字标号。实体名是指向由AutoCAD维护文件的指针,从这里AutoLISP可以找到该实体的数据库记录和矢量。这个标号可以被AutoLISP函数引用,允许选择的实体利用各种方式进行处理。例如将符号“en1”设为所绘图形的最后一个实体的实体名:(setq en1(entlast))
可以返回Entity name:6000016。
7.选择集
选择集是一个或多个实体的集合。依照AutoCAD中常规的实体选择过程,可以用AutoLISP程序交互地向选择集中增加实体,或者从选择集中减少实体。
8.子程序和外部子程序
AutoLISP的函数均是子程序,称为内部子程序。子程序可以用defun函数定义。外部子程序是由ADS应用程序定义的子程序。
三、AutoLISP语言的有关说明和约定
(1)表就是用圆括号括起来的元素的集合,如(元素1 元素2 元素3……)。表中的元素,可以是函数名、变量名、数值、字符串、空和表。
例如:
(setq a 2 b 3) 返回值为3
(+ 1 (- 3 2)) 返回值为2
表具有以下四个特点:
有序性: 表中的元素次序不能随意颠倒。
如(1 2 3)不等于(2 1 3)
任意长: 使用前不需作任何说明。表的存贮空间是动态分配,元素个数可任意改变,元素类型可以不同。
允许嵌套: 一个表内可以包含任意多层的子表,因此能用来描述图形的数据结构。
数据和函数在格式上一致:用setq(赋值)来存储数据,用defun(函数定义)来产生函数,例如:
(setq p1 ((7 6 5)) 对p1赋值
(defun f(x y)(* 5 x y) 定义f(x y)=5xy
它们的存贮形式都是一个表。
(2)表中不带圆括号的一个数据或符号称为原子,如setq,x,PI,“ABD”。
(3)表中的各个元素用空格分开。
(4)文件描述符亦即文件指针,如FILE 167c。
(5)AutoLISP程序是以×××.LSP的文件名存在的。“.LSP”为固定扩展名。
(6)恢复节点空间,即用户建立的函数和变量用过之后就不再用了,则可将它们设置为nil,以便恢复该函数(或变量)所占用的堆空间,例如(setq text nil)。
(7)AutoLISP的变量名是由字母、数字与字符随意组合而成,但不能是“(”,“)”,“.”,“;”,“”等符号,也不能是纯数字。
AutoLISP规定了几个特殊
您可能关注的文档
- 《机械CADCAMa》教学大纲.doc
- 《计算机图形学》教学参考书目.doc
- 《离散数学课程实验》大纲.doc
- 《模流分析基础入门》1.doc
- 《软件工程》复习题1和答案.doc
- 《软件工程练习题及参考答案》.doc
- 《商务网站模拟与实现》模板(适用09级信管&电商).doc
- 《数据结构01》复习题_答案.doc
- 《数据结构02》复习题及答案.doc
- 《数据结构》(开放本科)课程教学一体化设计方案.doc
- 浙江衢州市卫生健康委员会衢州市直公立医院高层次紧缺人才招聘11人笔试模拟试题参考答案详解.docx
- 浙江温州泰顺县退役军人事务局招聘编外工作人员笔试备考题库及参考答案详解一套.docx
- 江苏靖江市数据局公开招聘编外工作人员笔试模拟试题及参考答案详解.docx
- 广东茂名市公安局电白分局招聘警务辅助人员40人笔试模拟试题带答案详解.docx
- 江苏盐城市大丰区住房和城乡建设局招聘劳务派遣工作人员4人笔试模拟试题带答案详解.docx
- 浙江舟山岱山县东沙镇人民政府招聘笔试模拟试题及参考答案详解1套.docx
- 最高人民检察院直属事业单位2025年度公开招聘工作人员笔试模拟试题含答案详解.docx
- 浙江金华市委宣传部、中共金华市委网信办所属事业单位选调工作人员笔试备考题库及答案详解1套.docx
- 广东深圳市党建组织员招聘40人笔试模拟试题及答案详解1套.docx
- 江苏南京水利科学研究院招聘非在编工作人员4人笔试模拟试题及参考答案详解.docx
文档评论(0)