AutoCAD二次开发实用教程 郭秀娟 第3章 AutoLISP基本函数
- 格式:ppt
- 大小:731.00 KB
- 文档页数:57
AutoCAD二次开发技术AutoCAD作为一种通用计算机辅助设计软件,其二维图形设计功能非常强大,目前已广泛应用于机械、电子、电气、建筑、土木、服装等领域,深受国内外众多工程设计人员的喜爱,成为目前世界上应用最广的计算机辅助设计工具。
尽管如此,人们在使用过程中还是发现其存在较多的不足之处,如对于一些特殊曲线的绘制往往较为困难,而对于一些标准件、常用件,虽然从结构上看它们较为相似,但却难以采用AutoCAD提供的复制、镜像、旋转等命令来实现,而必须一笔划一笔划的绘制,显得费时费力。
AutoCAD是一种定位与全球各大领域和各类专业的通用微机CAD平台软件。
到目前为止,Autodesk公司已经相继推出了四代二次开发工具.AutoCAD的二次开发主要涉及以下内容:(1编写各种用户自定义函数并形成若干LISP、ARX、VLX或ADS文件,以及一些DCL文件。
(2建立符合自己要求的菜单文件,一般可在AutoCAD原菜单文件内添加自己的内容,对于AutoCAD2000版本还可增加部分菜单文件,然后经交互方式加入到系统中去。
(3在系统的ACAD.LSP 或类似文件中加入某些内容以便进行各种初始化操作,如在启动时立即装入一些文件等。
(4通过系统对话框设置某些路径。
这些操作在程序开发成功后向其它AutoCAD系统上安装应用,特别是需要大批安装时,需要进行很多文件检索、内容增删、子目录创建、文件拷贝、系统设置等繁琐工作,如能令上述工作全部自动进行,使整个二次开发程序在无人干预的情况下嵌入系统,将大大提高工作效率。
AutoCAD荣登全球绘图软件的龙头宝座,主要是因为它具有开放的体系结构。
它允许用户和开发者采用高级编程语言对其进行扩充和修改,即二次开发,能最大限度地满足用户的特殊要求。
AutoCAD第一版于1982年11月由AutoDESK公司推出,目前大家广泛使用的是AutoCAD2000或2002,最新版本是AutoCAD2004,其二次开发语言及工具也在不断地涌现语言本身不难,难点在对AutoCAD二次开发框架的掌握,其实AutoCAD文件可以当成一个数据库来理解,因此难点就是理解这个数据库的结构和编程方法。
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开发者都用度数来度量角度,所以必要转换。
超值奉送Auto LISP 入门Auto LISP 是在AutoCAD 内部允许的一种内嵌式程序设计语言。
LISP (List Processing Language )是人工智能领域中广泛采用的一种表处理语言,具有较强的表处理功能,主要用于人工智能、机器人、专家系统、博弈、定理证明等领域。
LISP 也被称为符号式语言,因为它处理的对象是符号表达式。
Auto LISP 可以直接调用几何所有的AutoCAD 命令,为AutoCAD 提供了使用高级语言开发编程的途径,使得用户能充分利用它对AutoCAD 进行二次开发。
感谢:感谢您选购本图书。
本部分是《AutoCAD 2007中文版自学手册——入门提高篇》图书超值赠送的一部分,仅供读者个人参考使用。
未经许可,任何人不得将此部分用于其他商业用途。
欢迎您对我们的图书进行监督,并对我们的工作(图书质量、装帧设计、封面、印刷等)提出改进意见或建议。
网站:E-mail: editor.liu@QQ 群:9843746 (CAD/CAM/CAE 应用方向)您的支持是我们前进的动力,您的需要是我们努力的方向!冯如设计在线 2006-10-09A.1 Auto LISP基本函数自从AutoCAD RA.01 开始,出现了Visual LISP 语言,它是Autodesk公司为增强Auto LISP 程序开发能力而设计的软件工具,为Auto LISP增加了许多新的函数。
Visual LISP的集成开发环境提供很多特性,使用户创建和修改源代码、测试和调试程序更加方便。
自从Auto LISP 嵌入AutoCAD 之后,使仅仅作为交互式图形编辑软件的AutoCAD,通过编程使之能真正进行计算机辅助设计、绘图。
由于LISP灵活多变、易于学习和使用,因而使AutoCAD 成为功能很强大的工具性软件。
随着AutoCAD版本的升级,Auto LISP 的功能不断得到扩充和增强,主要功能如下:z能够把数据和程序统一表达为表结构,即S-表达式,因此可以把程序当作数据来处理,以可以把数据当作程序来执行;z有图形处理和程控方面的函数,可以直接调用AutoCAD的所有命令;z扩充了AutoCAD应用的特殊功能;z主要控制结构采用递归方式,使得程序设计简单易懂。
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…)此函数(/)用第一个数除以第二个数。
学习AutoCAD二次开发技术的体会1 引言AutoCAD是一套向量式计算机辅助制图软件,具有强大的图形处理功能,目前它已经广泛应用于机械、电子、电气、建筑、土木服装等行业和领域。
最初版本的AutoCAD是在1982年发布的。
AutoCAD开放的结构体系,为用户提供了多种二次开发的工具,使得它的缺陷之处可以得到弥补,因此三十多年来它持续拥有旺盛的生命力。
AutoCAD的二次开发,能够实现参数化绘图,允许用户开发自己的命令、标准库文件和各种应用程序,能充分发挥AutoCAD的功能。
本文将介绍我学习Visual LISP这一种工具进行开发的过程和体会,说明我在学习过程中体会到的二次开发的特点和一些优点,并举一些具体例子。
2实施过程2.1LISP语言的主要学习内容总结2.1.1变量及其赋值:(1)LISP语言中变量的使用比较灵活,变量不用先定义和指定类型,需要的时候直接引入,而且其内容较为随意,可以是整数、实型数、字符串、点、表等等。
(2)变量的赋值主要用setq语句,格式为(setq 变量名要赋的内容)。
2.1.2基本的运算函数和数学函数:(1)加、减、乘、除、取余运算函数名分别为“+”、“-”、“*”、“/”、“rem”函数使用格式为(符号数1 数2 [数3…])。
(2)基本初等函数:指数函数(expt 底数自变量值)。
自然指数函数、自然对数函数、正弦、余弦、反正切、根式、绝对值函数分别是exp、log、sin、cos、atan、sqrt、abs,调用格式为:(函数名自变量值)。
2.1.3表处理函数:(1)表构造函数:(list n1 n2 n3 n4 […]),返回一个表。
配合赋值语句可把表赋值给变量,如(setq biao (list 1 2 3 4)),就把(1 2 3 4)赋给变量biao。
(2)表长度运算:(length 表),返回表元素的个数。
(3)表中元素的提取:(car 表)返回表中第一个元素。
浅谈基于AutoLISP的AutoCAD二次开发技术在以AutoCAD制图的工程应用中,经常需要开发一些符合工程需求的AutoCAD工具。
AutoLISP语言是一种对AutoCAD进行二次开发的灵活手段。
本文通过一个从上到下逐行写文本的简单程序,探讨了基于AutoLISP的AutoCAD二次开发程序设计的基本步骤和具体实现过程。
标签:AutoCAD AutoLISP 二次开发AutoCAD是由美国Autodesk公司开发的通用计算机辅助绘图和设计软件包,它具有易于掌握、使用方便、体系开放等特点。
已广泛应用于机械、建筑、电子、土木工程、轻工等各个领域。
目前AutoCAD最新的版本是AutoCAD2006。
一、AutoLISP及二次开发的概念AutoLISP 语言是嵌入在AutoCAD内部的LISP编程语言,它是LISP语言与AutoCAD有机结合的产物。
AutoLISP的嵌入使AutoCAD真正成为能进行计算机辅助设计、绘图的CAD软件。
在使用AutoCAD制图中,大量操作都是通过鼠标点击控件和键盘输入相应参数组合实现的。
有时在制图过程中会需要做大量重复的操作,这些操作又具有一定的规律。
那么,便可以通过AutoLISP开发出AutoCAD中可以使用的自定义控件,在点击该控件后,大量繁琐的执行过程交由后台执行,用户仅需输入一些必要的参数,即可实现制图效果。
这种方法就是所谓的“二次开发”。
显然,二次开发能够提高工作的效率和减轻工作量。
二、使用AutoLISP进行二次开发的实例及过程剖析(一)题目。
下面通过编写一个从上到下逐行写文本的小程序段来简要分析AutoLISP的开发过程。
题目要求如下:1. 用户只需点击一个自定义工具按钮,系统即会提示用户输入首行文本所在位置、相邻两行文本偏移量、文本高度这三个参数。
其中,首行文本所在位置由鼠标在屏幕上点击获得,文本高度默认值为4。
2. 用户依次输入文本,回车表示结束当行输入。