AutoLisp的 car、cadr、caddr、cdr用法

特别注意的是点表的表现形式有所不同。这点困惑了我一段时间,我最开始以为点表的点也是一个数据,后来发现不是。

cdr
 

返回去掉了第一个元素的表

(cdr list)

参数

list

表。

返回值

list 去掉第一个元素后所得的表(例外情况请见下面的“注意”栏)。如果表为空,函数返回 nil。

注意 当 list 参数是点对表时,cdr 返回点对表的第二个元素,而不是以表的形式返回它。

示例

命令: (cdr '(a b c))

(B C)

命令: (cdr '((a b) c))

(C)

命令: (cdr '())

nil

命令: (cdr '(a . b))

B

命令: (cdr '(1 . "Text"))

"Text"

car
 

返回表的第一个元素

(car list)

参数

list

表。

返回值

list 中的第一个元素。如果表为空则返回 nil。

示例

命令: (car '(a b c))

A

命令: (car '((a b) c))

(A B)

命令: (car '())

nil

cadr
 

返回表的第二个元素

(cadr list)

在 AutoLISP 中,cadr 函数经常被用来获取二维或三维点的 Y 坐标(由两个或三个实数组成的表的第二个元素)。

参数

list

表。

返回值

list 中的第二个元素。如果表为空或表中仅有一个元素则返回 nil。

示例

命令: (setq pt2 '(5.25 1.0))

(5.25 1.0)

命令: (cadr pt2)

1.0

命令: (cadr '(4.0))

nil

命令: (cadr '(5.25 1.0 3.0))

1.0

caddr
 

返回表的第三个元素

(caddr list)

在 AutoLISP 中,caddr 函数经常被用来获取三维点的 Z 坐标(由三个实数组成的表的第三个元素)。

参数

list

表。

返回值

list 中的第三个元素。如果表为空或元素个数少于三个则返回 nil。

示例

命令: (setq pt3 '(5.25 1.0 3.0))

(5.25 1.0 3.0)

命令: (caddr pt3)

3.0

命令: (caddr '(5.25 1.0))

nil

posted @ 2022-11-26 10:03  仇朝权  阅读(1489)  评论(0编辑  收藏  举报