|
|
摘 要:介紹了面向對象的設計思想和對象的抽象機理在電網CAD(PWCAD)系統中的應用以及ObjectARX編程技術。闡述了通過利用AutoCAD核心數據庫的開放結構和ObjectARX提供的基類及類的繼承、派生機制定義專業對象的過程以及建模系統的數據交換技術,并由此建立了PWCAD的對象模型。 關鍵詞:面向對象;繼承;ObjectARXCAD
隨著電力系統分析軟件朝著圖形化方向發展,圖形系統在各分析軟件中發揮著越來越重要的作用。過去電力系統圖形系統的開發大都是借助ADS或AutoLisp編程接口在AutoCAD基礎上進行二次開發的。而ADS和AutoLisp都是面向過程的開發接口,開發的程序不僅可讀性差,而且條件稍作更改,程序要作很大變動,可擴充性及可維護性差。并且它們大都沒有與外部數據庫進行數據交換。利用AutoCAD二次開發技術ObjectARX將面向對象的方法及與外部數據庫進行數據交換的技術應用于電網CAD的研究和開發。
1 面向對象的電力CAD建模分析
將面向對象技術應用于電力系統網絡的建模領域,是要從問題空間出發,以對象作為基本概念,通過對象的確定、分解和分類,建立能用來進行面向對象系統分析的電力網絡關系圖。通過數據結構的抽象和行為抽象,描述系統的靜態屬性和動態屬性的分析,得到由對象所構成的層次結構模型,形成對問題域完整的語義描述,完成電網CAD系統的模型設計。
2 AutoCAD和ObjectARX
開發的環境和平臺軟件選用了國際上先進的面向對象的CAD開發平臺AutoCAD2000的ObjectARX。
AutoDesk公司推出的ObjectARX是一個基于面向對象的CAD開發平臺,為基于AutoCAD的各種應用開發提供了強大的面向對象開發工具。ObjectARX提供了C++為基礎的開發環境及應用程序接口,具有面向對象編程方式的數據可封裝性,可繼承性等特點。由于利用了面向對象的技術,可以將描述特征和變化關系的智能性設計對象變成AutoCAD圖形數據庫中的一級對象,AutoCAD的編輯命令能夠直接對其操作,AutoCAD還可以基于他們的內在顯示予以相應的屏幕顯示。
3 電網結構的知識特點
電力系統結構知識的一大特點是具有層次性,即:第一層為網絡層,電力系統模型由相互間通過輸電線路連接在一起的發電廠和變電站組成。如圖1示。第二層為廠站層,廠站由開關、各種電氣設備(出線、母線、發電機、變壓器等)組成。
在整個網絡結構中,廠站是核心。二維模型要描述的元件主要有輸電線路及廠站所擁有的開關、母線、發電機、變壓器、出線等。從這些元件關系中,首先可以建立如下知識概念:
(1)“元件”是指電力系統中具有特定功能的設備單位,如發電機、變壓器等。 (2)“廠站”與普通的電力系統中的發電廠、變電站概念相對應,其中包括廠站的元件。
4 PWCAD軟件中的對象模型 以實際的物理系統為模板確定對象類。在電力系統廠站中的開關、變壓器、發電機、母線等元件其電氣功能比較獨立,它們在廠站中的共性是都屬于電氣設備,因此,首先抽象出一個元件類CElememt(設備元件)來作為各元件的基類。由于每種元件又都有自己的屬性、行為和功能要求,如形狀特征、功能特點,因此,需要從元件基類CElement派生出各元件類。所以依據廠站所屬設備類型如發電機、變壓器、母線、開關、線路等分別確定為子類,于是便得到派生而來的類有CBreak(開關)、CTransmisson(變壓器)、CBus(母線)、CGenerator(發電機)、電容CCapacitor、CLine(線路)等。電力網絡中的每個廠站是一個整體,它有自己的屬性如廠站名稱、廠站編號、所屬單位等及功能,可以定義一個廠站類CPlant。每個廠站有開關、母線、變壓器、發電機等元件,廠站與這些元件是引用與被引用的關系。因此,在類CPlant中,要引用CBreak(開關)、CBus(母線)、CTransformer(變壓器)等對象。
在ObjectARX的對象模型中,AcRxObject類是所有圖形類的基類。AcDbObject類是從AcRxObject根類繼承而來的,它是所有需要存入圖形文件對象的基類。因此選用它作為CPlant類的基類。而AcDbEntity類是從AcDbObject派生出來的,是所有具有圖形表示類的基礎類。它的功能包括:圖形的顯示與變換、圖形捕捉點的獲取與設置、與其它對象的求交、顯示本圖形信息、撤散本圖形為最基本的圖形元素等,因此,AcDbEntity類提供了常用的修改及操作對象的函數,通過最后派生的元件類就可以Override(重載)這些函數,因而就會具有對本元件的常用的修改交互等操作,如母線元件,就可以實施拷貝、旋轉、拉伸等操作。所以選用AcDbEntity類作為CElement的基類。
4.1 元件類
4.1.1 元件基類
元件基類的屬性包括顏色、線形、線形比例、可見性以及設備索引號、設備名稱等。這些公共屬性的操作函數見下列定義。
4.1.2 元件類 在派生的元件類中都有自己的屬性與方法。
(1)開關類CBreak ①自定義屬性:開關狀態、所在廠站、所連母線、電壓等級等。 ②方法:AcDbEntity類提供了許多功能函數,只要override這些函數就可以實現開關類元件的相應功能。其實現方法如下: 重載intersectWith():用于修剪(trim)、延伸(ex-tend)、倒角(chamfer)、打斷(break)和對象捕捉的操作中。 重載transformBy():用于在AutoCAD環境下對幾何圖元類進行拉伸、旋轉和縮放等操作。 重載GetGirpPoints()、getOsnapPoints()、getStretch-Points()、moveStretchPoints()、intersectWith()等函數, 這些函數使對元件的交互操作變得方便。 重載worldDraw()、viewDraw():支持圖形顯示功能。 重載draw():實現繪圖。 重載getTransformedCopy():創建對象的副本。 重載dwgInField()、dwgOutField():用于圖形dwg文件的序列化操作。 自定義的方法有開關類對象的創建、刪除、修改以及接口函數和其他函數等。 這樣擴充,使派生的元件可以實現強大的功能。
|
|
狀 態:
離線
公司簡介
產品目錄
|
|
公司名稱:
|
武漢天立華高電氣設備有限公司
|
聯 系 人: |
天立華高
|
電 話: |
027-86385331
|
傳 真: |
|
地 址: |
武漢市http://www.whtlhgdq.com/東湖風景區先鋒工業園天立大廈2幢 |
郵 編: |
430083 |
主 頁: |
|
|
|
|
|