AutoCAD二次开发工具的比较
AutoCAD软件的二次开发

6. 实体名:为图形对象指定的16进制的数字标识。通过该标识,可找到实体在 图形数据库中的位置,并可进一步对其进行编辑。
例:_$(entlast) 说明:返回最后一个加入图形文件的对象的实体名
第110页/共54页
7. 2 AutoLISP程序设计语言
表的长度:表中的元素个数。
例:(1.0 1.0 0.0) (“this” “that” “the other”) (1 “ONE”) ((a b) c (c d))
长度: 3
3
2
3
长度:(+ 142 3)
(sin (*20.5 pi))
用表可以方便地构造出复杂的数据结构。
5. 选择集:一个或多个图形对象的集合,用户可通过AutoLISP程序向选择集添 加或者从选择集中删除图形对象。
第65页/共54页
7. 1 VisualLISP简介
五、VisualLISP: Autodesk公司为增强AutoLISP程序开发能力而设 计的软件工具。
Visual LISP集成开发环境的组成部分:
语法检查器:可识别错误的AutoLISP结构和内部函数调用中不合适的参数。 文件编译器:可改善程序的执行速度并提供一个有效的开发平台。
Heap:25000 bytes Stack(栈区域):存储函数的变量和局部结构。标准表中嵌套的表越多,函数执行的 递归次数越多,该区域所占的空间越大。
Stack:20000 byets
注意:AutoCAD平台上运行AutoLISP时,用户不能扩展系统的堆或栈空间
2. 内存出错提示信息
堆空间用光:Insufficient node space。 没有足够的内存装载AutoLISP:Insufficient memory-AutoLISP disabled。
关于Autocad二次开发的研究

关于Autocad二次开发的研究,基于Activex科技在有轨运输铁路线上的应用摘要:本文介绍了在Autocad二次开发的中所使用的工具。
在对ActiveX自动科技和Visual Basic进行比较之后,展示了为什么两者被选为开发方法,并给出了源代码。
这些源代码与数据库、Visual Basic和AutoCad之间的通信、关于AutoCAD的主体特点的提取以及释义有关。
这些应用程序很好地用户界面并且具有功能像项目管理、定制以及数据库的操作等等。
项目管理采用了不同的数据结构,这些数据结构主要是建立在不同的线路设计的不同阶段之上的,例如如可行性研究和有线运输的设计研究。
用户化反映了AutoCAD绘图的不同要求。
数据库的操作正在改变、添加、删除、再生、分类以及数据表的统计和记录。
这种软件实现了AutoCAD操作和Access数据库之间的无缝连接。
这给AutoCAD的主体特点带来的改变将会实时地影响数据库的记录。
与之相反,如果数据库已经发生变化,那么对于手工劳动而进行的AutoCAD的有轨运输来说,绘制线条就毫无必要。
这一软件能够自动地根据跟新的数据进行提取,它也展示了一些前期工作,这些前期工作是协调紧接着要进行的工作的前提。
经过北京城市铁路的应用,证明了本研究的可行性。
它减少了由人工干预而产生的错误,节省了设计的时间、促进了以后的行业并且加速了整个交通运输项目的进程。
如果本研究在其他相似行业能得到应用,将会有更广泛的应用前景。
研究背景:随着城市的飞速发展,必须得解决城市的交通问题。
中国是一个发展中国家,人口众多。
随着私家车数量的愈发增多,由机动车所引起的污染问题也变得越来越糟糕。
城市轨道交通因为速度快,污染和噪音少等特点,发展成为一种解决污染问题有效方法。
在过去的几十年里,中国已经有超过三十城市计划发展城市轨道交通。
北京、上海、天津、广州、香港拥有超过193.3千米长的城市轨道交通。
城市轨道交通的前景大好。
关于CAD二次开发方法

