摘要:構(gòu)建了PDM和三維CAD軟件集成的基本模型和集成框架。該框架通過一致的數(shù)據(jù)模型,能夠靈活地集成不同的三維CAD系統(tǒng)和PDM系統(tǒng)。在數(shù)據(jù)模型的袁達(dá)上,采用了XML這種流行的易于擴(kuò)展的技術(shù)方法;在集成框架設(shè)計(jì)上,采用了抽象x-7等成熟的設(shè)計(jì)模式,并提供了標(biāo)準(zhǔn)化的接口定義來擴(kuò)展集成框架的功能。文章對集成框架的功能和具體實(shí)現(xiàn)方法進(jìn)行了論述。
關(guān)鍵詞:產(chǎn)品數(shù)據(jù)管理;三維CAD;集成框架;設(shè)計(jì)模式
0 引言
PDM(產(chǎn)品數(shù)據(jù)管理)可理解為產(chǎn)品及其相關(guān)數(shù)據(jù)的管理和過程控制的平臺。近年來,在產(chǎn)品設(shè)計(jì)的過程中,三維CAD的使用逐漸增多,其數(shù)據(jù)類型成為了PDM管理的主要內(nèi)容。PDM數(shù)據(jù)模型和三維CAD的數(shù)據(jù)模型存在很多相似的地方,但由于系統(tǒng)目標(biāo)的不同,也存在很多差異。市場上各種三維CAD軟件很多,如何在一個統(tǒng)一的平臺框架下集成這些三維CAD系統(tǒng),屏蔽各類CAD系統(tǒng)的差異,并且在各類三維CAD和PDM之間進(jìn)行數(shù)據(jù)模型的匹配,是當(dāng)前PDM需要重點(diǎn)研究和解決的問題。
1 PDM中三維CAD的集成功能
1.1 PDM中關(guān)注的主要三維CAD特性
三維CAD軟件通過對零部件的三維造型,直觀地表達(dá)了零部件的形狀、物理特征以及零部件問的裝配關(guān)系;通過三維仿真還可以模擬裝配和加工的過程。這些都使三維CAD軟件在企業(yè)的產(chǎn)品設(shè)計(jì)中起著越來越大的作用。
在PDM中,主要關(guān)注的是CAD圖紙中表達(dá)的零部件結(jié)構(gòu)及其屬性信息。對于三維CAD而言,它們基本都提供了基于特征參數(shù)的零部件族的設(shè)計(jì)方法。在這些方法中,特征參數(shù)被提取到模型上,通過模型上特征參數(shù)的變化驅(qū)動三維圖形,產(chǎn)生不同的零部件族成員。零部件成員及其特征參數(shù)的取值形成了一張二維表,通常被稱為參數(shù)表。參數(shù)表直觀反映了多個成員的不同特性。
通過三維CAD的投影可產(chǎn)生二維工程圖。二維工程圖用來下發(fā)到生產(chǎn)部門指導(dǎo)實(shí)際的生產(chǎn)作業(yè)。二維工程圖和三維模型的關(guān)系需要在PDM的管理中得到體現(xiàn)。
三維CAD的仿真、干涉檢查以及有關(guān)圖形的特性,PDM無需進(jìn)行管理。PDM只需能夠存儲三維CAD的文件,并最終通過調(diào)用三維CAD軟件本身來給用戶使用即可。
1.2 PDM和三維CAD的主要集成功能
由上文可知,PDM做為三維CAD的管理平臺,其功能只要有:
(1)三維CAD文件的管理:
(2)從三維CAD提取零部件信息產(chǎn)生PDM中的零部件對象,產(chǎn)生產(chǎn)品結(jié)構(gòu)樹,并保持產(chǎn)品結(jié)構(gòu)樹和三維CAD中相關(guān)信息的一致性;
(3)零部件族和參數(shù)表的管理;
(4)三維CAD的編輯、瀏覽、圈閱等。
這些功能在系統(tǒng)集成中主要體現(xiàn)在:
(1)數(shù)據(jù)在兩個系統(tǒng)中保存并保持同樣的關(guān)聯(lián)關(guān)系;
(2)由于信息在PDM和三維CAD中是冗余的,需要保持兩者的數(shù)據(jù)同步和邏輯完整性。
下面對這兩個方面進(jìn)行闡述。
2 集成框架結(jié)構(gòu)及構(gòu)建
目前國內(nèi)外流行的三維CAD的種類較多,如UG、PROE、SolidWorks、SolidEdge、Catia、Inventor等。這些三維CAD軟件的功能特色相差較大,概念、數(shù)據(jù)模型和存儲方式也不盡相同。從PDM的角度出發(fā),首先必須抽象出它們的共同特征,形成統(tǒng)一一致的數(shù)據(jù)模型。在此數(shù)據(jù)模型基礎(chǔ)上,建立通用的集成框架。
2.1 PDM使用對象模型來表達(dá)三維CAD結(jié)構(gòu)
在PDM和三維CAD的集成中,首先要能夠根據(jù)PDM的需要獲取三維CAD的相關(guān)信息。因此,必須在PDM中建立與三維CAD的數(shù)據(jù)模型相應(yīng)的數(shù)據(jù)模型。
三維CAD的數(shù)據(jù)模型包括零部件的裝配關(guān)系、零部件模型和零部件族成員之間的關(guān)系以及參數(shù)表等,在PDM中,通過面向?qū)ο蟮慕7椒梢郧逦乇磉_(dá)它們:
(1)三維零部件模型、零部件族成員在PDM中都使用零部件對象來表達(dá),通過建立一個特殊的多元關(guān)聯(lián)關(guān)系,可以表達(dá)零部件族模型和成員的包含關(guān)系;
(2)零部件的裝配結(jié)構(gòu),可以通過零部件對象的聚合關(guān)系來表達(dá)。這種聚合關(guān)系可以做為零部件對象的屬性保存在零部件對象中。產(chǎn)品結(jié)構(gòu)最終通過零部件的層級聚合關(guān)系體現(xiàn)出來。
(3)三維CAD文檔在PDM中可通過二元關(guān)聯(lián)的方式和零部件對象建立關(guān)系。文件之間的關(guān)系可通過零部件的裝配結(jié)構(gòu)來表達(dá)。
(4)二維工程圖和三維圖紙對象可通過“組合”關(guān)系關(guān)聯(lián),這樣,可保證三維圖紙的更新反映到二維工程圖上。
在數(shù)據(jù)模型的對應(yīng)關(guān)系確立以后,就可以通過一個通用的集成框架來處理兩者的集成關(guān)系了。
2.2 層次模型
如前所述,集成框架主要支持的功能就是PDM和三維CAD兩種數(shù)據(jù)的相互轉(zhuǎn)換的問題。但是,不同的三維CAD軟件的數(shù)據(jù)模型存在一定差異,提供的接口API也形態(tài)各異,如果對每種CAD都在PDM中進(jìn)行特別的處理,必然導(dǎo)致PDM程序體系的復(fù)雜和工作量的增大,我們建立集成框架的目的之一就是要通過一致的處理模型來實(shí)現(xiàn)PDM和三維CAD軟件的良好集成。
要實(shí)現(xiàn)這樣的集成框架,首先必須抽象出不同三維CAD的公共特征,然后根據(jù)PDM的需要構(gòu)建統(tǒng)一的業(yè)務(wù)模型。技術(shù)實(shí)現(xiàn)上,以組件化的方式來開發(fā)相關(guān)集成功能,從而形成一個“即插即用”的集成框架。
一種常用的方法是使用中間層邏輯來屏蔽不同三維CAD軟件的差異。為此,需要一種結(jié)構(gòu)化的表達(dá)方法來映射三維CAD和PDM的邏輯結(jié)構(gòu)。并且,這種結(jié)構(gòu)化的表示對于程序員和用戶應(yīng)該是可理解的,以利于在兩種不同的數(shù)據(jù)模型中提供靈活的功能。從這些特性來看,基于XML的表示方法是表達(dá)三維CAD零部件關(guān)系的合適的技術(shù)。
XML本身是一種結(jié)構(gòu)化的語言,能夠清晰地表達(dá)零部件的裝配、參數(shù)表等各種復(fù)雜的關(guān)系;通過W3C定義的通用接口標(biāo)準(zhǔn)DOM(XML文檔對象模型),又可以輕易地把XML文本分解為對象模型,從而在三維CAD和PDM間充當(dāng)轉(zhuǎn)換的橋梁。
從cAD到PDM的數(shù)據(jù)模型轉(zhuǎn)換過程中,會存在數(shù)據(jù)模型的“不匹配”的情況。因此,需要在兩種數(shù)據(jù)模型之間嵌入轉(zhuǎn)換邏輯。顯然,對于不同的三維CAD軟件,甚至對于使用同一種三維軟件的不同用戶,其邏輯都是不同的。所以,在兩種數(shù)據(jù)模型的轉(zhuǎn)換過程中,必須提供靈活的二次開發(fā)的方法和手段來滿足不同的用戶要求。利用XML的開放性特征可以很容易實(shí)現(xiàn)這一點(diǎn),通過對基于DOM或者SAX的API接口,可以使用戶方便地實(shí)現(xiàn)自己的控制邏輯,滿足用戶的個性化需求。
圖1表達(dá)了從三維CAD數(shù)據(jù)到PDM數(shù)據(jù)的變化過程。從PDM到三維CAD其過程正好是相反的。
2.3 集成框架結(jié)構(gòu)
集成框架使用組件調(diào)度程序來統(tǒng)一控制框架的各種接口的類型、實(shí)例化、調(diào)用和銷毀。組件調(diào)度程序是集成框架的神經(jīng)中樞,接口依附于組件調(diào)度程序來實(shí)現(xiàn)其功能。接口根據(jù)上述數(shù)據(jù)流圖中可劃分為三個層次,從三維CAD到PDM依次為:
(1)基于不同三維軟件的通用信息轉(zhuǎn)換接口
該層接口提取了不同三維CAD軟件的共同特征,成為一個通用的抽象接口(Abstract Interface)。該抽象接口被不同的組件實(shí)現(xiàn)以滿足不同的三維CAD的要求。該層接口處理的結(jié)果為一種符合基本要求的原始XML文件。
該層接口的即插即用通過抽象工廠(Abstract Factory)的設(shè)計(jì)模式來實(shí)現(xiàn)。組件調(diào)度程序要求組件首先注冊,注冊時必須提供三維CAD軟件的類型信息,這樣,組件調(diào)度程序就可以正確地創(chuàng)建和調(diào)用該類型三維CAD的信息轉(zhuǎn)換組件。
(2)基于用戶個性需求的處理邏輯接口
原始的XML文件經(jīng)過該層處理轉(zhuǎn)變?yōu)闃?biāo)準(zhǔn)的XML文件。該層接口具有最大的個性,用戶可以任意實(shí)現(xiàn)該層的接口以完成自己的個性化需求。零部件族及其成員的關(guān)系、結(jié)構(gòu)關(guān)系和屬性的調(diào)整都在該層實(shí)現(xiàn)。
由于上述的特性,該層的設(shè)計(jì)方法可以有多種。典型的如設(shè)計(jì)的橋接模式(Bridge),可以在基于,net和Java的組件方法中實(shí)現(xiàn),它們都可以通過反射(Reflect)機(jī)制來尋找組件的接口,從而實(shí)現(xiàn)一個具有更大開放性的接口層次。最簡單的接口也可以是直接傳送XML內(nèi)存對象句柄給該層接口使用,這是一種共享內(nèi)存的設(shè)計(jì)方法。
(3)基于PDM數(shù)據(jù)模型的標(biāo)準(zhǔn)操作接口
在標(biāo)準(zhǔn)XML的基礎(chǔ)上,該層從PDM角度封裝了三維數(shù)據(jù)模型的通用處理邏輯。由于PDM的數(shù)據(jù)模型是固定的,因此該層的接口最為豐富,但是其約束也更多。PDM通過該層接口實(shí)現(xiàn)自己的存儲邏輯。
組件框架必須考慮到組件的易用性,這就要求組件以簡單的方式提供簡單和常用的接口,使程序員和用戶方便使用;同時,也提供復(fù)雜的更為精細(xì)的控制接口供高級的開發(fā)人員使用,以實(shí)現(xiàn)更強(qiáng)大的功能。顯然,外觀(Facade)設(shè)計(jì)模式在這里是適用的,它為PDM的不同功能提供了適合的接口。
如圖2所示為集成框架的一般結(jié)構(gòu)。在這樣的一個體系結(jié)構(gòu)中,三維軟件的編輯、瀏覽方法都可以統(tǒng)一到集成框架中。編輯、瀏覽的接口在各三維集成組件中實(shí)現(xiàn),注冊后由組件調(diào)度程序負(fù)責(zé)調(diào)用。對于PDM而言,只需要根據(jù)三維CAD的類型,準(zhǔn)備好CAD文件后,向組件調(diào)度程序發(fā)送編輯或?yàn)g覽請求即可。組件調(diào)度程序根據(jù)注冊組件簡單的重發(fā)該請求即可達(dá)到目的。
3 集成框架的實(shí)現(xiàn)
KMPDM是企業(yè)級的產(chǎn)品數(shù)據(jù)管理系統(tǒng),使用了上述的通用集成框架來實(shí)現(xiàn)和三維CAD的集成。其功能主要包括:
(1)三維模型的批量導(dǎo)入;
(2)三維模型檢入檢出時的同步更新;
(3)零件族模型的自動生成與更新;
(4)三維模型和PDM數(shù)據(jù)一致性檢查。
在KMPDM中,集成框架需要的配置文件統(tǒng)一存放在服務(wù)端上。系統(tǒng)通過對不同三維CAD定義不同的處理配置,來完成PDM數(shù)據(jù)到三維數(shù)據(jù)模型的映射,從而進(jìn)行三維模型數(shù)據(jù)的提取、一致性檢查、批量入庫等處理。
圖3顯示了KMPDM中產(chǎn)品結(jié)構(gòu)樹和PROE三維模型結(jié)構(gòu)的一致性。當(dāng)KMPDM執(zhí)行三維模型的檢入操作時,通過集成框架判斷三維模型類型,并根據(jù)配置調(diào)用相關(guān)組件和處理程序產(chǎn)生標(biāo)準(zhǔn)XML數(shù)據(jù),然后更新PDM中相關(guān)產(chǎn)品結(jié)構(gòu)和屬性?;谕ㄓ眉煽蚣躃MPDM完全實(shí)現(xiàn)了三維軟件的“即插即用”的集成,充分顯示了集成框架的靈活性和可擴(kuò)展性。
4 結(jié)束語
通過抽象CAD的公共特征可以建立統(tǒng)一的、可擴(kuò)展的PDM和三維CAD軟件通用集成框架。該框架易于擴(kuò)展,三維CAD的軟件類型的增加只需要增加相應(yīng)的組件并注冊即可,其他組件無需重新編譯。該集成框架對于PDM來說是一種標(biāo)準(zhǔn)的形式,PDM可以根據(jù)自己的業(yè)務(wù)處理邏輯來進(jìn)行擴(kuò)展。由于中間層的存在,這種擴(kuò)展不會影響到三維CAD的處理組件。實(shí)踐證明,這種體系結(jié)構(gòu)達(dá)到了一致性和多樣性的統(tǒng)一。