AutoLISP开发方法.docVIP

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

精华文档888 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档