欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第二讲AutoLISP语言基础课件.ppt

    • 资源ID:72166038       资源大小:790KB        全文页数:70页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第二讲AutoLISP语言基础课件.ppt

    AutoLISPAutoLISP语言基础语言基础第第 2 2 讲讲2.1 AutoLISPAutoLISP程序语言程序语言 nLISPLISP语言:语言:(list processing language)(list processing language)是人工智能学科领域中广泛采用的一种程是人工智能学科领域中广泛采用的一种程序设计语言,是一种计算机的序设计语言,是一种计算机的表处理语言表处理语言。nAutoLISPAutoLISP语言:语言:是一种嵌入在是一种嵌入在AutoCADAutoCAD内部内部的的LISPLISP编程语言,是编程语言,是LISPLISP语言语言和和AutoCADAutoCAD有有机结合的产物。机结合的产物。n本节主要介绍本节主要介绍AutoLISPAutoLISP的的数据类型数据类型、程序程序结构结构、内部函数内部函数以及以及AutoLISPAutoLISP的的编程方法编程方法。2.2 2.2 AutoLISPAutoLISP数据类型数据类型n整数整数 -2147483647-214748364721474836482147483648n实型数实型数 2.45,-0.38,-4.56E82.45,-0.38,-4.56E8n符号原子符号原子 x,y1,ax2,x,y1,ax2,abcabc,除()除().,“;5 5个字符以外的任何可打印字符。个字符以外的任何可打印字符。SetqSetq是一个赋值函数,如(是一个赋值函数,如(SetqSetq X 25 X 25)查看某个符号的当前约束值(将一个值赋给符号)查看某个符号的当前约束值(将一个值赋给符号)方法:方法:Command:Command:!X X 注意:程序中定义的符号或变量名称不能与系统注意:程序中定义的符号或变量名称不能与系统定义的函数和符号名相同,否则后面的定义将取代定义的函数和符号名相同,否则后面的定义将取代已有的定义,从而引起混乱。已有的定义,从而引起混乱。2.2数据类型字符串字符串 “fxfx”“AutoCAD”“2.36”“AutoCAD”“2.36”是由双引号括起来的字符序列组成的,字母的大是由双引号括起来的字符序列组成的,字母的大小写和空格字符都是有意义的。小写和空格字符都是有意义的。表表 (COS(COS phaiphai)(2 5 8)(2 5 8)AutoLISPAutoLISP中广泛使用,表提供了在一个符号中中广泛使用,表提供了在一个符号中存储大量相关数值的有效方法。存储大量相关数值的有效方法。如:(如:(setqsetq a 10 a 10)(setqsetq a(+b(d 2)a(+b(d 2)表有标准表和引用表表有标准表和引用表2 2种基本类型。标准表括号中种基本类型。标准表括号中首元素必须是合法的已存在的首元素必须是合法的已存在的AutoLISPAutoLISP的的函数;引函数;引用表是在左括号前加一撇号,如用表是在左括号前加一撇号,如 (x y)(x y),表示对表示对此表不做求值处理此表不做求值处理,而是供其它函数引用。而是供其它函数引用。2.2数据类型文件描述符文件描述符 (setq f(open “d:myfile.dat”“r”)其返回值就是其返回值就是AutoLISPAutoLISP赋予被打开文件的标识号。赋予被打开文件的标识号。实体名实体名 (setq e1(entlast)其返回值就是赋予图形实体的标识号。其返回值就是赋予图形实体的标识号。选择集选择集 (setq s1(ssget “x”(0.“circle”)其返回值就是由当前图形数据库中所有圆构成的集合。其返回值就是由当前图形数据库中所有圆构成的集合。AutoLISPAutoLISP的内部变量:的内部变量:pipi3.141593.14159T T逻辑变量真逻辑变量真NILNIL逻辑变量假逻辑变量假PAUSEPAUSE函数中等待函数中等待用户输入用户输入2.2数据类型2.3 2.3 AutoLISPAutoLISP程序结构程序结构n前缀表示法前缀表示法 将运算符号放在操作数之前,如将运算符号放在操作数之前,如X=(A+B)*CX=(A+B)*C,若用若用AutoLISPAutoLISP表示则为表示则为:(setqsetq X(*(+A B)C)X(*(+A B)C)n程序结构组成程序结构组成 一个完整的一个完整的AutoLISPAutoLISP程序是由一系列按顺序排程序是由一系列按顺序排列的表达式组成的列的表达式组成的,最里面的表先被求值。最里面的表先被求值。n程序注释程序注释 以一个分号以一个分号“;”开始,并在一行的末尾结束。开始,并在一行的末尾结束。2.3程序结构在程序中使用内部函数的规则:在程序中使用内部函数的规则:1 1)内部函数必须放在表中第一个元素的位)内部函数必须放在表中第一个元素的位置,且所有括号都必须左右配对;置,且所有括号都必须左右配对;2 2)函数与参数之间至少用一个空格来分开,)函数与参数之间至少用一个空格来分开,多个空格和一个空格作用相同;多个空格和一个空格作用相同;3 3)一个表可分成多行书写,一行也可以书)一个表可分成多行书写,一行也可以书写多个表;写多个表;4 4)字符不分大小写,分号后的字符为注释。)字符不分大小写,分号后的字符为注释。2.3程序结构n函数的定义函数的定义:n(defundefun ()n 1n 2n n nn )n说明:说明:1).1).DefunDefun是是AutoLISPAutoLISP的一个特殊函数,由它定义的的一个特殊函数,由它定义的函数是构成程序的主体,在程序中定义的函数可以用函数是构成程序的主体,在程序中定义的函数可以用函数名来调用;函数名来调用;2.3程序结构2).2).必须为符号原子,在程序调入内存产生了一个必须为符号原子,在程序调入内存产生了一个 函数定义之后,函数定义之后,将被放到原子表将被放到原子表ATOMLISTATOMLIST中。中。3).3).有如下几种格式:有如下几种格式:(/)2)()2)(/(/)2)()();即不带任何参数的空表。;即不带任何参数的空表。(注:形参在函数调用时必须用实参取代,(注:形参在函数调用时必须用实参取代,“/”/”前后须有空前后须有空格。)格。)4).4).n 是任意的表达式,是任意的表达式,它们可以是所定义函数的的调用,以形成函数的递归定义。它们可以是所定义函数的的调用,以形成函数的递归定义。这些表达式是函数的定义体,它们在函数调用时将依次求这些表达式是函数的定义体,它们在函数调用时将依次求值,用于完成所需的功能。值,用于完成所需的功能。2.3程序结构AutoLISPAutoLISP程序结构实例程序结构实例:;*;*这个程序计算这个程序计算 a a 和和 b b 平方和的平方根平方和的平方根 *;*用法用法:交互输入两个实型数交互输入两个实型数 a,ba,b的值的值 *;*该程序计算并输出结果在屏幕上。该程序计算并输出结果在屏幕上。*;*(defundefun sqtabsqtab(/a b)(/a b);定义函数定义函数(setqsetq a(a(getrealgetreal“n a=:”)“n a=:”);等待输入等待输入a a的值的值(setqsetq b(b(getrealgetreal“n b=:”)“n b=:”);等待输入等待输入b b的值的值(setqsetq c(c(sqrtsqrt(+(*a a)(*b b);(+(*a a)(*b b);计算平方根计算平方根(print“c=“)(print“c=“)(princprinc c)c)(princprinc));end;end2.3程序结构2.4 2.4 AutoLISPAutoLISP基本函数(六类)基本函数(六类)(一)数学运算函数(一)数学运算函数(1717种)种)+、-、*、/、1-1-、1+1+、absabs、sinsin、coscos、atanatan、sqrtsqrt、minmin、maxmax、exptexpt、loglog、gcdgcd、remrem1)(+1)(+数数数数)功能功能 :求表中所有整数或实数的和。例如求表中所有整数或实数的和。例如 :Command:(+1.2 3.1 3.8)Command:(+1.2 3.1 3.8)返回:返回:8.18.12)(-2)(-数数数数)功能功能 :求表中第求表中第1 1个数减去后面所有数的差个数减去后面所有数的差 ,例如例如 :Command:(-Command:(-8.18.1 5)5)返回:返回:3.13.12.4基本函数3)(*3)(*数数数数)功能功能 :求表中所有数的积求表中所有数的积 ,例如例如 :Command:(Command:(*2 2 5)5)返回:返回:1010 4)(/4)(/数数数数)功能功能 :求表中第求表中第1 1个数除以后面所有数的商。例如个数除以后面所有数的商。例如:cmnmandcmnmand:(/:(/10 10 5 5 2.0)2.0)返回值:返回值:1.01.0注意:注意:(/10 5 5)(/10 5 5)返回值:返回值:0 05)(1+5)(1+数数)功能功能 :求一个整数或实数加求一个整数或实数加 1 1 的和。例如的和。例如:Command:(1+Command:(1+2.7)2.7)返回值:返回值:3.73.76)(1-6)(1-数数)功能功能:求一个整数或实数减求一个整数或实数减 1 1 的差。例如的差。例如:Command:(1-Command:(1-2.7)2.7)返回值:返回值:1.71.72.4 基本函数7)(7)(abs abs 数数)功能功能:求一个整数或实数的绝对值。例如求一个整数或实数的绝对值。例如:Command:(absCommand:(abs -3.14)-3.14)返回:返回:3.143.148)(sin 8)(sin 弧弧度度)功能功能 :求一个求一个以以弧度弧度为参数的为参数的正弦值。例如正弦值。例如:Command:(sinCommand:(sin (*0.5 pi0.5 pi))返回:返回:1.01.09)(cos 9)(cos 弧度弧度)功能功能 :求一个求一个以以弧度弧度为参数的为参数的余弦值。例如余弦值。例如:Command:(cosCommand:(cos (*0.0174533 30)(*0.0174533 30)返回:返回:0.8660.8662.4 基本函数10)(atan 10)(atan 数数 1 1 数数 2 2)功能功能 :求数求数 1/1/数数 2 2 或数或数 1 1 的反正切值。例如的反正切值。例如:Commad:(aCommad:(atantan 0.707 0.707 0.7070.707)返回:返回:0.78540.7854注意:返回的为弧度值。注意:返回的为弧度值。Command:(atanCommand:(atan 1.0)1.0)返回:返回:0.78540.785411)(11)(sqrsqrt t 数数)功能功能:求一个整数或实数的平方根。例如求一个整数或实数的平方根。例如:Command:Command:(sqrsqrt t 256)256)返回:返回:16.016.012)(min 12)(min 数数 1 1 数数 2 2 )功能功能:求表中所有整数或实数的最小值。例如求表中所有整数或实数的最小值。例如:Command:(minCommand:(min 1.44 1.44 -2.1-2.1 -3.6)-3.6)返回:返回:-3.6-3.6 13)(max13)(max数数 1 1 数数 2 2 )功能功能 :求表中所有整数或实数的最大值。例如求表中所有整数或实数的最大值。例如:Command:(mCommand:(maxax -2.5 -2.5 2.12.1 7.2 7.2 3.43.4 5.8 5.8)返回:返回:7.27.22.4 基本函数 14)(expt 14)(expt 底数底数幂幂)功能功能 :求底数的求底数的幂幂次方。例如次方。例如:Command:(exptCommand:(expt 2.02.0 3)3)返回:返回:8.08.015)(log 15)(log 数数)功能功能 :求一个数的自然对数。例如求一个数的自然对数。例如:Command:(logCommand:(log 2)2)返回:返回:0.693147 0.693147 16)(16)(gcdgcd 数数 1 1 数数 2 2 )功能功能 :求数求数 1 1 和数和数 2 2 两个整数的最大公约数。例如两个整数的最大公约数。例如:Command:(gcdCommand:(gcd 144144 16)16)返回:返回:161617)(17)(remrem 数数 1 1 数数 2 2 )功能:求数功能:求数1 1除以数除以数2 2的余数。例如:的余数。例如:CommandCommand:(remrem 162 38)162 38)返回:返回:10102.4 基本函数例例1.1.编程计算普通松联接螺栓的最小直径编程计算普通松联接螺栓的最小直径已知计算公式为已知计算公式为 :2.4 基本函数编程如下:编程如下:(defundefun bolt(F b)bolt(F b)(setqsetq d1min(d1min(sqrtsqrt(/(*4 f)(*pi b)(/(*4 f)(*pi b)(princprinc“n“n松螺栓最小直径松螺栓最小直径d1=”)(d1=”)(princprinc d1min)d1min)(princprinc);end );end Command:(boltCommand:(bolt 5800 180)5800 180)返回:返回:松螺栓最小直径松螺栓最小直径d1=6.4052d1=6.4052(二)(二)赋值与求值函数赋值与求值函数函数名函数名 格格 式式 功功 能能1)setq1)setq(setqsetq 变量变量11表达式表达式1 1 变量变量22表达式表达式2)2)仅对表达式求值,并将表仅对表达式求值,并将表达式的值赋给前面相应的达式的值赋给前面相应的变量变量2)set2)set(set(set 变量变量 表达式表达式)对变量和表达式分别求值,对变量和表达式分别求值,且变量的求值结果仍为变且变量的求值结果仍为变量,再将表达式的值赋给量,再将表达式的值赋给该变量。该变量。3)eval3)eval(evaleval 表达式表达式)对表达式的求值结果再求对表达式的求值结果再求值。返回最后的求值结果。值。返回最后的求值结果。2.4 基本函数赋值与求值函数举例赋值与求值函数举例:(setqsetq x1 2.5 y1(+x1 3.2)x1 2.5 y1(+x1 3.2)返回返回:5.700:5.700(setqsetq x 2 y 4.0 pt (list x y)x 2 y 4.0 pt (list x y)返回:返回:(2 4.000)(2 4.000)(setqsetq d c)d c)返回:返回:C C 表明变量表明变量d d的值为变量的值为变量C C(set d 2)(set d 2)返回:返回:2 2 表明变量表明变量C C的值为的值为2 2(evaleval d)d)返回:返回:2 2(evaleval “(+3 4)”)“(+3 4)”)返回返回:“(+3 :“(+3 4)”4)”(evaleval(+3 4)(+3 4)返回:返回:7 72.4 基本函数1)(type1)(type项项)功能:判断所列功能:判断所列 的数据类型,其值为下列类型之一:的数据类型,其值为下列类型之一:INT(INT(整型数整型数),REAL(REAL(实型数实型数),SYM(SYM(符号符号),STR(STR(字符串字符串),LIST(LIST(表表),SUBR(SUBR(内部函数内部函数),FILE(FILE(文件描述符文件描述符)。例如:。例如:CommandCommand:(type(type(setqsetq a 25)a 25)返回:返回:LISTLISTCommandCommand:(type*)(type*)返回:返回:SUBRSUBRCommandCommand:(type(setqtype(setq f(open f(open jq.txtjq.txt r)r)返回返回:FILE FILE 2)(fix2)(fix数数)功能:将实型数去掉小数部分化为整型数。例如:功能:将实型数去掉小数部分化为整型数。例如:CommandCommand:(fix 2.13)(fix 2.13)返回:返回:2 2(三三)数据类型转换函数数据类型转换函数(1010种)种)2.4 基本函数3)(flaot3)(flaot数数)功能:将整型数化为实型数。例如:功能:将整型数化为实型数。例如:CommandCommand:(flaotflaot 2)2)返回:返回:2.02.0 4)(itoa 4)(itoa整型数整型数)功能:将整型数化为字符串。例如:功能:将整型数化为字符串。例如:CommandCommand:(itoaitoa 28)28)返回:返回:28 28 5)(atoi5)(atoi字符串字符串)功能:将字符串化为整型数。例如:功能:将字符串化为整型数。例如:CommandCommand:(atoiatoi 415)415)返回:返回:4154156)(atof6)(atof字符串字符串)功能:将字符串化为实型数。例如:功能:将字符串化为实型数。例如:CommandCommand:(atofatof 5)5)返回:返回:5.05.02.4 基本函数 7)(rtos7)(rtos数数)功能:按功能:按AutoCADAutoCAD系统变量系统变量LUNITSLUNITS和和LUPRECLUPREC定义的定义的 记数方式和精度将数转化为字符串。例如:设记数方式和精度将数转化为字符串。例如:设 LUNITS=2(LUNITS=2(十进制十进制),LUPREC=4(LUPREC=4(精度)精度)CommandCommand:(rtosrtos 3.7)3.7)或或(rtosrtos 3.7 2 4)3.7 2 4)返回:返回:3.7000 3.7000 8)(angtos8)(angtos角度角度)功能:按功能:按AutoCADAutoCAD系统变量系统变量LUNITSLUNITS和和LUPRECLUPREC定义的定义的记数方式和精度将弧度数转化为字符串。例如:设记数方式和精度将弧度数转化为字符串。例如:设LUNITS=0(LUNITS=0(度度),LUPREC=4LUPREC=4 Command Command:(angtosangtos 3.14)3.14)返回:返回:“180.0000180.00002.4 基本函数9)(ascii9)(ascii字符串字符串)功能:求出字符串第一个字符的功能:求出字符串第一个字符的ASCIIASCII值。例如:值。例如:CommandCommand:(asciiascii Access)Access)返回:返回:6565CommandCommand:(asciiascii “Bolt)“Bolt)返回:返回:666610)(chr10)(chr数数)功能:求出整型数所代表的功能:求出整型数所代表的ASCIIASCII字符。例如:字符。例如:ComanandComanand:(chrchr 65)65)返回:返回:A A 2.4 基本函数1)(strcat1)(strcat字符串字符串2 2字符串字符串3 3)功能:将所列的字符串合并为一个字符串。例如:功能:将所列的字符串合并为一个字符串。例如:CommandCommand:(strcatstrcat C A D)C A D)返回:返回:CADCAD2)(strlen2)(strlen字符串字符串)功能:求出字符串的长度。例如:功能:求出字符串的长度。例如:CommandCommand:(strlenstrlen AutoCAD)AutoCAD)返回:返回:7 73)(substr3)(substr字符串字符串起始位起始位(长度长度)功能:按要求求出字符串的一个子串。例如:功能:按要求求出字符串的一个子串。例如:CommandCommand:(substrsubstr “210311198111020013 7 8)“210311198111020013 7 8)返回:返回:“19811102 19811102(四四)字符串处理函数字符串处理函数(3 3种)种)2.4 基本函数1)(list1)(list表达式表达式)功能:用所列表达式组成一个表。例如:功能:用所列表达式组成一个表。例如:CommandCommand:(list C A D)(list C A D)返回:返回:(C A D)(C A D)CommandCommand:(list 1.2 2.3)(list 1.2 2.3)返回:返回:(1.20 2.30)(1.20 2.30)2)(append2)(append表表1 1表表2 2)功能:将所列的功能:将所列的(表表)合并成一个新表。例如:合并成一个新表。例如:CommandCommand:(append(C)(A)(D)(append(C)(A)(D)返回:返回:(C A D)(C A D)(五五)表处理函数表处理函数(1313种)种)2.4 基本函数3)(cons3)(cons新元素新元素表表)功能:将新元素加到表的开头,形成一个新表。例如:功能:将新元素加到表的开头,形成一个新表。例如:CommandCommand:(cons C (A D)(cons C (A D)返回:返回:(C A D)(C A D)CommandCommand:(cons (A C)(A D)(cons (A C)(A D)返回:返回:(A C)A D)(A C)A D)4)(subst4)(subst新元素新元素旧元素旧元素表表)功能:用新元素替换表中的旧元素。例如:功能:用新元素替换表中的旧元素。例如:CommandCommand:(substsubst M D M D (C A D)(C A D)返回:返回:(C A M)(C A M)2.4 基本函数5)(assoc 5)(assoc 关键字关键字关联表关联表)功能:在关联表中求出指定关键字的子表。例如:功能:在关联表中求出指定关键字的子表。例如:CommandCommand:(setqsetq alstalst (L 15)(W 12)(H 8)(L 15)(W 12)(H 8)CommandCommand:(assoc W (assoc W alstalst)返回:返回:(W 12)(W 12)6)(last 6)(last 表表)功能:求出表的最后一个元素。例如:功能:求出表的最后一个元素。例如:CommandCommand:(last (24 56 38)(last (24 56 38)返回:返回:38387)(car 7)(car 表表)功能:求出表的第一个元素。例如:功能:求出表的第一个元素。例如:CommandCommand:(car (car (24 56 38)(24 56 38)返回:返回:24248)(cadr 8)(cadr 表表)功能:求出表的第二个元素。例如:功能:求出表的第二个元素。例如:CommandCommand:(cadrcadr (24 56 38)(24 56 38)返回:返回:56562.4 基本函数9)(nth9)(nthn n表表)功能:求出表中第功能:求出表中第n n个元素个元素(表的第表的第1 1个元素的序号为个元素的序号为0)0)。例如:。例如:CommandCommand:(nth 2 (12 16 25 28 32 40)(nth 2 (12 16 25 28 32 40)返回:返回:252510)(reverse10)(reverse表表)功能:求出表的倒置表。例如:功能:求出表的倒置表。例如:CommandCommand:(reverse (A B C D)(reverse (A B C D)返回:返回:(D C B A)(D C B A)11)(length11)(length表表)功能:求出表中元素的个数。例如:功能:求出表中元素的个数。例如:CommandCommand:(1ength(12 16 25 28 32 40)(1ength(12 16 25 28 32 40)返回:返回:6 62.4 基本函数12)(apply12)(apply函数函数表表)功能:按指定函数对表进行处理。例如:功能:按指定函数对表进行处理。例如:CommandCommand:(apply +(1 2 3)(apply +(1 2 3)返回:返回:6 613)(quote 13)(quote 表达式表达式)或或(表达式表达式)功能:给出没有计算的表达式,也称为禁止求值函数。例如:功能:给出没有计算的表达式,也称为禁止求值函数。例如:CommandCommand:(quote a)(quote a)返回:返回:a a与与a a相同。相同。CommandCommand:(setqsetq a 1)a 1)返回:返回:(setqsetq a 1)a 1)2.4 基本函数(六)逻辑运算函数(六)逻辑运算函数(1919种)种)1)(=1)(=符号符号 符号符号)功能:判断是否相等,相等为功能:判断是否相等,相等为T T,否则为,否则为nilnil。例如:例如:CommandCommand:(=28 28.0)(=28 28.0)返回:返回:T T 2)(2)(=符号符号符号符号)功能:判断各符号是否不等,不等为功能:判断各符号是否不等,不等为T T,否则为,否则为nilnil。例如:例如:CommandCommand:(=ApritAprit May)May)返回:返回:T TCommandCommand:(=20 =20 2020)返回:返回:nilnil2.4 基本函数3)(3)(符号符号符号符号)功能:判断左边的符号是否功能:判断左边的符号是否依次大于依次大于右边的符号,大于则右边的符号,大于则为为T T,否则为,否则为nilnil。例如:。例如:CommandCommand:(7 2 1)7 2 1)返回:返回:T TCommandCommand:(2 6 0)2 6 0)返回:返回:nilnil4)(4)(符号符号符号符号)功能:判断左边的符号是否功能:判断左边的符号是否依次小于依次小于右边的符号,小于则右边的符号,小于则为为T T,否则为,否则为nilnil。例如:。例如:CommandCommand:(1 1 21 1 2)返回:返回:nilnilCommandCommand:(1 2 71 2 7)返回:返回:T T5)(5)(=符号符号 符号符号)功能:判断左边的符号是否功能:判断左边的符号是否依次大于或等于依次大于或等于右边的符号,右边的符号,大于或等于则为大于或等于则为T T,否则为,否则为nilnil。例如:。例如:CommandCommand:(=2 1 1)=2 1 1)返回:返回:T TCommandCommand:(=2 1 3)=2 1 3)返回:返回:nilnil2.4 基本函数6)(6)(=符号符号 符号符号)功能:判断左边的符号是否功能:判断左边的符号是否依次小于或等于依次小于或等于右边的符号,小右边的符号,小于或等于则为于或等于则为T T,否则为例如:,否则为例如:CommandCommand:(=7 8 8)=7 8 8)返回:返回:T T7)(and7)(and表达式表达式)功能:对所列的表达式进行逻辑功能:对所列的表达式进行逻辑“与与”运算,有一个表达式运算,有一个表达式结果为结果为(nil)(nil)即为即为nil,nil,否则为否则为T T。例如:。例如:CommandCommand:(and(and(/=4 3)(6 2)/=4 3)(6 2)返回:返回:T T8)(or 8)(or 表达式表达式)功能:对所列的表达式进行逻辑功能:对所列的表达式进行逻辑“或或”运算,当所有表达式运算,当所有表达式都为都为“nil”nil”时为时为nilnil,否则为,否则为T T。例如:。例如:CommandCommand:(or 2 nil(or 2 nil(setqsetq a 6.0)a 6.0)返回:返回:T T9)(not 9)(not 项项)功能:对所列项求反,即返回功能:对所列项求反,即返回 的逻辑的逻辑“非非”,当该项值,当该项值为为nilnil时则为时则为T T,否则为,否则为nilnil。例如:。例如:CommandCommand:(not(not(+4 3)+4 3)返回:返回:nilnil2.4 基本函数10)(atom 10)(atom 项项)功能:判断所列项是否为符号,当该项为表时则为功能:判断所列项是否为符号,当该项为表时则为nilnil,否,否则为则为T T。例如:。例如:CommandCommand:(atom c)(atom c)返回:返回:T T11)(boundp 11)(boundp 符号符号)功能:判断所列的符号是否有非功能:判断所列的符号是否有非nilnil值,若有则为值,若有则为T T,否则为否则为nilnil。例如:。例如:CommandCommand:(boundpboundp c)c)返回:返回:T T12)(listp 12)(listp 项项)功能:判断所列项是否为一个表,是则为功能:判断所列项是否为一个表,是则为T T,否则为,否则为nilnil。例。例如:如:CommandCommand:(listplistp(a b c)(a b c)返回:返回:T T13)(minusp13)(minusp项项)功能:判断所列项是否为负数,是则为功能:判断所列项是否为负数,是则为T T,否则为,否则为nilnil。例如:。例如:CommandCommand:(minuspminusp-3.2)-3.2)返回:返回:T TCommandCommand:(minuspminusp 8.32)8.32)返回:返回:nilnil2.4 基本函数14)(numberp14)(numberp项项)功能:判断所列项是否为整型或实型数,是则为功能:判断所列项是否为整型或实型数,是则为T T,否则为否则为nilnil。例如:例如:CommandCommand:(numberpnumberp-3.26)-3.26)返回:返回:T TCommandCommand:(numberpnumberp Endpoint)Endpoint)返回:返回:nil nil 15)(null15)(null项项)功能:判断所列项的值是否为功能:判断所列项的值是否为nilnil,是则为,是则为T T,否则为,否则为nilnil。例如:例如:CommandCommand:(null(null(2 5)2 5)返回:返回:T T16)(member16)(member表达式表达式 表表)功能:在表中求得从功能:在表中求得从(表达式表达式)出现位置开始的内容,若不出现位置开始的内容,若不含有含有(表达式表达式)的内容,则为的内容,则为nilnil。例如:。例如:CommandCommand:(member a(d b a c e)(member a(d b a c e)返回:返回:(a c e)(a c e)CommandCommand:(member ac(d b a c e)(member ac(d b a c e)返回:返回:nil nil 2.4 基本函数17)(zerop17)(zerop项项)功能:判断所列项的内容是否为零,是则为功能:判断所列项的内容是否为零,是则为T T,否则为否则为nilnil。例如:例如:CommandCommand:(zeropzerop 0)0)返回:返回:T TCommandCommand:(setqsetq a 1)a 1)CommandCommand:(zeropzerop a)a)返回:返回:nilnil18)(eq 18)(eq 表达式表达式1 1表达式表达式2 2)功能:判断功能:判断表达式表达式1 1和和表达式表达式2 2是否完全相同,是则为是否完全相同,是则为T T,否则为否则为nilnil。例如:例如:CommandCommand:(setqsetq c a)c a)CommandCommand:(eqeq c a)c a)返回:返回:T TCommandCommand:(eqeq(setqsetq a(1 2)(a(1 2)(setqsetq b(1 2)b(1 2)返回:返回:nilnil19)(equal 19)(equal 表达式表达式1 1表达式表达式2 2)功能:判断两表达式的值是否相等,是则为功能:判断两表达式的值是否相等,是则为T T,否则为否则为nilnil。例如:例如:CommandCommand:(equal(equal(setqsetq a(1 2)(a(1 2)(setqsetq b(1 2)b(1 2)返回:返回:T T 2.4 基本函数1)If1)If条件函数条件函数 (if (if 条件表达式条件表达式 表达式表达式1 1 表达式表达式2)2)或:或:(if (if 条件表达式条件表达式 表达式表达式)功能:相当于功能:相当于ifthenelse ifthenelse 或或 ifthen ifthen 条件结构。条件结构。例例1 1:已知函数关系为:当:已知函数关系为:当x3x3时,有时,有 y=x+1y=x+1 当当x3x3时,有时,有 y=0y=0(if (=x 3)(if (=x 3)(setqsetq y(+x 1)(y(+x 1)(setqsetq y 0)y 0)例例2 2:设置缺省值:设置缺省值(setqsetq angang (getanglegetangle “n “n旋转角度旋转角度/:”)0:”)(if (not (if (not angang)()(setqsetq angang 0)0)例例3 3:检查自定义函数:检查自定义函数boxbox是否在内存中,若不在,则用是否在内存中,若不在,则用loadload函数自动装入内存。(假设函数名与文件同名)函数自动装入内存。(假设函数名与文件同名)(if (not box)(load “d:box”)(if (not box)(load “d:box”)(一)条件分支函数(一)条件分支函数(2 2种)种)2.5 2.5 控制结构函数(三类)控制结构函数(三类)2.5 控制函数n2.cond2.cond条件函数条件函数n(cond (cond (条件条件1 1 表达式表达式1)1)n (条件条件2 2 表达式表达式2)2)n 。n (条件条件n n 表达式表达式n)n)n )n功能:功能:自顶向下逐个检查每个条件分支,若符合条件,自顶向下逐个检查每个条件分支,若符合条件,n则执行相应的表达式并返回该表达式的求值结果。例如:则执行相应的表达式并返回该表达式的求值结果。例如:n(condcond (and (d 10)(d 10)(d 20)(d 20)(d 40)(d 40)(d 60)(d 60)(3.6,mc3.6,编编程搜索其标准模数值。程搜索其标准模数值。n(setqsetq ml ml(1 1.25 1.5 2 2.5 3 4 5 6 8 10)(1 1.25 1.5 2 2.5 3 4 5 6 8 10)n(setqsetq m 0 n 0)m 0 n 0)n(while (m mc)(while (abs(-x2 x1)e)(abs(-x2 x1)e)n(setqsetq x1 x

    注意事项

    本文(第二讲AutoLISP语言基础课件.ppt)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开