AutoLISP详细讲解

合集下载

AutoLisp入门篇

AutoLisp入门篇

AutoLISP入门单元一:AutoLISP主角登场 (2)单元二:AutoLISP的关键、基本结构及语法 (4)单元三:快速分类浏览AutoLISP功能函数(一) (10)单元四:快速分类浏览AutoLISP功能函数(二) (13)单元五:轻松快速的掌握AutoLISP设计技巧 (16)单元六:像素数据的取得与活用技巧(一) (21)单元七:像素数据的取得与活用技巧(二) (25)单元八:新手上路-参数设计的关键技巧 (32)单元一:AutoLISP主角登场一. AutoLISP 是何方神圣?1、AutoLISP是AutoCAD的最佳拍檔!2、AutoLISP内含于AutoCAD软件内,不用另外花钱买!3、AutoLISP是强化AutoCAD最好、最直接的『程序语言』!4、AutoLISP易学、易用,即使不会程序设计的AutoCAD使用者,都能在最短的时间内,写出令人惊讶、赞叹的功能!若说AutoLISP的出现,是替AutoCAD 创造一片天的『最大功臣』,实不为过一点也不夸张!5、AutoLISP希望您去学习它、改善它、发挥它、享受它.真的!它的威力、魅力无穷!二. AutoLISP 程序语言的特质分析:学习AutoLISP是非常容易的,对初学者而言,即使没有学习过任何的程序语言,都能很快的上手,写出精彩漂亮的AutoLISP程序!语法简单:不用特殊的变量宣告,非常富有弹性,比起其它的程序语言,它的语法可说是非常简单而有其独特的风格!功能函数强大:除一般性的功能函数外,又拥有为数不少控制配合AutoCAD的特殊函数,再加上AutoLISP可直接呼叫执行所有AutoCAD的指令,以及掌握运用所有的AutoCAD系统变量,功能之强大令人欣喜不已!撰写的环境不挑剔:只要是一般的文书编辑软件都适用! 如:Windows的记事本、PE2、PE3、DW3、书中仙、汉书、EDIT....等直译式程序:不用再作编译,『即写即测、即测即用』,马上可以在AutoCAD中响应效果,马上就有成就感!横跨各作业平台:悠然自得,虽然AutoCAD有DOS、Windows版本之分但是AutoLISP却可在不改写的原貌下,加载与执行!三.撰写AutoLISP 的动机?1、欲强化AutoCAD 原有指令时.2、欲创造更有用的AutoCAD 新指令.3、欲简化繁琐的环境设定或绘图步骤时.4、欲处理参数式绘图时.5、欲做图面资料读文件、写文件.6、欲做AutoCAD 简报展示时.7、欲达到真正灵活掌控AutoCAD 时.8、欲提升自己跨上AutoCAD 高手列车时.四.AutoLISP 的效益评估?1. 对公司负责人或设计主管而言:A. 也许某员工或干部花了20个小时撰写一个AutoLISP程序,表面上,这将近三天的时间,他连一张图都没有画,甚至可能偶有发呆、沈思,若此程序一天可以替公司绘图部门节省1小时绘图时间,那算一算,只要20天就抵销开发成本,而20天以后都是赚的,『用的愈久,省的愈多』!B. 若员工皆有此动力,在不影响正常工作,『鼓励』都来不及,那有『压抑』的道理,甚至还要派遣优秀人员出去受训,学习更好的设计技巧与创意呢?!C. 千万不要因为您的不懂或压抑,SHOW您的权威与POWER,如此,不但对员工造成打击,甚至您可能成为阻碍了公司计算机化进步的罪魁祸首D. 当然,若要撰写的程序很多,内部设计人员的程序功力距离太远,达成需求的时间反而变得遥遥无期,那倒不如求助于市面上已有的相关AutoCAD 支持软件。

AutoLISP(1)概述、基本函数、表处理函数、绘图函数

