- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
养成良好的 AutoLISP 书写习惯
众所周知,Lisp 是一种表结构语言,括号必须成对出现,在调试时往往为遗漏了一个括号大
费周折,所以,养成一个好的编程习惯是学好 Lisp 所必须的。
⑴选择一个较好的编辑器,这是一个基本条件,建议使用 Visual Lisp 编辑器或 Lisplink
等专用编辑器,此类编辑器可以对函数突出显示。
⑵按 Lisp (DCL)专有格式书写,并经常对程序进行“格式化”,及时发现语法错误,并有
利于调试是查找错误。
⑶使用自定义函数,并辅助以适当得注释,在较大程序中按功能使用自定义函数可以使
得程序条理化。
autolisp 的入门教程+autolisp 函数!
Lisp 是一门历史悠久的语言,全名叫 LISt Processor,也就是“表处理语言”,它是由 John
McCarthy 于 1958 年就开始设计的一门语言。和 Lisp 同时期甚至更晚出现的许多语言如Algo
等如今大多已经消亡,又或者仅仅在一些特定的场合有一些微不足道的用途,到现在还广为
人知的恐怕只剩下了 Fortran 和 COBOL 。但唯独 Lisp,不但没有随着时间而衰退,反倒是一
次又一次的焕发出了青春,从 Lisp 分支出来的 Scheme、ML 等语言在很多场合的火爆程度
甚至超过了许多老牌明星。那么这颗常青树永葆青春的奥秘究竟在哪里呢?
如果你只接触过 C/C++、Pascal 这些“过程式语言”的话,Lisp 可能会让你觉得十分不同寻
常,首先吸引你眼球(或者说让你觉得混乱的)一定是 Lisp 程序中异常多的括号,当然从
现在的角度来讲,这种设计的确对程序员不大友好,不过考虑到五六十年代的计算机处理能
力,简化语言本身的设计在那时算得上是当务之急了。
Lisp 的基本语法很简单,它甚至没有保留字 (有些语言学家可能对这一点有异议,别怕,我
听你们的),它只有两种基本的数据,仅有一种基本的语法结构就是表达式,而这些表达式
同时也就是程序结构,但是正如规则最简单的围棋却有着最为复杂的变化一样,Lisp 使用最
基本的语言结构定义却可以完成其它语言难于实现的、最复杂的功能。
废话少说,现在我们就来看看 Lisp 语言中的基本元素。
Lisp 的表达式是一个原子(atom)或表(list),原子(atom)是一个字母序列,如 abc;表是由零
个或多个表达式组成的序列,表达式之间用空格分隔开,放入一对括号中,如:
abc
()
(abc xyz)
(a b (c) d)
最后一个表是由四个元素构成的,其中第三个元素本身也是一个表。
正如算数表达式 1+1 有值 2 一样,Lisp 中的表达式也有值,如果表达式 e 得出值 v ,我们
说 e 返回 v 。如果一个表达式是一个表,那么我们把表中的第一个元素叫做操作符,其余的
元素叫做自变量。
正如欧几里德的几何世界中有五个公理一样,我们在这里给出 Lisp 世界中的 7 个公理(基
本操作符):
(quote x)返回 x ,我们简记为x
(atom x)当x 是一个原子或者空表时返回原子 t ,否则返回空表()。 Lisp 中我们习惯用原
子 t 表示真,而用空表()表示假。
(atom a)
t
(atom (a b c))
()
(atom ())
t
现在我们有了第一个需要求出自变量值的操作符,让我们来看看 quote 操作符的作用——
通过引用(quote)一个表,我们避免它被求值。一个未被引用的表达式作为自变量,atom 将
其视为代码,例如:
(atom (atom a))
t
反之一个被引用的表仅仅被视为表
(atom (atom a))
()
引用看上去有些奇怪,因为你很难在其它语言中找到类似的概念,但正是这一特征构成了
Lisp 最为与众不同的特点——代码和数据使用相同的结构来表示,而我们用 quote 来区分它
们。
(eq x y)当x 和 y 的值相同或者同为空表时返回t ,否则返回空表()
(eq a a)
t
(eq a b)
()
(eq () ())
t
例如:我们有时想捕捉任意两点的中点,而不只是一条线上的中点,用系统自己的捕捉中点
(它要有辅助线)就不行了,
我们可以参考“捕捉虚中点.lsp”程序来实现。除程序中的语句要学外,动画中的自动找到所
有的全局变量并把它们
改为局部变量的方法很有用!动画中先画了一个六边形,再画一个圆与它内接,圆心就是捕
捉虚中点!
AutoLisp 概述
AutoLisp
原创力文档


文档评论(0)