- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AutoCAD二次开发
AutoLISP表达式
AutoLISP处理的对象是符号表达式(简称表达式),是LISP程序的基本单元。表达式相当于其他编程语言中程序的语句。
(1)表达式构成
表达式是包含函数关键字,并按AutoLISP语言规则书写的字符串。字符串中可以有数、串和符号。数或串的值是数或串本身,符号的值是赋给该符号的值。多数情况下,表达式以表的形式存在,其格式如下:
(函数名 【参数】…)
表达式由左括号开始,右括号结束,表达式可以嵌套,不伦嵌套几层,其左右括号必须是配对的。表达式形式的表中,左括号之后的第一个元素必须是函数名。
(2)表达式的表示
大多数程序语言的表达式采用中缀表示法,即运算符在操作数中间,如:x=y+z。AutoLISP采用前缀表示法,将函数名或运算符放在所有操作数之前,如:(setq x (+ y z))
(3)表达式返回值
在LISP语言中,函数之间不存在是否优先的关系,求值的先后顺序只能通过表的层次来实现。最里层的表最先被求值,把求值的结果返回给外层的表,直至求值完毕。
例如,表达式(setq x(* (+ a b) c)),先求出最内层a与b之和,然后求出a,b之和与c的积,将求得的积赋给x,最后返回x的值。
(4)错误信息
在表达式运行过程中,如果输入的右括号不配对,则会显示错误提示:输入的列表有缺陷。Vlisp环境下支持自动修正缺失的括号功能。
AutoLISP数据类型、变量
AutoLISP语言有着丰富的数据类型、灵活的变量定义。
(一)、数据类型
AutoLISP的数据类型丰富,除了具有一般程序设计语言的整型、实型、字符串等数据类型之外,还有表、文件描述符、AutoCAD选择集、AuroCAD图元名、VLA对象等数据类型。
(1)整型(INT)
整型即整数型。由0~9数字、+、-字符组成,不允许出现其他字符,“十”号可省略,如+110,321,-30均是合法的整型数据。在目前使用比较多的32位计算机上,AutoLISP的整型数据用32位表示,其取值范围为-2 147 483 648到+2 147 483 648。如果用户输人的数据超出此范围,AutoLLSP会自动将整型数据转换为实型数据,但对于两个有效整数进行运算所产生的结果超出此范围的情况,最后会得到无效的结果。
(2)实型(REAL)
实型数据又称为浮点数,AutoLISP中为双精度,即保证有14位的有效精度。实数有小数和科学计数两种表示形式:
·小数形式
例如:0.123,-2.345但需要注意的是,与其他语言不同,AutoLLSP中对于绝对值小于1的实数不能直接以小数点开头,必须在小数据点前加上0,否则计算机会误认为是点对而出错。例如不能将0.123简写为.123
·科学计数法形式
即数字后有一个e或E,而后跟数的指数。如1. 23E3表示1.23×103,同样也可表示为0.123E4或12.3e2。但要注意e或E之前必须有数字,且指数必须为整数,如E3、1.23E2.5、e均不是合法的指数形式。
(3)字符串(STRING)
字符串又称为字符常数,它是由双引号括起来的字符序列。字符串中字母的大、小写和空格符都有特定意义。字符串中字符的个数称为字符串的长度,最大为132,如果超出,则后面的字符无效。任何字符都可以用“\nnn”的格式表示,其中反斜杠“\”是ASCII码的前导标识字符,nnn是该字符八进制的ASCII码。例如,字符串ABCD也可表示为\101\102\123\104。一些常用的控制字符,像反斜杠、双引号,除了可以用“\nnn”的格式表示之外,还可以用转义字符格式表示为“\\”、“\”等特殊字符,见表10-1。
表10-1 用前导“\”符号表示控制字符的方法
控制字符 用转义字符表示 用ASCII码表示 反斜杠“\” \\ \134 双引号“” \ \042 ESC键 \e \033 换行 \n \012 回车 \r \015 Tab键 \t \011 注意:其中的字符e,n,r,t必须小写;在Visual LISP中转义字符\ r 不能作为回车符使用,文字会紧跟在最后一个打印文字后面显示,需要打印回车符时可用(CHR 13 )来代替。
(4)表(LIST)
表是放在一对圆括号中的一个元素或用空格分隔的多个元素的组合,表中的元素可以是函数,也可以是上述3种数据类型,甚至是另一个表,因而表提供了在一个符号中存储大量相关数值的有效方法。表是LISP语言处理的对象,是Visual LISP基本数据结构。例如,(+ 1 2 3),(sin(* 2.3 pi)), ((A B) C (D E)),(0 LINE),()都是合法的表。
表中元
您可能关注的文档
- 第七章 abaqus安装方法详解.doc
- 第六篇 市场理论.ppt
- 第九章 北大国际政治考研真题-复习资料-2017年真题总结.pdf
- 基于动态规划算法的混联混合动力汽车控制策略_左义及.pdf
- 第二章 地球化学图制作步骤.pdf
- 第三章 白光LED光谱分析.doc
- 第八章 北京大学招生简章-北大汉语国际教育硕士考研招生简章、专业目录、参考书、真题、报录比、分数线.pdf
- 商业银行计算题指南.doc
- FB308型电表改装和校准实验仪.doc
- 坎贝尔第十节并发症摘要.ppt
- 主管护师考试常见错误及试题及答案.docx
- 2025年成人教育终身学习体系构建与平台运营:个性化学习路径规划策略报告.docx
- 难点解析冀教版8年级下册期末试卷及参考答案详解【A卷】.docx
- 医疗行业大数据隐私保护合规性技术实施与评估报告.docx
- 环境监测行业智能化转型中数据质量控制与智能化技术应用策略报告.docx
- 制造行业工业互联网平台建设与应用方案.doc
- 星巴克2025年连锁品牌品牌历史体验营销策略报告.docx
- 宠物智能健康监测设备行业现状与市场潜力深度报告.docx
- 环保产业升级新趋势:2025年再生资源回收市场政策环境与产业链布局分析报告.docx
- 数字化设计在模具制造中的模具制造行业产业链协同与市场拓展报告.docx
文档评论(0)