簡(jiǎn)介: 研究了組件技術(shù)和特征造型技術(shù),并以“金銀花”系統(tǒng)的開(kāi)發(fā)為實(shí)例對(duì)基于組件開(kāi)發(fā)三維cad系統(tǒng)的相關(guān)技術(shù)和實(shí)現(xiàn)方法進(jìn)行了深入研究,給出了實(shí)現(xiàn)系統(tǒng)的框架結(jié)構(gòu)和組件結(jié)構(gòu)。
關(guān)鍵字:cad 組件 變量化(vgx) 實(shí)體造型 特征造型

1. 引言
    隨著傳統(tǒng)cad系統(tǒng)在工業(yè)界的應(yīng)用普及以及現(xiàn)代設(shè)計(jì)問(wèn)題的復(fù)雜化、智能化,人們不再僅僅滿(mǎn)足于用計(jì)算機(jī)取代人進(jìn)行手工繪圖。所幸隨著計(jì)算機(jī)圖形學(xué)、人工智能、計(jì)算機(jī)網(wǎng)絡(luò)等基礎(chǔ)技術(shù)的發(fā)展和計(jì)算機(jī)集成制造、并行工程、協(xié)同設(shè)計(jì)等現(xiàn)代設(shè)計(jì)理論和方法的研究,使得cad系統(tǒng)也由單純二維繪圖向三維智能設(shè)計(jì)、物性分析、動(dòng)態(tài)仿真方向發(fā)展,參數(shù)化設(shè)計(jì)向變量化和vgx(超變量化)方向發(fā)展,幾何造型、曲面造型、實(shí)體造型向特征造型以及語(yǔ)義特征造型等方向發(fā)展;另一方面,伴隨著cad軟件復(fù)雜程度的增加和各個(gè)不同應(yīng)用系統(tǒng)間互操作的現(xiàn)實(shí)需要,人們希望cad系統(tǒng)具有極佳的開(kāi)放性同時(shí)又能“搭積木”似的自由拼裝形成不同的功能配置,軟件工程技術(shù)特別是組件開(kāi)發(fā)技術(shù)的研究應(yīng)用和逐漸成熟為解決這一問(wèn)題提供了堅(jiān)實(shí)的基礎(chǔ)。
    組件技術(shù)使得各cad系統(tǒng)開(kāi)發(fā)商們不必再完全遵從“一切從零開(kāi)始”的開(kāi)發(fā)模式,他們可根據(jù)自己的技術(shù)優(yōu)勢(shì)在滿(mǎn)足組件接口規(guī)范要求下開(kāi)發(fā)不同的構(gòu)件,然后在得到許可的情況下便可以自由使用這些構(gòu)件來(lái)搭建用戶(hù)所需要的cad系統(tǒng)。這種方式因其開(kāi)發(fā)周期短、見(jiàn)效快、系統(tǒng)柔性高、開(kāi)放性好、以及容易“即插即用”和進(jìn)行并行開(kāi)發(fā)等優(yōu)勢(shì)而倍受親賴(lài)。
    本文主要討論采用組件技術(shù)開(kāi)發(fā)國(guó)產(chǎn)商品化cad/cam系統(tǒng)——“金銀花” 系統(tǒng)的一些關(guān)鍵技術(shù)。

2. 系統(tǒng)框架

  “金銀花”是在acis幾何建模平臺(tái)上,采用變量化特征造型技術(shù),基于step標(biāo)準(zhǔn)——遵循ap214和ap203協(xié)議而研制開(kāi)發(fā)出來(lái)的商品化三維cad系統(tǒng)。該系統(tǒng)基本框架結(jié)構(gòu)如圖一所示,大體分為三個(gè)層次——數(shù)據(jù)層、功能層、接口層:
  數(shù)據(jù)層包括物理數(shù)據(jù)文件、數(shù)據(jù)庫(kù)和邏輯數(shù)據(jù)模型兩部分,它是cad系統(tǒng)的設(shè)計(jì)結(jié)果,也是cims信息集成的主模型,由于本系統(tǒng)是符合step標(biāo)準(zhǔn)的,故可以通過(guò)標(biāo)準(zhǔn)數(shù)據(jù)存取接口(sdai)進(jìn)行操作,數(shù)據(jù)是用戶(hù)利用系統(tǒng)功能實(shí)現(xiàn)的。
    功能層是主體部分,主要有三維零件設(shè)計(jì)、裝配設(shè)計(jì)、二維工程圖設(shè)計(jì)三大模塊,由于有主模型的支持,三塊之間相互關(guān)聯(lián):即任一部分的改變都將引起其它部分相關(guān)的自動(dòng)更新。在零件設(shè)計(jì)中采用特征造型和實(shí)體造型相結(jié)合、特征模型與實(shí)體模型共存,大大方便了后續(xù)工藝分析和加工對(duì)特征信息的需求又滿(mǎn)足了顯示、變換、物性計(jì)算、干涉檢查等操作對(duì)實(shí)體信息的要求。變量化vgx技術(shù)主要在草圖設(shè)計(jì)、特征造型、裝配設(shè)計(jì)等部分應(yīng)用,極大的方便了用戶(hù)對(duì)設(shè)計(jì)的編輯和修改。
    接口層是提供系統(tǒng)的對(duì)外接口,分為功能接口與數(shù)據(jù)接口。功能接口便于用戶(hù)進(jìn)行二次開(kāi)發(fā),組件重用等;而數(shù)據(jù)接口為其它環(huán)節(jié)如capp\cam\cae\pdm等提供一致性的數(shù)據(jù)訪(fǎng)問(wèn)方式。