AutoCAD二次开发方法的研究
3.Object ARX(AutoCAD Runtime Extension) 由于其编程语言是C++,所以它具有可封装性、 可继承性及多态性的特点。
在这五种开发工具中,这种工具拥有对 AutoCAD最深入的控制能力,能够提供最 多类型的窗体。ARX可以注册自己的命令, 但其便利的代价就是要花费更多时间;能 够访问底层工具;此外,它也是唯一能研究
4.VBA(Visual Basic for Applications) VBA被集成到AutoCAD2000以后所有的版本中。 是为用户访问AutoCAD中丰富的技术框架打开一条新 的通道。 VBA和AutoCAD中强大的ActiveX自动 化对象模型的结合,代表一种新型的定制 模式构架。
AutoCAD二次开发方法的研究
4.VBA(Visual Basic for Applications) VBA是最适合初学者进行二次开发的工具,其由 于采用VB代码使得阅读非常容易。在所有的开发工 具中,这是一种开发速度最快的工具,特别是需要图 形界面的程序时。 对于VBA来说,最大的遗憾是不能向 AutoCAD注册命令。
c#.NET集合了vb的操作简便,程序 易读等特点,和c语言强大的功能特点。
AutoCAD二次开发方法的研究
3.Object ARX(AutoCAD Runtime Extension) Object ARX是AutoCAD R13之后推出的一个以 C++语言为基础的面向对象的开发环境和应用程序接 口,目前多数企业还是采用这种技术进行二次开发。 其程序的本质是windows DLL程序与 AutoCAD共享地址空间,直接访问 AutoCAD数据库、图形系统以及CAD集合 造型核心。
AUTOCAD二次开发工具综述

AutoCAD二次开发工具综述AutoCAD是目前微机上应用最为广泛的通用交互式计算机辅助绘图与设计软件包。
AutoCAD的强大生命力在于它的通用性、多种工业标准和开放的体系结构。
其通用性使得它在机械、电子、航空、船舶、建筑、服装等领域得到了极为广泛的应用。
但是,不同的行业标准使得各领域在使用AutoCAD的过程中均需根据自身特点进行定制或开发。
Autodesk公司为满足广大用户的需求,自AutoCAD v2.18版至AutoCAD2000的短短十几年间,就相继推出了三代二次开发工具,如图1所示。
可以说,AutoCAD的通用性为其二次开发提供了必要条件,而AutoCAD开放的体系结构则使其二次开发成为可能。
图1AutoCAD二次开发工具的演变下面对AutoCAD的三代开发工具进行浅析。
一、第一代开发工具——AutoLISPAutoLISP是1986年随AutoCAD v2.18提供的二次开发工具。
它是一种人工智能语言,是嵌入AutoCAD内部的COMMON LISP的一个子集。
在AutoCAD的二次开发工具中,它是唯一的一种解释型语言。
使用AutoLISP可直接调用几乎所有的AutoCAD命令。
AutoLISP语言最典型的应用之一是实现参数化绘图程序设计,包括尺寸驱动程序和鼠标拖动程序等。
另一个典型应用就是驱动AutoCAD 提供PDB模块构成DCL(Dialog Control Language)文件,创建自己的对话框。
AutoLISP具有以下优点:(1)语言规则十分简单,易学易用;(2)直接针对AutoCAD,易于交互;(3)解释执行,立竿见影。
AutoLISP的缺点是:(1)功能单一,综合处理能力差;(2)解释执行,程序运行速度慢;(3)缺乏很好的保护机制,源程序保密性差;(4)LISP用表来描述一切,并不能很好地反映现实世界和过程,跟人的思维方式也不一致;(5)不能直接访问硬件设备、进行二进制文件的读写。
CAD二次开发方法研究与实现

