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详细讲解

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培训教程_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 将其 如果输入一个大于可允许的最大负整数值的负整数,

AutoLISP绘图程序设计

AutoLISP绘图程序设计

四、AutoLISP程序执行方式
有三种方式:行方式、源文件方式、编译文件方式. 1.行方式 就是在AutoCAD的command:提示符下,输入表后回车. 如:
command:(+ 15 6.3)↙ command:(setq a 10)(setq b (+ a 5)) ↙
03.10.2023
16
2.源文件方式
用写字板或记事本把AutoLISP程序保存起来(后缀 为.LSP).然后用LOAD命令装载并调用. 例如:(1)把下列程序保存到e:\zm.lsp
;;在屏幕上显示 ASCII码为(65-90)的字符
(defun C:zm(/ as)
;自定义命令
(setq as 65 n 100)
(while (<= as 90)
(while (<= a n) (command "circle" P0 R) (setq P0 (polar P0 0 L)) (setq a (1+ a))
) )
03.10.2023
3
(4)AutoLISP语言中使用大量的函数(有 200多个函数),进行各种运算;
(5)AutoLISP编写的程序特点(学习中注 意):
二次开发手段.
所谓二次开发:是指以AutoCAD软件为平台, 加入自己所需要的功能.开发过程,就是编程的 过程.
二次开发所支持的语言有VB、C++,大型的 二次开发,以C++为主,而小型二次开发,一般以 AutoLISP为主.
03.10.2023
2
(2)必须在AutoCAD环境下运行(内嵌); ( 3 ) AutoLISP 可 以 编 写 程 序 , 调 用 AutoCAD 的 许 多

一步步学AutoLisp(二)

一步步学AutoLisp(二)

一步步学AutoLisp(二)在第一步中我们是在CAD命令行中进行一些练习,这显然无法满足我们正常的使用要求,所以我们一般将程序写成文件,LISP程序文件的扩展名为“.lsp”。

在AutoCAD2004及以后的CAD中有专门的软件编写程序Visual Lisp,也可以用普通的文本编写软件如记事本进行编写,但文件的扩展名一定要是“.lsp”。

为使大家能对lsp文件的使用有更好的理解,本文一律按使用普通文本编辑器编写的方式进行描述。

打开文本编辑器编写一个文件,文件名为“key.lsp”,将文件保存到C盘根目录下。

键入如下一行程序:(defun c:cm() (command "COPY" pause "" "m"))保存后,在CAD命令行键入:(load"c:/key"),即可将key.lsp调入CAD,返回c:cm。

如下图:在命令行键入“cm”可以执行对一个图元进行多次拷贝的命令,在lisp程序中函数及参数不区分大小写,但参数的返回值有大小之分。

先对程序进行解读:defun 定义函数的函数,后面的c:cm是一个函数的名称。

c:cm 自我定义的函数名称,带“c:”的函数是可以作为操作命令的函数,我们姑且将这类函数称为命令函数。

如果没有“c:”,只有“cm”,则得到的返回值是“cm”,在命令行键入“cm”则不会执行前面的多重拷贝操作。

键入“(cm)”就会执行该操作,我们就称之为一般函数。

() 这个空括弧是用来填写参数的,由于我们的这段程序没有用到任何其他参数,所以括弧内是空的。

command 调用CAD原有命令的函数,这是lsp程序中应用非常多的一个函数,许多操作可以直接调用CAD自己的命令,不许再重新编写。

"copy" 调用的CAD命令名称,名称与前面的command之间有没有空格都可以,而且要用命令全名,不能用简化命令,而且要用引号。

autolisp语言

autolisp语言




(strcat <字符串1> <字符串2>…) 将<字符串1>、< 字符串2>…按顺序连结成一个新字符串,返回该新字 符串。 (substr <字符串> <开始> <长度>) 将<字符串>从< 开始>位置截取长为<长度>值的字符串,返回字符串 。 (strcase <字符串> <模式>)根据<模式>将<字符串>全 部转换成大写或小写,返回转换后的字符串。<模式> 为任意表达式,若省略<模式>或其值为nil,字符串各 字符全部转换成大写,若<模式>值为非nil,字符串各 字符全部转换成小写。 (strlen <字符串>) 求字符号串<字符串>中的字符个数 (包括空格), 返回数值。
补充
取得xyz分量 Getpoint和getcorner函数返回坐标,是一 个有三个实数组成的序列(x y z)。若 要取得其中xyz坐标的分量,可以使用car 、cadr、caddr函数,其语法格式为: (car list) (cadr list) (caddr list)

还可以自组坐标序列


(+ <数> <数>…) 返回所有<数>的和。其中,<数> 可以是整型数,也可以是实型数。 (- <数> <数>…)返回第一个<数>与后面所有数的差。 (* <数> <数>…) 返回所有<数>的乘积。 (/ <数1> <数2> … )返回<数1>除以<数2>后的商。 (1+ <数>) 返回<数>加1后的值。 (注意:1与+号之间不能有空格) (1- <数>) 返回<数>减1后的值。 (注意:1与-号之间不能有空格) (abs <数>) 返回<数>的绝对值。 (sin <角度>) 返回<角度>的正弦值,<角度>单位为弧度

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

AutoLISP

AutoLISP语言第一节概述1.1简介AutoLISP是一种嵌入AutoCAD内部的LISP语言。

它可让用户和AUTOCAD 开发者以非常强大的高级语言编写出宏语言程序和函数,它非常适合于图形的应用,LISP很易于学习和使用,它也非常灵活多变。

1.2AUTOLIAP中的数据类型.表.符号.字符串.实型数.整型数.文件指针.AUTOCAD实体名.AUTOCAD选择集.子程序整型数是16位带符号的数,因此,它的范围是在—32768和+32767之间。

实型数是以双精度的浮点数表示。

字符串可以是任意长度,它们的存贮空间是动态分配的。

1.3AUTOLISP的求值程序、词汇约定每一个LISP解释程序的核心就是求值程序。

求值程序装入用户的输入行,对它进行计算,并返回一些结果。

AUTOLISP的输入可以采用好几种形式。

它们可以在运行AUTOCAD时从键盘输入,也可以从ASCII文件读入,或者可以从字符串变量读入。

在所有这些形式中,必须要遵守上定的约定:1.符号名称可以由除下列字符之外的所有可打印字符序列组成:().’”;2.符号和函数名称(子程序)在AUTOLISP中大小写等效。

符号名称不能以数字开头。

3.实型数由一个或多个数字组成,后面跟着小数点,再就是一个或多个数字;如:“.4”并不被认作为实型数,“0.4”才是正确的写法。

4.文字字符串是一个由双引号引起来的字符序列。

在引起来的字符串中,可以使用反斜号,使得其中包括的控制字符可被正确识别,规定:\\ 表示字符“\”\n 表示换行\e 表示ESC\r 表示回车\t 表示光标\nnn 表示其八进制码为nnn的字符第二节AUTOLISP函数AUTOLISP提供了大量的预定义函数,本节介绍一些主要的函数。

需要说明的是,逻辑常数T与NIL这两个值相当于逻辑上的真与假。

是两个特殊原子。

这两个原子的值预先设置为T和NIL;常数PI表示数学上的π,它不是一个函数。

2.1数值运算函数1.(+ 〈数〉〈数〉…)函数返回所有数的总和2.(—〈数〉〈数〉…)函数返回所有数的差3.(* 〈数〉〈数〉…)函数返回所有数的积4.(/ 〈数〉〈数〉…)函数返回所有数的商其中的〈数〉可以是整型的,也可以是实型的。

AutoLISP程序入门教学资料

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中加载程序。

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)概述、基本函数、表处理函数、绘图函数

