|
时间: 2004-8-18 周三, 下午7:36
标题: 电气CAD连载(2)
作者:春洋
--------------------------------------------------------------------------------
第二章 面向对象的电力系统应用软件图示化技术
2.1面向对象技术的概念
面向对象技术(OOT-Object Orient Technology)包括三部分内容:面向对象分析(OOA-Object Orient Analysis),面向对象设计(OOD-Object Orient Design)和面向对象编程(OOP-Object Orient Program)。
在现实科学研究中,不同的研究人员对客观事物不同方面的性质各有兴趣。当我们研究电力系统静态稳定时,我们需要的是电力系统元件的静态特性,研究动态稳定时,需要的是动态特性,但在这些研究中,有很多时候,我们对为什么元件会有这些特性并不感兴趣。在软件设计中也是如此,程序员对模块和函数的输入,输出变量以及提供的服务更感兴趣,而对模块内部的功能实现并不关心。这就要求模块和函数具有“黑盒”的性质,即将模块复杂的内部实现过程封装起来。这样即简化了应用,又保护了模块的私有数据。但在传统的过程式编程的方法下,实现“黑盒”是非常困难的,程序代码的重用性也很低。
面向对象技术的基本概念包括:对象、类、封装、继承和派生等等。
对象是对现实实体的抽象,它包括数据和操作两部分。数据用于描述对象的性质、状态,操作则用于描述该对象的行为。对象一旦建立,就可重复使用,就像硬件电路的一个集成块,可以用在任何需要此功能的地方。
类用于表示具有相同或相似性质的一组对象,也就是对象的数据类型。
封装就是把对象的数据和操作结合成一个有机的整体,并尽可能地隐蔽对象的内部细节。它是面向对象方法的一个重要原则,也是面向对象技术必须提供的一种机制。
类的继承,是新的类从已有的类那里得到已有的特性。从已有的类产生新的类的过程就是类的派生。
本文使用的ActiveX Automation技术就是一种完全面向对象的技术,AutoCAD的绝大多数功能均以方法和属性的方式被封装在ActiveX对象中,不需要了解ActiveX对象内部,只需通过对ActiveX对象的方法、属性的引用就可以实现对AutoCAD的编程。
2.2 面向图形对象电力应用软件开发的主要内容和方法
AutoCAD是作为一个通用绘图系统而设计的,电力行业有自己的行业和专业标准,因而AutoCAD不可能完全满足电力行业用户的具体要求。于是,通过系统提供的开放式体系结构,用户根据自己的需求来改进和扩充AutoCAD的许多功能,使它更加符合电力行业的专业特点以及绘图要求。通过对AutoCAD的二次开发,可以为电力系统的规划设计、潮流分析、短路计算等应用软件提供功能强大的图形绘制和显示系统、友好的人机交互界面、完善的输入输出接口。从形式上看除可以通过系统变量定制系统参数外,AutoCAD的开发途径主要有两个,即文件开发和程序开发。文件开发是指根据用户的具体开发需求,按照AutoCAD提供的方法和文件格式,通过编辑AutoCAD系统所支持的ASCII标准功能文件(如:ACAD.MNU和ACAD.LIN等)或建立同种类型(扩展名)新的ASCII码功能文件,来开发AutoCAD,使其满足用户特定需要的方法。如为了方便地在AutoCAD中绘制电力系统网络图形,可以按照AutoCAD的菜单文件格式,通过文本编辑器把电气元件的菜单和工具栏添加到ACAD.MNU文件中去,这样用户就可以使用菜单和工具栏来调用绘制电气图元的命令。
程序开发是指利用AutoCAD提供的编程环境和开发工具(称为AutoCAD应用程序接口,缩写为API),通过编写程序来实现对AutoCAD开发的方法。借助于程序开发,可为AutoCAD扩充新的命令或定义,创建电气元件的菜单和工具栏,以满足用户具体需要;可以通过AutoCAD事件和对象的属性来与电力应用软件进行数据交换等等。本文使用的是程序开发,所以下面介绍程序开发所使用的工具。
2.3电力应用软件图形界面的开发工具
AutoCAD系统的定制开发工具,又称为AutoCAD开发工具,是将AutoCAD环境用户化的基本手段。在AutoCAD 2000中,可以使用的开发工具主要有:ObjectARX、AutoLISP、VisualLISP、Java、Visual BASIC和Delphi等。
在AutoCAD提供的所有开发工具中,Lisp语言是最早提供的,它是一种表处理语言,通过IPC(进程间通讯)与AutoCAD交互,并且是被解释执行的,故运行速度比较慢。计算不是它的长项,在有大量运算的时候,速度会更加慢,因而它不适合作为电力应用软件图形界面的开发工具。而ARX(AutoCAD Runtime Extension)是AutoCAD R13之后推出的一个以C++语言为基础的面向对象的开发环境和应用程序接口,ARX程序本质上为Windows动态链接库(DLL)程序,与AutoCAD共享地址空间,直接调用AutoCAD的核心函数;ARX程序与AutoCAD、Windows之间均采用Windows消息传递机制直接通讯, 避免了IPC的系统开销和由此引起的性能下降,从而它的运行速度是最快的。但由于ARX应用程序共享的AutoCAD地址空间,一旦失败,AutoCAD甚至Windows进程也随之崩溃。并且ARX依赖于C++语言,开发者不但要对AutoCAD非常熟悉,还要熟练掌握C++编程,而且开发人员必须有足够的编程经验才能处理开发中的各种问题。这就需要花更多的时间来学习,因此ARX这种开发模式不适于在专业设计工程师中间普及,一 |
|