AutoLISP程序入门教学资料.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AutoLISP程序入门教学资料

AutoLISP程序入门教学资料 AutoLISP程序入门- 教学资料 一. AutoLISP简介(优越性及缺点) AutoLISP语言是开发Autocad的主要工具,是LISP语言和Autocad有机结合的产物,在Autocad的发展及壮大过程中起到了重要的作用。正是以AutoLISP为代表的开放式结构,才使Autocad在众多的CAD软件竞争中长期处于不败之地。 AutoLISP是一种解释型语言,可直接在Autocad中运行,而不象编译型语言必须借助于编译器对原程序进行编译和连接,才能生成可执行的代码模块,用户只需借助于文本编辑器(例如DOS的EDIT程序)即可进行编程。 AutoLISP(List Processing Language)是一种表处理语言?quot;表是AutoLISP语言独有的数据结构,在AutoLISP中广泛使用,表是在一个变量中储存大量相关数据的有效方法。例如AutoCAD中以三个实数(X Y Z)这种表的形式来表示三维点。 二. 在AutoLISP的赋值方法 不象大多数计算机语言采用中缀法来表示程序语句(表达式),而采用前缀法。 例如:C语言中为实型数X赋值125.0,写成: X = 125.0; 运算符=放在操作数X和125.0之间。 而AutoLISP中则写成: (setq X 125.0) 运算符setq放在操作数X和125.0之前。 setq是AutoLISP最主要的赋值函数,几乎所有的变量赋值都要依?quot;setq来实现。 三. 如何向AutoCAD增加一个新命令(或如何定义一个函数) 一般程序的结构组成及加载 在下面的例子中,我们将了解AutoLISP语言一般程序的结构组成、如何定义一个在AutoCAD中可执行的函数、setq的用法以及如何在AutoCAD中加载程序。 例1:画一个矩形框(文件名为lesson.lsp) (defun c:draw_sque(/ p1 p2 p3 p4) ;;;用defun定义函数draw_sque (setvar cmdecho 0) ;;;;;;设系统变量cmdecho为0,禁止当程序使用command命令时的 ;;;反馈提示 (setq p1 (getpoint First point:)) ;;;取矩形框的第一点 (setq p3 (getpoint p1 other point:)) ;;;取矩形框的对角点 (setq p2 (list (nth 0 p3) (nth 1 p1) 0)) (setq p4 (list (nth 0 p1) (nth 1 p2) 0)) ;;;计算矩形框的另外两点,以表的形式表示的三维点 (command pline p1 p2 p3 p4 c) ;;;用AutoCAD命令Pline自动执行画矩形 ) ;;;END OF PROGRAM 注意: (1) 程序中应注意括号(配对。 (2) 程序中;后面的部分为程序注释语句,注释是设计程序的良好习惯。 定义完成存盘后,在AutoCAD中Command状态下键入(load lesson),然后在Command状态下键入draw_sque,即可执行画矩形框的操作。 四. AutoLISP的数据类型 AutoLISP主要有以下几种数据类型: 整型数(INT),实型数(REAL),字符串(STR),表(LIST),实体名(ENAME), 选择集(PICKSET),文件描述符(FILE)等。 在BASIC、C语言中变量是用来保存某一特定类型的数据,而在 AutoLISP中则一般称为符号,相对来讲符号比较灵活,通过赋值函数SETQ可以代表任何类型的数据,例如,在AutoLISP的同一段程序中我们可以写出下面的表达式: (setq p1 1.25) p1为实型数1.25 (setq p1 ABD) p1为字符串ABD (setq p1 (list 12.5 6.0 0)) p1为三维点(12.5 6.0 0) 由于AutoLISP的这一特点,就使得其编程十分灵活和方便,但也使程序变得不够严谨,用户在使用时应特别注意,最好使用能够代表一定含义的符号,以便容易辩别其代表的类型。例如,上述例子可以写成: (setq x1 1.25) (setq char1 ABD) (setq pt1 (list 12.5 6.0 0)) 五. AutoLISP表达式 一个AutoLISP程序是由一系列的表达式组成,相当于其它语言中的语句。 每个表达式都以(开始,以)结束。一个表达式可以分在多行写,一行也可以写多个表达式。为了使程序便于阅读、检查左右括号是否配对、修改程序,用户最好能按我们示例的格式编写程序。 六. 流程控制 1. 条件函齣f 及构成复合表达式的progn函数 (if tes

文档评论(0)

me54545 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档