第1章AutoLISP和Visual LISP
- 格式:ppt
- 大小:59.50 KB
- 文档页数:14
36.1.1Visual LISP与AutoLISPLISP是List Processor(表处理程序)的缩写,主要用于人工智能(AI)领域。
AutoLISP是人工智能语言CommonLISP的简化版本,作为通用LISP语言的一个小子集,AutoLISP严格遵循其语法和惯例,但又添加了许多针对AutoCAD的功能。
Autodesk公司在AutoCAD 2.1版引入AutoCAD作为应用程序编程接口(API),用于扩展和自定义AutoCAD功能。
借助AutoLISP,用户可以用适合编写图形应用程序的强大的高级语言来编写宏程序和函数,并开发各种软件包。
AutoLISP易于使用,并且非常灵活,多年来一直是自定义AutoCAD的标准。
从AutoCAD R14开始,Visual LISP被引入到AutoCAD中,它增强并扩展了AutoLISP语言,可以通过Microsoft ActiveX Automatio n接口与对象交互,并扩展了AutoLISP响应事件的能力。
作为开发工具,Visual LISP提供了一个完整的集成开发环境(IDE),包括编译器、调试器和其他工具,可以提高自定义AutoCAD的效率。
另外,Visual LISP提供了发布用AutoLISP编写的独立应用程序的工具。
Visual LISP没有任何特殊的硬件需求,能运行AutoCAD系统即可运行Visual LISP。
36.1.2Visual LISP与AutoCADVisual LISP作为一个完整的集成开发环境(IDE),具有自己的窗口和菜单,但它并不能独立于AutoCAD运行。
当用户从Visual LIS P IDE中运行AutoLISP程序时,经常需要与AutoCAD图形交互或在命令窗口响应程序提示。
如果Visual LISP把控制传给AutoCAD时AutoCAD已被最小化,用户必须手动恢复并激活AutoCAD才可继续,Visual LISP不会自动恢复AutoCAD窗口。
一Visual LISP编程基础一、实验目的1.Visual LISP开发环境介绍;2.熟悉Visual LISP开发环境和开发步骤,并掌握Visual LISP调试方法和调试过程,断点设置,单步执行,自动执行和数据监视等功能的使用。
二、实验设备1.硬件环境:台式计算机;2.软件环境:WIN XP操作系统,AutoCAD 2004。
三、实验步骤1 熟悉Visual LISP开发环境(1)进入Visual LISP启动AutoCAD,通过选择菜单:工具->AutoLISP->Visual LISP编辑器,进入如下编程环境。
图5-1 Visual LISP集成开发环境(2)输入如下所示程序选择菜单:文件->新建文件,或工具按钮,启动新的文件编辑窗口如下,并输入其中的LISP程序。
图5-2 编辑hello world源程序源程序:( print “hello,world”)(3)保存选择菜单:文件->保存,或工具按钮,文件取名为helloworld.lsp,注意LISP文件名后缀。
(4)运行选择菜单:工具->加载编辑器中的文字,或工具按钮,即可运行当前程序。
程序运行结果将会显示在控制台窗口中,如图5-3所示。
图5-3 hello world程序运行结果该程序利用函数print输出字符串“hello,world”。
控制台窗口是一个单独的、可任意移动的窗口。
在控制台窗口中用户可以直接输入、运行AutoLISP表达式并查看结果,与AutoCAD命令窗口的工作方式非常类似。
但在控制窗口中显示一个AutoLISP变量的当前值只需输入变量名后回车,不再需要在变量名前加一个“!”。
在控制台中可以实现下面一些典型功能:●可以执行表达式并显示表达式的返回值●可以一次执行多个表达式●可以在控制台和文本编辑窗口之间复制或粘贴文本,在控制台中可以使用大部分文本编辑命令●通过在控制台中按Tab键可以回溯到以前输入的命令。
常用的CAD二次开发语言:1 AutoLISP 全名是LIST Processing Language,LISP是List Processor(表处理程序)的缩写,cad系统的第一代开发工具,是一种嵌入在AutoCAD内部的编程语言,是低版本AutoCAD的首选编程语言。
它是一种表处理语言,是被解释执行的,任何一个语句键入后就能马上执行。
其缺点是继承了LISP语言的编程规则而导致繁多的括号。
2 ADS 全名是AutoCAD Development System,它是AutoCAD的C语言开发系统,丰富和保留了autolisp语言的功能,是一组可以用C语言编写AutoCAD应用程序的头文件和目标库,不包含于cad内部,包含c语言的全部功能。
ADS速度快,又采用结构化的编程体系,因而很适合于高强度的数据处理。
3 ObjectARX 崭新面向对象的开发AutoCAD应用程序的工具,以为编程语言,提供可与AutoCAD直接交互的开发环境。
可以与autolisp和ADS应用程序协同工作。
ObjectARX也没有包含在AutoCAD中,可在AutoDESK公司网站中去下载。
二次开发者可以充分利用AutoCAD的开放结构,直接访问AutoCAD数据库结构、图形系统以及CAD几何造型核心,以便能在运行期间实时扩展AutoCAD的功能,创建能全面享受AutoCAD固有命令的新命令。
ObjectARX的核心是两组关键的API,即AcDb(Auto CAD数据库)和AcEd(Auto CAD编译器),另外还有一些重要组件,如AcRX(Auto CAD实时扩展)、AcGi(Auto CAD图形接口)、AcGe(Auto CAD几何库)、ADSRX(Auto CAD开发系统实时扩展。
ObjectARX还可以按需要加载应用程序;使用ObjectARX进行应用开发还可以在同一水平上与Windows系统集成,并与其它Windows应用程序实现交互操作。
CAD二次开发技术介绍-工程摘要:本文对CAD技术中的二次开发所需的语言及工具介绍归纳,得出了一些有用的结论,对于了解CAD二次开发技术的发展及其如何适应具有一定的意义关键词:CAD二次开发技术;AutoLISP1.前言AutoCAD荣登全球绘图软件的龙头宝座,主要是因为它具有开放的体系结构,。
它允许用户和开发者采用高级编程语言对其进行扩充和修改,即二次开发,能最大限度地满足用户的特殊要求。
AutoCAD第一版于1982年11月由AutoDESK公司推出,目前被大家广泛使用的,最新版本是AutoCAD 2010,其二次开发语言及工具也在不断地涌现由于大量的应用领域提供了特有的几何问题,对于这些问题必须建立有效的算法,画出更精确的图形,这就是孕育CAD的二次开发,AutoCAD的二次开发主要涉及以下内容:(1)编写各种用户自定义函数并形成若干LISP、ARX、VLX或ADS文件,以及一些DCL文件。
(2)建立符合自己要求的菜单文件,一般可在AutoCAD 原菜单文件内添加自己的内容,对于AutoCAD2000版本还可增加部分菜单文件,然后经交互方式加入到系统中去。
(3)在系统的ACAD.LSP或类似文件中加入某些内容以便进行各种初始化操作,如在启动时立即装入一些文件等。
(4)通过系统对话框设置某些路径。
这些操作在程序开发成功后向其它AutoCAD系统上安装应用,特别是需要大批安装时,需要进行很多文件检索、内容增删、子目录创建、文件拷贝、系统设置等繁琐工作,如能令上述工作全部自动进行,使整个二次开发程序在无人干预的情况下嵌入系统,将大大提高工作效率。
2.CAD二次开发所涉及到的技术介绍2.1AutoCAD二次开发的内容和工具AutoCAD二次开发的主要目的是提高专业应用领域的工作效率,为专业绘图建立标准,并使常用的或重复的任务自动化等。
内容如下:Ø开发具有专业特点的用户图形界面Ø设计建立专业化的标准图形库Ø设计和规划专业化的系统功能和命令集AutoCAD二次开发的工具如下:Ø Auto LISP语言和Visual LISP开发环境Ø ActiveX和Visual Basic for Application (VBA)语言Ø VisualC++语言和ObjectARX开发环境ObjectARX—AutoCAD Runtime Extension 编程环境,构造对象的C++ 库。
数字测图原理与应用——Lisp语言的学习和使用主要内容AutoLisp语言介绍AutoLisp语言的基本知识赋值与数值计算函数自定义函数程序分支与循环函数逻辑运算函数字符串与类型转换函数表处理函数交互数据输入函数及相关的计算函数与文件有关的函数实体和设备访问类函数其它函数一、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的灵活性,并将得到长期、稳定的技术支持。
二、AutoLISP语言的基本知识2.1 AutoLISP语言的特性AutoLISP语言是一种解释型语言,它的特点如下:1.解释型语言编程语言有两种基本类型:解释型和编译型。
AutoLISPxx单元一: 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 的记事本、 P2、P3、D3、书中仙、汉书、 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 支持软件。