CAD二次开发方法研究与实现随着计算机辅助设计(CAD)技术的不断发展,越来越多的行业开始采用CAD软件进行产品设计和开发。
然而,市面上的CAD软件往往不能满足特定领域的需求,因此,CAD二次开发应运而生。
本文将介绍CAD二次开发方法的基本原理和常用工具,并通过实际案例探究其应用效果和优缺点,最后总结CAD二次开发方法的应用前景和未来发展方向。
本文的主题为CAD二次开发方法研究与实现。
通过对CAD二次开发的基本原理、常用工具、案例探究和技术总结等方面的阐述,帮助读者了解CAD二次开发的重要性和实现方法。
CAD二次开发是指基于现有的CAD软件平台,根据特定领域的需求,定制化开发适合用户需求的软件工具或系统。
它通常包括界面设计、功能开发、数据处理和图形输出等环节。
(1)AutoLISP:AutoLISP是AutoCAD内置的编程语言,易于学习,适合初学者。
它可以通过编写程序对AutoCAD进行定制化操作,实现二维图形绘制、三维模型构建等功能。
(2)Visual Basic for Applications(VBA):VBA是微软开发的一种编程语言,它可以在AutoCAD中通过宏记录器进行二次开发。
VBA 语法相对较为严谨,具有较好的调试性能,适用于复杂的定制化开发项目。
(3)C++和ObjectARX:对于大型的二次开发项目,可能需要使用C++和ObjectARX等更为高级的语言进行开发。
ObjectARX是Autodesk公司开发的一套基于C++的CAD二次开发库,提供了丰富的API接口,可以实现高性能、复杂的功能开发。
(1)模块化编程:将复杂的功能划分为多个独立的模块,每个模块都具有特定的功能。
通过模块的组合和调用,实现整个系统的功能。
这种模块化编程方式可以提高代码的可重用性和可维护性。
(2)参数化设计:在CAD二次开发中,参数化设计是一种常见的开发方式。
通过定义一系列的参数来描述几何图形、约束关系等,从而实现图形的参数化。
2021年如何选择autocad二次开发的工具

如何选择autocad二次开发的工具AutoCAD提供了三种主要的开发工具,分别是:使用C/C++的ObjectARX, VB/VBA 的ActiveX 开发,以及AutoLISP/VisualLISP 开发工具。
每一个开发者都有自己的爱好,但是抛开所有的偏爱,人们经常想知道哪一种最好,我到底应该选择哪种工具?给这些人的答案是: “它取决于你要完成什么工作。
〃每一种开发工具都有不同的东西,在某谢情况下都有不可比拟的优点。
当决定究竟使用什么开发工具时, 你可以问自己四个问题:哪种语言让我感觉最顺手(舒服)?我有多少时间?谁是我的目标用户,他们有多少使用AutoCAD的经验?我到底需要对AutoCAD控制到什么程度,需要多少可能的窗口类型来尽快完成工作?当我介绍不同开发工具所具有的不同功能时,你可能会明口为什么这四个问题是重要的。
在谈及这几种开发工具时,我仅仅将它们看作在AutoCAD中使用的功能,而不将它们看作独立的应用程序。
ObjectARX:在三种开发工具中,这种工具拥有对AutoCAD最深入的控制能力,能够提供最多类型的窗体。
使用ARX可以向AutoCAD注册自己的命令,用户运行你的程序时无需了解关于AutoCAD更多的知识。
这种便利的代价就是编制ARX程序比VBA和LISP程序需要花费更多的时间,因此用来编制简单的绘图工具有点浪费了。
要掌握ARX的前提是你对C和C++非常熟悉,从个人观点来说,我最喜欢这种工具,但那是因为我做的99%的程序都是用C和C++语言,选择ARX意味着我不用学习一门新语言。
对我来说,回答“哪种语言让我感觉最顺手?〃就足够了。
ARX能够访问很多的AutoCAD底层工具(这些东西可能VBA和LISP并不能访问),这是大多数开发者选择ARX 的主要原因, 他们需要作一些用其他两种开发工具不能完成的工作。
此外,这也是唯一一种能够确保你的代码安全(不被别人阅读或非法复制)的开发工具。
AutoCAD二次开发

