网站大量收购独家精品文档,联系QQ:2885784924

第二讲 AutoLISP语言基础.ppt

  1. 1、本文档共70页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.1 AutoLISP程序语言 LISP语言: (list processing language)是人工智能学科领域中广泛采用的一种程序设计语言,是一种计算机的表处理语言。 AutoLISP语言:是一种嵌入在AutoCAD内部的LISP编程语言,是LISP语言和AutoCAD有机结合的产物。 本节主要介绍AutoLISP的数据类型、程序结构、内部函数以及AutoLISP的编程方法。 2.2 AutoLISP数据类型 整数 -2147483647~2147483648 实型数 2.45, -0.38, -4.56E8 符号原子 x, y1, ax2, abc, … 除(). ,“ ;5个字符以外的任何可打印字符。 Setq是一个赋值函数,如( Setq X 25 ) 查看某个符号的当前约束值(将一个值赋给符号) 方法:Command:!X 注意:程序中定义的符号或变量名称不能与系统定义的函数和符号名相同,否则后面的定义将取代已有的定义,从而引起混乱。 2.3 AutoLISP程序结构 前缀表示法 将运算符号放在操作数之前,如X=(A+B)*C,若用AutoLISP表示则为: (setq X (* (+ A B) C)) 程序结构组成 一个完整的AutoLISP程序是由一系列按顺序排列的表达式组成的,最里面的表先被求值。 程序注释 以一个分号“;”开始,并在一行的末尾结束。 在程序中使用内部函数的规则: 1)内部函数必须放在表中第一个元素的位置,且所有括号都必须左右配对; 2)函数与参数之间至少用一个空格来分开,多个空格和一个空格作用相同; 3)一个表可分成多行书写,一行也可以书写多个表; 4)字符不分大小写,分号后的字符为注释。 函数的定义: (defun 函数名 (参数表) 表达式1 表达式2 ……… 表达式n ) 说明: 1). Defun是AutoLISP的一个特殊函数,由它定义的函数是构成程序的主体,在程序中定义的函数可以用函数名来调用; 2). 函数名必须为符号原子,在程序调入内存产生了一个 函数定义之后,函数名将被放到原子表ATOMLIST中。 3). 参数表有如下几种格式: (形参1 形参2 … / 局部变量1 局部变量2 …) (形参1 形参2 …) (/ 局部变量1 局部变量2 …) () ;即不带任何参数的空表。 (注:形参在函数调用时必须用实参取代,“/”前后须有空格。) 4).表达式1 表达式2 … 表达式n 是任意的表达式, 它们可以是所定义函数的的调用,以形成函数的递归定义。 这些表达式是函数的定义体,它们在函数调用时将依次求 值,用于完成所需的功能。 AutoLISP程序结构实例: ;*********************************************** ;** 这个程序计算 a 和 b 平方和的平方根 ** ;** 用法:交互输入两个实型数 a ,b的值 ** ;** 该程序计算并输出结果在屏幕上。 ** ;*********************************************** (defun sqtab (/ a b) ;定义函数 (setq a (getreal “\n a=:”)) ;等待输入a的值 (setq b (getreal “\n b=:”)) ;等待输入b的值 (setq c (sqrt (+ (* a a) (* b b)))) ;计算平方根 (print “c=“) (princ c) (princ) );end (二) 赋值与求值函数 赋值与求值函数举例: (setq x1 2.5 y1 (+ x1 3.2)) 返回:5.700 (setq x 2 y 4.0 pt (list x y)) 返回:(2 4.000) (setq d ‘c) 返回:C 表明变量d的值为变量C (set d 2) 返回:2 表明变量C的值为2 (eval d) 返回:2 (eval “(+ 3 4)”) 返回:“(+ 3 4)” (eval (+ 3 4)) 返回:7 2.cond条件函数 (cond ([条件1] [表达式1]) ([条件2] [表达式2]) 。。。 ([条件n] [表达式n]) ) 功能:自顶向下逐个检查每个条件

文档评论(0)

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

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

1亿VIP精品文档

相关文档