石家庄铁道学院工业设计系
计 算 机 绘 图
LISP语言的突出特点是程序和数据都取符号表达 式的形式,即一个LISP程序可以把另一个LISP程 序作为它的数据处理。 LISP是求值型而不是编译型或解 释型的语言。
石家庄铁道学院工业设计系
计 算 机 绘 图
Auto LISP语言的特点 语言的特点
AutoLISP是为扩展和自定义AutoCAD功能而设计 的一种编程语言。 八十年代中期,AutoLISP被引入AutoCAD R2.16 版中作为应用程序编程接口(API) ,至今仍然是其 主要的程序设计语言。 LISP之所以被选为AutoCAD最初的应用程序编程 接口,是因为只有它才适合于工程中的非结构化 设计过程。
石家庄铁道学院工业设计系
计 算 机 绘 图
例: (moo “Hello” 5) (moo “Hi” 1 2 3) (moo 1 2 3) (moo “Hello”) 正确 正确 不正确 不正确
石家庄铁道学院工业设计系
计 算 机 绘 图
二、函数 函数是AutoLISP中的基本数据,函数能对数据进 行一系列的处理,并返回其结果。 AutoLISP函数的规则: AutoLISP函数必须放在括号里,所有的括号应当 匹配 函数从左往右读 括号中的第一个原子为函数操作符,为一个命令, 告 诉 AutoLISP做什么。
石家庄铁道学院工业设计系
计 算 机 绘 图
六、点对
点对也是一种表,表中有两个元素,两个元素中间 有圆点“.”,圆点与前后元素之间必须各有一个空 格,例如 (A . B) 就是一个点对,A和B与圆点之间用空格分开,A 和B均为S表达式,A称为点对的左元素,B称为点 对的右元素。点对也可以嵌套。 点对常用于构造联结表。