第4章AutoCAD二次开发技术4.1 AutoCAD开发系统概述AutoCAD的二次开发途径主要有两个,即文件开发和程序开发。
文件开发是指根据用户的具体开发需要,按照AutoCAD提供的方法和文件格式,通过编辑AutoCAD系统所支持的文本文件(如ACAD.MNU和ACAD.LIN等)或建立同种类型新的文本文件,来开发AutoCAD,使其满足用户特定需要的方法。
程序开发是指利用AutoCAD提供的编程环境和开发工具(称为AutoCAD应用程序接口,缩写为API),通过编写程序来实现对AutoCAD开发的方法。
借助于程序开发,可为AutoCAD扩充新的命令或定义,以满足用户具体需要。
表4-1 文件开发可实现的开发内容和文件类型文件类型开发内容ACAD.PGP AutoCAD命令的用户化(定义外部命令和命令别名等)ACAD.LIN, *.LIN 修改标准线型,建立用户自定义线型及线型库ACAD.PAT, *.PAT 修改标准填充图案,建立用户自定义图案及图案库*.SCR 建立用户的命令脚本文件,自动执行一系列AutoCAD命令*.SLD, *.SLB 建立用户的幻灯片及幻灯片库ACAD.SHP, *.SHP 建立用户的自定义符号库和自定义字体文件*.MNU, *.MNS 开发用户的自定义菜单(包括下拉菜单、工具栏菜单、图像菜单、屏幕菜单、定点设备菜单和数字化仪菜单等)*.DXF 实现AutoCAD与其它CAD系统之间数据交换的中间文件,也是AutoCAD与其它用户应用程序之间图形数据的中间文件*.DCL 建立用户的自定义对话框表4-2 程序开发可实现的开发内容和文件类型程序文件类型AutoCAD简称语言环境可执行文件类型*.LSPAutoCAD*.LSP AutoLISP*.CPP, *.C ARX Visual C++ *.EXEBasic*.EXEVisualX*.BAS ActiveAutomation下图反映了AutoCAD 二次开发工具的演变:1986198719881989199019911992199319941995199619971998199920002001AutoLISPADS DCL ADS-RX Object ARX Active XAutomationVBA Visual LISP 图4-1 AutoCAD 二次开发工具的演变4.2 命令的用户化4.2.1 程序参数文件(ACAD.PGP)的结构与功能AutoCAD 程序参数文件(ACAD.PGP)是一个文本文件,用于存放AutoCAD 定义的命令。
NET平台的AutoCAD二次开发

