專利名稱:一種異構(gòu)cad在線集成中的一致性維護(hù)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及ー種CAD領(lǐng)域的維護(hù)方法,尤其是涉及ー種異構(gòu)CAD在線集成中的一致性維護(hù)方法。
背景技術(shù):
目前CAD技術(shù)的研究大體上分為兩類面向單機(jī)CAD系統(tǒng)的研究和面向協(xié)同工作系統(tǒng)的研究。面向單機(jī)CAD系統(tǒng)的研究包括幾何造型內(nèi)核層面的研究、幾何造型系統(tǒng)層面的研究以及基于物理的建模方法和系統(tǒng)的研究。面向協(xié)同工作系統(tǒng)的研究是,CAD技術(shù)與計算機(jī)支持的協(xié)同工作(CSCW)相結(jié)合的新型交叉研究方向。把CAD系統(tǒng)從單機(jī)系統(tǒng)向協(xié)同工作系統(tǒng)發(fā)展,產(chǎn)品的設(shè)計由原來的設(shè)計人員單獨(dú)完成轉(zhuǎn)變?yōu)橛煞植荚诓煌攸c(diǎn)的產(chǎn)品設(shè)計人員協(xié)同完成,從而大大提高了產(chǎn)品開發(fā)能力和 效率。由于各單機(jī)CAD系統(tǒng)分別具有各自的系統(tǒng)優(yōu)勢和功能側(cè)重點(diǎn),而且不同的產(chǎn)品設(shè)計人員都有自己習(xí)慣使用的CAD系統(tǒng),因此不同的產(chǎn)品設(shè)計人員通常會選用不同的CAD系統(tǒng)進(jìn)行產(chǎn)品設(shè)計。因此,為了支持產(chǎn)品設(shè)計人員使用自己慣用的CAD系統(tǒng)進(jìn)行協(xié)同產(chǎn)品設(shè)計,實現(xiàn)異構(gòu)CAD系統(tǒng)集成勢在必行。按照數(shù)字化模型信息交換的載體和通信模式來分類,異構(gòu)CAD系統(tǒng)集成可以分為離線集成方式和在線集成方式。異構(gòu)CAD系統(tǒng)離線集成主要采用異步方式來交換整體數(shù)據(jù)文件進(jìn)行企業(yè)產(chǎn)品信息集成的,又可以進(jìn)ー步分為基于幾何模型的數(shù)據(jù)交換和基于特征模型的數(shù)據(jù)交換。前者交換的是模型的幾何表示,后者交換的是包含高層語義的特征模型。相對異構(gòu)CAD離線集成來講,異構(gòu)CAD系統(tǒng)在線集成是通過交換建模操作命令,實現(xiàn)更細(xì)粒度的信息集成及各CAD系統(tǒng)間的協(xié)同設(shè)計。CAD在線集成應(yīng)支持各協(xié)同站點(diǎn)的CAD用戶,對共享的CAD模型同時進(jìn)行瀏覽和編輯。面對這些由不同站點(diǎn)發(fā)出的并發(fā)操作,CAD在線集成需要解決的問題便是如何實現(xiàn)各協(xié)同站點(diǎn)上的共享CAD模型的一致性。按照所采用架構(gòu)的不同,目前已有的在線集成系統(tǒng)(協(xié)同設(shè)計系統(tǒng))可以分為兩類采用集中式架構(gòu)的在線集成系統(tǒng)和采用復(fù)制式架構(gòu)的在線集成系統(tǒng)。在典型的集中式架構(gòu)(即基于Web的架構(gòu))中,包含一個服務(wù)器和多個客戶端。服務(wù)器用于存儲共享CAD系統(tǒng)和共享模型,另外還擔(dān)負(fù)著實施建模操作的職責(zé),而客戶端僅支持可視化和交互的功能。故而,在集中式架構(gòu)中,所有的建模操作都必須傳送到服務(wù)器執(zhí)行,從而阻礙了高本地響應(yīng)的實現(xiàn)。在復(fù)制式架構(gòu)中,每ー個協(xié)同站點(diǎn)都放置CAD系統(tǒng)并存儲共享模型副本。與采用集中式架構(gòu)的在線集成系統(tǒng)相比,采用復(fù)制式架構(gòu)的在線集成系統(tǒng)更有利于實現(xiàn)高本地響應(yīng)。目如,在已有的在線集成系統(tǒng)中,最具代表性的系統(tǒng)包括Syco3D系統(tǒng)、TOBACO系統(tǒng)、ARCADE系統(tǒng)、CSCW-FeatureM系統(tǒng)、RCCS系統(tǒng)及李珉等人開發(fā)的基于中性建模命令的協(xié)同設(shè)計系統(tǒng)。對于一致性維護(hù)問題,Sync3D系統(tǒng)為參與協(xié)同設(shè)計的CAD用戶提供了兩種設(shè)計模式私人模式和共享模式。在私人模式下,各站點(diǎn)的CAD用戶編輯本地站點(diǎn)的模型副本,而不與其他站點(diǎn)的用戶進(jìn)行同步;在共享模式下,把設(shè)計結(jié)果傳送給其他站點(diǎn)的CAD用戶進(jìn)行同歩。對于在共享模式下出現(xiàn)的并發(fā)沖突(即導(dǎo)致各站點(diǎn)模型不一致的情況),只能通過人工交互的方法來解決。TOBACO系統(tǒng)采用ー種叫做“floor control”的機(jī)制進(jìn)行并發(fā)控制。這種并發(fā)控制機(jī)制是非常嚴(yán)格的,只有令牌的擁有者才能進(jìn)行建模操作,其他用戶此時只能對結(jié)果模型作視角變換等不影響數(shù)據(jù)結(jié)構(gòu)的操作。ARCADE系統(tǒng)和CSCW-FeatureM系統(tǒng)分別采用樂觀對象鎖機(jī)制和公共規(guī)則和協(xié)議實現(xiàn)并發(fā)控制,進(jìn)而實現(xiàn)一致性維護(hù)。RCCS系統(tǒng)采用了一種本地鎖機(jī)制來實現(xiàn)并發(fā)控制。在這種機(jī)制下,各協(xié)同站點(diǎn)上的本地建模操作可以立即執(zhí)行,然后送到其他站點(diǎn)實現(xiàn)遠(yuǎn)端執(zhí)行。另外,為了實現(xiàn)一致性維護(hù),該系統(tǒng)還采用了一種基于名字的方法來解決拓?fù)湓仄ヅ鋯栴}。基于中性建模命令的協(xié)同設(shè)計系統(tǒng)采用ー種以特征為粒度的的鎖機(jī)制,實現(xiàn)并發(fā)控制和一致性維護(hù),該方法將鎖機(jī)制的粒度降低到了特征級。通過以上分析我們發(fā)現(xiàn),不論是在floor control機(jī)制下,還是在樂觀鎖機(jī)制下,在某一時刻都只允許ー個用戶對共享模型進(jìn)行修改,因此大大限制了多用戶交互。盡管RCCS系統(tǒng)所采用本地鎖機(jī)制能夠支持更少約束的多用戶交互,但是由于異構(gòu)CAD系統(tǒng)所 采用的拓?fù)湓孛麢C(jī)制各不相同,因此RCCS系統(tǒng)所采用的基于名字的拓?fù)湓仄ヅ浞椒ú荒苡糜诋悩?gòu)CAD在線集成系統(tǒng)實現(xiàn)拓?fù)湓仄ヅ?,進(jìn)而實現(xiàn)一致性維護(hù)?;谥行悦畹膮f(xié)同設(shè)計系統(tǒng)在以特征為粒度的并發(fā)控制機(jī)制下,當(dāng)某一個特征被修改吋,不允許其他站點(diǎn)對所有依賴于該特征的特征進(jìn)行同時修改,因此,在該機(jī)制下,多用戶交互仍然受到了很大的限制。
發(fā)明內(nèi)容
本發(fā)明主要是解決現(xiàn)有技術(shù)所存在的技術(shù)問題;提供了一種能夠支持各協(xié)同站點(diǎn)上的本地用戶操作在本地站點(diǎn)上立即執(zhí)行,從而實現(xiàn)了高本地響應(yīng)的一種異構(gòu)CAD在線集成中的一致性維護(hù)方法。本發(fā)明還有一目的是解決現(xiàn)有技術(shù)所存在的技術(shù)問題;提供了ー種不再需要對操作的模型或特征進(jìn)行加鎖,也不需要在獲得令牌后才能進(jìn)行建模操作,從而克服了已有的基于鎖或令牌機(jī)制的一致性維護(hù)方法無法進(jìn)行自由并發(fā)操作的缺點(diǎn),實現(xiàn)了更少約束的自由并發(fā)交互的一種異構(gòu)CAD在線集成中的一致性維護(hù)方法。本發(fā)明的上述技術(shù)問題主要是通過下述技術(shù)方案得以解決的
一種異構(gòu)CAD在線集成中的一致性維護(hù)方法,其特征是,包括以下步驟
步驟I,在本地站點(diǎn)的CAD系統(tǒng)中,立即執(zhí)行本地CAD用戶發(fā)出的建模操作,并生成相應(yīng)的操作命令傳送至其他遠(yuǎn)端站點(diǎn);
步驟2,當(dāng)遠(yuǎn)端站點(diǎn)接收到步驟I發(fā)出的建模操作命令時,對所接收到的建模操作的因果關(guān)系進(jìn)行檢查,若本站點(diǎn)滿足該建模操作的因果關(guān)系,則轉(zhuǎn)入步驟3,否則,將該建模操作加入本站點(diǎn)等待執(zhí)行操作隊列,直到其因果關(guān)系滿足后,轉(zhuǎn)入步驟3 ;
步驟3,在建模操作的因果關(guān)系得以滿足的前提下,檢測該操作與遠(yuǎn)端站點(diǎn)上已執(zhí)行的并發(fā)操作之間的關(guān)系,并根據(jù)不同的關(guān)系,分別采用相應(yīng)的并發(fā)控制機(jī)制進(jìn)行處理。在上述的一種異構(gòu)CAD在線集成中的一致性維護(hù)方法,所述步驟I中,所述操作命令的格式如下站點(diǎn)號,狀態(tài)向量,操作類型;所述操作類型包括特征名、特征信息、拓?fù)湓匦畔⒁约疤卣鏖g的依賴信息。在 上述的一種異構(gòu)CAD在線集成中的一致性維護(hù)方法,所述步驟I中生成的操作命令,定義站點(diǎn)號,狀態(tài)向量,操作類型如下
定義I:定義站點(diǎn)號為ー個整數(shù)i,我們從I開始為參與集成的每個站點(diǎn)分配一個站點(diǎn)號i, i e {I,... N}, N為參與集成的站點(diǎn)的個數(shù);
定義2,定義狀態(tài)向量為ー個N元組,記為SV,其姆ー個元素SV[j], j e {1,…,N},記錄操作在本地站點(diǎn)上執(zhí)行時,本地站點(diǎn)上已執(zhí)行的來自站點(diǎn)j的操作個數(shù);
定義3,定義操作類型為添加特征、修改特征和刪除特征這三種操作,具體包括
信息I :特征名,是指操作特征的名字,命名所遵循的規(guī)則為特征類型_站點(diǎn)號_特征序號;
信息2 :特征信息,是指在遠(yuǎn)端站點(diǎn)上的CAD系統(tǒng)中,執(zhí)行相同建模操作所需的信息;信息3 :拓?fù)湓匦畔ⅲ侵附2僮魉玫耐負(fù)湓匦畔?,包括類型信息、屬性信息、界限信息和校驗信息?br>
信息4 :特征間的依賴信息,是指操作特征與本地模型中已有特征間的依賴關(guān)系信息。在上述的一種異構(gòu)CAD在線集成中的一致性維護(hù)方法,所述的步驟I的信息I中, 特征類型為CAD系統(tǒng)所支持的特征類型;
站點(diǎn)號為發(fā)出操作的本地站點(diǎn)的站點(diǎn)號i ;
特征序號為操作的特征是本地站點(diǎn)上所添加的第k個特征,特征的序號即為k。在上述的一種異構(gòu)CAD在線集成中的一致性維護(hù)方法,所述的步驟I的信息2中,在遠(yuǎn)端站點(diǎn)上執(zhí)行相同建模操作所需的信息,若操作類型為添加特征,則所需信息對應(yīng)為執(zhí)行信息1,若操作類型為修改特征,則所需信息對應(yīng)為執(zhí)行信息2,若操作類型為刪除特征,則所需信息對應(yīng)為執(zhí)行信息3,并定義
執(zhí)行信息I :添加特征的特征信息,為在遠(yuǎn)端站點(diǎn)的CAD系統(tǒng)中,創(chuàng)建相同特征所需的信息,其中包括參數(shù)信息、約束信息;
執(zhí)行信息2 :修改特征的特征信息,為操作修改的特征的參數(shù)名及修改后的參數(shù)值; 執(zhí)行信息3 :刪除特征的特征信息,為要刪除特征的名字。在上述的一種異構(gòu)CAD在線集成中的一致性維護(hù)方法,所述的步驟I的信息3中,定義
類型信息為拓?fù)湓氐念愋停?br>
屬性信息為拓?fù)湓氐膸缀螌傩裕?br>
界限信息為ー維拓?fù)湓氐亩它c(diǎn)信息和ニ維拓?fù)湓氐倪吔邕呅畔ⅲ?br>
校驗信息為ー維拓?fù)湓氐拈L度和ニ維拓?fù)湓氐拿娣e。在上述的一種異構(gòu)CAD在線集成中的一致性維護(hù)方法,所述步驟I中生成操作命令,具體包括以下步驟
步驟1.1,獲取本地站點(diǎn)的站點(diǎn)號,記為i ;
步驟I. 2,獲取本地站點(diǎn)的狀態(tài)向量SV,然后將SV的第i個元素加I即SV[i]=SV[i]+l ;
步驟I. 3,獲取操作的類型和特征名;
步驟I. 4,利用本地站點(diǎn)的CAD系統(tǒng)提供的特征信息訪問APIs,獲取特征信息;步驟I. 5,利用本地站點(diǎn)的CAD系統(tǒng)提供的特征依賴關(guān)系訪問APIs,獲取操作特征與模型中已有特征間的依賴關(guān)系,并將該依賴關(guān)系添加到本地站點(diǎn)存放的特征依賴圖中。在上述的一種異構(gòu)CAD在線集成中的一致性維護(hù)方法,所述步驟I. 3獲取操作類型和特征名,具體包括以下步驟
步驟I. 31,本地站點(diǎn) 在執(zhí)行當(dāng)前操作前,模型中的特征個數(shù)記為FN,執(zhí)行完當(dāng)前操作后,模型中的特征個數(shù)記為FN’,— FN’ =FN+1,則轉(zhuǎn)入步驟I. 32,若FN’ =FN,則轉(zhuǎn)入步驟
I.33,若FN,<FN,則轉(zhuǎn)入步驟I. 34 ;
步驟I. 32,操作類型為添加特征,當(dāng)前模型包含的特征中,不遵循特征命名規(guī)則的特征即為新添加的特征,利用CAD系統(tǒng)提供的獲取的特征類型的APIs,獲取新添加特征的類型,并根據(jù)本地站點(diǎn)記錄的站點(diǎn)號和特征序號,按照命名規(guī)則對特征命名;
步驟I. 33,操作類型為修改特征,通過本地站點(diǎn)CAD系統(tǒng)提供的訪問特征信息的APIs,獲取到當(dāng)前模型中各特征的信息,并與站點(diǎn)上保存的已執(zhí)行操作命令隊列中的特征信息進(jìn)行比較,若不同,則該特征即是被修改的特征,獲取該特征的名字;
步驟I. 34,操作類型為刪除,從特征依賴圖中的祖先結(jié)點(diǎn)開始,依次取出各結(jié)點(diǎn)中的特征名,并根據(jù)取出的特征名在當(dāng)前模型中尋找同名的特征,若未找到,則該特征名即為被刪除特征的名字。在上述的一種異構(gòu)CAD在線集成中的一致性維護(hù)方法,所述步驟2中對所接收到的建模操作的因果關(guān)系進(jìn)行檢查,具體通過如下條件進(jìn)行因果關(guān)系檢查(建模操作Oi在本地站點(diǎn)i上執(zhí)行時的狀態(tài)向量記為SVm,遠(yuǎn)端站點(diǎn)j的狀態(tài)向量記為SVj)
條件 I :SVM[i] =SVj[i];
條件 2 SV0i[k]<=SVj[k], k e {1,…,N}, k デ i。在上述的一種異構(gòu)CAD在線集成中的一致性維護(hù)方法,所述步驟3中,檢測操作與遠(yuǎn)端站點(diǎn)上已執(zhí)行的并發(fā)操作之間的關(guān)系,定義檢測操作為0j,并發(fā)操作0i,具體方法如下
檢測關(guān)系I :若當(dāng)前遠(yuǎn)端站點(diǎn)上已執(zhí)行的并發(fā)操作中,有刪除操作0i,且Oi刪除的特征為Oj所依賴的特征,則Oi屏蔽了 Oj ;
檢測關(guān)系2 :若Oj引用了源模型中的拓?fù)湓?記為源拓?fù)湓?,且在當(dāng)前遠(yuǎn)端站點(diǎn)的模型中能夠找到與Oj所引用的源拓?fù)湓叵嗥ヅ涞耐負(fù)湓?記為目標(biāo)拓?fù)湓?,則Oj與當(dāng)前站點(diǎn)上已執(zhí)行的并發(fā)操作Oi是可互換執(zhí)行的;
檢測關(guān)系3 :若Oj是未引用拓?fù)湓氐奶砑犹卣鞑僮鳎瑒tOj與當(dāng)前站點(diǎn)上已執(zhí)行的并發(fā)操作Oi是可互換執(zhí)行的;
檢測關(guān)系4 :若Oj為刪除特征操作,且當(dāng)前遠(yuǎn)端站點(diǎn)的模型中能夠找到Oj所要刪除的特征,則Oj與當(dāng)前站點(diǎn)上已執(zhí)行的并發(fā)操作Oi是可互換執(zhí)行的;
檢測關(guān)系5 :若Oj引用了源模型中的拓?fù)湓?,且在?dāng)前遠(yuǎn)端站點(diǎn)的模型中找不到與Oj所引用的源拓?fù)湓叵嗥ヅ涞哪繕?biāo)拓?fù)湓兀瑒tOj與當(dāng)前遠(yuǎn)端站點(diǎn)上已執(zhí)行的導(dǎo)致目標(biāo)拓?fù)湓乇粍h除的并發(fā)操作Oi是沖突的;
檢測關(guān)系6 :若Oj是未引用拓?fù)湓氐男薷奶卣鞑僮鳎耶?dāng)前遠(yuǎn)端站點(diǎn)上已執(zhí)行的并發(fā)操作中,有修改操作0i,Oi修改的特征與Oj修改的特征之間存在依賴關(guān)系,則Oi與Oj是沖突的。
在上述的一種異構(gòu)CAD在線集成中的一致性維護(hù)方法,所述步驟3中根據(jù)檢測操作Oj與當(dāng)前遠(yuǎn)端站點(diǎn)上已執(zhí)行的并發(fā)操作Oi間不同的關(guān)系,所采用的并發(fā)控制機(jī)制,具體方法如下
執(zhí)行關(guān)系I:若Oj被Oi屏蔽,則放棄執(zhí)行Oj ;
執(zhí)行關(guān)系2 :若Oj與Oi是可互換執(zhí)行的,則保留Oi并執(zhí)行Oj ;
執(zhí)行關(guān)系3 :若Oj與Oi是沖突的,則先執(zhí)行Oi和Oj中優(yōu)先級較高的操作,再執(zhí)行優(yōu)先級較低的操作,若無法執(zhí)行優(yōu)先級較低的操作,則放棄執(zhí)行,僅保留優(yōu)先級較高的操作。
在上述的一種異構(gòu)CAD在線集成中的一致性維護(hù)方法,所述執(zhí)行關(guān)系3中判斷優(yōu)先級是兩個并發(fā)操作的特征間是否存在依賴關(guān)系選擇執(zhí)行以下判斷步驟
選擇判斷步驟I :若兩個并發(fā)操作的特征間存在依賴關(guān)系,則被依賴特征優(yōu)先級高于依賴特征;
選擇判斷步驟2 :若兩個并發(fā)操作的特征間無依賴關(guān)系,則發(fā)出這兩個操作的站點(diǎn)的站點(diǎn)號較小的操作具有較高的優(yōu)先級。因此,本發(fā)明具有如下優(yōu)點(diǎn)1.本發(fā)明能夠支持各協(xié)同站點(diǎn)上的本地用戶操作在本地站點(diǎn)上立即執(zhí)行,從而實現(xiàn)了高本地響應(yīng);2.本發(fā)明不再需要對操作的模型或特征進(jìn)行加鎖,也不需要在獲得令牌后才能進(jìn)行建模操作,從而克服了已有的基于鎖或令牌機(jī)制的一致性維護(hù)方法無法進(jìn)行自由并發(fā)操作的缺點(diǎn),實現(xiàn)了更少約束的自由并發(fā)交互。
圖I為本發(fā)明在異構(gòu)CAD在線集成中的實施例。
具體實施例方式下面通過實施例,并結(jié)合附圖,對本發(fā)明的技術(shù)方案作進(jìn)ー步具體的說明。實施例
本實施例采用CATIA和Ρι·ο/Ε這三個目前流行的異構(gòu)CAD系統(tǒng)作為在線集成的基礎(chǔ)系統(tǒng),ニ個協(xié)同設(shè)計站點(diǎn)對應(yīng)的站點(diǎn)號分別為O和1,站點(diǎn)O和站點(diǎn)I分別采用CATIA和Pro/E作為其CAD系統(tǒng)。以Winsocket2. O作為通訊工具,以VC6. O作為開發(fā)平臺進(jìn)行實施。實施例提供的異構(gòu)CAD在線集成中的一致性維護(hù)方法,包括以下步驟
步驟I,在本地的CAD系統(tǒng)中,立即執(zhí)行本地CAD用戶發(fā)出的建模操作,并獲取站點(diǎn)和建模操作的相應(yīng)信息,從而生成操作命名,傳送至其他遠(yuǎn)端站點(diǎn)。實施例的步驟I中所述的操作命令的格式如下
站點(diǎn)號,狀態(tài)向量,操作類型(特征名,特征信息,拓?fù)湓匦畔?,特征間的依賴信息)。實施例的步驟I中生成的操作命令,包括以下七類信息
Ca)站點(diǎn)號,是指ー個整數(shù)i,我們從I開始為參與集成的每個站點(diǎn)分配一個站點(diǎn)號i,i e {I,... N}, N為參與集成的站點(diǎn)的個數(shù);
(b)狀態(tài)向量,是指ー個N元組,記為SV,其姆ー個元素SV[j],j e {1,…,N},記錄操作在本地站點(diǎn)上執(zhí)行時,本地站點(diǎn)上已執(zhí)行的來自站點(diǎn)j的操作個數(shù);
(c)操作類型,是指添加特征、修改特征和刪除特征這三種操作;
(d)特征名,是指操作特征的名字,命名所遵循的規(guī)則為特征類型_站點(diǎn)號_特征序號;
(e)特征信息,是指在遠(yuǎn)端站點(diǎn)的CAD系統(tǒng)中,執(zhí)行相同建模操作所需的信息;
(f)拓?fù)湓匦畔ⅲ侵附2僮魉玫耐負(fù)湓匦畔?,包括類型信息、屬性信息、界限信息和校驗信息?br>
(g)特征間的依賴信息,是指操作特征與本地模型中已有特征間的依賴關(guān)系信息。實施例的步驟I中生成操作命令,具體包括以下步驟
步驟1.1,獲取本地站點(diǎn)的站點(diǎn)號,記為i ;
步驟I. 2,獲取本地站點(diǎn)的狀態(tài)向量SV,然后將SV的第i個元素加I即 SV[i]=SV[i]+l ;
步驟I. 3,獲取操作的類型和特征名;
步驟I. 4,利用本地站點(diǎn)的CAD系統(tǒng)提供的特征信息訪問APIs,獲取特征信息;
步驟I. 5,利用本地站點(diǎn)的CAD系統(tǒng)提供的特征依賴關(guān)系訪問APIs,獲取操作特征與模型中已有特征間的依賴關(guān)系,并將該依賴關(guān)系添加到本地站點(diǎn)存放的特征依賴圖中。實施例的步驟I. 3獲取操作類型和特征名,具體包括以下步驟
步驟I. 31,本地站點(diǎn)在執(zhí)行當(dāng)前操作前,模型中的特征個數(shù)記為FN,執(zhí)行完當(dāng)前操作后,模型中的特征個數(shù)記為FN’,若FN’ =FN+1,則轉(zhuǎn)入步驟I. 32,若FN’ =FN,則轉(zhuǎn)入步驟
I.33,若FN,<FN,則轉(zhuǎn)入步驟I. 34 ;
步驟I. 32,操作類型為添加特征,當(dāng)前模型包含的特征中,不遵循特征命名規(guī)則的特征記為新添加的特征,利用CAD系統(tǒng)提供的獲取的特征類型的APIs,獲取新添加特征的類型,并根據(jù)本地站點(diǎn)記錄的站點(diǎn)號和特征序號,按照命名規(guī)則對特征命名;
步驟I. 33,操作類型為修改特征,通過本地站點(diǎn)CAD系統(tǒng)提供的訪問特征信息的APIs,獲取到當(dāng)前模型中各特征的信息,并與站點(diǎn)上保存的已執(zhí)行操作命令隊列中的特征信息進(jìn)行比較,若不同,則該特征即是被修改了的特征,獲取該特征的名字;
步驟I. 34,操作類型為刪除,從特征依賴圖中的祖先結(jié)點(diǎn)開始,依次取出各結(jié)點(diǎn)中的特征名,并根據(jù)取出的特征名在當(dāng)前模型中尋找同名的特征,若未找到,則該特征名即為被刪除特征的名字。實施例的步驟I. 5中的特征依賴圖,是指模型中特征間的依賴和被依賴關(guān)系的映射圖,具體包括以下特性
Ca)偏序性,是指任意兩個特征間的依賴關(guān)系是單向的,而不是相互的;
(b)傳遞性,是指特征間的依賴關(guān)系是單向傳遞的;
(c)無環(huán)性,是指模型中所有特征間的依賴關(guān)系中不存在循環(huán)依賴。步驟2,當(dāng)遠(yuǎn)端站點(diǎn)接收到步驟I發(fā)出的建模操作命令時,對所接收到的建模操作的因果關(guān)系進(jìn)行檢查,若本站點(diǎn)滿足該建模操作的因果關(guān)系,則轉(zhuǎn)入步驟3,否則,將該建模操作加入本站點(diǎn)等待執(zhí)行操作隊列中。實施例的步驟2中對所接收到的建模操作的因果關(guān)系進(jìn)行檢查,具體通過如下條件進(jìn)行因果關(guān)系檢查(建模操作Oi在本地站點(diǎn)i上執(zhí)行時的狀態(tài)向量記為SVOi,遠(yuǎn)端站點(diǎn)j的狀態(tài)向量記為SVj)
條件 I SV0i [i] =SVj [i];
條件 2 SV0i [k]<=SVj [k], k e {I, ...,N}, k デ i。
步驟3,在建模操作的因果關(guān)系得以滿足的前提下,檢測該操作與遠(yuǎn)端站點(diǎn)上已執(zhí)行的并發(fā)操作之間的關(guān)系,并根據(jù)不同的關(guān)系,分別采用相應(yīng)的并發(fā)控制機(jī)制進(jìn)行處理。實施例的步驟3中檢測操作(記為Oj)與遠(yuǎn)端站點(diǎn)上已執(zhí)行的并發(fā)操作(記為Oi)之間的關(guān)系,具體方法如下
(a)若當(dāng)前遠(yuǎn)端站點(diǎn)上已執(zhí)行的并發(fā)操作中,有刪除操作0i,且Oi刪除的特征為Oj所依賴的特征,則Oi屏蔽了 Oj ;
(b)若Oj引用了源模型中的拓?fù)湓?記為源拓?fù)湓?,且在當(dāng)前遠(yuǎn)端站點(diǎn)的模型中能夠找到與Oj所引用的源拓?fù)湓叵嗥ヅ涞耐負(fù)湓?記為目標(biāo)拓?fù)湓?,則Oj與當(dāng)前站點(diǎn)上已執(zhí)行的并發(fā)操作Oi是可互換執(zhí)行的;
(c)若Oj為添加特征操作,且未引用源模型中的拓?fù)湓?,則Oj與當(dāng)前站點(diǎn)上已執(zhí)行的并發(fā)操作Oi是可互換執(zhí)行的;
Cd)若Oj為刪除特征操作,且當(dāng)前遠(yuǎn)端站點(diǎn)的模型中能夠找到Oj所要刪除的特征,則Oj與當(dāng)前站點(diǎn)上已執(zhí)行的并發(fā)操作Oi是可互換執(zhí)行的;
(e)若Oj引用了源模型中的拓?fù)湓?,且在?dāng)前遠(yuǎn)端站點(diǎn)的模型中找不到與Oj所引用的源拓?fù)湓叵嗥ヅ涞哪繕?biāo)拓?fù)湓?,則Oj與當(dāng)前遠(yuǎn)端站點(diǎn)上已執(zhí)行的導(dǎo)致目標(biāo)拓?fù)湓乇粍h除的并發(fā)操作Oi是沖突的;
Cf)若Oj是未引用拓?fù)湓氐男薷奶卣鞑僮?,且?dāng)前遠(yuǎn)端站點(diǎn)上已執(zhí)行的并發(fā)操作中,有修改操作Oi,Oi修改的特征與Oj修改的特征之間存在依賴關(guān)系,則Oi與Oj是沖突的。實施例的步驟3中根據(jù)操作Oj與當(dāng)前遠(yuǎn)端站點(diǎn)上已執(zhí)行的并發(fā)操作Oi間不同的關(guān)系,所采用的并發(fā)控制機(jī)制,具體方法如下
Ca)若Oj被Oi屏蔽,則放棄執(zhí)行Oj ;
(b)若Oj與Oi是可互換執(zhí)行的,則保留Oi并執(zhí)行Oj;
(c)若Oj與Oi是沖突的,則先執(zhí)行Oi和Oj中優(yōu)先級較高的操作,再執(zhí)行優(yōu)先級較低 的操作,若無法執(zhí)行優(yōu)先級較低的操作,則放棄執(zhí)行,僅保留優(yōu)先級較高的操作。實施例的步驟3 (C)中的優(yōu)先級判斷,具體方法如下
Ca)若兩個并發(fā)操作的特征間存在依賴關(guān)系,則被依賴特征優(yōu)先級高于依賴特征;
(b)若兩個并發(fā)操作的特征間無依賴關(guān)系,則發(fā)出這兩個操作的站點(diǎn)的站點(diǎn)號較小的操作具有較高的優(yōu)先級。具體實施時,步驟I、步驟2、步驟3都可以采用計算機(jī)軟件技術(shù)實現(xiàn)為DLL插件,分別稱為操作命令生成部件、因果關(guān)系檢測部件、并發(fā)控制部件。為便于實施參考起見,提供實施例的ー個協(xié)同設(shè)計過程舉例。該協(xié)同設(shè)計過程中包含了屏蔽、可交換及沖突這三種關(guān)系的并發(fā)操作。以下為本發(fā)明實施例的具體步驟
(I)各站點(diǎn)的CAD系統(tǒng)安裝各自DLL插件,這些插件包括操作命令生成部件、因果關(guān)系檢測部件、并發(fā)控制部件和Socket通訊部件。Socket通訊為現(xiàn)有技術(shù),站點(diǎn)O和站點(diǎn)I之間通過Socket建立點(diǎn)到點(diǎn)的網(wǎng)絡(luò)通訊連接。(2) O1是由站點(diǎn)O發(fā)出的添加拉伸特征(記為拉伸I)操作,該操作在已有的圓柱體的右側(cè)生成了ー個新的圓柱體。O2是由站點(diǎn)I發(fā)出的添加拉伸特征(記為拉伸2)操作,該操作在已有圓柱體的左側(cè)生成了ー個新的圓柱體。O1和O2在其本地站點(diǎn)(分別為站點(diǎn)O和站點(diǎn)I)上得以立即執(zhí)行后,生成相應(yīng)的操作命令傳送至遠(yuǎn)端站點(diǎn)(分別為站點(diǎn)I和站點(diǎn)0),當(dāng)O2到達(dá)站點(diǎn)O時,可直接找到O2所引用的草繪面,從而執(zhí)行O2,可見O1和O2是可交換的。同理,當(dāng)O1到達(dá)站點(diǎn)I吋,O1在站點(diǎn)I上也能夠得以正確執(zhí)行。
(3)O3是由站點(diǎn)O發(fā)出的刪除特征操作,該操作刪除了由O2創(chuàng)建的左側(cè)圓柱體。O4是由站點(diǎn)I發(fā)出的添加倒圓角特征操作,該操作對由O2創(chuàng)建的左側(cè)圓柱體與底座上的圓柱體相交的邊,創(chuàng)建倒圓角。當(dāng)O4到達(dá)站點(diǎn)O吋,由于O4所要創(chuàng)建的倒圓角特征依賴于O3所刪除的特征(即拉伸2),因此即使先執(zhí)行O4后執(zhí)行03,O4所創(chuàng)建的特征也會被O3刪除,也即是O4的執(zhí)行效果被O3屏蔽。故而,O4在站點(diǎn)O上不予執(zhí)行即可。(4) O5是由站點(diǎn)O發(fā)出的添加倒圓角特征的操作,該操作對O1創(chuàng)建的右側(cè)圓柱體與底座上的圓柱體相交的邊,創(chuàng)建倒圓角。O6是由站點(diǎn)I發(fā)出的修改操作,該操作修改了由O1創(chuàng)建的右側(cè)圓柱體的底面圓的半徑,從而改變了右側(cè)圓柱體與底座上的圓柱體相交的圓邊的半徑。當(dāng)O5到達(dá)站點(diǎn)I時,由于匹配目標(biāo)邊的半徑已被O6改變,因此O5和O6沖突。由 于O5優(yōu)先級比O6高,因此首先將O6撤銷,在執(zhí)行完O5后,再恢復(fù)執(zhí)行06。由以上實施例可知,通過本技術(shù)方案,能夠支持異構(gòu)CAD在線集成系統(tǒng)實現(xiàn)了高本地響應(yīng)及更少約束的并發(fā)交互。本文中所描述的具體實施例僅僅是對本發(fā)明精神作舉例說明。本發(fā)明所屬技術(shù)領(lǐng)域的技術(shù)人員可以對所描述的具體實施例做各種各樣的修改或補(bǔ)充或采用類似的方式替代,但并不會偏離本發(fā)明的精神或者超越所附權(quán)利要求書所定義的范圍。
權(quán)利要求
1.一種異構(gòu)CAD在線集成中的一致性維護(hù)方法,其特征是,包括以下步驟 步驟I,在本地站點(diǎn)的CAD系統(tǒng)中,立即執(zhí)行本地CAD用戶發(fā)出的建模操作,并生成相應(yīng)的操作命令傳送至其他遠(yuǎn)端站點(diǎn); 步驟2,當(dāng)遠(yuǎn)端站點(diǎn)接收到步驟I發(fā)出的建模操作命令時,對所接收到的建模操作的因果關(guān)系進(jìn)行檢查,若本站點(diǎn)滿足該建模操作的因果關(guān)系,則轉(zhuǎn)入步驟3,否則,將該建模操作加入本站點(diǎn)等待執(zhí)行操作隊列,直到其因果關(guān)系滿足后,轉(zhuǎn)入步驟3 ; 步驟3,在建模操作的因果關(guān)系得以滿足的前提下,檢測該操作與遠(yuǎn)端站點(diǎn)上已執(zhí)行的并發(fā)操作之間的關(guān)系,并根據(jù)不同的關(guān)系,分別采用相應(yīng)的并發(fā)控制機(jī)制進(jìn)行處理。
2.根據(jù)權(quán)利要求I所述的一種異構(gòu)CAD在線集成中的一致性維護(hù)方法,其特征在于,所述步驟I中,所述操作命令的格式如下站點(diǎn)號,狀態(tài)向量,操作類型;所述操作類型包括特征名、特征信息、拓?fù)湓匦畔⒁约疤卣鏖g的依賴信息。
3.根據(jù)權(quán)利要求I所述的一種異構(gòu)CAD在線集成中的一致性維護(hù)方法,其特征在于,所述步驟I中生成的操作命令,定義站點(diǎn)號,狀態(tài)向量,操作類型如下 定義I:定義站點(diǎn)號為一個整數(shù)i,我們從I開始為參與集成的每個站點(diǎn)分配一個站點(diǎn)號i, i e {I,... N}, N為參與集成的站點(diǎn)的個數(shù); 定義2,定義狀態(tài)向量為一個N元組,記為SV,其每一個元素SV[j], j e {1,…,N},記錄操作在本地站點(diǎn)上執(zhí)行時,本地站點(diǎn)上已執(zhí)行的來自站點(diǎn)j的操作個數(shù); 定義3,定義操作類型為添加特征、修改特征和刪除特征這三種操作,具體包括 信息I :特征名,是指操作特征的名字,命名所遵循的規(guī)則為特征類型_站點(diǎn)號_特征序號; 信息2 :特征信息,是指在遠(yuǎn)端站點(diǎn)上的CAD系統(tǒng)中,執(zhí)行相同建模操作所需的信息;信息3 :拓?fù)湓匦畔?,是指建模操作所引用的拓?fù)湓匦畔ⅲ愋托畔?、屬性信息、界限信息和校驗信息? 信息4 :特征間的依賴信息,是指操作特征與本地模型中已有特征間的依賴關(guān)系信息。
4.根據(jù)權(quán)利要求3所述的一種異構(gòu)CAD在線集成中的一致性維護(hù)方法,其特征在于,所述的步驟I的信息I中, 特征類型:為CAD系統(tǒng)所支持的特征類型; 站點(diǎn)號為發(fā)出操作的本地站點(diǎn)的站點(diǎn)號i ; 特征序號為操作的特征是本地站點(diǎn)上所添加的第k個特征,特征的序號即為k。
5.根據(jù)權(quán)利要求3所述的一種異構(gòu)CAD在線集成中的一致性維護(hù)方法,其特征在于,所述的步驟I的信息2中,在遠(yuǎn)端站點(diǎn)上執(zhí)行相同建模操作所需的信息,若操作類型為添加特征,則所需信息對應(yīng)為執(zhí)行信息1,若操作類型為修改特征,則所需信息對應(yīng)為執(zhí)行信息2,若操作類型為刪除特征,則所需信息對應(yīng)為執(zhí)行信息3,并定義 執(zhí)行信息I :添加特征的特征信息,為在遠(yuǎn)端站點(diǎn)的CAD系統(tǒng)中,創(chuàng)建相同特征所需的信息,其中包括參數(shù)信息、約束信息; 執(zhí)行信息2 :修改特征的特征信息,為操作修改的特征的參數(shù)名及修改后的參數(shù)值; 執(zhí)行信息3 :刪除特征的特征信息,為要刪除特征的名字。
6.根據(jù)權(quán)利要求3所述的一種異構(gòu)CAD在線集成中的一致性維護(hù)方法,其特征在于,所述的步驟I的信息3中,定義類型信息為拓?fù)湓氐念愋停? 屬性信息為拓?fù)湓氐膸缀螌傩裕? 界限信息為一維拓?fù)湓氐亩它c(diǎn)信息和二維拓?fù)湓氐倪吔邕呅畔ⅲ? 校驗信息為一維拓?fù)湓氐拈L度和二維拓?fù)湓氐拿娣e。
7.根據(jù)權(quán)利要求I所述的一種異構(gòu)CAD在線集成中的一致性維護(hù)方法,其特征在于,所述步驟I中生成操作命令,具體包括以下步驟 步驟1.1,獲取本地站點(diǎn)的站點(diǎn)號,記為i ; 步驟I. 2,獲取本地站點(diǎn)的狀態(tài)向量SV,然后將SV的第i個元素加I即SV[i]=SV[i]+l ; 步驟I. 3,獲取操作的類型和特征名; 步驟I. 4,利用本地站點(diǎn)的CAD系統(tǒng)提供的特征信息訪問APIs,獲取特征信息; 步驟I. 5,利用本地站點(diǎn)的CAD系統(tǒng)提供的特征依賴關(guān)系訪問APIs,獲取操作特征與模型中已有特征間的依賴關(guān)系,并將該依賴關(guān)系添加到本地站點(diǎn)存放的特征依賴圖中。
8.根據(jù)權(quán)利要求7所述的一種異構(gòu)CAD在線集成中的一致性維護(hù)方法,其特征在于,所述步驟I. 3獲取操作類型和特征名,具體包括以下步驟 步驟I. 31,本地站點(diǎn)在執(zhí)行當(dāng)前操作前,模型中的特征個數(shù)記為FN,執(zhí)行完當(dāng)前操作后,模型中的特征個數(shù)記為FN’,若FN’ =FN+1,則轉(zhuǎn)入步驟I. 32,若FN’ =FN,則轉(zhuǎn)入步驟I.33,若FN,<FN,則轉(zhuǎn)入步驟I. 34 ; 步驟I. 32,操作類型為添加特征,當(dāng)前模型包含的特征中,不遵循特征命名規(guī)則的特征即為新添加的特征,利用CAD系統(tǒng)提供的獲取的特征類型的APIs,獲取新添加特征的類型,并根據(jù)本地站點(diǎn)記錄的站點(diǎn)號和特征序號,按照命名規(guī)則對特征命名; 步驟I. 33,操作類型為修改特征,通過本地站點(diǎn)CAD系統(tǒng)提供的訪問特征信息的APIs,獲取到當(dāng)前模型中各特征的信息,并與站點(diǎn)上保存的已執(zhí)行操作命令隊列中的特征信息進(jìn)行比較,若不同,則該特征即是被修改的特征,獲取該特征的名字; 步驟I. 34,操作類型為刪除,從特征依賴圖中的祖先結(jié)點(diǎn)開始,依次取出各結(jié)點(diǎn)中的特征名,并根據(jù)取出的特征名在當(dāng)前模型中尋找同名的特征,若未找到,則該特征名即為被刪除特征的名字。
9.根據(jù)權(quán)利要求I所述的一種異構(gòu)CAD在線集成中的一致性維護(hù)方法,其特征在于,所述步驟2中對所接收到的建模操作的因果關(guān)系進(jìn)行檢查,具體通過如下條件進(jìn)行因果關(guān)系檢查(建模操作Oi在本地站點(diǎn)i上執(zhí)行時的狀態(tài)向量記為SVw,遠(yuǎn)端站點(diǎn)j的狀態(tài)向量記為 SVj)條件 I :SVM[i] =SVj[i];條件 2 SV0i[k]<=SVj[k], k e {1,…,N}, k 古 i。
10.根據(jù)權(quán)利要求I所述的一種異構(gòu)CAD在線集成中的一致性維護(hù)方法,其特征在于,所述步驟3中,檢測操作與遠(yuǎn)端站點(diǎn)上已執(zhí)行的并發(fā)操作之間的關(guān)系,定義檢測操作為0j,并發(fā)操作Oi,具體方法如下 檢測關(guān)系I :若當(dāng)前遠(yuǎn)端站點(diǎn)上已執(zhí)行的并發(fā)操作中,有刪除操作0i,且Oi刪除的特征為Oj所依賴的特征,則Oi屏蔽了 Oj ; 檢測關(guān)系2 :若Oj引用了源模型中的拓?fù)湓?記為源拓?fù)湓?,且在當(dāng)前遠(yuǎn)端站點(diǎn)的模型中能夠找到與Oj所引用的源拓?fù)湓叵嗥ヅ涞耐負(fù)湓?記為目標(biāo)拓?fù)湓?,則Oj與當(dāng)前站點(diǎn)上已執(zhí)行的并發(fā)操作Oi是可互換執(zhí)行的; 檢測關(guān)系3 :若Oj是未引用拓?fù)湓氐奶砑犹卣鞑僮鳎瑒tOj與當(dāng)前站點(diǎn)上已執(zhí)行的并發(fā)操作Oi是可互換執(zhí)行的; 檢測關(guān)系4 :若Oj為刪除特征操作,且當(dāng)前遠(yuǎn)端站點(diǎn) 的模型中能夠找到Oj所要刪除的特征,則Oj與當(dāng)前站點(diǎn)上已執(zhí)行的并發(fā)操作Oi是可互換執(zhí)行的; 檢測關(guān)系5 :若Oj引用了源模型中的拓?fù)湓兀以诋?dāng)前遠(yuǎn)端站點(diǎn)的模型中找不到與Oj所引用的源拓?fù)湓叵嗥ヅ涞哪繕?biāo)拓?fù)湓?,則Oj與當(dāng)前遠(yuǎn)端站點(diǎn)上已執(zhí)行的導(dǎo)致目標(biāo)拓?fù)湓乇粍h除的并發(fā)操作Oi是沖突的; 檢測關(guān)系6 :若Oj是未引用拓?fù)湓氐男薷奶卣鞑僮?,且?dāng)前遠(yuǎn)端站點(diǎn)上已執(zhí)行的并發(fā)操作中,有修改操作0i,Oi修改的特征與Oj修改的特征之間存在依賴關(guān)系,則Oi與Oj是沖突的。
11.根據(jù)權(quán)利要求10所述的一種異構(gòu)CAD在線集成中的一致性維護(hù)方法,其特征在于,所述步驟3中根據(jù)檢測操作Oj與當(dāng)前遠(yuǎn)端站點(diǎn)上已執(zhí)行的并發(fā)操作Oi間不同的關(guān)系,所采用的并發(fā)控制機(jī)制,具體方法如下 執(zhí)行關(guān)系I :若Oj被Oi屏蔽,則放棄執(zhí)行Oj ; 執(zhí)行關(guān)系2 :若Oj與Oi是可互換執(zhí)行的,則保留Oi并執(zhí)行Oj ; 執(zhí)行關(guān)系3 :若Oj與Oi是沖突的,則先執(zhí)行Oi和Oj中優(yōu)先級較高的操作,再執(zhí)行優(yōu)先級較低的操作,若無法執(zhí)行優(yōu)先級較低的操作,則放棄執(zhí)行,僅保留優(yōu)先級較高的操作。
12.根據(jù)權(quán)利要求11所述的一種異構(gòu)CAD在線集成中的一致性維護(hù)方法,其特征在于,所述執(zhí)行關(guān)系3中判斷優(yōu)先級是兩個并發(fā)操作的特征間是否存在依賴關(guān)系選擇執(zhí)行以下判斷步驟 選擇判斷步驟I :若兩個并發(fā)操作的特征間存在依賴關(guān)系,則被依賴特征優(yōu)先級高于依賴特征; 選擇判斷步驟2 :若兩個并發(fā)操作的特征間無依賴關(guān)系,則發(fā)出這兩個操作的站點(diǎn)的站點(diǎn)號較小的操作具有較高的優(yōu)先級。
全文摘要
本發(fā)明涉及一種異構(gòu)CAD在線集成中的一致性維護(hù)方法,本發(fā)明支持本地站點(diǎn)上的CAD用戶立即執(zhí)行交互建模操作,并生成相應(yīng)的操作命令傳送至其他遠(yuǎn)端站點(diǎn),從而實現(xiàn)了高本地響應(yīng);當(dāng)遠(yuǎn)端站點(diǎn)接收到操作命令時,首先通過狀態(tài)向量機(jī)制對該建模操作的因果關(guān)系進(jìn)行檢查和維護(hù);待當(dāng)前站點(diǎn)滿足該建模操作的因果關(guān)系后,檢測當(dāng)前站點(diǎn)上已執(zhí)行的并發(fā)操作與當(dāng)前操作間是屏蔽、可交換執(zhí)行、還是沖突,進(jìn)而采用相應(yīng)的處理機(jī)制,從而實現(xiàn)了更少約束的并發(fā)交互,并維護(hù)了各站點(diǎn)上CAD模型的一致性。
文檔編號G06F17/50GK102682178SQ201210159678
公開日2012年9月19日 申請日期2012年5月22日 優(yōu)先權(quán)日2012年5月22日
發(fā)明者何發(fā)智, 李小霞, 蔡賢濤 申請人:武漢大學(xué)