3. 組件結(jié)構(gòu)

  系統(tǒng)的組件結(jié)構(gòu)設(shè)計(jì)是基于組件技術(shù)開(kāi)發(fā)cad系統(tǒng)的關(guān)鍵,主要內(nèi)容是根據(jù)應(yīng)用系統(tǒng)的功能需求列出所有構(gòu)成組件、各個(gè)組件間的依賴(lài)關(guān)系和接口,并確定哪些組件自己開(kāi)發(fā)而哪些可直接從組件供應(yīng)商處購(gòu)買(mǎi)以縮短開(kāi)發(fā)周期。而本系統(tǒng)就是通過(guò)從美國(guó)sti公司(spatial technology inc.)購(gòu)買(mǎi)三維cad系統(tǒng)所需幾何造型、文件管理、內(nèi)存管理等基本功能組件,而集中精力開(kāi)發(fā)支持特征造型、vgx約束求解、裝配設(shè)計(jì)、關(guān)聯(lián)繪圖、用戶(hù)接口等組件。
  由于acis是完全基于組件技術(shù)開(kāi)發(fā)的,其所有基礎(chǔ)功能均通過(guò)不同的組件(表現(xiàn)為動(dòng)態(tài)聯(lián)接庫(kù)dll)實(shí)現(xiàn)。在acis6.0中大約有五十多個(gè)dll,所有這些dll實(shí)際可劃歸為兩部分:acis 3d toolkit(核心模塊)和optional husks(可選模塊)。其中核心組件提供構(gòu)造系統(tǒng)所需的基本功能(如:基本幾何和拓?fù)、?nèi)存管理、模型管理、顯示管理、圖形交互等),這部分是acis幾何建模的核心,類(lèi)似于飛機(jī)的發(fā)動(dòng)機(jī),其中包括許多開(kāi)發(fā)商的必選構(gòu)件;而另一部分可選組件則提供一些更專(zhuān)業(yè)化和更高級(jí)的功能(如:高級(jí)過(guò)渡、高級(jí)渲染、可變形曲面、精確消影、拔模、抽殼、與catia和pro/e等系統(tǒng)的數(shù)據(jù)接口等),這部分作為可選組件由用戶(hù)根據(jù)實(shí)際開(kāi)發(fā)的系統(tǒng)需要自由挑選、搭配和組合,當(dāng)然用戶(hù)也可用自己開(kāi)發(fā)的組件取代acis的部分組件。acis的各組件之間存在一定的依賴(lài)關(guān)系,其中核心組件詳情可參見(jiàn)acis6.0核心組件依賴(lài)關(guān)系圖。
  金銀花系統(tǒng)組件結(jié)構(gòu)是在對(duì)系統(tǒng)功能需求和總體框架結(jié)構(gòu)分析基礎(chǔ)上得出的,同時(shí)也參照了acis的組件劃分思想。圖二給出了系統(tǒng)組件依賴(lài)關(guān)系簡(jiǎn)圖(為節(jié)省篇幅,主要表示了三維零件設(shè)計(jì)部分的組件,而沒(méi)有詳細(xì)表示關(guān)聯(lián)繪圖和裝配部分的組件),為方便組件的集中管理和調(diào)用系統(tǒng)采用了層次結(jié)構(gòu),主要分為核心組件、功能組件、接口組件三層,上層組件可任意調(diào)用下層組件提供的所有服務(wù)。以下對(duì)圖二作一些介紹:
    ◆ 核心組件層:該層包含了系統(tǒng)最重要和最基本的組件,是三維特征造型、二維關(guān)聯(lián)繪圖、部件裝配、動(dòng)態(tài)仿真等模塊的共享部分。acis核心組件也位于其中,為系統(tǒng)提供acis幾何造型基本功能;lm_gi是提供底層顯示支持,如:對(duì)opengl的調(diào)用、對(duì)屏幕刷新的操作、基本幾何元素的繪制;lm_pubfun中提供通用數(shù)學(xué)運(yùn)算以及公用鏈表、隊(duì)列、堆棧的類(lèi)定義;lm_rub包容了各種幾何元素的橡皮條——rubberband,該部分是支持vgx動(dòng)態(tài)拖放造型(drag-and-drop)、動(dòng)態(tài)約束添加以及裝配模塊中的動(dòng)態(tài)干涉檢查等的基本組件;lm_kern包括本系統(tǒng)特征造型功能和acis幾何造型引擎連接相關(guān)的類(lèi)lmsuperelement(詳見(jiàn)4),以及為上層提供的管理類(lèi)、約束類(lèi)、特征類(lèi)等提供超類(lèi)。
    ◆ 功能組件層:該層建于核心層之上,系統(tǒng)面向應(yīng)用的主要功能部件均在這一層實(shí)現(xiàn)。用戶(hù)的不同需求會(huì)希望配置不同功能的軟件系統(tǒng),從該層選折所需組件集進(jìn)行不同配置即可。圖二所示為三維部分的核心組件lm_kernpart、特征造型組件lm_feature、vgx約束管理器組件lm_vgx、處理選折對(duì)象的組件lm_pick、和負(fù)責(zé)總體協(xié)調(diào)管理的組件lm_manage等。而其中特征造型和vgx組件中又分別進(jìn)一步細(xì)化為:草圖特征、高級(jí)特征、自定義特征和vgx約束操作、約束管理約束求解等組件。
    ◆ 接口組件層:是系統(tǒng)的最高層,也是與用戶(hù)直接進(jìn)行交互操作管理的組件層,所以主要有處理鼠標(biāo)事件mousetool的lm_mt和管理系統(tǒng)界面中涉及到的對(duì)話(huà)框、菜單、工具條等資源的組件。
    可見(jiàn),這種組件設(shè)計(jì)結(jié)構(gòu)不僅極大的方便了不同用戶(hù)需求系統(tǒng)的配置,而且將系統(tǒng)的用戶(hù)接口與功能的具體實(shí)現(xiàn)分開(kāi),便于針對(duì)不同語(yǔ)種、不同操作系統(tǒng)平臺(tái)、不同使用習(xí)慣開(kāi)發(fā)豐富多彩的界面,也從技術(shù)角度實(shí)現(xiàn)了與acis幾何引擎的無(wú)縫集成。

