- 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程序入门教学资料
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
您可能关注的文档
最近下载
- 换热站建设标准.doc VIP
- 研究生2024版新中特课件第二章新时代新征程中国共产党的使命任务.pptx VIP
- 推进供热企业标准化体系建设思考(工商管理毕业论文).doc VIP
- 2025入党积极分子发展对象培训考试题库100题含答案(完整版).docx VIP
- 调味品生产自动化一体化项目环境影响报告表.pdf VIP
- 2024年安徽省高考生物试卷(含答案详解).pdf
- 一年级语文上册新教材第八单元解读.docx
- 2025年国企竞聘笔考试试题库目简答题及答案指导.docx VIP
- DB11∕T 808-2020 市政基础设施工程资料管理规程.docx
- 《小学数学作业分层设计——五年级上册第三单元”小数除法“》.pdf VIP
原创力文档


文档评论(0)