- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AutoLISP开发方法
第一节AutoLISP基本知识
一、AutoLISP概论
AutoLISP属LISP程序设计语言的扩充。
二、AutoL LISP数据类型
1.表
表是AutoLISP的基本语法单元,也是最有特色、最灵活的数据类型。AutoLISP中表的
作用同C语言中的数组一样重要。
表是用圆括号“()”括起来的一组数据,可表示为: (元素1 元素2 …)
例:三维点(100.O 23.5 11.3)
2.符号 与其它程序语言一样,AutoLISP也是用符号来代表函数名、常量或变量。
3.字符串 字符串可以是任意长的。
4.整数 整数即不带小数点的数。
5.实数 实数是带有小数点的数,在?到十1之间的小数必须用零作为开始。
6.文件描述等
文件描述等用来指定AutoLISP要打开的文件,当AutoLISP函数需要读或写一个文件
时,可引用该文件描述符。
7.实体名 实体名是分配给一个图中实体的数字标号。
8.选择集 选择集是包含一个或多个实体的组。
9.程序和外部子程序
在本章中叙述的AutoLISP函数都是子程序,且都是内部子程序。子程序可以由defun
函数重新定义。
10.标点符号
(1)单引号 单引号(’)表示AutoLIsP的Quote函数,例’ABC苟(Quote ABC)相同。
(2)括号 数据表及函数通过括号而被定义并使彼此相隔开。例如:(十 1 2) (一 12 4)
(3)句号 句号被AutoLISP解释器使用的方式有两种。椫直硎臼凳惺菩∈悖?/P
另一种被用来将所谓点对这种特殊类型的数据表中的数据项分隔开。
(4)双引号 AutoLISP将双引号括起的部分理解成字符串。
(5)分号 用以说明AutoLISP程序中的注释行。
(6)空格及换行 空格使表中各数据项彼此分开。换行符也视为空格。
(7)大写和小写在AutoLISP程序中,大写字符和小写字符可被互换使用。
11.弧度
AutoLISP使用弧度来度量角度。许多AutoCAD开发者都用度数来度量角度,所以必要转换。
12.AutoLISP表达式 所有的AutoLISP表达式都具有下列形式:
(函数〔变元〕…)
每一个表达式都返回一个值,该值可以为引用该表达式的其它外层表达式使用。如果表
达式没有嵌套在外层表达式中,则该值将返回AutoCAD。AutoLISP加载时,AutoCAD会检
测括号的匹配,若不匹配会产生错误信息。
与其它高级语言一样,AutoLISP程序也是由函数调用和数据构成的。多数情况下,数据
通过对变量的赋值而给出,以提高程序的通用性。直接给出的数据称为常数。
AutoLISP变量有4种类型:整型、实型、点型和字符串型。变量类型按照所赋值的类型
自动定义。变量一直保存其值,直到被重新赋值或当前绘图作业结束。程序开发人员可以给
自己的变量起各种名字,但变量的第一个字符必须是字母。名Pi的变量己预先被置为3.1415。
AutoLISP的Setq函数用来给变量赋值,其格式为: (Setq 变量名值)
例如:
(Setq k 3) 给整数变量k赋值3 (Setq x 5.4) 给实数变量x赋值5.4
(Setq draw梟ame ”DQ.DWG”) 给字符串变量draw梟ame赋DQ.DWG
点的坐标由一个圆括号括起来,其中包含两个或三个数来表示,如下所示:
(3.87 1.25) 一个二维点 (5.7 6.25 3.20) 一个三维点
表中的第一项为点的X坐标,第二项为Y坐标,第三项是Z坐标。可用函数List来生
成该表:
(Setq Pt (List 3.87 1.25)) (Setq Pt (List 5.7 6.25 3.20))
(Setq Pt (List abc l.25))
其中Pt表示一个点变量,最后一个变量表示用abc的值作为该点的X坐标,变量abc
已被赋值为整数式或浮点数。
我们可以通过函数Car、Cadr、Caddr分别引用点的X坐标、Y坐标和Z坐标。即:
(Car Pt) 返回点变量的x坐标 (Cadr Pt) 返回点变量的Y坐标
(Caddr Pt) 返回点变量的z坐标
如果在AutoCAD中要用变量值来响应有关提示,只要输入一个前置惊叹号“!”的变
量名即可。例如把变量ab赋值为6.9,当需要用值6.9来响应某个提示时,就可在Command:
提示行中输入“!ab”即可。同理如果要从点(1.2,5.O)画一条直线,而且已把变量Pt设置
为该点值,就可以这样输入:
Command:LINE<CR>
FromPoint:!Pt<CR>
三、AutoL]SP文件结构
一般的AutoLlSP程序文件结构如下,类型为*.LSP:
<注释部分>
<全局变量初始值>
<子函
文档评论(0)