AutoLISP简介

AutoLISP简介

AutoLISP简介AutoLISP规定了函数的形式:一: ( function argument )1.( ) 括号,表示执行某一函数,而括号中的内容即所要执行的部分.2.function 表示函数名. AutoLISP就是根据菡数名来区分各基本函数和用户自定义的函授数的.3.argument表示函数的参4.如果函数中套有函数称为嵌套函授数. AutoLISP允许用户使用诸如下列嵌套函授数:( fun1 (fun2 argu2) (fun3 argu3))(1)括号“(” 和“)”要匹配使用,用户在编写AutoLISP程序时一定要注意左\右手枪号匹配问题.(2)AutoLISP程序中,所有的括号( )和双引号" " 都必须在英文状态下输入,即必须是半角符号,为AutoLISP不识加紧中文全角符号.二: 设置变量函数( setq或SETQ )格式:(setq 变量名1值1[变量名2值2变量名3值3···])功能:创建给定的变量,并赋特定值.说明:(1)setq函数允许用户同时设置多个变时并赋予相应的数值.(2)对于字符串类型的值,应加上“”以于区分.注意:各变量名\数值之间只用空格隔开,而不能用其它标点符号,如要把3赋给变量abc可采用setq abc 3)方式.三: 执行AutoCAD标准命令( command )格式: ( command" 标准命令" "具体参数1" "具体参数2" ······)例如: (1)如果要画从(5,3)到(7,8)再到@10<0 三点的联机,可采用:( command " Line" "5,3" "7,8" "@10<0" "")(2)如果用户从已经定义的P1点到P2点画一条直线,可采用:( command "Line" P1 P2 "")四: 选择定点( getpoint)格式: getpoint("\n操作提示:")功能:用户可通过键盘输入体的坐标参数,可以用十字光标在屏幕区域内选取一点,通过该函数, AutoLISP就得知了用户所选取的点的坐标值.说明:(1)A utoLISP将首先显示用户设置的操作提示,在此提示下,才可确定某一给定一点.(2)G etpoint的操作提示中\n表示换行.通常,我们都是用(setq P1(getpoint"\n请输入第一点的坐标: "))这和方式来选取给定的点,并把该点坐标赋给变量P1.五: 目标捕捉( osnap)格式; osnap 给定顶点名称“目标捕捉方式”功能:以某种特定的目标捕捉方式, 捕捉最近给定顶点的某个特殊点.语名( setq Pt2(osnap pt1 "midp"))表示捕捉靠近Pt1端的中点,并把该中点坐标赋给Pt2六: 提取实体名称( entlast)格式: entlast功能:将用户的操作的上一实体的名称提取出来.( setq m (entlast))表示把用户的操作的上一实体的名称提取出来.并赋于m 这样AutoCAD就可以通过变量m来识别图形实体.例如:(1) Command :(command "circle" "5,5" "2") 以(5,5)这点为圆心,2为半径画一个圆.(2) Command :(command"line" "3,5" "7,5" "") 以这2点画一条直线,然后结束命令(3)Command :(setq el (entlast))(4)Command :(setq pt "5,7") 将点(5,7)赋给变量pt(5)Command :(command "trim" el "" pt "") 剪切多余的线.通过entlast 函数得知用户操作的上一实体为直线,并把该直线的实体名赋给变量el 这样el 就代表该直线.用户自定义函数AutoLISP提拱defun函数用以自定义用户函数,操作格式如下:( defun c :XXX( )表达式)现就该格式作说明:(1):defun 函数后面所跟C :XXX( )是一种特定的格式,XXX是用户定义函数的函数名.(2):表达工可由AutoLISP基本函数变量\字符串和运算符等组成,是用户定义函数的核心部.(3):定义完函数后,用户就可像AutoLISP基本函数一样调用XXX( )函数.注意:(1):defun 函数后所跟的C并不是代表硬盘驱动器符C,而是代表command line fuuction (命令行函数).(2):用这种方式所定义的函数XXX( ) 是无参函数,即不允许携带参数.(3):定义后,该函数XXX( ),还可以像AutoCAD基本命令一样,在command: 提示符下输入XXX并回车激活运行.(4):XXX( )函数, 还可以像AutoCAD透明命令一样,在某一函数运行过程中XXX形式运行.例如:( defun C : LXH( )(setq P1( getpoint"\ n请确定零件标注线第一点: ")(setq P2( getpoint"\ n请确定零件标注线第二点: "))( command "Line" P1P2 "@5<0" "")(setp P3 ( osnap P2 "midp" ))(command "dtext" " J " " bc" P350 )( Princ ))。

  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解释程序,这样,只有通过AutoCADR2.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.加法格式(+num1num2num3…)此函数(+)计算加号(+)右边所有数字的和(+num1num2num3…)。

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

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

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

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

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

示例:Command:(+25)返回7Command:(+230450)返回86Command:(+230450.0)返回86.02.减法格式(-num1num2num3…)此函数(-)从第一个数中减去第二个数(num1-num2)。

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

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

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

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

示例:Command:(-2814)返回14Command:(-25711)返回7Command:(-502010.0)返回20.0Command:(-2030)返回河0Command:(-20.030.0)返回-10.03.乘法格式(*num1num2num3…)此函数(*)计算乘号右边所有数字的乘积(num1×num2×num3…)。

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

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

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

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

示例:Command:(/30)返回30Command:(/32)返回1Command:(/3.02)返回1.5Command:(/200.05.04)返回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。

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

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

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

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

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

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

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

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

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

示例:Command:(atan0.51.0)返回0.463648弧度Command:(atan203.0)返回0.588003弧度Command:(atan2.0-3.0)返回2.55359弧度Command:(atan-2.03.00)返回-0.5880033弧度Command:(atan-2.0-3.0)返回-2.55359弧度Command:(atan1.00.0)返回1.5708弧度Command:(atan-0.50.0)返回-1.5708弧度5.angtos函数格式(angtos angle[made[precision]])angtos函数以字符串格式返回以弧度表示的角度值。

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

示例:Command:(angtos0.58800304)返回“33.6901”Command:(angtos2.5535904)返回“145.3099”Command:(angtos1.570804)返回“90.0000”Command:(angtos-1.570802)返回“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(<X5)),若变量x的值小于5,测试结果为真。

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

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

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

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

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

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

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

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

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

若为真,函数返回T,否则返回nil。

示例:(<35)返回T(<534)返回nil(<“x”“y”)返回T4.小于等于格式(<=atom1atom2…)该函数(<=)检查第一个元素(atom1)是否小于等于第二个元素(atom2),若是,函数返回T,否则返回nil。

相关文档
最新文档