4. 關(guān)鍵技術(shù)實(shí)現(xiàn)

  采用軟件組件技術(shù)建立組件依賴(lài)關(guān)系為三維cad系統(tǒng)架設(shè)了總體結(jié)構(gòu),但具體實(shí)現(xiàn)還需解決許多關(guān)鍵性技術(shù),以下主要以特征造型技術(shù)為例說(shuō)明系統(tǒng)的設(shè)計(jì)思路。
  由于acis本質(zhì)上一個(gè)幾何實(shí)體造型的平臺(tái),通過(guò)b-rep表示提供實(shí)體幾何、拓?fù)浣Y(jié)構(gòu)的完整描述,但它并不直接支持特征造型。因此,如圖三所示系統(tǒng)在實(shí)體模型和特征模型之間通過(guò)引入構(gòu)造點(diǎn)、邊、面的機(jī)制建立一種映射關(guān)系。每個(gè)特征中不僅包含工藝制造信息還包含其具體構(gòu)造點(diǎn)、邊、面信息,這些構(gòu)造元素再與實(shí)體模型中的點(diǎn)、邊、面建立聯(lián)系。
  其中l(wèi)mfeature最終派生于acis的entity,以便于進(jìn)行內(nèi)存管理、文件存儲(chǔ)和模型操作管理。m_construction屬性記錄該特征的所有構(gòu)造點(diǎn)lmsuperpoint、邊lmsuperedge、面lmsuperface(三者均派生于lmsuperelement),它們又分別記錄acis的vertex,edge,face和部分幾何參數(shù)以及特定的語(yǔ)義信息;同時(shí)在每個(gè)acis拓?fù)湓兀╢ace,edge,vertex)中通過(guò)屬性attrib機(jī)制又嵌入其對(duì)應(yīng)的lmsuperelement。這種雙向鏈表結(jié)構(gòu)方式不僅便于實(shí)現(xiàn)特征造型和實(shí)體造型間的無(wú)縫鏈接和快速查找,而且也為系統(tǒng)重建時(shí)維護(hù)拓?fù)潢P(guān)系奠定了基礎(chǔ)。因?yàn)閮H記錄acis拓?fù)湓兀╢ace,edge,vertex)是不可能保證拓?fù)潢P(guān)系一致的。m_otherinfo屬性主要用于存放特征語(yǔ)義、工藝信息等,另外還為用戶(hù)提供了手工添加特征語(yǔ)義的接口, 為真正支持cims環(huán)境下信息集成奠定了基礎(chǔ)。
  在特征創(chuàng)建\刪除\修改或模型重建過(guò)程中,為維護(hù)設(shè)計(jì)者的設(shè)計(jì)意圖關(guān)鍵在于維護(hù)模型修改前后拓?fù)浣Y(jié)構(gòu)的對(duì)應(yīng)關(guān)系即:拓?fù)湟恢滦裕虼吮仨毧紤]拓?fù)渚幋a的問(wèn)題。系統(tǒng)通過(guò)為每個(gè)從entity派生的實(shí)體引入索引標(biāo)志的方法解決,該索引標(biāo)志不僅記錄全局唯一標(biāo)志符,而且通過(guò)充分利用acis entity中的attrib 和annotation 類(lèi)對(duì)模型操作的具體變化做了詳細(xì)的記錄:操作前有那些面、邊、點(diǎn),操作后又產(chǎn)生了那些新的面、邊、點(diǎn)等等。操作后系統(tǒng)自動(dòng)重新整理,保證了拓?fù)浣Y(jié)構(gòu)的對(duì)應(yīng)關(guān)系。
  要支持特征造型,還必需維護(hù)特征之間的依賴(lài)關(guān)系,以便修改特征參數(shù)后重建所有依賴(lài)特征,這些關(guān)系一般形成樹(shù)形結(jié)構(gòu),又稱(chēng)特征樹(shù)。 特征樹(shù)方便了對(duì)特征的管理,但這種關(guān)系往往也限制了設(shè)計(jì)人員的設(shè)計(jì)思路,并且還可能出現(xiàn):父特征的刪除導(dǎo)致所有子特征的刪除,如果某特證的參數(shù)依賴(lài)于其后續(xù)特征的參數(shù)導(dǎo)致系統(tǒng)重建時(shí)的崩潰等現(xiàn)象。于是系統(tǒng)采用雙重坐標(biāo)方法: 即對(duì)每個(gè)特征既記錄其相對(duì)父特征的坐標(biāo),也記錄其在全局坐標(biāo)系下的坐標(biāo)。這樣,當(dāng)父特征不存在時(shí),子特征可在全局坐標(biāo)系下"生存";另外, 采用vgx技術(shù),將約束關(guān)系從幾何關(guān)系中獨(dú)立出來(lái),建立全局約束鏈,相對(duì)獨(dú)立的約束求解器, 結(jié)合代數(shù)方法和數(shù)值求解方法對(duì)約束整體聯(lián)立求解,既增加了系統(tǒng)的動(dòng)態(tài)導(dǎo)航、動(dòng)態(tài)約束添加和動(dòng)態(tài)修改機(jī)制又保證了模型的修改可以超越設(shè)計(jì)歷史樹(shù)的限制,使得設(shè)計(jì)人員隨時(shí)、隨地、隨意修改成為現(xiàn)實(shí)。

5. 結(jié)論

  軟件組件技術(shù)的發(fā)展為大型復(fù)雜的三維cad/cam系統(tǒng)的開(kāi)發(fā)提供了極好的解決之道,它完全改變了傳統(tǒng)cad/cad系統(tǒng)開(kāi)發(fā)的低效率模式,使得該類(lèi)復(fù)雜系統(tǒng)也可以“搭積式”的快速構(gòu)建。本文深入研究了基于組件技術(shù)開(kāi)發(fā)三維cad系統(tǒng)的相關(guān)技術(shù),介紹了具體實(shí)現(xiàn)方法,同時(shí)給出了系統(tǒng)組件層次結(jié)構(gòu),可為開(kāi)發(fā)該類(lèi)系統(tǒng)提供一定的參考。