(特变电工衡阳变压器有限公司湖南衡阳421007)
摘要:介绍了AutoCAD二次开发的基本概念,主要的开发接口以及在机电产品设计过程中的具体应用。
关键词:autocad;二次开发
1、引言
当前,随着计算机技术的高速发展,计算机辅助设计(CAD,ComputerAidedDesign)在全球工程领域广泛应用。AutoCAD是Autodesk公司开发的交互式CAD软件,由于界面友好、操作简单、功能完善、性能稳定,占有率位居世界第一,成为了CAD软件的代表,在机械、电气电子、船舶、汽车、军工、建筑、测绘、规划等许多行业得到了广泛的应用。
2、AutoCAD二次开发概述
二次开发是在现有软件产品的基础上,针对使用者个性化的需求,使用软件提供的二次开发接口进行定制修改、扩展功能。由于AutoCAD是一个通用的图形平台,不针对具体行业提供专业设计的功能和服务,无法满足所有行业的需求,所以AutoCAD二次开发就应运而生。AutoCAD具有开放的体系结构,允许用户和开发者采用高级编程语言对其进行扩充和修改(即二次开发),能最大限度地满足用户的特殊要求。
3、AutoCAD二次开发的接口
目前AutoCAD提供的开发接口有AutoLISP/VisualLisp、ActiveX/VBA/COM、ObjectARX、.NET等,用户可以根据自己的实际情况和需求来决定采用哪种API进行开发,下面对上述接口进行简单的介绍。
图1二次开发接口原理
图2开发接口对应的编程语言
3.1、AutoLISP/VisualLISP
AutoLISP是AutoCAD最早提供的二次开发接口,它起源于LISP语言,嵌入在AutoCAD的内部,是LISP语言和AutoCAD有机结合的产物。
VisualLISP是Autodesk公司为了加速AutoLISP程序开发而设计的软件开发工具,是一个完整的集成开发环境。利用VisualLISP语言可以进行各种工程分析计算、自动绘制复杂的图形,还可以定义新的AutoCAD命令、驱动对话框、控制菜单,为AutoCAD扩充具有一定智能化、参数化的功能,可以使设计人员的主要精力用于产品的构思和创新设计上,实现真正意义上的计算机辅助设计。
VisualLISP是新一代的AutoLISP语言,兼容以前的AutoLISP程序,可以便捷、高效地开发AutoLISP程序,可以经过编译得到运行效率更高、代码更加紧凑、源代码受到保护的应用程序。
3.2、ActiveX/VBA/COM
AutoCAD提供了ActiveXAutomation编程接口,用户可以使用ActiveX客户编程语言如VisualBasic等来定制AutoCAD功能。AutoCAD本身集成了VBA(VisualBasicforApplications)开发环境(VBAIDE),开发者可以通过VBA开发AutoCAD的进程内程序,另外也可以通过COM机制使用支持COM开发的语言,如VisualBasic、Delphi等开发AutoCAD的进程外程序,总体来说VBA语言简单易用,比较容易掌握。
3.3、ObjectARX
ObjectARX是一种以C++编程语言为基础的面向对象的开发环境和应用程序接口,ObjectARX程序本质上为Windows动态链接库程序,这些库与AutoCAD在同一地址环境空间运行并能直接利用AutoCAD的核心数据结构和代码,使得开发者能够直接访问AutoCAD数据结构、图形系统以及几何造型核心,能够在运行期间实时扩展AutoCAD的功能、对象和协议,是目前为止AutoCAD最强大的定制开发工具。
使用ObjectARX可以开发快速、高效、简洁的应用程序,用户可以通过其强大的功能开发专业的CAD软件系统。
3.4、AutoCAD.NET
从AutoCAD2006开始,Autodesk为其开发增加了.NETAPI。.NETAPI提供了一系列托管的外包类(ManagedWrapperClass),使开发人员可在.NET框架下,使用任何支持.NET的语言,如VB.NET、C#和ManagedC++等对AutoCAD进行二次开发。其优点是完全面向对象,在拥有与C++相匹配的强大功能的同时,具有方便易用的特点,是较理想的AutoCAD二次开发工具。
表1AutoCAD各种API的比较
综合比较,VisualLISP(AutoLISP)和VBA(VB)简单易学,开发周期短,适合非专业人员开发一些小型的实用工具;对开发速度和性能要求都很高的解决方案或者大型CAD应用软件,建议使用ObjectARX和.NET作为开发工具,有时候也可以考虑各个API的优缺点,在开发的系统中使用多种API集成开发。
4、AutoCAD二次开发的应用举例
得益于AutoCAD提供的多种API接口和强大的扩展功能,广大的机电行业工程技术人员从各自的行业出发,二次开发了数不胜数的功能。笔者结合自己的工作简单阐述几种常见的功能。
4.1、绘图环境设置
每个企业在机械绘图的时候都要遵守国家标准和企业自己的标准。开发者可以根据使用需求定制本企业的绘图环境,供所有设计人员使用。可以提高图纸设计的标准化程度。绘图环境定制开发包含以下内容:
(1)创建符合企业要求的绘图线形、填充图案、文字样式、标注样式。
(2)定制命令或者用户UI。
(3)定制企业的标准图框。
4.2、参数化图纸设计
在机电产品设计领域,很多的产品都是标准化、系列化和通用程度比较高的定型产品。这些产品的图纸有着高度的相似性,很多只是尺寸不同而已。这些产品如果没有参数化设计软件,靠设计人员手动设计的话,工作量非常大,也非常容易出错。有了参数化设计软件的话,设计人员只需要在软件界面上输入数据,图纸就可以自动出来,这就能够极大的提高设计效率,提高设计的标准化程度、降低设计的差错率。
4.3、排版打印
AutoCAD本身带打印功能,但是不能自动排版打印,工程设计最终出设计蓝图的时候需要将多张电子版图纸排版打印成硫酸纸图纸,再晒成蓝图。这时候设计人员需要对所有图纸手动排版,需要花费不少的时间。开发人员可以根据本企业打印机和图纸标准格式在CAD上二次开发排版打印软件,实现多张图纸自动排版和打印。
4.3、图库管理
机电制造企业用到的标准件、组配件和元器件通常都是定型产品,其外形图和原理图一般都是固定不变的,设计者绘图时每次都需要重新绘制或者从其它图纸中复制过来。开发图库管理软件后,可以将用到的外形图、原理图做成图元,用图库管理软件管理起来,使用时直接在软件中插入即可,省去绘制和复制的时间,所有人员使用一份图元,还可以提高设计的标准化程度。
5、总结
综上所述,AutoCAD是采用开放架构体系的通用CAD平台,提供了丰富的二次开发接口,用户可根据需要定制开发自己的功能。这些功能在提高产品设计的效率和标准化程度,降低错误率等方面有着十分重要的意义。同时也能提高企业的整体效率,增加企业的效益。
参考文献
[1]秦洪现,崔惠岚,孙剑.AUTODESK系列产品开发培训教程[M].北京:化学工业出版社,2008.
[2]王福军,张志明,张师伟.AutoCAD2000环境下C/VisualC++应用程序开发教程[M].北京:北京希望电子出版社,2000.
[3]凡新,徐吉福,王群伟,李小蓉.基于EXCELVBA+AutoCAD的铁心叠片参数化设计[J].电工建设,2018,12:65-66.