第4章CAD系统开发技术2.ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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 程序结构组成 表达式是语法上合理的程序。 完整的程序,往往是由一系列按顺序排列的表达

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档