- 1、本文档共37页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章CAD系统开发技术2.ppt
4.2 AutoLISP 程序语言设计
LISP(List Processing Language):
语言是人工智能学科领域中广泛应用的程序语言
是一种表处理程序,
以符号表达式的形式表示程序和数据。
AutoLISP
语言是嵌入在AutoCAD内的LISP语言
采用LISP的语法和约定
并具有自己的特性
AutoLISP特定的功能
可调用AutoCAD的绘图命令
可对图形数据库直接访问、修改
可对屏幕图形实时修改、交互设计、参数化设计
综合了LISP语言的特性和AutoCAD强大的图形编辑功能的特点
是一种人工智能绘图语言
4.2.1AutoLISP数据类型
包括整型数、实型数、符号、字符串、彪、文件描述符、子程序(内部函数)、AutoCAD的选择集、实名体、函数分页表、外部子程序等
(1)整型数:
由 0 ,1,2,┄,9,+,- 组成
对于PC-DOS/MS-DOS系统,为16位带符号数值,-32768~+32768
对于32位机,为32位带符号数,-2147483648 ~+2147483647
AutoLISP和AutoCAD间整数的传输只能16位
(2)实型数:
用双精度浮点数表示,14位有效精度
小于1的小数,必须“0.***”来表示,不可省略0
也可用科学计数法表示,如0.12e9
(3)符号原子:
任何可打印的字符,除了下表中的符号
()
表的定义
.
点对
,
Quote函数的简写
“
字符串常数的定界符
;
用作程序的注释标志
符号原子简称符号,例如 !A12,ABC,X831,AutoLISP中大小写等效
空格起分隔符号原子的作用。另外终止或分隔原子符号的还有: () , “ ;
符号长度没有限制,但为了节省空间,尽量不用超过6个字符的符号名
“约束”
是一对符号和值
将一个值赋给符号,就说符号约束到那个值,不需要提前定义类型,例如
(setq X 25) X为整型,
(setq X “25”) X为字符串 (同一程序中出现,并没错)
任何符号都有“符号名”和“符号约束”(值),若一个符号从未被赋值,则为nil。
两个特殊的符号原子是T和nil,预先值是T和nil。
一个符号可以是全局约束,也可以是局部约束
查看符号的当前约束值,可用Command:! X
程序中定义的符号名不能与系统定义的函数和符号名相同,例如line
(4)字符串:
由双引号括起来的字符序列,如 “this is first point”
字符的个数为字符的长度(最大长度100)。若“ ”,称为空串。
字符串的通用格式“\nnn” (ASCII编码),由于\有特定的含义,字符串中用到,可用 \\ 或 \114。
常用的控制字符有特定的简单表示形式,见表4-2。其中\e,\n,\r,\t中的字母必须小写。
字符串常用于磁盘文件名、标识符的打印名等
如 (prompt “\n Enter first point: ”)
(5)表
提供在一个符号中存储大量数值的方法。例如
二维点用(x y)表示
三维点用(x y z)表示
(setq a 6)中有3个元素
表的大小
用长度度量,长度指表中顶层元素个数
如;(setq a (+ (\ d 2)))的长度是3,其中 (+ (\ d 2))是一个表不是符号。
表的两种基本类型:标准表和引用表
标准表从左括号“(”开始,到配对右括号“)”结束。标准表的第一个元素必须是函数。
引用表在左括号前加一撇“ ’( ”,表示此表不求值。
(6)文件描述符
是被打开文件的标识号
当函数访问文件时,是通过该文件描述符去识别文件并建立联系
例如“myfile.dat”文件,执行下列命令:
(setq f1 (open “myfile.dat” “w”))
该文件描述符的数值赋予符号f1。
(7)实体名
是赋予图形实体的数字标号
是该图形文件的指针,通过它可以找到该实体的数据库记录和屏幕对象。
例如;(setq aaa (entlast))
把图形最后一个实体的实体名赋予符号aaa.
(8)选择集
一个或多个实体的集合
可以交互地向选择集增加或减少对象。
例如: (setq ssprev (ssget “p”))
将选择的对象赋予符号ssprev
(9)子程序和外部子程序
子程序是AutoLISP的函数,可以用defun函数重新定义
外部子程序是由ADS应用程序定义的子程序
4.2.2AutoLISP程序结构
前缀表示法:
和中缀表示法不同,运算符在操作数之前。
(setq x 25.0) x=25.0
(setq x (* (+ a b) c)) x=(a+b)*c
程序结构组成
表达式是语法上合理的程序。
完整的程序,往往是由一系列按顺序排列的表达
您可能关注的文档
- 第10章表面积和体积-数学课程网.doc
- 第11章-天津大学计算机学院.ppt
- 第11章gcc的使用与开发.ppt.ppt
- 第11章教案.ppt.ppt
- 第11章状态空间模型和卡尔曼滤波_s.ppt-时间序列分析.ppt
- 第11章轴向拉伸与压缩.ppt(2.30MB).ppt
- 第11章递归-Read.ppt
- 第121期学生答题状况与解答及评析.doc
- 第12次课串的匹配.ppt.ppt
- 第12章_位运算.ppt.ppt
- 2023-2024学年广东省深圳市龙岗区高二(上)期末物理试卷(含答案).pdf
- 2023-2024学年贵州省贵阳市普通中学高一(下)期末物理试卷(含答案).pdf
- 21.《大自然的声音》课件(共45张PPT).pptx
- 2023年江西省吉安市吉安县小升初数学试卷(含答案).pdf
- 2024-2025学年广东省清远市九校联考高一(上)期中物理试卷(含答案).pdf
- 广东省珠海市六校联考2024-2025学年高二上学期11月期中考试语文试题.pdf
- 2024-2025学年语文六年级上册第4单元-单元素养测试(含答案).pdf
- 2024-2025学年重庆八中高三(上)月考物理试卷(10月份)(含答案).pdf
- 安徽省安庆市潜山市北片学校联考2024-2025学年七年级上学期期中生物学试题(含答案).pdf
- 贵州省部分校2024-2025学年九年级上学期期中联考数学试题(含答案).pdf
文档评论(0)