1. 引言
隨著傳統CAD係統(tǒng)在破碎機設(shè)備的(de)應用普及(jí)以(yǐ)及現代設計問題的複雜化、智能化,人們不再(zài)僅僅滿足於用計算機取代人進行(háng)手工繪圖。所幸隨著計算機圖形學、人工智能、計算機網絡等基礎(chǔ)技術的發展和計算機集成製造、並行工(gōng)程(chéng)、協同設計等現代設計理論和方法的研究,使得CAD係統也由單純二維繪圖向三維智能設計、物(wù)性分析(xī)、動態仿真方向發展,參數化設計向變量化和VGX(超變量化)方向發展,幾何造型、曲麵造型、實(shí)體造(zào)型(xíng)向特征(zhēng)造型以及語義特征造型等方向發展;另一方麵,伴隨著CAD軟件複雜程度的增加和各個不同應用係統間互(hù)操作的現實需要,人們希望CAD係統具有(yǒu)極佳的開放性同時又能“搭積木”似的自由拚裝形成(chéng)不同(tóng)的功能配置,軟件(jiàn)工程技術特別是組件開發技術的研究應用和逐漸成熟為解決這一問題提(tí)供了(le)堅實的基礎。
組件技術使得各CAD係統(tǒng)開發商們不必(bì)再完全遵(zūn)從(cóng)“一切從零開始(shǐ)”的開發模式,他們(men)可根據自己的(de)技術優勢在滿足組件接口規範要求下開發不同的構件,然後在(zài)得到許可的情況下便可以自由使用這些構件來搭建用戶所需要的(de)CAD係(xì)統。這種方式因其開發周期短、見效快、係統柔性高、開放性好、以及容易“即插即用(yòng)”和(hé)進行並行開發等優勢而倍受親賴。
本文主要討論采用組(zǔ)件技術開(kāi)發國產商品化(huà)CAD/CAM係統——“金銀花” 係統的一些關鍵技術。
2. 係統框(kuàng)架
“金銀花”是(shì)在ACIS幾何建模平(píng)台上,采用變量化特(tè)征造型技術,基於STEP標準——遵循AP214和AP203協議而(ér)研製開發出來的(de)商(shāng)品化三維CAD係統。該係統基本框(kuàng)架結構如圖一所示,大(dà)體(tǐ)分為三個層次——數據層、功能層、接口層:
數據層包(bāo)括物理數據文件、數據庫和邏輯數據模型兩部分,它是CAD係統的設計結果,也是CIMS信息集成的主模型(xíng),由於本係統(tǒng)是符合STEP標準的,故可以通(tōng)過標準數據存取接口(SDAI)進行操作,數據是用戶利用係統功能實現的。
功能層是主體部分,主要有三維零件設計、裝配設計、二維工程圖設計三大模塊,由(yóu)於有主模型的支持,三塊(kuài)之間相互關聯:即任一部分的改變都將引起其它部分相關的自動更新。在零件設(shè)計(jì)中采用特征造型和實(shí)體(tǐ)造型相結合、特征模型與(yǔ)實體模型共存,大大方便了後續工藝分析和加(jiā)工對特征信息的需求又滿足了顯示、變換、物性計算、幹涉檢(jiǎn)查等操作對實體信息的要求。變量化VGX技術主要在草圖設計、特征造型、裝配設計等部分應用,極大的方便了用戶對設計的(de)編輯和修改。
接口層是提供係統的對外接口,分為功能接口與數據接(jiē)口。功能接口(kǒu)便於用(yòng)戶進行二次開發(fā),組件重用等;而數據接(jiē)口為其它環節如CAPPCAMCAEPDM等提供(gòng)一致性(xìng)的數據訪問方式。
3. 組件結構
係統的組件結構設計是基於組件(jiàn)技(jì)術開發CAD係統的關(guān)鍵,主要內容是(shì)根據應用係統的功能需求列出所有構成組件、各個組件間的依賴關係和接口,並確定哪些組件自(zì)己開(kāi)發而哪些可直接從組件供應商處購買以縮短開發周期(qī)。而本係統(tǒng)就是通(tōng)過從美(měi)國STI公(gōng)司(Spatial Technology Inc.)購買三維CAD係統所需幾何造(zào)型、文件管(guǎn)理、內存管理等基本功能組件,而(ér)集中精力開(kāi)發支(zhī)持特(tè)征造型、VGX約束求解、裝配設計、關聯繪圖、用戶接口等組(zǔ)件。
由於ACIS是完全基於組件技術開發(fā)的,其所有基礎功能均通過不同的組件(表現為動態聯接庫DLL)實現。在ACIS6.0中大約有五十(shí)多(duō)個DLL,所有這些DLL實際可劃歸為兩部分:ACIS 3D Toolkit(核心模塊)和Optional Husks(可選模(mó)塊)。其中核心組件(jiàn)提供構造係統所需的基本功能(如:基本幾何和拓撲、內存管理、模型管理(lǐ)、顯示管理、圖形交互等),這部(bù)分是ACIS幾何建模的核心,類似於飛機的發(fā)動機,其中包括許多開發商的必選構件;而另一部分可選組件則提供一些更專業化和更高級的功能(如:高級過(guò)渡、高級渲染(rǎn)、可變形曲麵、精確消影、拔模、抽(chōu)殼、與CATIA和Pro/E等係統的數據接(jiē)口等),這部分作為可選組件由用戶根據實際開發的係統需要自由挑選、搭配和(hé)組合,當然用戶也可用自己開發的(de)組件取代ACIS的部分組件。ACIS的各組件之間存在一定的依賴關係,其中核心組件詳情可(kě)參見ACIS6.0核心組件依賴關係圖。
金銀花(huā)係統組件結構是在對係統功能需求和(hé)總體(tǐ)框架結構分析基礎上得出的,同時也參照了ACIS的組件劃分思想。圖(tú)二給出了係統組件依賴關(guān)係簡圖(為節省篇幅,主要表示了三維零件設計部分的組件,而沒有詳細表示關聯繪圖和裝配部分的(de)組件),為方便(biàn)組件(jiàn)的集(jí)中管理和調用係統采用了層次結構,主要分為核心組件、功能組件、接口組(zǔ)件三層,上層組件可任意調用下層組件(jiàn)提供的所有服務。以下對圖二作一些(xiē)介紹:
◆ 核心組件層:該(gāi)層包含了係統較重要和較基本的組件(jiàn),是三維特征造型、二維關聯繪圖、部(bù)件(jiàn)裝配、動態(tài)仿真等模塊的共享部分(fèn)。ACIS核心組件也(yě)位於其中(zhōng),為係統提供ACIS幾(jǐ)何造型(xíng)基本功能;LM_GI是提供底層顯示支(zhī)持,如:對OpenGL的調用、對屏幕刷新的(de)操作、基本幾何元素的繪製;LM_PUBFUN中提供通用數學運算以及公用鏈表、隊列、堆棧的(de)類定義;LM_RUB包容(róng)了各種幾何元素的橡皮條(tiáo)——rubberband,該部分是支持VGX動(dòng)態拖放造型(drag-and-drop)、動態約束添加以及裝配模塊中的動態幹涉檢查等的(de)基本組件;LM_KERN包括本係統特征造型功能和ACIS幾何造型引擎連接相關的類LmSuperElement(詳(xiáng)見4),以(yǐ)及(jí)為(wéi)上層提(tí)供的管理類、約束類、特征(zhēng)類等提供超類。
◆ 功能組件層(céng):該層建於核心層之上,係(xì)統麵向應用的主要功能部件均在這一層實現。用戶的不同需求會希望配(pèi)置不同功能的軟件係統,從該層選折所需組件(jiàn)集進行不同配(pèi)置(zhì)即可。圖二所示(shì)為三維部分的核心組件LM_KERNPART、特征造型組件LM_FEATURE、VGX約(yuē)束管理器組件LM_VGX、處理選折對象的(de)組件LM_PICK、和負(fù)責總體協調管理的組件LM_MANAGE等(děng)。而其中特征造型和VGX組(zǔ)件中又分別進一(yī)步細化為:草圖特征、高級特征、自定義特征和VGX約束操作、約束管理約束(shù)求解等組件。
◆ 接口組(zǔ)件層:是係統的較高層,也是與用戶(hù)直接進行交互操作管理的組件層,所以主要有處理鼠標事件(jiàn)MouseTool的LM_MT和管理係統(tǒng)界麵(miàn)中涉及到的(de)對話框、菜單、工具(jù)條等資源的(de)組件。
可見,這種組件(jiàn)設計結構不僅極大的方便了不同用戶需求係統的配置,而且將係統的用戶接口(kǒu)與功能的具體實現分(fèn)開,便於針對不同語種、不同操作係統平台、不同使用習慣開發豐富多彩的界麵,也從技(jì)術角度實現(xiàn)了與ACIS幾何引擎(qíng)的無縫集(jí)成。
4. 關鍵技術實現
采用軟件組(zǔ)件技術建立組件依賴關係為三維CAD係(xì)統架設了總體結構,但具體實現還需(xū)解(jiě)決許多關鍵性技術,以下主要以特(tè)征造型技術(shù)為例說明係統的(de)設計思路。
由(yóu)於ACIS本質上一個幾何實體造(zào)型的平台,通過(guò)B-rep表示提供實體幾何、拓撲結(jié)構(gòu)的完整描述,但它並不直接支持特征造型。因此(cǐ),如圖三所示(shì)係統在實體模型和特征模型之間通過引入構造點、邊、麵的機製建立一種映射關係。每個特征中(zhōng)不僅包含工藝製造信息還包含其具體構造點、邊、麵信(xìn)息,這些構造元素再與(yǔ)實體模型中(zhōng)的點、邊、麵建立聯係。
其中LmFeature較終派生(shēng)於ACIS的ENTITY,以便於進行內存管理、文件存儲和模型操作管理(lǐ)。m_Construction屬(shǔ)性記錄(lù)該特征的所有構造點LmSuperPoint、邊LmSuperEdge、麵LmSuperFace(三者均派生於LmSuperElement),它們又分(fèn)別記錄ACIS的VERTEX,EDGE,FACE和部分幾何參數(shù)以及特定的語義信息;同(tóng)時在每個ACIS拓撲元素(FACE,EDGE,VERTEX)中通過屬性ATTRIB機製又(yòu)嵌入其對應的LmSuperElement。這種雙向鏈表結構方式不僅便於實現特征造型和(hé)實體造型間的無縫鏈接和快速查找,而且也為係統重建時維護拓撲關係奠定了基礎(chǔ)。因為僅記錄ACIS拓撲元素(FACE,EDGE,VERTEX)是不可能保(bǎo)證拓撲關(guān)係一致的。m_OtherInfo屬性主要用於存放特(tè)征語義、工藝信息等,另外還為用戶提供了手工添加特征語義的接口, 為真正支持(chí)CIMS環境下信息集成奠定了基礎。
在特征創建刪除\修改或模型重建過程中,為維護(hù)設計者的設計意圖關鍵在於維護模型修改前後(hòu)拓撲(pū)結構的對應關係即:拓撲一(yī)致(zhì)性,因此必須考慮拓撲編碼的問題。係統通過為每(měi)個從ENTITY派生的實體引入索引標誌的方法解決,該索引標誌不僅記(jì)錄全局**標誌符,而且通過充分利用ACIS ENTITY中的ATTRIB 和ANNOTATION 類對(duì)模型操作的具體變化做了詳細的記錄:操作前有那些麵、邊、點,操作後又產生了那些新的麵、邊、點等等。操作後係(xì)統自動重新整理,保證了拓撲結構的對應關係。
要支(zhī)持特征造型,還必需維護特征之間的依賴關係,以便修改(gǎi)特征參數後重(chóng)建所有依賴(lài)特征,這些關係一般形成(chéng)樹(shù)形結構,又(yòu)稱特征(zhēng)樹。 特征樹方便了對特征的管理,但(dàn)這種關係往往也限(xiàn)製了設計人員的設計思路,並且還可能出現:父(fù)特征的刪除導致所有子特(tè)征的刪除,如果某特證的參數依賴於其後續特征的參數導致係統重建時的崩(bēng)潰等現(xiàn)象。於是係統采用雙重坐標方法: 即對(duì)每個特征既記錄其相對父特征的坐標,也記(jì)錄其在全局坐標係下的(de)坐(zuò)標。這樣(yàng),當父特征不存在時,子特征可(kě)在全局坐標係下"生(shēng)存";另外, 采用VGX技術,將約束關係從(cóng)幾何關係中獨立(lì)出來,建(jiàn)立(lì)全局約束鏈(liàn),相對獨立的約束求解器, 結合代(dài)數方法和數值求解方法對約束(shù)整體聯立求解,既增加了係統的動態導航、動態約束添加和動態修改機(jī)製又保證了模型的修改可以超越設計曆史(shǐ)樹的限(xiàn)製,使得設計人員隨時、隨地、隨意(yì)修改成為現實。
5. 結論
軟件組件技術的發展為大型複雜的(de)三維CAD/CAM係統的開(kāi)發提供了極好的解決之道,它完全改變了傳統CAD/CAD係統開(kāi)發的低效率模式,使得該類複雜係統也可以“搭(dā)積式”的快速構建。本文深入研究了基於組件技(jì)術(shù)開發三維CAD係統的相關(guān)技術,介紹了具體實現方法,同時給出了係(xì)統組件層次結構,可為(wéi)開發該類係統(tǒng)提供一定的參考。