AutoCAD-AutoLISP基本函数(课件PPT)
- 格式:ppt
- 大小:408.00 KB
- 文档页数:66
AutoCADLISP基本知识及函数1.lisp数据类型INT 整型REAL 实数型(最多有6位小数)STR 字符串型2.预定义符号nil 尚无定义或者falseT 常量PAUSE 暂停PI 常量π3.赋值函数(setq x 1.5 y 20 p "center");给x、y、p赋值,返回值center。
4.查询变量的值和数据类型command:!a或者直接输入a;返回a的值command:(type a)或者直接输入(type a);返回a的数据类型5.quote函数(quote(10 20 ...))(quote(10 20))或者'(10 20);表示禁止对表求值,返回(10 20) 定义二维点(setq p '(10 20))6.定义函数(defun 函数名(变元.../局部变量...) 表达式... )7.调用函数(函数名变量)8.调用CAD命令(command "autocad命令" "所需数据" ...)如绘制圆心(2,4),半径为5的圆(command "circle" "2,4" 5)或者(command "circle" '(2 4) 5)9.画矩形(defun c:rect1(/ p1 p2 p3 p4)(setq p1 (getpoint "\n输入矩形的一个角点"))(setq p3 (getcorner p1 "\n输入矩形的另一个角点:"))(setq p2 (list(car p3) (cadr p1)))(setq p4 (list(car p1) (cadr p3)))(command "pline" p1 p2 p3 p4 "c"))10.cond函数多条件判断(cond(测试表达式1 结果表达式1)(测试表达式2 结果表达式2) ...);从第一个子表起,测试每个子表的测试表达式直至有一个子表测试表达式成立,计算该子表的结果表达式并返回这个结果表达式的值。
第5章 AutoLISP基本函数函数是AutoLISP语言处理数据的基本工具,学习AutoLISP编程最主要的是要掌握AutoLISP语言系统内部函数和符号的基本用法。
如:函数的调用格式,即函数名、参数的个数及类型;函数的功能、求值情况及返回值类型等。
AutoLISP基本函数主要包括:数值函数、赋值与求值函数、表处理函数、字符串处理函数、逻辑运算函数和控制结构函数等。
5.1 数值函数数值函数用于处理整型数和实型数,数值函数包括:基本算术函数、三角函数、数据类型转换函数。
数值函数的返回值类型取决于参数表中参数的数据类型。
AutoLISP中数值计算要遵循整实原则,具体运算规则为:A.整整得整;B.实实得实;C.整实得实。
例:command: (/ 18 4 2) 返回: 2command: (* 4.5 2.0) 返回:9.0command: (+ 6 4.2) 返回:10.25.1.1 基本算数函数这类函数包括:+、-、*、/、1-、1+、abs、sqrt、min、max、expt、exp、log、gcd、rem 1) (+ 〈数〉〈数〉… )功能: 求表中所有整数或实数的和。
例如:Command:(+ 1.2 3.1 3.8)返回:8.12) (- 〈数〉〈数〉… )功能: 求表中第 1 个数减去后面所有数的差, 当表中只有一个数时, 返回这个数的相反数。
例如:Command:(- 8. 1 5)返回:3.1Command:(- 0.25)返回:-0.253) ( *〈数〉〈数〉… )功能: 求表中所有数的积, 例如:Command:( * 0.0174533 30)返回:0.5235994) (/ 〈数〉〈数〉… )功能: 求表中第1 个数除以后面所有数的商。
例如:cmnmand:(/ 10 5 2.0)返回:1.05) (1+ 〈数〉)功能: 求一个整数或实数加 1 的和。
例如:Command:(1+ 2.7)返回:3.76) (1- 〈数〉)功能: 求一个整数或实数减 1 的差。
第八讲:AutoLISP的基本函数AutoLISP程序可看作是一个一个函数的调用。
函数的调用格式:(函数名[<参数1>] [<参数2>] ⋯[<参数n>])2.1 赋值函数与求值函数1 赋值函数格式:(setq <sym1> <expr1> [<sym2> <expr2>] ⋯)依次将每个表达式<expr>的值赋给符号<sym>,要求参数必须成对出现,返回最后一个表达式的值。
例如:command: (setq a 5.0)5.0000command: !a5.0000command : (setq x12 2.5 y12 (+ x12 2.0))4.5000相当于(setq x12 2.5)(setq y12 (+ x12 2.0))2 禁止求值函数格式:(quote <expr>)阻止求值器对其参数<expr>求值,返回没被求值的表达式。
’(+ 6 5) 简写形式,等效的表达形式是( quote (+ 6 5))作用:可以“保护”一些表达式作为数据使用,而不是作为AutoLISP函数调用被求值。
例如:command : (car ‘(1 2 3)) 等效于(car (list 1 2 3))取表中第一个元素1返回结果2.2 数值函数数的运算遵循以下规则:(1)若参数表中的所有参数都为整型数,则AutoLISP求值器对参数表做整型运算,返回整型数值。
(2)若参数表中有一个实型数,则对表中的参数进行浮点数学运算,返回实型数。
2.2.1 算术运算函数1(+ <number> <number> ⋯)返回所有<number>的和(+ 20 5 13) 返回38(+ -20 5.5)返回-14.5000(+ (setq x 2) (+ x 3.0) 6.5) 返回13.5000注意:多个整数相加时,要防止总和超出范围而出错。
CADLISP语言数据类型1.表2.文件描述符3.实体名4.选择集5.内部函数(Auto LISP子程序)赋值与数值计算函数1.(1+ 数) 加1函数2.(1- 数) 减1函数3.(abs 数)求绝对值4.(max数数……)求最大数5.(min数数……)求最小数6.(sqrt数)求平方根7.(expt数幂)乘方8.(exp 幂)e的任意次方9.(log数)对数10.(sin 角)正弦函数11.(cos角)余弦12.(atan数1[数2])反正切函数13.(rem数1 数2)求余数14.(gcd数数……)最大公约数15.(~ 整数)求补注:用pi表示圆周率π16.(logand数数……)按位逻辑”与”函数17.(logior数数……)按位逻辑”或”函数18.(~ 数)按位逻辑”非”函数19.(and 表达式……)逻辑”与”函数20.(or 表达式……)逻辑”或”函数21.(not 表达式)逻辑”非”函数22.(lsh 数位数)位移函数23.(boole 方式数1 数2……)布尔运算。
方式有16种,如1为and,6为xor(异或),7为or,8为not等。
24.(= 原子原子……)等于函数25.(/= 原子原子)不等于函数26.(< 原子原子)小于函数27.(<= 原子原子)小于等于函数28.(> 原子原子)大于函数29.(>= 原子原子)大于等于函数30.(atom 项)原子测试31.(listp 项)表测试32.(boundp 原子)原子值测试33.(null 项)空测试34.(numberp 项)数值测试35.(minusp 项)负值测试36.(zerop 项)零测试37.(eq 式1 式2)相同表达式测试38.(equal式1 式2)相等测试39.(wcmatch 字符串模式)字符匹配测试分支与循环1.(if 条件式1[式2])若条件为真,则执行式1;否则执行式2。
2.(cond(条件1 式1……)(条件2 式2……)……)分支函数。