面向对象的电力图形系统的分析和设计

时间:2011-02-11来源:网络

  其工作过程如下:
  a.编辑:在工作区间点击相应的电气元件的位图或按钮控件;
  b.增加:在相应的电气元件的集合管理类增加一个元件对象并得到指向该元件的对象指针;
  c.绘制:利用该对象指针调用绘制函数进行该类图元的绘制;
  d.获取图层和颜色:获取图元的图层和颜色以完成绘制;
  e.将图元显示在客户区。

2 图形系统的设计
   基于以上对图形系统的分析以及所建的OOA模型,可对图形系统设计如下:
2.1 图形界面的设计
  图形系统作为人机交互的主要渠道,除了要能实现强大的绘图与交互功能外,还要显示美观,结构清晰,与用户交互过程要简单方便。本图形系统设计了具有Windows风格的界面,创建了一个工作区间窗口,以进行图元编辑及图层管理,并设计工具条以及一系列界面美观、交互方便的对话框。具体界面可参看本文所附例图3。

2.2电气图元数据结构的设计
  对于图形系统而言,最基础也是最重要的功能,是对不同类型电力系统元件的绘制和编辑操作。采用面向对象思想把数据和功能合为一个单元,具体设计为每种元件都定义一个类,具体一个元件对应一个对象。每种元件都具有自己各种属性和数据,如大小、形状、位置等,也具有自己的各种行为,如绘制、移动、旋转、复制、删除等,利用面向对象技术把数据和操作封装在一起,从而实现图形系统的各种功能和操作。同时,各种元件除具有自己特殊的属性和行为外,还有一些共同的地方,如颜色、画笔宽度等属性。这样就可以利用C++类继承和派生的特点,建立不同元件的公共抽象基类,其他元件类在此基础上派生而成,这样极大的减轻了编程量,消除了冗余的代码,又增强了程序的可读性。
2.3电气图元管理的设计
  在电力系统图形编辑过程中,所涉及的图元众多,如何把它们有序的组织起来,一直是比较困难的问题。在本图形系统中由于数据类型比较多且交换频繁,所以采用了基于C++类模板CTypedPtrArray来实现对指向图形元素对象的指针的组织和管理。每个图形元素是图形元素类创建的一个对象,在创建这个对象时得到指向这个对象的指针,通过类模板CTypedPtrArray建立对象指针数组来管理这些指针,实现图元对象的增加、删除等操作,进而达到管理所有图元对象的目的。
2.4图形信息管理的设计
  为了能灵活的对图元的颜色以及对图层的管理,本图形系统设计了一个图层结构和一个图形信息类。图层结构包含了图层的名称、图层的唯一识别号以及图层的显示状态(布尔型变量)。图形信息类的属性包括一个存储颜色列表的数组和一个存储图层列表的图层结构数组,服务包括获取颜色以及获取图层的显示状态。在创建完一个图元对象,并请求该对象的“绘制”服务时,首先向图形信息类请求“获取图层的显示状态”服务,判断该对象所属图层的显示状态,如果处于不显示的状态则返回,服务不再继续,否则,向图形信息管理类请求“获取颜色”服务来创建画笔,进行图元的绘制。基于以上的服务流程以及图形系统的重绘机制,只需设计出图形信息管理交互界面,对图形信息类的颜色列表数组和图层结构数组进行相应的操作即可实现图形颜色和图层的管理。
2.5图形方式下参数录入的设计
  本图形系统设计了一系列元件参数对话框,并编写了相应的代码。用户能够在网络接线图上方便迅速的进行数据处理。只要双击接线图上某种类型的元件,应用程序便会弹出同该类元件相对应的元件参数对话框,用户通过填写对话框各项参数,即可完成对某一图元的建模,或对已建模图元的参数的修改。这种图形化的参数录入方式既直观又明了,后台数据库的读写由应用程序完成,对普通用户完全屏蔽,用户不用再去担心文件格式的正确与否,所要做的仅仅是鼠标的点击和参数对话框的填写,从而大大提高了数据处理的效率。
2.6数据库的设计
  图形系统是作为一个独立的模块镶嵌在电力系统分析软件中的,最终图形中的各设备图元的参数和拓扑信息要传送给其它的各分析功能模块,一个好的数据接口最能体现模块的独立性、易用性和通用性。基于图形系统的特点采用Microsoft Access进行数据库开发,在数据库结构上,采用按元器件分类列表的关系数据库结构。
  在创建完系统接线图对图元进行参数录入后,也就把图元的图形类参数以及系统类参数存入数据库,此时的数据库里存放的图形类参数包括图元的坐标、长度以及放置方向等基本图形信息,我们称之为“生数据库”。但是,图形系统的数据库最终是面向各种电力系统分析软件的,而这些分析软件需求的往往不是这些基本的图形信息,而是进行分析所必需的拓扑信息。所以本图形系统对数据库进行了转换,在“生数据库”建立后,由嵌入SQL语句的主程序对“生数据库”进行查询和转换,生成包含电网拓扑信息的通用数据库——“熟数据库”。

3 图形系统的特点
  (1) 能够方便、快捷的绘制出各种电力系统常用元件,如发电机、变压器、母线、刀闸等,并且能够对图中的元件进行任意移动和删除。
  (2) 具有强大的编辑功能。能够对图中的一个或多个元件进行选择、复制、拷贝、粘贴、旋转、撤销等工作。为了区别不同的电压等级和其他属性,用户在绘制接线图时能够任意指定当前绘制的线型、线宽、颜色,文字标注的字体和字号,对已绘制的图元,也能随意改变上述属性。
  (3) 能对图形进行分层管理。能动态创建图层,图层创建的同时,工作区间图层视图的树结构自动增加一条树的分支,图层创建完后只要双击某一树支即可对该树支对应的图层进行浏览。每个图元都属于特定的图层,若用户选择了当前活动图层,则仅显示属于此图层的图元。这种图层的概念可以用来标示不同电压等级的图元。
  (4) 在网络接线图上实现了可视化操作。能通过鼠标点触相应元件,即可实现变压器分接头的切换、刀闸和开关的开合以及电容的投切。
  (5) 本图形系统采用了面向对象技术,
对各种电气元件设备有统一的操作模式,能很方便的将新的元件引入编辑系统以及扩充新的功能模块,具有一定的可拓展性和开放性。

4 结论
  本图形系统利用Visual C++和Microsoft Access混合编程的方法进行开发,基本做到了人机交互良好、操作方便,并且与数据库紧密相连。由于采用了面向对象的方法,图形系统的扩充和维护都比较方便。目前本图形系统在操作票系统以及继保整定方面得到了应用,实践证明,该图形系统具有很高的实用性和推广价值。

1 2

关键词: 分析 设计 系统 图形 对象 电力 面向

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版