cadlisp二次开发实例?

cadlisp二次开发实例?,第1张

AutoCAD的二次开发主要涉及以下内容:(1)编写各种用户自定义函数并形成若干LISP、ARX、VLX或ADS文件,以及一些DCL文件。(2)建立符合自己要求的菜单文件,一般可在AutoCAD原菜单文件内添加自己的内容,对于AutoCAD2000版本还可增加部分菜单文件,然后经交互方式加入到系统中去。(3)在系统的ACAD.LSP或类似文件中加入某些内容以便进行各种初始化 *** 作,如在启动时立即装入一些文件等。(4)通过系统对话框设置某些路径。这些 *** 作在程序开发成功后向其它AutoCAD系统上安装应用,特别是需要大批安装时,需要进行很多文件检索、内容增删、子目录创建、文件拷贝、系统设置等繁琐工作,如能令上述工作全部自动进行,使整个二次开发程序在无人干预的情况下嵌入系统,将大大提高工作效率。

AutoCAD荣登全球绘图软件的龙头宝座,主要是因为它具有开放的体系链派高结构。它允许用户和开发者采用高级编程语言对其进行扩充和修改,即二次开发,能最大限度地满足用户的特殊要求。AutoCAD第一版于1982年11月由AutoDESK公司推出,目前大家广泛使用的是AutoCAD2000或2002,最新版本是AutoCAD2004,其二次开发语言及工具也在不断地涌现

1AutoLISP

AutoLISP的全名是LISTProcessingLanguage,她出现于1985年推出的AutoCADR2.18中,是一种嵌入在AutoCAD内部的编程语言,是LISP原版的一个子集,她一直是低版本AutoCAD的首选编程语言。它是一种表处理语言,是被解释执行的,任何一个语句键入后就能马上执行,它对于交互式的程序开发非常方便。其缺点是继承了LISP语言的编程规则而导致繁多的括号。

3ADS

ADS的全名是AutoCADDevelopmentSystem,它是AutoCAD的C语言开发系统,ADS本质上是一组可以用C语言编写AutoCAD应用程序的头文件和目标库,它直接利用用户熟悉的各种流行的C语言编译器,将应用程序编译成可执行的文件在AutoCAD环境下运行,这种可以在AutoCAD环境中直接运行的可执行文件叫做ADS应用程序。ADS由于其速度快,又采用结构化的编程体系,因而很适合于高强度的数据处理,如二次开发的机械设计CAD、工程分析CAD、建筑结构CAD、土木工程CAD、化学工程CAD、电气工程CAD等。

4ObjectARX

ObjectARX是一种崭新的开发AutoCAD应用程序的工具,她以C++为编程语言,采用先进的面向对象的编程原理,提供可与AutoCAD直接交互的开发环境,能使用户方便快捷地开发出高效简洁的AutoCAD应用程序。ObjectARX并没有包含在AutoCAD中,可在AutoDESK公司网站中去下载,其最新版本是ObjectARXforAutoCAD2000,它能够对AutoCAD的所有事务进行完整的、先进的、面向对象的设计与开发,并且开发的应用程序速度更快、集成度更高、稳定性更强。ObjectARX从本质上讲,是一种特定的C++编程环境,她包括一组动态链接库(DLL),这些库与AutoCAD在同一地址空间运行并能直接利用AutoCAD核心数据结构和代码,库中包含一组通用工具,使得二次开发者可以充分利用AutoCAD的开放结构,直接访问AutoCAD数据库结构、图形系统以及CAD几何造型核心,以便能在运行期间实时扩展AutoCAD的功能,创建能全面享受AutoCAD固有命令的新命令。ObjectARX的核心是两组关键的API,即AcDb(AutoCAD数据库)和AcEd(AutoCAD编译器),另外还有其它的一些重要库棚尺组件,如AcRX(AutoCAD实时扩展)、AcGi(AutoCAD图形接口)、AcGe(AutoCAD几何库)、ADSRX(AutoCAD开发系统实时扩展)。ObjectARX还可以按需要加载应用程序;使用ObjectARX进行应用开发还可以在同一水平上与Windows系统集成,并与其它Windows应用程序实现交互 *** 作。

5VisualLISP

VisualLISP已经被完整地集成到AutoCAD2000中,羡悉她为开发者提供了崭新的、增强的集成开发环境,一改过去在AutoCAD中内嵌AtuoLISP运行引擎的机制,这样开发者可以直接使用AutoCAD中的对象和反应器,进行更底层的开发。其特点为自身是AutoCAD2000中默认的代码编辑工具;用它开发AutoLISP程序的时间被大大地缩短,原始代码能被保密,以防盗版和被更改;能帮助大家使用ActiveX对象及其事件;使用了流行的有色代码编辑器和完善的调试工具,使大家很容易创建和分析LISP程序的运行情况。在VisualLISP中新增了一些函数:如基于AutoLISP的ActiveX/COM自动化 *** 作接口;用于执行基于AutoCAD内部事件的LISP程序的对象反应器;新增了能够对 *** 作系统文件进行 *** 作的函数。

6VBA

VBA即Mcrosoftoffice中的VisualBasicforApplications,它被集成到AutoCAD2000中。VBA为开发者提供了一种新的选择,也为用户访问AutoCAD2000中丰富的技术框架打开一条新的通道。VBA和AutoCAD2000中强大的ActiveX自动化对象模型的结合,代表了一种新型的定制AutoCAD的模式构架。通过VBA,我们可以 *** 作AutoCAD,控制ActiveX和其它一些应用程序,使之相互之间发生互易活动。

