首页 理论教育 AutoLisp中表的认识与应用

AutoLisp中表的认识与应用

时间:2023-11-16 理论教育 版权反馈
【摘要】:通过Auto Lisp函数可以交互的项选择集中添加实体或从选择几种删除实体,再通过AutoCAD的命令对选择集中的实体进行操作。以上数据类型比较易于理解和应用,刚刚接触Auto Lisp语言的人,已开始感到比较困惑的是Auto Lisp表的概念,其定义应该是:一个Auto Lisp表就是一组包含在一对括号中的、用空格分开的相关数据的集合,而且表中还可以套表,通过一级一级的套表组成复杂的表。AutoCAD就是用一个包含了三个实型数的表来表达一个三维点的。

AutoLisp中表的认识与应用

在Lisp语言中,数据类型主要包括整型数、实行数、字符串、表和选择集,其中整型数、实行数、字符串三种数据类型和其他高级语言的定义相同,用法也相似。所不同的是两种数据类型时标和选择集,选择集是一个和多个对象(实体)的集合。通过Auto Lisp函数可以交互的项选择集中添加实体或从选择几种删除实体,再通过AutoCAD的命令对选择集中的实体进行操作。

以上数据类型比较易于理解和应用,刚刚接触Auto Lisp语言的人,已开始感到比较困惑的是Auto Lisp表的概念,其定义应该是:一个Auto Lisp表就是一组包含在一对括号中的、用空格分开的相关数据的集合,而且表中还可以套表,通过一级一级的套表组成复杂的表。表提供了一个保存各种各样数据的方法,实现了高级语言中的数组的功能。AutoCAD就是用一个包含了三个实型数的表来表达一个三维点的。例如,下面列出的表都为有效的表:

(1.11 2.22 3.33)

("This" "is" "list")

(20 “twenty”)

Auto Lisp语言提供了一些表操作的语言,例如:

Append Foreach Lisp reverse

Assoc Last Mapcar subst

Car Cdr Member

Cons List nth

作为一个使用Auto Lisp进行二次开发程序员来说,在编程过程中熟练使用这些函数,将这种数据类型应用娴熟,掌握其使用规律,就会很轻松地完成许多编程任务。举一个最简单的例子,假设一个表dl是由若干的点组成的,将这些点绘制成轻便多义线的程序如下:(www.xing528.com)

(setq dl (list (list 0 0) (list 1 2.0) (list 3.4 5.8)))

(command "pline" (nth 0 dl) "w" 0 0)

(setq dli 0)

(while (< dli (length dl))

(command (nth dli dl))

(setq dli (+ dli 1))

);while

(command)

以上程序是假设表dl只有三个点,可以在表dl中任意添加多个点,也可以通过程序让用户输入若干个点,然后绘制轻便多义线。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