NET平台的AutoCAD二次开发当前AutoCAD的二次开发工具主要有:VisualLisp、VBA和ObjectARX等。
其中,VisualLisp与VBA较为简单,特别是VBA,使用方便且开发速度较快,但其功能相比ObjectARX有所不足,尤其是对面向对象的功能支持不好。
而ObjectARX基于VC平台,在C++的支持下,其功能非常强大,可以很好地运用各种面向对象技术,但其缺点是发开速度比较慢,同时对开发人员的能力要求较高。
.NET是微软新推出的开发平台,具有众多优点。
基于.NET平台对AutoCAD 进行二次开发,可充分利用.NET的各种优势,在保证功能强大的前提下大大提高开发速度。
一、基于.NET的开发 API简介在新推出的AutoCAD 2006中,Autodesk为其开发增加了 API。
API提供了一系列托管的外包类(Managed Wrapper Class),使开发人员可在.NET框架下,使用任何支持.NET的语言,如、C# 和Managed C++等对AutoCAD进行二次开发。
其优点是完全面向对象,在拥有与C++相匹配的强大功能的同时,具有方便易用的特点,是较理想的AutoCAD二次开发工具。
2 API与传统ObjectARX的主要区别.NET API与传统ObjectARX的区别主要源于在.NET环境下开发应用程序与在VC环境下开发应用程序的区别。
首先,在VC环境下,程序员需要自己管理内存的申请和释放,而.NET采用了垃圾回收机制,由.NET框架自行判断内存回收的时机并实行回收,从而解决了令C++程序员头痛的内存泄漏问题。
也正是由于这个特点,在.NET环境下不能象在C++环境下那样利用析构函数释放其他的资源,需要程序员在程序中显式地释放。
在.NET API中,主要通过Dispose来函数进行资源的释放。
其次,ObjectARX中的各种反应器(Reactor)在.NET API中由外包类映射为各种事件(Event),可通过定义这些事件的响应函数来响应AutoCAD的各种操作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
AutoCAD二次开发工具的比较
AutoCAD是美国Autodesk公司的产品,是当今世界最为流行的计算机辅助设计软件之一,广泛应用于机械、建筑、电子、工程等许多领域。
它如此风靡的原因除了具有各种强大的绘图及编辑功能、友好的用户界面、易于操作等特性之外,还在于它所具有的开放式结构(Open Architecture,即允许用户开发自己的命令、标准库文件和各种应用程序)使得通过对AutoCAD进行二次开发来完成各类设计工作变得更加容易。
现在对AutoCAD二次开发工具的几种方法作一个介绍,对比各自的优势及不足,给出各自的适用条件。
1.AutoLISP
AutoLISP是AutoCAD最早的一种二次开发语言。
它是一种嵌入在AutoCAD内部的CommonLisp程序设计语言子集,并扩充了极强的图形处理功能。
此外还可为AutoCAD添加某些特殊的函数功能,如制作幻灯片、菜单等。
AutoLISP应用程序既可完成通常的科学计算和数学分析,又能直接调用几乎全部AutoCAD命令。
这两者的有机结合,使它成为专业CAD开发者强有力的理想工具。
而Lisp是目前研究和开发人工智能与专家系统CAD的主要编程语言。
AutoLISP有如下优点:(1)语言规则十分简单,易学易用。
对计算机了解不太深入的工程专业人员,仅需经短期的学习,就可以熟练掌握这门语言。
该语言的简洁性是其它许多计算机语言所无法相比
的。
(2)直接针对AutoCAD,解释执行,易于交互。
AutoLISP提供的大多数函数都是直接针对AutoCAD操作的,用AutoLISP可编写访问AutoCAD图形数据库(DWG)的操作。
(3)解释执行立竿见影。
程序员既可以一次运行一段AutoLISP代码,也可以在AutoCAD 的”Command:”下逐条键入AutoLISP指令,立即得到结果。
随着计算机技术的发展,CAD编程逐渐复杂,代码越来越庞大,AutoLISP的缺点也越来越明显。
如,综合处理能力差、程序运行速度慢、软件质量不易保证、开发环境集成度低和与人的思维方式不太一致等。
由于AutoLISP的这些特点,它仅适合于有能力的终端用户作些自己的开发任务,如今AutoLISP的使用已经逐渐被其它几种开发工具所取代。
2.ADS
它是AutoCAD开发系统(AutoCAD Development)的简称。
ADS 的编程界面可使用户用C语言来实现AutoCAD的用户化,既可运行第三方开发的ADS应用程序,也可以编写自己的ADS应用程序。
与AutoLISP相比,ADS程序的优越性如下:(1)具备错综复杂的综合大规模处理能力;(2)由于是编译开发环境,可以检查程序设计语言的逻辑错误,且执行速度快;(3)程序源代码的可读性好于LISP;(4)引入C++高级语言后,ADS也同样具有面向对象的功能,程序层次分明,清晰可读,从而使软件的可维护性得到提高;(5)经过良好封装,ADS C++的程序代码比ADS C程序简洁得多,许多时候比AutoLISP更简洁;(6)ADS C++的程序能够减少程序出错的概率。
由于C语言的介入,ADS也有一些不便之处。
如C语言比LISP语言复杂得多,难以在短时间内掌握;ADS程序的隐藏错误会导致AutoCAD 乃至操作系统崩溃;由于是编译运行,不易见到代码的效果;C语言的ADS程序一般比AutoLISP程序的源代码要繁冗。
由此可见,ADS 开发者必须先对C/C++和AutoLISP语言编程技术及AutoCAD功能有较深入的了解。
3.Object ARX
ARX是AutoCAD R13之后推出的一个全新的、真正意义上的面向对象的开发环境。
它采用各种类库,功能更为强大,编程更为简洁。
其开发语言为VC++。
ARX程序有如下特征:(1)能力强。
ARX本质上是Windows动态连接库(DLL)程序,通过与AutoCAD共享地址空间,直接调用AutoCAD核心函数,可直接访问AutoCAD数据库的数据结构和代码。
ARX程序与AutoCAD、Windows之间均采用消息传递机制直接通讯。
它允许用户创建新的AutoCAD命令,这些命令可以像AutoCAD自身的命令一样被AutoLISP和ADS调用。
可定义AutoCAD数据库对象,包括可见的实体和不可见的字典。
ARX定义的实体往往可以用较少的数据,就可以实现较复杂的显示,有利于减少磁盘文件的尺寸。
(2)速度快。
由于ARX应用程序本身是AutoCAD的一部分,即ACAD.EXE 调用的动态连接库(DLL),它拥有同AutoCXAD一样的内存地址空间,直接访问AutoCAD的各种内存对象,而AutoLISP和ADS都是通过函数间接地访问AutoCAD的。
这样在访问AutoCAD数据库的操作
上,ARX应用程序比AutoLISP和ADS的速度要快得多。
(3)面向对象编程。
ADS提供了6个主要类库(运行扩展库、命令扩展库、数据库访问库、通用几何库、图形界面库、边界描述库),以对AutoCAD 及常见的事物进行访问和控制。
然而,ARX程序比ADS程序具备更大的危险性和破坏性。
首先,ARX程序比ADS要复杂得多。
ARX程序设计的错误,经常导致AutoCAD崩溃,甚至操作系统的崩溃。
其次,ARX应用程序是一个动态连接库,调试时需要频繁启动AutoCAD,额外消耗的时间比Windows下的ADS多。
尽管如此,从二次开发长远的角度来看,掌握和利用ARX技术是AutoCAD二次开发的很好选择。
4.Visual LISP
Visual LISP(VLISP)是为加速AutoCAD程序开发而设计的软件工具,是AutoLISP的换代产品,与AutoLISP完全兼容,并提供它的所有功能。
VLISP的集成开发环境具备许多功能,使编写、修改代码以及测试和调试程序更加容易。
另外,VLISP还提供了用于发布由AutoLISP编写的独立应用程序的工具。
Visual LISP有一个交互式智能控制台,它还具有强大的文本编辑器和格式化器,使编程更加轻松高效。
此特性使Visual LISP成为编写LISP程序更有效的工具。
然而,Visual LISP只是AutoLISP功能的扩展,没有实质更为强大的功能。
5.VBA
由于VBA(Visual Basic for Application)出现得较晚,使用时又
必须内置于应用程序中,所以许多编程人员对它比较陌生。
然而,VBA很好地继承了Basic和Visual Basic易学、易用的特点,而且具备了最新的开发技术和强大的开发功能,所以日益受到应用软件开发者的青睐。
正是由于VBA对主应用程序的这种依附关系,使得它与主应用程序之间的通信变得简单而高效,即其代码完全是在进程内执行的。
尽管VBA的代码目前在程序中仍以解释的方式执行,但它与AutoCAD 完全共享内存空间,所以执行速度比用C语言开发的ADS应用程序还要快。
同时由于它是VB的子集,其语言结构十分简洁。
VBA提供了高质量的用户化编程能力,能够使得AutoCAD数据与其它VBA应用程序直接共享。
最重要的是VBA的加入,扩展了AutoCAD集成用户化工具的能力(集成了AutoLISP、Visual LISP和ObjectARX API等工具),为访问AutoCAD软件的多种技术框架提供了新的选择和新的开放机会,可以按所需求的工作方式进行应用程序的用户化,也可以从战略上考虑开发基于AutoCAD的应用程序。
此外,VBA的对话框构件快速、高效,允许开发者快速地定制程序原型和得到设计信息的及时反馈;其工程可以单独存在,也可以嵌入在图形中,这给开发者在发行应用程序时以极大的灵活性;并且,强化了AutoCAD与数据库的通讯能力。