AutoLISP(1)概述、基本函数、表处理函数、绘图函数

石家庄铁道学院工业设计系
计 算 机 绘 图
Auto LISP语言的特点 语言的特点
执行AutoLISP程序的过程就是对函数求值的过程。 AutoLISP 代码不需要编译,用户可以在命令行中 输入代码并立即看到结果,也可以用文本文件的 形式保存在磁盘中,通过装入AutoCAD内部后执 AutoCAD 行。 AutoLISP程序文件以后缀.LSP标识。
石家庄铁道学院工业设计系
计 算 机 绘 图
七、图元名
图元名也称实体名(Entity name),是 AutoCAD图形编辑程序所保持的一个文件的指针, 通过这个指针,AutoLISP能够找到该实体在当前图 形数据库中的记录和它在屏幕上的向量,实体名可 以由AutoLISP函数引用,通过它, AutoLISP函数 可以选择其相应 的数据信息。
5若求值器读入的既不是数字字符串文件指针系统内部函数以及符号原子也不是一个有效的函数调用表求值器给出相应的出错信息提石家庄铁道学院工业设计系autolisp程序的装入autolisp程序以磁盘文件的形式存放在磁盘中在执行之前先要将其先装入
计 算 机 绘 图
AutoLISP程序设计
石家庄铁道学院工业设计系
计 算 机 绘 图
四、符号和变量
符号是一些ASCII字符,可以用来表示函数操 作符、内存变量等。 字符串不是符号。 组成符号的字符可以是字母、数字等ASCII字 符,但以下一些字符不能在符号中使用: 圆括号()、句点 . 、单引号‘、双引号 ”、 分号 ;,这些字符在AutoLISP中另有特殊含义。
AutoLISP表达式 表达式
如: _$ (* 2 (+ 5 10 ((_> )) 30 常见错误是忽略了文本字符串中的双引号(")。 在这种情况下,右括号被解释为字符串的一部分, 而不会被用来和开括号配对。要改正此错误,可 按ESC键取消该函数,然后重新输入正确的表 达式。

AutoLISP详细讲解

AutoLISP详细讲解

AutoLISP详细讲解关于AutoLISPAutoLISP是由Autodesk公司开发的一种LISP程序语言(LISP是List Processor 的缩写)。

第一篇关于LISP的参考文献是由John McCarthy 在1960年4月的《ACM 通讯》中发表的。

除了FORTRAN和COBOL,大多数在六十年代早期开发出来的语言都过时了,可是LISP却生下来,并且已经成为人工智能(AI)的首选程序序言。

AutoLISP解释程序位于AutoCAD软件包中,然而AutoCAD R2.17及更低版本中并不包含AutoLISP 解释程序,这样,只有通过AutoCAD R2.18及更高版本才可以使用AutoLISP语言。

AutoCAD软件包中包含大多数用于产生图形的命令,但仍有某些命令末被提供。

例如,AutoCAD中没有在图形文本对象内绘制矩形及作全局改变的命令。

通过AutoLISP,你可以使用AutoLISP程序语言编制能够在图形文本对象内绘制矩形或作全局选择性改变的程序。

事实上,可以用AutoLISP编制任何程序,或把它嵌入到菜单中,这样定制你的系统会取得更高的效率。

现在,已经有数以百计的第三方软件开发人员使用AutoLISP语言编制各种应用程序软件包,例如,本文作者开发了一个名为SMLayout的软件包,用它可以产生各种复杂几何图形的平面布局图,这些几何图形包括管道的交叉部、过渡都、圆柱、弯管接头、圆锥以及罐顶。

目前社会上非常需要AutoLISP程序员为应用软件及客户菜单的开发提供顾问。

在本章中,我们假定读者已经熟悉了AutoCAD命令及AutoCAD的系统变量。

但是,在开始学习AutoLISP时,却并不需要你是一位AutoCAD或编程专家。

同时,本章还假定读者并无编程方面的知识。

如果你熟悉任何一种编程语言,那么学习AutoLISP就会很容易。

对各种函数的评细探讨以及对例题的逐步讲解会使你学起来很有兴趣。

AutoLisp语言的学习和使用(1)

AutoLisp语言的学习和使用(1)

AutoLisp语⾔的学习和使⽤(1)第七节AutoLISP语⾔及其程序设计LISP(List Processing)是⼀种计算机的表处理语⾔。

LISP语⾔是⼈⼯智能领域中⼴泛应⽤的⼀种程序语⾔。

AutoLISP语⾔是⼀种运⾏在AutoCAD环境下的LISP编程语⾔,或称为AutoCAD的⼀种嵌⼊式语⾔。

它采⽤了与CommandLISP(⼀种通⽤的LISP语⾔版本)相近的语法及习惯约定,并吸收了LISP语⾔的主要函数,同时增加了针对AutoCAD特点的许多功能,如:可以把AutoLISP和AutoCAD的绘图命令透明地结合起来,使设计和绘图完全融为⼀体。

利⽤AutoLISP语⾔编程可以实现对AutoCAD当前图形数据库进⾏直接访问和修改。

在LISP语⾔中,最基本的数据类型是符号表达式。

LISP语⾔的特点是程序和数据都采⽤符号表达式的形式,即⼀个LISP程序可以把另⼀个LISP程序作为它的数据进⾏处理。

因此使⽤LISP语⾔编程⼗分灵活,看起来是⼀个⼀个的函数调⽤。

⽀持递归定义也是Auto LISP语⾔的重要特性。

AutoLISP语⾔是提供给⽤户的主要⼆次开发⼯具之⼀。

⽤AutoLISP语⾔编写应⽤程序,可以为AutoCAD增加新的命令或修改AutoCAD,以适应⽤户的特殊需要。

AutoCAD软件的开发者——AutoDesk公司许诺,将保证今后AutoCAD软件对AutoLISP 语⾔的⽀持。

掌握使⽤和编制AutoLISP应⽤程序的⽅法和技术将⼤⼤提⾼⽤户的⼯作效率和⼆次开发⽔平,增强AutoCAD的灵活性,并将得到长期、稳定的技术⽀持。

1.1 AutoLISP语⾔的基本知识1.1.1 AutoLISP语⾔的特性AutoLISP语⾔是⼀种解释型语⾔,它的特点如下:1.解释型语⾔编程语⾔有两种基本类型:解释型和编译型。

AutoLISP属于解释型语⾔。

在解释型语⾔中,⽤户编写的源程序直接由解释器解释并执⾏。

AutoLISP从入门到精通初级教程

AutoLISP从入门到精通初级教程

AutoLISP入门单元一:AutoLISP主角登场.................................. 错误!未定义书签。

单元二:AutoLISP的关键、基本结构及语法.................... 错误!未定义书签。

单元三:快速分类浏览AutoLISP功能函数(一) ................. 错误!未定义书签。

单元四:快速分类浏览AutoLISP功能函数(二) ................. 错误!未定义书签。

单元五:轻松快速的掌握AutoLISP设计技巧................... 错误!未定义书签。

单元六:图元数据的取得与活用技巧(一) ...................... 错误!未定义书签。

单元七:图元数据的取得与活用技巧(二) ...................... 错误!未定义书签。

单元八:新手上路-参数设计的关键技巧....................... 错误!未定义书签。

单元一:AutoLISP主角登场一. AutoLISP 是何方神圣1、AutoLISP是AutoCAD的最佳拍檔!2、AutoLISP内含于AutoCAD软件内,不用另外花钱买!3、AutoLISP是强化AutoCAD最好、最直接的『程序语言』!4、AutoLISP易学、易用,即使不会程序设计的AutoCAD使用者,都能在最短的时间内,写出令人惊讶、赞叹的功能!若说AutoLISP的出现,是替 AutoCAD 创造一片天的『最大功臣』,实不为过一点也不夸张!5、AutoLISP希望您去学习它、改善它、发挥它、享受它.真的!它的威力、魅力无穷!二. AutoLISP 程序语言的特质分析:学习AutoLISP是非常容易的,对初学者而言,即使没有学习过任何的程序语言,都能很快的上手,写出精彩漂亮的AutoLISP程序!语法简单:不用特殊的变量宣告,非常富有弹性,比起其它的程序语言,它的语法可说是非常简单而有其独特的风格!功能函数强大:除一般性的功能函数外,又拥有为数不少控制配合AutoCAD的特殊函数,再加上AutoLISP可直接呼叫执行所有AutoCAD的指令,以及掌握运用所有的AutoCAD系统变量,功能之强大令人欣喜不已!撰写的环境不挑剔:只要是一般的文书编辑软件都适用! 如:Windows的记事本、PE2、PE3、DW3、书中仙、汉书、EDIT....等直译式程序:不用再作编译,『即写即测、即测即用』,马上可以在AutoCAD中响应效果,马上就有成就感!横跨各作业平台:悠然自得,虽然AutoCAD有DOS、Windows版本之分但是AutoLISP却可在不改写的原貌下,加载与执行!三.撰写 AutoLISP 的动机1、欲强化 AutoCAD 原有指令时.2、欲创造更有用的 AutoCAD 新指令.3、欲简化繁琐的环境设定或绘图步骤时.4、欲处理参数式绘图时.5、欲做图面资料读文件、写文件.6、欲做 AutoCAD 简报展示时.7、欲达到真正灵活掌控 AutoCAD 时.8、欲提升自己跨上 AutoCAD 高手列车时.四.AutoLISP 的效益评估1. 对公司负责人或设计主管而言:A. 也许某员工或干部花了20个小时撰写一个AutoLISP程序,表面上,这将近三天的时间,他连一张图都没有画,甚至可能偶有发呆、沈思,若此程序一天可以替公司绘图部门节省1小时绘图时间,那算一算,只要20天就抵销开发成本,而20天以后都是赚的,『用的愈久,省的愈多』!B. 若员工皆有此动力,在不影响正常工作,『鼓励』都来不及,那有『压抑』的道理,甚至还要派遣优秀人员出去受训,学习更好的设计技巧与创意呢!C. 千万不要因为您的不懂或压抑,SHOW您的权威与POWER,如此,不但对员工造成打击,甚至您可能成为阻碍了公司计算机化进步的罪魁祸首D. 当然,若要撰写的程序很多,内部设计人员的程序功力距离太远,达成需求的时间反而变得遥遥无期,那倒不如求助于市面上已有的相关 AutoCAD 支持软件。

AUTOLISP培训教程_4

AUTOLISP培训教程_4

AUTOLISP培训教程_4在工程设计和绘图领域,AUTOLISP 作为一种强大的编程语言,为我们提供了许多高效和便捷的工具。

接下来,让我们一起深入了解更多关于 AUTolisp 的知识和应用技巧。

首先,我们来谈谈 autolisp 中的数据类型。

AUTOLISP 支持多种数据类型,比如整数、实数、字符串、列表等等。

整数就是我们常见的没有小数部分的数字,实数则包含小数部分。

字符串就是被引号括起来的一系列字符。

而列表则是用括号括起来的一组数据,可以包含不同的数据类型。

理解这些数据类型是编写有效 autolisp 程序的基础。

函数是 autolisp 编程中的重要组成部分。

例如,(setq x 10) 这个语句,其中“setq”就是一个函数,用于给变量 x 赋值为 10 。

再比如,(+ 5 3) 会返回 8 ,这里的“+”就是一个用于加法运算的函数。

在实际编程中,我们经常需要进行条件判断。

比如,(if (> x 5) (princ "x 大于 5")(princ "x 不大于 5"))这个语句,如果变量 x 的值大于 5 ,就会输出“x 大于5”,否则输出“x 不大于5”。

通过合理使用条件判断,我们可以让程序根据不同的情况执行不同的操作。

循环结构在 autolisp 中也非常有用。

像(while (< x 10) (princ x) (setq x (+ x 1))),只要 x 小于 10 ,就会执行循环体中的操作,不断输出 x 的值,并将 x 的值增加 1 。

循环结构能够帮助我们处理需要重复执行的任务,提高编程效率。

接下来,我们说一说 autolisp 与 AutoCAD 的交互。

通过 autolisp ,我们可以获取 AutoCAD 中的图形对象信息,例如点、线、圆等的坐标、长度、半径等属性。

还可以使用 autolisp 来创建、修改和删除这些图形对象。

例如,要创建一个圆,可以使用(command "circle" "0,0" 5) 这个语句。

AutoLisp入门教程

AutoLisp入门教程

單元一:AutoLISP主角瀟灑登場一. AutoLISP 是何方神聖?1.AutoLISP是AutoCAD的最佳拍檔!2.AutoLISP內含於AutoCAD軟體內,不用另外花錢買!3.AutoLISP是強化AutoCAD最好、最直接的『程式語言』!4.AutoLISP易學、易用,即使不會程式設計的AutoCAD使用者,都能在最短的時間內,寫出令人驚訝、讚嘆的功能!5.若說AutoLISP的出現,是替AutoCAD 創造一片天的『最大功臣』,實不為過一點也不誇張!6.AutoLISP希望您去學習它、改善它、發揮它、享受它.真的!它的威力、魅力無窮!二. AutoLISP 程式語言的特質分析:學習AutoLISP是非常容易的,對初學者而言,即使沒有學習過任何的程式語言,都能很快的上手,寫出精彩漂亮的AutoLISP程式!三.撰寫AutoLISP 的動機?1.欲強化AutoCAD 原有指令時.2.欲創造更有用的AutoCAD 新指令.3.欲簡化繁瑣的環境設定或繪圖步驟時.4.欲處理參數式繪圖時.5.欲做圖面資料讀檔、寫檔.6.欲做AutoCAD 簡報展示時.7.欲達到真正靈活掌控AutoCAD 時.8.欲提昇自己跨上AutoCAD 高手列車時.四.AutoLISP 的效益評估?1. 對公司負責人或設計主管而言:A.也許某員工或幹部花了20個小時撰寫一個AutoLISP程式,表面上,這將近三天的時間,他連一張圖都沒有畫,甚至可能偶有發呆、沈思,若此程式一天可以替公司繪圖部門節省1小時繪圖時間,那算一算,只要20天就抵銷開發成本,而20天以後都是賺的,『用的愈久,省的愈多』!B.若員工皆有此動力,在不影響正常工作,『鼓勵』都來不及,那有『壓抑』的道理,甚至還要派遣優秀人員出去受訓,學習更好的設計技巧與創意呢?!C.千萬不要因為您的不懂或壓抑,SHOW您的權威與POWER,如此,不但對員工造成打擊,甚至您可能成為阻礙了公司電腦化進步的罪魁禍首D.當然,若要撰寫的程式很多,內部設計人員的程式功力距離太遠,達成需求的時間反而變得遙遙無期,那倒不如求助於市面上已有的相關AutoCAD 支援軟體。

第二章AutoLISP概述

第二章AutoLISP概述

0.1 表示为
• •
.1 错误 0.1 正确
1. 正确 .1 错误
2.1.3 字符串 字符串是在双引号中的一组字符。在用引号引起来的字符串中,用反斜杠 (\) 字符可以添加控制字符(或换码代码)。当用户在 AutoLISP 表达式中直接 使用用引号引起来的字符串时,该值被称为文字字符串或字符串常量。 “string 1”和“\nEnter first point:”都是有效的字符串。
• PAUSE 定义为由一个双反斜杠 (\\) 字符构成的字符串“\\”。此变 量与 command 函数配合使用,用于暂停正在执行的命令,等候用户 输入。 • PI 定义为常量 (pi)。其值近似等于 3.14159。 • T 定义为常量 T。用作非 Nil 值。
• 要想指定 AutoLISP 如何响应修改保护符号的尝试,请从 Visual LISP 菜单中选择“工具” “环境选项” “基本选项”。 • 2.15 原子 • 原子是指不可再分的元素。例如平面内一点的坐标可以分为两个元素, 即x坐标值,y坐标值,而x、y不可再分,所以称为原子。符号和常数 统称为原子,而原子和表统称为表达式。 • T和nil是两个特殊原子。 • 下面一些字符将终止一个原子或分隔多个原子。 • ( (开括号) 表的定界符 • ) (闭括号) 表的定界符 • ' (单引号) quote函数缩写 • " (双引号) 字符串定界符 • ; (分号) 注释符号 • <space> 空格 数据分隔符 • 例如 (SETQ A "ABC”)与(SETQ A"ABC")等价
• • • • • • • • • • •
对两个有效整数进行算术运算,但造成了整数溢出,产生无效结果: _$ (+ 2147483646 3) -2147483647 此样例得出的结果显然是无效的,因为两个正数相加得出了负数。但 请注意下列运算如何产生有效的结果: _$ (+ 2147483648 2) 2.14748e+009 在这个例子中,AutoLISP 先将 2147483648 转换为一个有效的实数, 再对其作加法运算。得出的结果是一个有效的实数。 最大的负整数值保留其值: 有问题: -2147483648为最小负数 最大的负整数值保留其值: 有问题: _$ -2147483647 -2147483647 如果输入一个大于可允许的最大负整数值的负整数,AutoLISP 将其 如果输入一个大于可允许的最大负整数值的负整数,
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

AutoLISP详细讲解关于AutoLISPAutoLISP是由Autodesk公司开发的一种LISP程序语言(LISP是List Processor的缩写)。

第一篇关于LISP的参考文献是由John McCarthy 在1960年4月的《ACM通讯》中发表的。

除了FORTRAN和COBOL,大多数在六十年代早期开发出来的语言都过时了,可是LISP 却生下来,并且已经成为人工智能(AI)的首选程序序言。

AutoLISP解释程序位于AutoCAD 软件包中,然而AutoCAD R2.17及更低版本中并不包含AutoLISP解释程序,这样,只有通过AutoCAD R2.18及更高版本才可以使用AutoLISP语言。

AutoCAD软件包中包含大多数用于产生图形的命令,但仍有某些命令末被提供。

例如,AutoCAD中没有在图形文本对象内绘制矩形及作全局改变的命令。

通过AutoLISP,你可以使用AutoLISP程序语言编制能够在图形文本对象内绘制矩形或作全局选择性改变的程序。

事实上,可以用AutoLISP编制任何程序,或把它嵌入到菜单中,这样定制你的系统会取得更高的效率。

现在,已经有数以百计的第三方软件开发人员使用AutoLISP语言编制各种应用程序软件包,例如,本文作者开发了一个名为SMLayout的软件包,用它可以产生各种复杂几何图形的平面布局图,这些几何图形包括管道的交叉部、过渡都、圆柱、弯管接头、圆锥以及罐顶。

目前社会上非常需要AutoLISP程序员为应用软件及客户菜单的开发提供顾问。

在本章中,我们假定读者已经熟悉了AutoCAD命令及AutoCAD的系统变量。

但是,在开始学习AutoLISP时,却并不需要你是一位AutoCAD或编程专家。

同时,本章还假定读者并无编程方面的知识。

如果你熟悉任何一种编程语言,那么学习AutoLISP就会很容易。

对各种函数的评细探讨以及对例题的逐步讲解会使你学起来很有兴趣。

本章讨论常用的AutoLISP函数以及它们S程序编制中的应用。

对于本章中未涉及的函数,请参阅Autodesk 公司的《AutoLISP程序员参考手册》。

AutoLISP对硬件没有任何特殊要求。

如果系统能够运行AutoCAD,那么同样也可以运行AutoLISP。

AutoLISP程序可以使用任何文本编辑器进行编制。

数学运算任何编程语言都提供数学函数。

在AutoLISP中,同样提供了编程以及数学计算所需的大部分数学函数,你可以使用AutoLISP对数字进行加、减、乘、除运算,还可以得到以弧度表示的角度的正弦值、余弦值及反正切值等。

使用AutoLISP还可以进行许多其他计算。

这一节主要讨论AutoLISP程序语言支持的常用数学函数。

1.加法格式(+ num1 num2 num3…)此函数(+)计算加号(+)右边所有数字的和(+ num1 num2 num3…)。

这些数字可以是整数或实数。

如果均为整数,则和为整数;如果均为实数,则和为实数。

但是如果既有整数又有实数,则和为实数。

如下所示,在前两个例子中,所有数字均为整数,所以结果是整数。

在第三个例子中,一个是实数(50.0),故结果为实数。

示例:Command:(+2 5)返回7Command:(+2 30 4 50)返回86Command:(+2 30 4 50.0)返回86.02. 减法格式(- num1 num2 num3…)此函数(-)从第一个数中减去第二个数(num1-num2)。

如果多于两个数,就用第一个数字减去其后所有数字的和[num1-(num2+num3…)]。

在下面的第一个例子中,28减去14后返回14。

因为两个数均为整数,结果亦为整数。

在第三个例子中20与10.0相加,并用50减去两数的和(30.0),返回一个实数20.0。

示例:Command:(- 28 14) 返回14Command:(- 25 7 11)返回7Command:(-50 20 10.0)返回20.0Command:(-20 30)返回河0Command:(-20.0 30.0)返回-10.03.乘法格式(* num1 num2 num3…)此函数(*)计算乘号右边所有数字的乘积( num1×num2×num3…)。

若均为整数,它们的乘积亦为整数;若其中含有一个实数,乘积即为实数。

示例:Command : (* 2 5) 返回10Command : (* 2 5 3) 返回30Command : (* 25 3 2.0) 返回60.0Command : (* 2 -5.5) 返回-11.0Command : (* 2.0 -5.5 -2) 返回22.04.除法格式(/ num1 num2 num3…)此函数(/)用第一个数除以第二个数。

如果多于两个数,就用第一个数除以其后所有数的乘积[num1/(num2 × num3 ×…)]。

在下面的第四个例子中,用200除以5.0与4的乘积[200/(5.0×4)]。

示例:Command:(/ 30)返回30Command:(/ 3 2)返回1Command:(/3.0 2) 返回1.5Command:(/ 200.0 5.0 4)返回10.0Command:(/ 200 -5)返回-40Command:(/ -200 -5.0)返回40.0增量、减量与绝对数字1.增量数字格式(1+ number)此函数(l+)使数字与1(整数)相加,返回一个增加1的数。

在下面的第二个例子中,1与-10.5相加返回-9.5。

示例:(1+ 20)返回21(1+ -10.5)返回-9.52.减量数字格式(1- number)此函数(1-)从数字中减去1(整数),并返回一个减去1的数。

在下面的第二个例子中-10.5减去1返回-11.5。

示例:(1- 10)返回9(1- 10.5)返回-11.53.绝对数字格式(abs num)abs函数返回一个数的绝对值。

该数可以是整数或者实数。

在下面的第二个例子中,由于-20的绝对值为20,故函数返回20。

(abs 20)返回20(abs -20)返回20(abs -20.5)返回20.5三角函数1.sin函数格式( sin angle)sin函数计算一个角(以弧度表示)的正弦值。

在下面的第二个例子中,sin函数计算Pi (180度)的正弦值并返回0。

示例:Command:(sin 0)返回0.0Command:(sin Pi)返回0.0Command:(sin 1.0472)返回0.8660272.cos函数格式(cos angle)cos函数计算一个角(以弧度表示)的余弦值。

在下面的第三个例子中,cos函数计算Pi (180度)的余弦值并返回-1.0。

示例:Command:(cos 0)返回l.0Command:(cos 0.0)返回1.0Command:(cos Pi)返回-1.0Command:(cos 1.0)返回0.5403023.atan函数格式( atan num1)atan函数计算数的反正切值,返回角度以弧度表示。

下面的第二个atan函数计算1.0的反正切值并返回0.785398(弧度)。

示例:Command:(atan 0.5)返回0.463648Command:(atan 1.0)返回0.785398Command:(atan -1.0)返回-0.7853984.具有两个参数的atan函数格式( atan num1 num2)还可以在atan函数中再指定一个数。

若指定了第二个数,函数将以弧度形式返回(num1/num2)的反正切值。

在下面的第一个例子中,第一个数(0.5)除以第二个数(1.0),atan函数计算商(0.5/1=0.5)的反正切值。

示例:Command:(atan 0.5 1.0)返回0.463648弧度Command:(atan 20 3.0)返回0.588003弧度Command:(atan 2.0 -3.0)返回2.55359弧度Command:(atan -2.0 3.00)返回-0.5880033弧度Command:(atan -2.0 -3.0)返回-2.55359弧度Command:(atan 1.0 0.0)返回1.5708弧度Command:(atan -0.5 0.0)返回-1.5708弧度5.angtos函数格式(angtos angle[made[precision]])angtos函数以字符串格式返回以弧度表示的角度值。

字符串格式由made和precision 的设置决定。

示例:Command:(angtos 0.588003 0 4)返回“33.6901”Command:(angtos 2.55359 0 4)返回“145.3099”Command:(angtos 1.5708 0 4)返回“90.0000”Command:(angtos -1.5708 0 2)返回“270.00”注意在(angtos angle[mode[precision]])中:angle是以弧度表示的角度值。

mode是与AutoCAD系统变量AUNITS相对应的angtos模式。

AutoCAD中可用模式如下:ANGTOS模式编辑格式0 十进制角度1 度/分/秒2 梯度3 弧度4 测量单位precision是一个整数,用于控制小数的位数,与AutoCAD系统变量AUPREC相对应。

其最小值为0,最大值为4。

在上面的第一个例子中,angle为0.588003弧度,mode为0(十进制角度),precision 为4(小数点后有四位)。

函数返回33.6901.关系表达式在程序中,通常都需要测试某些特定的条件。

若条件为真,程序执行某些功能,若不为真,执行另外一些功能。

例如,条件表达式(if(< X 5)),若变量x的值小于5,测试结果为真。

编程过程中经常要用到这种类型的测试条件。

本节讨论在AutoLISP编程中要用到的各种关系表达式。

1.等于格式(= atom1 atom2…)该函数(=)检查两个元素是否相等。

若相等,条件为真,函数返回T。

同样,若指定的元素不相等,条件为假,函数返回nil。

示例:(= 5 5)返回T(= 5 49)返回nil(= 5.5 5.5 5.5)返回T(= “yes”“yes”)返回T(=“yes” “yes” “no”)返回nil2.不等于格式(/= atom1 atom2…)该函数(/=)检查两个元素是否不相等。

若不相等,条件为真,函数返回T。

同样,若指定的元素相等,条件为假,函数返回nil。

示例:(/=50 4)返回T(/= 50 50)返回nil(/= 50 -50)返回T(/= “yes” “no”)返回T3.小于格式(<atom1 atom2…)该函数(<)检查第一个元素(atoml)是否小于第H个元素(atomZ)。

相关文档
最新文档