网站大量收购闲置独家精品文档,联系QQ:2885784924
  1. 1、本文档共21页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AUTOLsp教程

AUTOLisp教程 AutoLISP教程(一) AutoLISP 是 LISP 编程语言的一种特定实现方式,是 AutoCAD 的组成部分。借助 AutoLISP,可以用适合编写图形应用程序的强大的高级语言来编写宏程序和函数。AutoLISP 易于使用,并且非常灵活。 AutoLISP 参考是关于 AutoLISP 编程语言的权威指南。作为通用 LISP 语言的一个小子集,AutoLISP 严格遵循其语法和惯例,但又添加了许多针对 AutoCAD 的功能。有关 LISP 的书籍很多,有兴趣进一步学习 LISP 的用户不难找到合适的参考书。 向您推荐 Addison-Wesley 出版的两本书:Winston 和 Horn 撰写的《LISP》(第二版),Tony Hasemer 撰写的《Looking at LISP》。 基础 在 AutoCAD 的 sample 目录中提供了大量 AutoLISP 程序,包括本手册中的许多样例。许多 AutoLISP 程序也可以作为共享软件或从第三方开发商获取。AutoLISP 代码可以在命令行中输入,因此易于学习。一旦用户学会 AutoLISP,即可将其用于扩展 AutoCAD 命令。 在命令行中输入文本时,AutoCAD 将该文本与内部的可用命令名列表作比较,以解释该文本。如果输入的文本与列表中的某项相匹配,AutoCAD 执行该命令。当 AutoCAD 接收到 AutoLISP 代码时,它将该代码传递给 AutoLISP 解释器。AutoLISP 解释器的核心是计算器。该计算器读取一行代码,对它求值,然后返回一个结果。代码必须符合 AutoLISP 表达式的格式要求,它可以从文件中读取,也可以由用户从 AutoCAD 命令行中输入。 所有 AutoLISP 表达式的格式都如下所示: (function arguments) 每个表达式都以一个左括号开始,由一个函数名和一个该函数的参数组成,并且每个参数都可以是一个表达式。表达式以右括号结束。每个表达式都返回一个可由外层表达式使用的值。如果没有外层表达式,则 AutoLISP 将该值返回给 AutoCAD 命令行。例如,如下代码调用了三个函数。 (fun1 (fun2 arguments)(fun3 arguments)) 第一个函数 fun1 有两个参数,另两个函数 fun2 和 fun3 各有一个参数。函数 fun2 和 fun3 被函数 fun1 所包含,因此它们的返回值作为参数传递给 fun1。函数 fun1 由这两个参数计算函数值,并将该值返回给命令行。 如果在 AutoCAD 命令提示中输入 AutoLISP 表达式,AutoLISP 将计算该表达式并显示结果,然后重新显示命令提示。下例展示了 *(乘)函数的用法,该函数接受一个或多个实数作参数。 命令: (* 2 27) 54 因为此函数没有外层表达式,所以它将结果返回给命令行。 嵌套在其他表达式中的表达式将它们的结果返回给外层表达式。下例用 +(加)函数的结果作 *(乘)函数的一个参数。 命令: (* 2 (+ 5 10)) 30 如果输入的闭(右)括号数量不对,AutoLISP 将显示如下提示: n 其中,n 是一个整数,表明还有几层左括号尚未匹配。如果出现此提示,用户必须输入 n 个右括号后才能对表达式求值。 命令: (* 2 (+ 5 10 2 ) ) 30 常见错误是忽略了文本字符串中的双引号 ()。在这种情况下,右括号被解释为字符串的一部分,而不会对 n 产生影响。要改正此错误,可按 ESC 键取消该函数,然后重新输入正确的表达式。 虽然可以在命令行中输入 AutoLISP 代码,但在测试和调试 AutoLISP 代码时,从文件中加载 AutoLISP 代码要比每次修改后都重新输入要简单得多。AutoLISP 代码通常保存在扩展名为 .lsp 或 .mnl 的 ASCII 文本文件中。但只要在调用 load 函数时提供完整的文件名,就可以从任何 ASCII 文本文件中加载 AutoLISP 代码。从文件或在命令行中输入的 AutoLISP 表达式的语法相同。 AutoLISP 变量的数据类型取决于分配给它的值的数据类型。除非给变量分配新值,否则该变量将一直保留原来的值。可以用 AutoLISP setq 函数为变量分配新值。 (setq variable_name1 value1 [variable_name2 value2 ...]) setq 函数将指定的值分配给指定的变量,并将该值作为函数结果返回。如果在命令提示中使用 setq,则 AutoCAD 将设置变量并显示该值。 命令: (setq val 3 abc 3.875) 3.875 命令

文档评论(0)

pep2233 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档