CAD支持AutoLisp程序设计语言, AutoLisp代码可以在任意的文本编辑器中创建.不过AutoCAD也提供了Visual Lisp编辑器,可以支持语法高亮,调试编译什么的.打开Visual

Lisp编辑器有两种方式:

1.

AutoCAD2008及之前的版本,在菜单栏“工具(Tools)"下面,选择”AutoLisp"---->"Visual

Lisp编辑器".(”AutoLisp"---->"导入应用"这个命令是用来加载AutoLisp脚本的.

2.

AutoCAD2009及之后扮此的版本, 在功能区的”管理“选项卡里可以直接打开Visual Lisp编辑器。

首先,AutoLisp也是一个程序设计语言,作为一个编程语言,AutoLisp能做的很多:

扩充AutoCAD的原有命令。任何带有C:前缀的AutoLisp函数,在AutoCAD中都可厅歼迅以像"line"

"circle" "dim"等命令一样使用。

编写代码直接根据国标图库要求来绘出一些常用图库标准件什么的,或是代替人查找各种设计手册中的相关数据并继续使用。

进行参数化绘图,对于一些不特别复杂的系统,提供窄范围、大深度的专业设计自动化或者辅助系统,如发动机装配工具设计、纵使机主轴箱设计等。改老

以上这些功能都可以解决重复性劳动,前提是你得先学会AutoLisp编程语言.

打开Visual Lisp编辑器有两种方式:

1.AutoCAD2008及之前的版本,在菜单栏“工具(Tools)"下面,选择”AutoLisp"---->"Visual

Lisp编辑器"。(”AutoLisp"---->"导入应用"这个命令是用来加载AutoLisp脚本的)

2.AutoCAD2009及之后的版本,在功能区的”管理“选项卡里可以直接打开Visual Lisp编辑器。

如何在AutoCAD Visual Lisp编辑器中创建与编译lisp程序

打开Visual Lisp编辑器之后新建一个文件,并另存为Lisp源文件。然后就可以在编辑窗口里输你的代码了。

代码编辑并调试确认无错误后,就可以在AutoCAD中使用了。

如何在AutoCAD Visual Lisp编辑器中创建与编译lisp程序

左边的按钮表示立即运行当前代码,如果有错误就会提示出来,右边按钮是切换到CAD窗口。

如果不需要再修改代码了还可以将代码进行编译以加速码肆纳运行。

如何在AutoCAD Visual Lisp编辑器中创建与编译lisp程序

根据向导一步步进行编译很简单的。

如果在其他CAD图形文件中需使用当前代码文件或编译后的文件,就按上面第一点的,或者在命令行输入”ap",打开导入应用的对话框。

如何在AutoCAD Visual Lisp编辑器中创建与编译lisp程序

1是用来临时导入的,2是将程序加入CAD的启动组。

lisp解决重复性劳动问题

在设计和绘图中,你觉得都是简单粗暴的重复性工作,就可以考虑用AutoLisp来代替你做。

首先,AutoLisp也是一个程序设计语言,属于Common

Lisp的子集,同时加入了很多自定义的函数。雹搜即然是一个程序语言,就是其他编程语言能做的,它也能做,只是他的lisp语法跟一般的语言有些差另就是了,但是如果是一个没有VB、C#、C++(对应于AutoCAD的开发方式分别是VBA,.net,ObjectArx)的基础的人来说,AutoLisp是很简单而且特别容易上手的一个语言。

作为一个编程语言,AutoLisp能做的很多:

1、扩充AutoCAD的原有命令。任何带有C:前缀的AutoLisp函数,在AutoCAD中都可以像"line" "circle"

"dim"等命令一样使用。

2、编写代码直接根据国标图库要求来绘出一些常用图库标准件什么的,或是代替人查找各迟没种设计手册中的相关数据并继续使用。

3、进行参数化绘图,对于一些不特别复杂的系统,提供窄范围、大深度的专业设计自动化或者辅助系统,如发动机装配工具设计、纵使机主轴箱设计等。

4、DWG文件本质上是AutoCAD在图形生成和编辑中使用的数据库,可以将一些非图形信息的数据(粗糙度,高度,厚度。。)等存于DWG文件中作

为非图形数据库文件,然后利用Lisp程序进行读取等。

各种AutoCAD二次开发方式的比较:

由于 .net语言和c++的学习曲线比较陡峭,所以简单易学的AutoLisp经常与VBA进行对比。(当然如果有VB的基础还是直接学VBA好了。)

AutoLISP擅长建立新命令和产生已有命令的连接。VBA擅长执行包括在其他应用程序中的组件,如Microsoft的Excel和Access。AutoLISP是基于表处理的编程体系,它允许程序员随意地存储和 *** 作传送信息,然而VBA部件包括数据和对复杂情况的各种有效 *** 作,这就是问题变得复杂的地方。

不过,在AutoCAD2000开始,Autodesk公司就在AutoCAD中加入了Visual

Lisp编辑器,引入了许多新函数扩充AutoLisp的功能,并支持ActiveX对象的访问方式,所以使用AutoLisp来与Word\Excel等程序进行交互也是变简单了。

另外,在创建带GUI图形界面的应用程序上,VBA当然是所见即所得的了,而AutoLisp是通过DCL文件来实现GUI的(语法很简单,但做不到所见即所得).这点是AutoLisp略逊一筹了。原文出自[

CAD自学网 ] 转载请保留原文链接:http://www.cadzxw.com/1873.html


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12557177.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存