黃松波,雷 毅
?
CAD應(yīng)用框架配置技術(shù)研究
黃松波,雷 毅
(北京航空航天大學(xué)機(jī)械工程及自動(dòng)化學(xué)院,北京100191)
為滿足CAD軟件研發(fā)中應(yīng)用框架擴(kuò)展、復(fù)用及調(diào)整的需求,論文提出了應(yīng)用框架基于配置的動(dòng)態(tài)設(shè)計(jì)方案,并給出了實(shí)現(xiàn)的模塊劃分及流程;同時(shí)研究并給出了CAD軟件功能配置的層次結(jié)構(gòu)及內(nèi)容,基于此研究,相同的軟件框架在不同的配置下可以開發(fā)成為不同的CAD應(yīng)用或控件,而且不同的CAD軟件通過配置合并可以實(shí)現(xiàn)框架的集成及功能復(fù)用。該技術(shù)已在實(shí)際的CAD軟件開發(fā)中得到應(yīng)用驗(yàn)證。
計(jì)算機(jī)輔助設(shè)計(jì);應(yīng)用框架;配置;框架重用;界面生成
近年來,隨著應(yīng)用深入及技術(shù)的發(fā)展,企業(yè)對(duì)CAD軟件提出了新的要求,包括:①為滿足大量二維CAD用戶向三維CAD應(yīng)用過渡的需求,CAD產(chǎn)品功能整合趨勢(shì)加快,傳統(tǒng)二維CAD的功能及交互方式越來越多地集成在三維CAD中;②企業(yè)中不同角色人員需要使用不同的CAD功能,如工程師使用CAD設(shè)計(jì)功能,審核人員需要瀏覽及批注功能,管理人員往往只需要瀏覽功能等。CAD系統(tǒng)要根據(jù)不同的角色需求定制為不同的軟件工具,而非用一個(gè)大而全的CAD軟件滿足所有角色的需求,這樣會(huì)大大節(jié)省軟件的采購(gòu)費(fèi)用;③企業(yè)越來越多的人員需要使用PLM系統(tǒng)瀏覽及使用CAD軟件產(chǎn)生的設(shè)計(jì)數(shù)據(jù),這種CAD瀏覽構(gòu)件要能作為一個(gè)控件嵌入到管理軟件中,無論管理軟件是傳統(tǒng)的C/S客戶端模式,還是B/S的瀏覽器模式,不同角色的人員對(duì)控件的功能需求不一樣,比如質(zhì)檢人員需要測(cè)量功能,而文控人員需要打印功能等;④企業(yè)加強(qiáng)內(nèi)部的規(guī)范化管理,希望由企業(yè)統(tǒng)一管理員工使用的軟件及軟件功能等。為滿足上述要求,往往會(huì)導(dǎo)致CAD軟件框架以及功能的重新開發(fā),給軟件開發(fā)商的研發(fā)過程及維護(hù)帶來沉重負(fù)擔(dān)。
在CAD平臺(tái)及框架技術(shù)研究領(lǐng)域,成基華詳細(xì)介紹了主要的CAD運(yùn)算平臺(tái)及其發(fā)展趨勢(shì);Richard N Taylor、陸薇提出了基于組件及消息機(jī)制的軟件架構(gòu),并對(duì)CAD平臺(tái)的構(gòu)件模型及流程控制機(jī)制進(jìn)行了研究;王云鵬、陳杰提出了基于總線的CAD軟件體系結(jié)構(gòu),從系統(tǒng)設(shè)計(jì)和開發(fā)的角度,詳細(xì)分析了各組成部分及其功能;潘吟飛構(gòu)架了一種以Web服務(wù)為基礎(chǔ)的CAD協(xié)同設(shè)計(jì)框架模型,給出了一種基于優(yōu)先權(quán)控制的分層式協(xié)同設(shè)計(jì)過程模型;王云鵬提出了衡量二次開發(fā)平臺(tái)質(zhì)量的標(biāo)準(zhǔn),并介紹了開發(fā)基于動(dòng)態(tài)庫(kù)的二次開發(fā)平臺(tái)所涉及的幾項(xiàng)關(guān)鍵技術(shù);李華提出了一種在非CAD平臺(tái)環(huán)境下顯示CAD圖形的技術(shù)與方法;郭剛提出了一種以中間集成平臺(tái)為基礎(chǔ)的CAD與PDM系統(tǒng)間數(shù)據(jù)雙向集成的解決方案。
上述研究,為CAD軟件框架及平臺(tái)技術(shù)發(fā)展做出了重要貢獻(xiàn),但均側(cè)重在CAD平臺(tái)開放性、CAD平臺(tái)如何支持協(xié)同設(shè)計(jì)以及CAD與PDM集成等方面,對(duì)如何使用CAD平臺(tái)快速針對(duì)不同需求提供不同的應(yīng)用方案,以及不同的CAD應(yīng)用如何實(shí)現(xiàn)集成復(fù)用研究較少。本文將CAD軟件或構(gòu)件要實(shí)現(xiàn)的內(nèi)容抽象成配置參數(shù),提出基于CAD平臺(tái)的應(yīng)用框架配置方案,通過配置功能可以快速實(shí)現(xiàn)相同CAD平臺(tái)上不同CAD應(yīng)用及構(gòu)件的表達(dá)形式,通過配置的整合可以實(shí)現(xiàn)二、三維CAD應(yīng)用框架集成等,較好地解決了上述問題。
(1)模塊劃分
為實(shí)現(xiàn)通過配置控制CAD軟件或構(gòu)件的表達(dá)形式,CAD應(yīng)用框架需要將針對(duì)單一應(yīng)用實(shí)現(xiàn)的框架改變?yōu)楸粍?dòng)等待配置輸入的框架。應(yīng)用框架沒有直接實(shí)現(xiàn)任何產(chǎn)品定義,因此不同的CAD應(yīng)用可以使用相同的應(yīng)用框架,將產(chǎn)品的表達(dá)形式交給外部配置來控制。
本文將基于配置的應(yīng)用框架分為物理框架、配置數(shù)據(jù)、配置解析器、虛擬框架、界面生成器五大部分,各部分的工作流程如圖1所示。
圖1 配置框架的模塊劃分
物理框架是CAD軟件展示給用戶的應(yīng)用程序框架,大部分CAD軟件采用微軟MFC(Microsoft Foundation Classes)生成的Application、Frame、Document、View形式的應(yīng)用程序框架,也可以是其它的實(shí)現(xiàn)方式。物理框架維護(hù)了CAD軟件的名稱描述、文檔模板、用戶界面(包括菜單、工具條等)、用戶界面與軟件功能的對(duì)應(yīng)關(guān)系等。在本方案中,這些內(nèi)容由虛擬框架提供給物理框架,物理框架在模塊內(nèi)部沒有具體實(shí)現(xiàn),而是被動(dòng)等待內(nèi)容的輸入。
配置數(shù)據(jù)包含所有物理框架需要輸入的內(nèi)容,并將這些內(nèi)容按邏輯關(guān)系組織起來。應(yīng)用配置可使用一組XML文件來描述,具體內(nèi)容在下文中詳細(xì)描述。
配置解析器根據(jù)配置文件的格式將配置內(nèi)容解析成虛擬框架識(shí)別的描述形式,輸入到虛擬框架。配置解析器與虛擬框架之間定義了數(shù)據(jù)接口,無論配置數(shù)據(jù)采用何種文件格式,配置解析器都返回相同的格式來描述具體內(nèi)容,當(dāng)因配置數(shù)據(jù)的格式變化而需要使用不同的配置解析器時(shí),因?yàn)榉祷財(cái)?shù)據(jù)的格式?jīng)]有變化,所以虛擬框架等其它模塊無需任何改動(dòng)。
虛擬框架是可配置框架實(shí)現(xiàn)的核心模塊,它根據(jù)配置解析器輸入的內(nèi)容,維護(hù)運(yùn)行時(shí)與配置內(nèi)容對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu),生成邏輯上的產(chǎn)品描述框架。虛擬框架維護(hù)配置內(nèi)容中各組成部分的唯一標(biāo)識(shí)及相互關(guān)系,然后將物理框架所需的內(nèi)容傳遞給物理框架,如產(chǎn)品名稱、文檔模板等。當(dāng)需要生成軟件界面時(shí),虛擬框架將配置中的界面描述內(nèi)容傳遞給界面生成器,由界面生成器生成對(duì)應(yīng)的界面對(duì)象,虛擬框架將返回的界面對(duì)象傳給物理框架,由物理框架顯示出軟件界面。
界面生成器根據(jù)虛擬框架傳入的界面配置內(nèi)容創(chuàng)建對(duì)應(yīng)的界面對(duì)象,返回給虛擬框架。使用不同的界面生成器,可以實(shí)現(xiàn)不同的界面風(fēng)格,但無論界面生成器有何不同,要求傳入的界面描述和最終返回界面對(duì)象的接口是一致的。
使用上述配置框架,不同的CAD軟件可使用相同的應(yīng)用程序框架,其差別主要表現(xiàn)在配置內(nèi)容上,因?yàn)楦髂K之間使用通用的接口描述來交換數(shù)據(jù),因此也降低了模塊間的耦合性。
(2)配置內(nèi)容
一般地講,CAD軟件可劃分為平臺(tái)層和應(yīng)用層,平臺(tái)層提供通用的數(shù)據(jù)管理、交互管理、顯示管理等以及其它運(yùn)算模塊的支持,應(yīng)用層實(shí)現(xiàn)軟件的功能性定義及軟件的表現(xiàn)形式。功能性定義描述軟件能實(shí)現(xiàn)哪些功能,如草圖功能、拉伸、過渡特征等功能;軟件的表現(xiàn)形式包括軟件包含的運(yùn)行庫(kù)文件組織方式、用戶界面等。本文提出的框架配置用來組織軟件的功能性定義、表現(xiàn)形式以及功能性定義與表現(xiàn)形式之間的映射關(guān)系。
功能性定義分為四個(gè)層次:產(chǎn)品定義、應(yīng)用類型、運(yùn)行環(huán)境、運(yùn)行環(huán)境支持的功能等,例如一個(gè)典型三維CAD軟件的功能性定義如圖2所示。
圖2 典型三維CAD功能定義示例
軟件表現(xiàn)形式可以概括為:軟件使用的運(yùn)行庫(kù)文件及物理位置、各層次功能性定義的屬性描述、軟件界面等。
框架配置描述上述內(nèi)容的同時(shí),也是功能性定義與表現(xiàn)形式的聯(lián)系紐帶,例如,將應(yīng)用類型、運(yùn)行環(huán)境與對(duì)應(yīng)的運(yùn)行庫(kù)和屬性描述聯(lián)系起來,將功能與運(yùn)行庫(kù)、用戶界面聯(lián)系起來等。
通過對(duì)功能性定義及表現(xiàn)形式的抽象,CAD應(yīng)用框架的配置內(nèi)容可用圖3的邏輯圖來描述,在虛擬框架中實(shí)現(xiàn)此邏輯結(jié)構(gòu)中的各實(shí)例化對(duì)象。
框架配置的各部分的內(nèi)容為:
1)產(chǎn)品:由產(chǎn)品屬性及多個(gè)應(yīng)用模板構(gòu)成。
2)產(chǎn)品屬性:描述CAD軟件的名稱、注冊(cè)信息、版本信息等,每個(gè)CAD應(yīng)用有唯一的產(chǎn)品屬性。
3)應(yīng)用模板:包含自身的模板屬性、加載的模塊列表、支持的運(yùn)行環(huán)境等。具體應(yīng)用模板例如三維設(shè)計(jì)應(yīng)用、二維繪圖應(yīng)用等。
4)模板屬性:定義應(yīng)用模板的標(biāo)示、名稱、注冊(cè)信息、文檔類型、對(duì)應(yīng)的實(shí)現(xiàn)對(duì)象等,每個(gè)應(yīng)用模板有唯一的模板屬性。
5)運(yùn)行環(huán)境:是應(yīng)用模板下的一種應(yīng)用場(chǎng)景,如零件設(shè)計(jì)應(yīng)用模板可以支持草圖設(shè)計(jì)、特征設(shè)計(jì)、渲染三種運(yùn)行環(huán)境,這三種運(yùn)行環(huán)境無論在用戶界面還是使用功能上都有較大區(qū)別。運(yùn)行環(huán)境包括環(huán)境的標(biāo)識(shí)、可以使用的功能列表、以及用戶界面定義等。
6)功能列表:是一個(gè)運(yùn)行環(huán)境可使用的所有功能的集合,每個(gè)功能包括功能的標(biāo)示、名稱、說明、快捷鍵定義、對(duì)應(yīng)的實(shí)現(xiàn)對(duì)象等,用戶可通過改變功能列表的內(nèi)容實(shí)現(xiàn)功能的增刪、功能實(shí)現(xiàn)對(duì)象的改變、功能名或熱鍵的自定義等,而不需要更新軟件的版本。
7)用戶界面:描述一個(gè)運(yùn)行環(huán)境主要的界面要素,如菜單、工具條、狀態(tài)條、自定義窗口、位圖資源等,同時(shí)還定義界面要素與功能標(biāo)示的對(duì)應(yīng)關(guān)系,通過功能標(biāo)示將界面元素和對(duì)應(yīng)的功能聯(lián)系在一起。
8)模塊:用于抽象一組軟件功能對(duì)產(chǎn)品定義的改變,例如,可以用CAE模塊來描述一組CAE分析功能,在零件設(shè)計(jì)應(yīng)用模板中通過加載CAE模塊來使用這些CAE功能。模塊的配置內(nèi)容包含是否添加了新的運(yùn)行環(huán)境,或描述對(duì)已有環(huán)境做了那些修改,包括增加和刪除功能,改動(dòng)界面等。一個(gè)應(yīng)用模板可以加載多個(gè)模塊,模塊加載和卸載時(shí),應(yīng)用模板綜合所有已加載模塊的配置內(nèi)容更新所包含運(yùn)行環(huán)境的功能列表及用戶界面配置。
圖3 CAD軟件配置內(nèi)容
上述框架配置內(nèi)容將產(chǎn)品的功能性定義和表現(xiàn)形式一一映射,通過模塊加載卸載的方式也統(tǒng)一了產(chǎn)品內(nèi)部開發(fā)與二次開發(fā)過程,加載或卸載一個(gè)二次開發(fā)模塊就是加載或卸載一個(gè)模塊的配置。開發(fā)方式的統(tǒng)一提高了軟件框架的兼容性和易維護(hù)性。
(3)關(guān)鍵實(shí)現(xiàn)環(huán)節(jié)
當(dāng)需要集成兩個(gè)產(chǎn)品的應(yīng)用時(shí),通過創(chuàng)建一個(gè)新的配置,其中包含兩個(gè)產(chǎn)品需要集成的應(yīng)用模板,軟件初始化時(shí)加載該配置即可;通過修改運(yùn)行環(huán)境的功能列表內(nèi)容,可調(diào)整產(chǎn)品具體功能定義,如增刪功能、修改功能實(shí)現(xiàn)指向的執(zhí)行庫(kù)、修改功能的名稱/激活鍵等;通過模塊的配置內(nèi)容,結(jié)合模塊加載卸載功能可實(shí)現(xiàn)產(chǎn)品專業(yè)化功能的應(yīng)用和卸載;通過修改產(chǎn)品屬性的和用戶界面描述,可重新定義產(chǎn)品的外觀。
框架配置內(nèi)容通過使用不同的物理框架,可以將相同的CAD功能表現(xiàn)為獨(dú)立CAD軟件或控件;使用不同的界面生成器可以展現(xiàn)不同的界面風(fēng)格。
使用配置控制應(yīng)用程序框架,在應(yīng)用框架初始化時(shí)便可達(dá)成,對(duì)CAD平臺(tái)的其它部分沒有影響,典型的配置框架初始化流程如圖4所示。
CAD軟件初始化時(shí),首先初始化物理框架,物理框架初始化先觸發(fā)虛擬框架的初始化。虛擬框架通過配置解析器依次讀入并創(chuàng)建產(chǎn)品屬性、應(yīng)用模板及模板屬性;依次讀入并創(chuàng)建各應(yīng)用模板包含的模塊,并將模塊添加到所屬的應(yīng)用模板中;應(yīng)用模板根據(jù)模塊中的運(yùn)行環(huán)境描述創(chuàng)建運(yùn)行環(huán)境,合并各模塊中相同運(yùn)行環(huán)境的功能列表及用戶界面描述內(nèi)容,生成各運(yùn)行環(huán)境最終支持的功能列表及用戶界面。虛擬框架讀入并創(chuàng)建上述內(nèi)容后,用產(chǎn)品屬性設(shè)置物理框架的產(chǎn)品名稱、注冊(cè)信息等內(nèi)容,然后根據(jù)應(yīng)用模板創(chuàng)建文檔模板添加到物理框架中。用戶通過物理框架新建文檔時(shí),物理框架通過文檔模板激活虛擬框架中對(duì)應(yīng)的應(yīng)用模板;虛擬框架將應(yīng)用模板當(dāng)前運(yùn)行環(huán)境的功能列表注冊(cè)到物理框架中,并通過界面生成器生成界面對(duì)象,將界面對(duì)象傳遞給物理框架;物理框架顯示出新建文檔對(duì)應(yīng)的用戶界面,用戶可以通過用戶界面激活所需的功能。
圖4 基于配置的應(yīng)用框架初始化流程
通過外部配置動(dòng)態(tài)生成CAD軟件的表現(xiàn)形式,使CAD軟件可以對(duì)產(chǎn)品屬性、功能、界面等實(shí)現(xiàn)動(dòng)態(tài)擴(kuò)充或裁剪,為CAD軟件的開發(fā)提供了靈活高效、又便于維護(hù)的開發(fā)手段。通過配置可以使同一個(gè)CAD平臺(tái)不需要任何開發(fā)而是僅改變配置內(nèi)容展現(xiàn)為不同的CAD應(yīng)用;使用不同的物理框架可以將相同的CAD功能表現(xiàn)為獨(dú)立的CAD應(yīng)用或者嵌入其它系統(tǒng)的CAD控件;通過將二維CAD軟件的配置添加到三維CAD軟件配置中可以實(shí)現(xiàn)二維CAD軟件功能完全復(fù)用地集成到三維軟件框架中;企業(yè)可以將配置文件由服務(wù)器統(tǒng)一管理,不同角色人員授權(quán)使用不同的配置文件,實(shí)現(xiàn)對(duì)產(chǎn)品的集中控制和管理。
應(yīng)用框架的配置技術(shù)已經(jīng)在課題組開發(fā)的獨(dú)立運(yùn)行的二維CAD軟件中得到應(yīng)用,也在將二維CAD軟件所有功能集成到三維CAD軟件中得到應(yīng)用,在這兩類應(yīng)用中,二、三維CAD軟件的應(yīng)用框架、功能實(shí)現(xiàn)不需要做任何開發(fā)改動(dòng),驗(yàn)證了該技術(shù)的優(yōu)越性。
[1] 成基華, 范玉青, 袁國(guó)平, 等. CAD/CAM開發(fā)平臺(tái)及其發(fā)展趨勢(shì)[J]. 計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào), 2000, 12(2): 154-159.
[2] Richard N Taylor, Nenad Medvidovic, Kenneth M Anderson, et al. A component and message-based architectural style for GUI software [J]. IEEE Transactions on Software Engineering, 1996, 22(8): 390-406.
[3] 陸 薇, 劉 強(qiáng), 周 琛, 等. 基于組件的開放式CAD系統(tǒng)模型[J]. 軟件學(xué)報(bào), 1998, 9(9): 1-5.
[4] 王云鵬, 雷 毅, 黃松波, 等. 多層次開放式CAD開發(fā)平臺(tái)技術(shù)[J]. 計(jì)算機(jī)工程, 2004, 30(1): 42-44.
[5] 陳 杰, 何援軍. 基于軟件總線CAD軟件體系結(jié)構(gòu)研究[J]. 計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào), 2004, 16(9): 1319-1323.
[6] 潘吟飛, 許端清, 陳 純. 基于Web服務(wù)的圖形CAD網(wǎng)絡(luò)化協(xié)同設(shè)計(jì)框架[J]. 計(jì)算機(jī)集成制造系統(tǒng), 2005, 11(5): 606-612.
[7] 王云鵬, 雷 毅, 潘 翔, 等. CAXA電子圖板的二次開發(fā)技術(shù)[J]. 計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào), 2002, 14(2): 1-4.
[8] 李 華, 聶建國(guó). 在非CAD平臺(tái)環(huán)境下顯示CAD圖形的實(shí)用技術(shù)與方法[J]. 計(jì)算機(jī)工程與應(yīng)用, 2002, 38(9): 92-94.
[9] 郭 鋼, 馮亮亮. CAD/PDM系統(tǒng)間數(shù)據(jù)雙向集成技術(shù)和應(yīng)用研究[J]. 計(jì)算機(jī)工程與應(yīng)用, 2010, 46(15): 222-248.
Research on Configuration Technology for CAD Application Framework
HUANG Song-bo, LEI Yi
( School of Mechanical Engineering and Automation, Beijing University of Aeronautics and Astronautics, Beijing 100191, China )
In order to extend, reuse and adjust the application framework in CAD software development, this paper presents a dynamic application framework design based on configuration, researchs and provides the hierarchy and contents of function configuration for CAD software. Base on the research, the same application framework can be developed for different CAD software or controls using different configuration, and frameworks integration and function reuse between different CAD softwares can be acheived by merging their configurations. The configuration technology has been verified in a practical CAD software development.
CAD; application framework; configuration; framework reuse; UI generation
TP 391.72
A
1003-0158(2011)04-0014-06
2011-05-13
國(guó)家“863”重點(diǎn)資助項(xiàng)目(2009AA043302)
黃松波(1972-),男,山東濟(jì)寧人,講師,碩士,主要研究方向?yàn)橛?jì)算機(jī)輔助設(shè)計(jì)與制造。