專利名稱:基于物理建模語言的模型庫圖標(biāo)顯示方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于物理建模語言的多領(lǐng)域建模與仿真軟件,具體涉及一 種在建模與仿真軟件中顯示模型庫圖標(biāo)的方法。
背景技術(shù):
基于物理建模語言Modelica的多領(lǐng)域建模與仿真工具有瑞典Dynasim AB 公司的Dymola和德國ITI GmbH公司的Simulation X。這二款商業(yè)產(chǎn)品和其 他已經(jīng)公開的開源工具中,在模型庫加載與顯示上面均存在不同程度的效率問 題。為了便于使用者識(shí)別和選擇模型庫中的模型,在模型加載過程中,這些軟 件會(huì)根據(jù)模型庫中的圖標(biāo)描述代碼實(shí)時(shí)生成模型圖標(biāo),再將其顯示在模型名稱 之前,這種處理方法造成每次加載顯示模型庫時(shí)速度緩慢。
發(fā)明內(nèi)容
本發(fā)明目的是提供一種基于物理建模語言的模型庫圖標(biāo)顯示方法,以加快 模型庫的加載顯示速度。
為達(dá)到上述目的,本發(fā)明采用的技術(shù)方案是 一種基于物理建模語言的模 型庫圖標(biāo)顯示方法,包括預(yù)處理過程和圖標(biāo)顯示過程;
所述預(yù)處理過程為,解析模型庫,根據(jù)加載顯示模型庫時(shí)對(duì)文件夾和文件 中的模型遍歷順序,依次生成每個(gè)模型的圖標(biāo),寫入一圖標(biāo)文件中;
所述圖標(biāo)顯示過程為,在加載顯示模型庫過程中,根據(jù)模型遍歷順序從所 述圖標(biāo)文件中讀入對(duì)應(yīng)的模型圖標(biāo),并顯示于模型庫窗口中。
上述技術(shù)方案中,所述預(yù)處理過程中,每個(gè)模型圖標(biāo)的生成過程是,根據(jù) 遍歷過程確定該模型對(duì)應(yīng)的名稱及描述代碼,從描述代碼中確定模型繼承關(guān) 系,根據(jù)該模型的描述代碼及其繼承模型的描述代碼收集圖標(biāo)的幾何線條及其 位置信息和顯示屬性,然后根據(jù)圖標(biāo)的大小要求對(duì)幾何線條進(jìn)行縮放,最后通 過繪制線條的方式生成圖標(biāo)對(duì)象。在實(shí)際使用中,可以根據(jù)需要采用深度優(yōu)先搜索(Depth First Search, DFS)或廣度優(yōu)先搜索(Board First Search, BFS)的遍歷方式,次序化地進(jìn) 行圖標(biāo)的讀操作和寫操作;也可以在圖標(biāo)文件中增加與模型的關(guān)聯(lián)信息以便于 進(jìn)行圖標(biāo)檢索。在每次進(jìn)行模型庫變更(包括增加、刪除、修改)后,需要執(zhí) 行一次所述預(yù)處理過程,其實(shí)現(xiàn)方法可以是,在每次進(jìn)行模型庫變更后,刪除 圖標(biāo)文件,在軟件中設(shè)定啟動(dòng)時(shí)自動(dòng)查找圖標(biāo)文件,如果未發(fā)現(xiàn)圖標(biāo)文件,則 進(jìn)行上述預(yù)處理過程,生成圖標(biāo)文件。
由于上述技術(shù)方案運(yùn)用,本發(fā)明與現(xiàn)有技術(shù)相比具有下列優(yōu)點(diǎn) 本發(fā)明通過預(yù)處理過程,預(yù)先對(duì)模型庫進(jìn)行遍歷,生成圖標(biāo)文件,因而在 加載和顯示模型庫時(shí),只需要直接從圖標(biāo)文件中讀取圖標(biāo)進(jìn)行顯示即可,避免 每次進(jìn)行模型圖標(biāo)描述代碼的解釋、幾何線條的收集與圖標(biāo)的繪制生成操作, 大大加快了模型庫的加載和顯示過程。
圖1是實(shí)施例一中模型庫文件結(jié)構(gòu)示意圖2是實(shí)施例一中加載和顯示模型庫時(shí)的圖標(biāo)顯示示意圖。
具體實(shí)施方式
下面結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步描述
實(shí)施例一 一種基于物理建模語言的模型庫圖標(biāo)顯示方法,包括預(yù)處理過 程和圖標(biāo)顯示過程;
所述預(yù)處理過程為,解析模型庫,根據(jù)加載顯示模型庫時(shí)對(duì)文件夾和文件 中的模型遍歷順序,依次生成每個(gè)模型的圖標(biāo),寫入一圖標(biāo)文件中;
所述圖標(biāo)顯示過程為,在加載顯示模型庫過程中,根據(jù)模型遍歷順序從所 述圖標(biāo)文件中讀入對(duì)應(yīng)的模型圖標(biāo),并顯示于模型庫窗口中。
以一個(gè)模型圖標(biāo)的生成過程舉例說明如下
預(yù)先解析模型庫,采用序列化"寫"方式將模型圖標(biāo)順序?qū)懭雸D標(biāo)文件。 加載顯示模型庫過程中,采用序列化"讀"方式將模型圖標(biāo)讀入,并顯示 于模型庫窗口。模型圖標(biāo)定義片段(以電阻Resistor為例) model Resistor "Ideal linear electrical resistor" extends OnePort;
......〃注,與模型圖標(biāo)無關(guān)的描述代碼以省略號(hào)代替,下同
annotation (......,
Coordsys(
extent-[- 100, - 100; 100, 100]),......
Icon(
Rectangle(extent=[- 70, 30; 70, - 30,style(
color=3,
fillColor=7,
fillPattern-l)), Line(points-[- 90, 0; - 70, 0), Line(points=[70, 0; 90, Oj), Text(
extent-[- 144, - 60; 144, - 100, string="R=%R", style(color=0", Text(extent=-144, 40; 144, 100,8^|^="%1131116,,))
);
end Resistor;
以上述代碼為例,形成模型圖標(biāo)的步驟如下
① 讀入annotation中Coordsys的extent數(shù)值,如左下點(diǎn)(-lOO,隱lOO)、右 上點(diǎn)(IOO,IOO),構(gòu)成一個(gè)平面坐標(biāo)系。
② 讀入annotation中Icon的幾何線條的位置信息和顯示屬性,如矩形 Rectangle,該矩形的位置信息包括相對(duì)于平面坐標(biāo)系的左下點(diǎn)(-70,30)、右上點(diǎn)(70,-30);該矩形的顯示屬性包括顏色編號(hào)Color=3 ("3"表示藍(lán)色)、填充 色fillColor-7("7"表示白色)、填充方式fillPatterii-l("r,表示實(shí)心填充)。 其他幾何線條如線段(Line)也做類似處理。注意模型圖標(biāo)中不含文字,因此 文字(Text)相關(guān)的描述代碼被忽略。
③ 讀入extends OnePort,確定模型Resistor從模型OnePort繼承,遞歸 地從OnePort模型中讀入圖標(biāo)描述代碼。遞歸處理過程與步驟①、②完全相 同。注意一個(gè)模型的圖標(biāo)信息源自該模型自身的圖標(biāo)描述代碼,以及該模型的 繼承模型的描述代碼。
④ 根據(jù)圖標(biāo)的實(shí)際大小對(duì)步驟①、②、③中所收集的幾何線條進(jìn)行縮放, 如典型的圖標(biāo)大小為16X16,則需要將上述線條的位置從坐標(biāo)系(-100,-100) X(100,100)變換到(-8,誦8)X(8,8)區(qū)間。
⑤ 構(gòu)造一個(gè)圖標(biāo)對(duì)象,根據(jù)幾何線條的位置信息和顯示屬性調(diào)用操作系統(tǒng) 的顯示API接口繪制出幾何線條。
⑥ 調(diào)用文件序列化接口將圖標(biāo)的二進(jìn)制數(shù)據(jù)寫入圖標(biāo)文件。
Modelica模型庫表現(xiàn)為文件夾或文件,參見附圖1所示,Modelica 1.6模 型庫包含塊圖(Blocks )、電氣(Electrical)、數(shù)學(xué)(Math)、機(jī)械(Mechanics )、 熱學(xué)(Thermal)等子庫,而電氣(Electrical)又嵌套模擬電氣(analog)和 多相(MultiPhase)等子庫,具體的模型信息存儲(chǔ)在對(duì)應(yīng)的mo文件中。
通過一遍預(yù)處理,遍歷模型庫目錄中的文件夾與mo文件,將模型庫中所 有模型的圖標(biāo)信息找到,具體為mo文件annotation文本,按照上述過程生成 圖標(biāo),按照模型遍歷順序?qū)D標(biāo)序列化"寫"入圖標(biāo)文件。
加載顯示模型庫時(shí)對(duì)文件夾和文件的遍歷順序與上述預(yù)處理過程的遍歷 順序相同,在讀入一個(gè)模型的同時(shí),序列化"讀"圖標(biāo)文件的二進(jìn)制數(shù)據(jù),將 其轉(zhuǎn)換為界面顯示所需要的格式,顯示于模型樹之中,如附圖2所示。
在加載顯示模型的遍歷過程中沒有實(shí)時(shí)構(gòu)造模型圖標(biāo),因此大大地加快了 模型庫的加載顯示速度。
權(quán)利要求
1. 一種基于物理建模語言的模型庫圖標(biāo)顯示方法,其特征在于包括預(yù)處理過程和圖標(biāo)顯示過程;所述預(yù)處理過程為,解析模型庫,根據(jù)加載顯示模型庫時(shí)對(duì)文件夾和文件中的模型遍歷順序,依次生成每個(gè)模型的圖標(biāo),寫入一圖標(biāo)文件中;所述圖標(biāo)顯示過程為,在加載顯示模型庫過程中,根據(jù)模型遍歷順序從所述圖標(biāo)文件中讀入對(duì)應(yīng)的模型圖標(biāo),并顯示于模型庫窗口中。
2. 根據(jù)權(quán)利要求1所述的基于物理建模語言的模型庫圖標(biāo)顯示方法,其 特征在于所述預(yù)處理過程中,每個(gè)模型圖標(biāo)的生成過程是,根據(jù)遍歷過程確 定該模型對(duì)應(yīng)的名稱及描述代碼,從描述代碼中確定模型繼承關(guān)系,根據(jù)該模 型的描述代碼及其繼承模型的描述代碼收集圖標(biāo)幾何線條,然后根據(jù)圖標(biāo)的大 小要求對(duì)幾何線條進(jìn)行縮放,最后通過繪制線條的方式生成圖標(biāo)對(duì)象。
全文摘要
本發(fā)明公開了一種基于物理建模語言的模型庫圖標(biāo)顯示方法,其特征在于包括預(yù)處理過程和圖標(biāo)顯示過程;所述預(yù)處理過程為,解析模型庫,根據(jù)加載顯示模型庫時(shí)對(duì)文件夾和文件中的模型遍歷順序,依次生成每個(gè)模型的圖標(biāo),寫入一圖標(biāo)文件中;所述圖標(biāo)顯示過程為,在加載顯示模型庫過程中,根據(jù)遍歷順序從所述圖標(biāo)文件中讀入對(duì)應(yīng)的模型圖標(biāo),并顯示于模型庫窗口中。本發(fā)明在加載和顯示模型庫時(shí)沒有實(shí)時(shí)構(gòu)造模型圖標(biāo),只需要直接從圖標(biāo)文件中讀取圖標(biāo)進(jìn)行顯示即可,大大加快了模型庫的加載和顯示過程。
文檔編號(hào)G06T11/00GK101546348SQ20091002941
公開日2009年9月30日 申請(qǐng)日期2009年4月13日 優(yōu)先權(quán)日2009年4月13日
發(fā)明者丁建完, 吳義忠, 周凡利, 趙建軍, 陳立平, 雄 龔 申請(qǐng)人:蘇州同元軟控信息技術(shù)有限公司