- 10
- 0
- 约5.9千字
- 约 20页
- 2017-07-27 发布于河南
- 举报
第三章AutoLISP基本函数
第三章AutoLISP的基本函数;Setq函数从左到右给变量赋值
例如:_$ (setq x 2.0 y 4.0 pt (list x y))
_$ (2.0000 4.0000)
_$
3.1.2赋值函数set
将符号名的值设置成一个表达式的值
(set sym expr)
set 函数与 setq 类似,但 set 计算两个参数的值,而 setq 只计算第二个参数的值。
_$ (setq d c)
C
_$ (set d 2)
2
_$ c
2
_$
注意:使用set函数时,符号的值不为符号出错。;_$ (setq d nil)
nil
_$ (set d 2)
; 错误: 参数类型错误: symbolp nil
_$
3.1.3禁止求值函数quote
等同于单引号(‘),调用格式为(quote expr),例如
(quote (+ 6 5))等同 ‘(+ 6 5)
注意求值与不求值的区别 例如
$ (setq a (+ 6 5))
(+ 6 5)
_$ (setq a (+ 6 5))
11
_$
该函数在引用表中经常用到,例如
(setq pt (1.0 1.0 1.0)) ;正确
(setq pt (1.0,1.0,1.0)) ;错误;3.1.4再求值函数eval
求表达式值的值,也就是说求两次值。
(eval epxr)
例如
_$ (setq a (* 5 6))
(* 5 6)
_$ (eval a)
30
_$ (setq a b)
B
_$ (setq b c)
C
_$ (eval a)
C
_$ (eval ‘a) ;quote只能阻止一次求值
B
_$ (eval 5) ;对数求值结果为其自身
5
_$ (eval “(+ 3 4)”) ;对字符串求值结果为其自身
(+ 3 4)
_$ ;例:看两个例子的区别;数学函数
函数 说明
(+ [number number] ...) 返回所有数值的总和
(- [number number] ...) 从第一个数值中减去第二个和后面的数值,返回差值
(* [number number] ...) 返回所有数值的乘积
(/ [number number] ...) 用第一个数值除以后面其他数值的乘积,返回商值
(~ int) 返回参数的按位非(即 1 的补码为0)
(1+ number) 返回参数加 1 后的结果
(1- number) 返回参数减 1 后的结果
(abs number) 返回参数的绝对值
(atan num1 [num2]) 返回一个数的反正切值(以弧度为单位)
(cos ang) 返回一个以弧度表示角度的余弦值
(exp number) 返回常数 e(实数 2.718282...)的指定次幂的值
(expt base power) 返回一个数的指定次幂的值
(fix number) 截去实数的小数部分,将它转换成整数后返回该整数
(float number) 将一个数转换成实数后返回该实数
(gcd int1 int2) 返回两个整数的最大公约数
(log number) 以实数形式返回一个数的自然对数
(logand [int int ...]) 返回一组整数逻辑按位与 (AND) 的结果
(logior [int int ...]) 返回一组整数逻辑按位或 (OR) 的结果;(lsh [int numbits]) 返回一个整数进行指定位逻辑移位后的结果
(max [number number ...]) 返回给定的数中的最大值
(min [number number ...]) 返回给定的数中的最小值
(minusp number) 检查一个数是否是负数
(rem [num1 num2 ...]) 用第一个数除以第二个数,返回余数
(sin ang) 以实数形式返回一个以弧度表示的角度的正弦值
(sqrt number) 以实数形式返回一个数的平方根
(zerop number) 检查一个数的值是否为 0
;3.2.1算术运算函数
函数 + — * /
_$ (+ 1 2 3) ;含义 1+2+3
6
_$ (- 5 1 2) ;含义 5-1-2
2
_$ (- 5) ;注意:当减法函数只有一个参数时,给数取相反数
-5
_$ (* 2 3 4.0) ;含义 2*3*4.0
24.0
_$ (/ 2 3 2.0) ;含义 2/3/2.0
0.333333 ;注意其它高级
原创力文档

文档评论(0)