在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中任意添加多个点,也可以通过程序让用户输入若干个点,然后绘制轻便多义线。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。