專利名稱:一種在線協(xié)同設(shè)計(jì)用被引用拓?fù)鋵ο缶幋a/命名方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種適用于計(jì)算機(jī)輔助設(shè)計(jì)領(lǐng)域的被引用拓?fù)鋵ο缶幋a/命名方法, 尤其是涉及一種支持特征設(shè)計(jì)命令級并發(fā)粒度的在線協(xié)同設(shè)計(jì)用被引用拓?fù)鋵ο缶幋a/ 命名方法。
背景技術(shù):
CAD(即計(jì)算機(jī)輔助設(shè)計(jì))技術(shù)是利用計(jì)算機(jī)幫助設(shè)計(jì)人員進(jìn)行產(chǎn)品和工程設(shè)計(jì) 的技術(shù)。CAD技術(shù)已經(jīng)被廣泛應(yīng)用在機(jī)械、電子、航空、建筑等國民經(jīng)濟(jì)的各個領(lǐng)域并且獲得 了巨大的成功。CAD技術(shù)的發(fā)展和應(yīng)用水平已成為衡量一個國家科技現(xiàn)代化和工業(yè)現(xiàn)代化 水平的重要標(biāo)志之一。協(xié)同設(shè)計(jì)作為信息化、網(wǎng)絡(luò)化時代的一種新的產(chǎn)品設(shè)計(jì)方法,在世界 范圍內(nèi)受到工業(yè)界和學(xué)術(shù)界的廣泛關(guān)注并成為當(dāng)前的應(yīng)用和研究熱點(diǎn)。協(xié)同設(shè)計(jì)旨在使企 業(yè)在產(chǎn)品設(shè)計(jì)方面突破行業(yè)、組織、地域以及所使用CAD系統(tǒng)的限制,對包括設(shè)計(jì)人員在內(nèi) 的各種設(shè)計(jì)資源進(jìn)行跨時空、跨系統(tǒng)的整合。協(xié)同設(shè)計(jì)具有不同的類型、層次和特點(diǎn)①設(shè)計(jì)結(jié)果重用類,側(cè)重于通過設(shè)計(jì)文件 將設(shè)計(jì)結(jié)果在不同的CAD系統(tǒng)之間進(jìn)行重用,CAD系統(tǒng)間的參數(shù)化模型交換屬于該類型,作 為一種離線的協(xié)同設(shè)計(jì),其特點(diǎn)是靜態(tài)性和非實(shí)時性;②可視化批注/圈閱類,作為一種類 型的在線的協(xié)同設(shè)計(jì),有其動態(tài)性、實(shí)時性的一面,但可視化批注/圈閱存在間接性和理解 歧義性的不足;③基于CAD系統(tǒng)的在線實(shí)時協(xié)同設(shè)計(jì),集前兩類的優(yōu)點(diǎn)于一體,突破時間和 空間的限制,使設(shè)計(jì)思想直接作用到設(shè)計(jì)對象上,設(shè)計(jì)者可以就設(shè)計(jì)進(jìn)行直接、實(shí)時及有效 的溝通協(xié)作。第①種類型的參數(shù)化模型交換和第②種類型的在線可視化批注/圈閱已經(jīng)獲 得商業(yè)應(yīng)用并取得了良好的效果,第③種類型的在線協(xié)同設(shè)計(jì)是當(dāng)前協(xié)同設(shè)計(jì)追求的最高 目標(biāo),同時在研究上也是最具挑戰(zhàn)性,還有許多問題尚待解決。在線協(xié)同設(shè)計(jì)的目標(biāo)是提供盡可能精細(xì)的協(xié)同粒度,從而提高系統(tǒng)的并發(fā)性,而 現(xiàn)有的在線協(xié)同設(shè)計(jì)方法普遍存在并發(fā)性低的問題,以三種常見的在線協(xié)同設(shè)計(jì)方法為 例第1種類型的在線協(xié)同設(shè)計(jì)方法采用共享數(shù)據(jù)加鎖的嚴(yán)格互斥訪問方法進(jìn)行協(xié)同工作 中的并發(fā)控制,在任何一個時刻只允許一個參與者擁有對共享數(shù)據(jù)的修改權(quán)限;第2種類 型的在線設(shè)計(jì)方法假設(shè)參與者能夠自覺遵守發(fā)言規(guī)定,并且采用語音工具輔助發(fā)言,以這 種方式?jīng)Q定哪個參與者擁有對共享數(shù)據(jù)的修改權(quán)限,但不能夠保證這種假設(shè)條件總是能夠 得到滿足,只好進(jìn)行事后校驗(yàn);第3種類型的在線協(xié)同設(shè)計(jì)方法采用C/S(Client/Server) 結(jié)構(gòu),其中服務(wù)器配置共享數(shù)據(jù)和幾何建模服務(wù),客戶端則主要負(fù)責(zé)建模操作的交互輸入 和模型顯示,這種類型的協(xié)同設(shè)計(jì)方法,由于幾何建模服務(wù)都在中心服務(wù)器完成,所以無法 提供精細(xì)粒度的并行工作。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題在于針對上述現(xiàn)有技術(shù)中的不足,提供一種在線協(xié)同 設(shè)計(jì)用被引用拓?fù)鋵ο缶幋a/命名方法,其設(shè)計(jì)合理嚴(yán)謹(jǐn)、操作簡便、實(shí)現(xiàn)方便且使用效果好,編碼/命名方式靈活,可操作性強(qiáng),能支持特征設(shè)計(jì)命令級并發(fā)粒度的CAD在線協(xié)同設(shè) 計(jì)。為解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案是一種在線協(xié)同設(shè)計(jì)用被引用拓 撲對象編碼/命名方法,其特征在于該方法包括以下步驟步驟一、系統(tǒng)配置對參與CAD在線協(xié)同設(shè)計(jì)的多個參與終端Agent Pi進(jìn)行系統(tǒng) 配置,使得所有參與終端Agent Pi均具有對等的可視化交互功能、三維幾何建模功能和共 享數(shù)據(jù)副本;并且,任意兩個參與終端Agent Pi之間以點(diǎn)到點(diǎn)通信方式進(jìn)行雙向通訊;其 中,i = 1、2、3. ..n,n為參與終端Agent Pi的數(shù)量;同時,在各參與終端Agent Pi的系統(tǒng)內(nèi) 均相應(yīng)建有特征命令類型菜單,所述特征命令類型菜單包括對多種立體幾何單元進(jìn)行引用 時的特征命令類型標(biāo)識FCtid,多種幾何立體單元包括CAD設(shè)計(jì)中所采用的多種最基礎(chǔ)的立 體幾何單元,且CAD設(shè)計(jì)時任一被設(shè)計(jì)的幾何模型均為由一個或多個幾何立體單元組成的 組合結(jié)構(gòu);步驟二、多個參與終端Agent Pi通過交換特征設(shè)計(jì)命令方式進(jìn)行協(xié)同工作,每個 參與終端Agent Pi的協(xié)同工作過程均相同,且每個參與終端Agent Pi均能作為特征設(shè)計(jì)命 令的命令生成及發(fā)送端與命令接收及執(zhí)行端,對于參與終端Agent Pi中的任一個參與終端 Agent Pj來說,其協(xié)同工作過程如下I、當(dāng)參與終端Agent Pj作為命令生成及發(fā)送端進(jìn)行協(xié)同工作時,通過可視化交互 方式生成特征設(shè)計(jì)命令,其工作過程包括以下步驟2011、本地共享數(shù)據(jù)副本加鎖調(diào)用數(shù)據(jù)加鎖模塊對當(dāng)前的本地共享數(shù)據(jù)副本進(jìn) 行加鎖;2012、特征設(shè)計(jì)命令生成,其生成步驟如下la、幾何模型拆分根據(jù)當(dāng)前需設(shè)計(jì)幾何模型的設(shè)計(jì)結(jié)構(gòu),對需設(shè)計(jì)的幾何模型進(jìn) 行拆分,且將所述幾何模型拆分成多個立體幾何單元,相應(yīng)將被設(shè)計(jì)的幾何模型拆分成以 所述立體幾何單元為單位的多個拓?fù)鋵ο?;lb、可視化交互調(diào)用可視化交互模塊以一個拓?fù)鋵ο鬄閱挝唬瑢M成當(dāng)前被設(shè)計(jì) 幾何模型中的所有拓?fù)鋵ο蠓謩e進(jìn)行可視化交互;lc、被引用拓?fù)鋵ο缶幋a/命名根據(jù)步驟lb中對所有拓?fù)鋵ο筮M(jìn)行可視化交互 的交互結(jié)果,調(diào)用編碼/命名模塊分別對各拓?fù)鋵ο筮M(jìn)行編碼/命名,并相應(yīng)生成多個分別 與各拓?fù)鋵ο笙鄬?yīng)的編碼/命名單元,完成所有被引用拓?fù)鋵ο蟮木幋a/命名過程;對任一個拓?fù)鋵ο髏i進(jìn)行編碼/命名時,相應(yīng)對組成該拓?fù)鋵ο髏i的多個拓?fù)涿?進(jìn)行編碼/命名,并對應(yīng)生成多個與各拓?fù)涿嫦鄬?yīng)的編碼/命名單元和一個數(shù)值參數(shù)單 元,且多個編碼/命名單元和一個數(shù)值參數(shù)單元與拓?fù)鋵ο骬相對應(yīng);且編碼/命名單元 和數(shù)值參數(shù)單元生成后,參與終端Agent Pj根據(jù)所述編碼/命名單元自動生成拓?fù)鋵ο蟆?中各拓?fù)涿妗⒏魍負(fù)溥吅透魍負(fù)潼c(diǎn)的拓?fù)涿婷脝卧?、拓?fù)溥吤脝卧屯負(fù)潼c(diǎn) 命名引用單元;所述編碼/命名單元、數(shù)值參數(shù)單元、拓?fù)涿婷脝卧?、拓?fù)溥吤?用單元和拓?fù)潼c(diǎn)命名引用單元分別通過關(guān)聯(lián)單元與拓?fù)鋵ο?、進(jìn)行關(guān)聯(lián);所述編碼/命名單元內(nèi)存儲有用于表示拓?fù)鋵ο蟆⒔Y(jié)構(gòu)類型的特征類型標(biāo)識 Ftid、用于表示結(jié)構(gòu)類型為Ftid的圖形實(shí)例的特征實(shí)例標(biāo)識Finst。nt和多個分別用于表示同一 個特征實(shí)例標(biāo)KFinst。nt中所有拓?fù)涿娴奶卣魍負(fù)涿鏄?biāo)識FaCeinst。nt ;所述數(shù)值參數(shù)單元內(nèi)存儲有用于表示拓?fù)鋵ο蟆⒋笮〕叽绲囊唤M數(shù)值參數(shù);Id、特征設(shè)計(jì)命令生成調(diào)用特征設(shè)計(jì)命令生成模塊分別對編碼/命名完成的多 個編碼/命名單元分別進(jìn)行分析處理,并相應(yīng)生成多條特征設(shè)計(jì)命令FC ;所述特征設(shè)計(jì)命 令FC為由三元組組成的一條文本信息,且三元組分別為用于表示與特征類型標(biāo)識Ftid相 對應(yīng)的特征設(shè)計(jì)命令FC的命令類型標(biāo)識FCtid、用于表示特征設(shè)計(jì)命令FC生成時參與終端 Agent Pj內(nèi)部的文檔狀態(tài)標(biāo)識SV。g[n]和特征設(shè)計(jì)命令FC的參數(shù)列表parameters,所述參 數(shù)列表parameters中存有所述編碼/命名單元、所述數(shù)值參數(shù)單元、拓?fù)涿婷脝卧?拓?fù)溥吤脝卧屯負(fù)潼c(diǎn)命名引用單元中所存儲的所有信息;其中,文檔狀態(tài)標(biāo)識SV。g[n]為一個η維向量,η表示參與在線協(xié)同設(shè)計(jì)的所有參 與終端的數(shù)量,SV。g[n]中的第i個分量表示參與終端Agent ρ」上已經(jīng)執(zhí)行的編號為i的參 與終端Agent Pi發(fā)出的與特征類型標(biāo)識Ftid相對應(yīng)的特征設(shè)計(jì)命令的數(shù)量;2013、特征設(shè)計(jì)命令執(zhí)行及本地共享數(shù)據(jù)副本解鎖調(diào)用執(zhí)行模塊對生成的多條 特征設(shè)計(jì)命令FC分別進(jìn)行執(zhí)行,并將執(zhí)行后生成的幾何模型結(jié)果同步通過所述可視化交 互模塊反饋給用戶,同時將執(zhí)行結(jié)果存入特征設(shè)計(jì)命令執(zhí)行歷史記錄;多條特征設(shè)計(jì)命令 FC執(zhí)行完后,調(diào)用數(shù)據(jù)解鎖模塊對加鎖后的本地共享數(shù)據(jù)副本進(jìn)行解鎖,且解鎖后參與終 端Agent P」便作為命令接收及執(zhí)行端對所接收到的來自其它Agent pk發(fā)送而來的特征設(shè) 計(jì)命令FC進(jìn)行執(zhí)行,其中,k = 1、2、3...11,且1^乒j ;2014、特征設(shè)計(jì)命令發(fā)送參與終端Agent Pj將執(zhí)行后的多條特征設(shè)計(jì)命令FC以 點(diǎn)對點(diǎn)的通信方式并發(fā)至其它參與終端Agent pk;II、當(dāng)參與終端Agent Pj作為命令接收及執(zhí)行端進(jìn)行協(xié)同工作時,其工作過程包 括以下步驟2021、特征設(shè)計(jì)命令接收參與終端Agent P」對自其它參與終端Agentpk發(fā)送而來 的特征設(shè)計(jì)命令FC進(jìn)行接收;2022、本地?cái)?shù)據(jù)庫副本加鎖狀態(tài)判斷對本地?cái)?shù)據(jù)庫副本的當(dāng)前加鎖狀態(tài)進(jìn)行判 斷當(dāng)判斷得出地?cái)?shù)據(jù)庫副本處于加鎖狀態(tài)時,則執(zhí)行步驟2024 ;否則執(zhí)行步驟2023 ;2023、特征設(shè)計(jì)命令立即執(zhí)行參與終端Agent ρ」立即執(zhí)行步驟2021中接收到的 特征設(shè)計(jì)命令FC,并將執(zhí)行結(jié)果存入特征設(shè)計(jì)命令執(zhí)行歷史記錄;且執(zhí)行完后檢查本地等 待隊(duì)列,并繼續(xù)處理本地等待隊(duì)列中其它處于等待狀態(tài)的特征設(shè)計(jì)命令FC ;2024、特征設(shè)計(jì)命令等待執(zhí)行參與終端Agent Pj將步驟2021中接收到的特征設(shè) 計(jì)命令FC放入本地等待隊(duì)列中進(jìn)行等待處理。上述步驟2023中進(jìn)行特征設(shè)計(jì)命令直接執(zhí)行時,其執(zhí)行過程包括以下步驟2a、文檔狀態(tài)對比判斷調(diào)用文檔狀態(tài)比較模塊對步驟2021中接收到的特征設(shè)計(jì) 命令FC中的文檔狀態(tài)標(biāo)識SVeg[η]和參與終端Agent Pj當(dāng)前的文檔狀態(tài)標(biāo)識SVee [η]進(jìn)行 比較判斷當(dāng)比較判斷得出二者相等時,則執(zhí)行步驟2b ;否則,表明此時參與終端Agent Pj 上已經(jīng)執(zhí)行了與步驟2021中所接收特征設(shè)計(jì)命令FC為廣義并發(fā)關(guān)系的特征設(shè)計(jì)命令,則 執(zhí)行步驟2c ;其中,文檔狀態(tài)標(biāo)識SVcJn]為一個η維向量,η表示參與在線協(xié)同設(shè)計(jì)的所有參 與終端的數(shù)量,SVcJn]中的第i個分量表示參與終端Agent ρ」上已經(jīng)執(zhí)行的編號為i的參 與終端Agent Pi發(fā)出的與特征類型標(biāo)識Ftid相對應(yīng)的特征設(shè)計(jì)命令的數(shù)量;
2b、特征設(shè)計(jì)命令直接執(zhí)行參與終端Agent Pj直接執(zhí)行步驟2021中接收到的特 征設(shè)計(jì)命令FC,并將執(zhí)行結(jié)果存入特征設(shè)計(jì)命令執(zhí)行歷史記錄;且執(zhí)行完后檢查本地等待 隊(duì)列,并繼續(xù)處理本地等待隊(duì)列中其它處于等待狀態(tài)的特征設(shè)計(jì)命令FC ;2c、特征設(shè)計(jì)命令執(zhí)行前判斷與執(zhí)行調(diào)取參與終端Agent Pj上特征設(shè)計(jì)命令執(zhí) 行歷史記錄,且根據(jù)所調(diào)取的特征設(shè)計(jì)命令執(zhí)行歷史記錄,構(gòu)建出與步驟2021中所接收特 征設(shè)計(jì)命令FC為廣義并發(fā)關(guān)系的所有特征設(shè)計(jì)命令的特征命令集合SCg(FC);并根據(jù)特征 命令集合SCg(FC)中所包括的所有特征設(shè)計(jì)命令,進(jìn)一步構(gòu)建出與步驟2021中所接收特征 設(shè)計(jì)命令FC為狹義并發(fā)關(guān)系的所有特征設(shè)計(jì)命令的特征命令集合SCn(FC),并對特征命令 集合SCn (FC)進(jìn)行判斷當(dāng)特征命令集合SCn(FC)為空時,則在參與終端Agent pj丸行步驟 2021中接收到的特征設(shè)計(jì)命令FC,并將執(zhí)行結(jié)果存入特征設(shè)計(jì)命令執(zhí)行歷史記錄,且執(zhí)行 完后檢查本地等待隊(duì)列并繼續(xù)處理本地等待隊(duì)列中其它處于等待狀態(tài)的特征設(shè)計(jì)命令FC ; 當(dāng)特征命令集合SCn(FC)不為空時,則執(zhí)行步驟2d ;所述廣義并發(fā)關(guān)系為不同Agent Pi在相同文檔狀態(tài)下生成的特征設(shè)計(jì)命令之間 的關(guān)系,即文檔狀態(tài)標(biāo)識SVeg[η]相同的特征設(shè)計(jì)命令FC之間的關(guān)系;所述狹義并發(fā)關(guān)系為 與命令類型標(biāo)識FCtid相同的廣義并發(fā)特征設(shè)計(jì)命令之間的關(guān)系;2d、特征設(shè)計(jì)命令執(zhí)行前處理與執(zhí)行首先,將步驟2021中接收到的特征設(shè)計(jì) 命令FC加入到特征命令集合SCn(FC);之后,將本地共享數(shù)據(jù)文檔恢復(fù)到特征命令集合 SCn(FC)中最早執(zhí)行的特征設(shè)計(jì)命令執(zhí)行之前的文檔狀態(tài),且在恢復(fù)后的文檔狀態(tài)下,先將 特征命令集合SCg(FC)中除特征命令集合SCn(FC)之外的所有特征設(shè)計(jì)命令按照其原始相 對先后順序在參與終端Agent ρ」上執(zhí)行,然后根據(jù)預(yù)置的優(yōu)先級重新確定SCn(FC)中所有 特征設(shè)計(jì)命令的執(zhí)行順序,并按確定后的新執(zhí)行順序執(zhí)行SCn(FC)中的所有特征設(shè)計(jì)命令, 并將執(zhí)行結(jié)果存入特征設(shè)計(jì)命令執(zhí)行歷史記錄;且執(zhí)行完后檢查本地等待隊(duì)列,并繼續(xù)處 理本地等待隊(duì)列中其它處于等待狀態(tài)的特征設(shè)計(jì)命令FC。上述步驟Ic中對被引用拓?fù)鋵ο?、進(jìn)行編碼/命名時,在對參與終端Agent Pj 執(zhí)行拓?fù)鋵ο?、對?yīng)特征設(shè)計(jì)命令FC的布爾運(yùn)算之前進(jìn)行編碼/命名;且編碼/命名時,特征類型標(biāo)識Ftid根據(jù)拓?fù)鋵ο蟆?yīng)特征設(shè)計(jì)命令FC的命 令類型標(biāo)識FCtid來確定,且特征類型標(biāo)識Ftid與特征類型標(biāo)識Ftid —一對應(yīng);特征實(shí)例標(biāo) 識Finstmt根據(jù)參與終端Agent Pj執(zhí)行拓?fù)鋵ο?、對?yīng)特征設(shè)計(jì)命令FC的當(dāng)前值確定;所 述拓?fù)鋵ο?、中所包含拓?fù)涿娴膫€數(shù)為m,特征拓?fù)涿鏄?biāo)識Faceinstent的編碼從0到m_l進(jìn) 行,且進(jìn)行編碼時先取拓?fù)鋵ο?、中所有拓?fù)涿娴耐夥ㄏ蛳蛄縑tl,V^-Vnrl,之后以Vtl,N廣. Vnrl的三個分量為依據(jù)對拓?fù)鋵ο?、的多個拓?fù)涿孢M(jìn)行排序,其中Vi為平面的外法向向量 或曲面的平均外法向量。所述執(zhí)行拓?fù)鋵ο?、由CAD設(shè)計(jì)中常規(guī)使用的掃略或拉伸方法生成,且對拓?fù)鋵?象、的多個拓?fù)涿孢M(jìn)行編碼時,將掃略或拉伸的起始截面編碼為0,結(jié)束截面編碼為m-1, 另外m-2個側(cè)面順序以構(gòu)成掃略或拉伸截面的m-2條邊的切向量V1, vm_2來進(jìn)行編碼, 具體是以V1, …vm_2的三個分量為依據(jù)對m-2個拓?fù)涿孢M(jìn)行編碼,m-2個側(cè)面的編碼與拉 伸截面的對應(yīng)邊的編碼相同。上述步驟2d中按確定后的新執(zhí)行順序執(zhí)行SCn(FC)中的所有特征設(shè)計(jì)命令后,便 完成特征設(shè)計(jì)命令執(zhí)行后文檔狀態(tài)的確定化,此時根據(jù)參與終端Agent Pj執(zhí)行拓?fù)鋵ο?、對?yīng)特征設(shè)計(jì)命令FC的當(dāng)前值確定特征實(shí)例標(biāo)識Finstmt。所述拓?fù)涿婷脝卧拿问綖镕acem = (eletypeid,adj_face_number, adj_Facec/n_l i st);所述拓?fù)溥吤脝卧拿问綖镋dgem = (eletypeid,adj_face_number, adj_Facec/n_l i st, end_face_number, end_Facec/n_l i st);所述拓?fù)潼c(diǎn)命名引用單元的命名形式為Vertexm= (eletypeid, adj_face_ number, adj_Facec/n_list);其中,eletypeid表示被引用拓?fù)湓氐念愋颓移溆糜趨^(qū)分拓?fù)涿妗⑼負(fù)溥吅屯?撲點(diǎn)三種拓?fù)湓?,adj_face_number表示被引用拓?fù)湓氐泥徑用娴膫€數(shù),end_face_ number表示被引用拓?fù)溥厓蓚€端部的端面的個數(shù),adj_Facec/n_list表示被引用拓?fù)湓?的鄰接面的編碼/名字屬性列表,end_Facec/n_list表示被引用拓?fù)溥叺亩嗣娴木幋a/名字 屬性列表。本發(fā)明與現(xiàn)有技術(shù)相比具有以下優(yōu)點(diǎn)1、設(shè)計(jì)合理、操作簡便且編碼/命名簡便,實(shí)現(xiàn)方便。2、編碼/命名方式靈活,可操作性強(qiáng),能適用于所有的CAD在線協(xié)同設(shè)計(jì)系統(tǒng)。3、設(shè)計(jì)合理,各設(shè)計(jì)階段構(gòu)思嚴(yán)謹(jǐn),首先各個參與終端Agent在進(jìn)行特征設(shè)計(jì)的 可視化交互階段,只對本地共享數(shù)據(jù)加鎖,以阻止在可視化交互過程中本地模型數(shù)據(jù)被改 變而影響交互,本地?cái)?shù)據(jù)加鎖不影響其它Agent上的共享數(shù)據(jù),各個Agent可以并行的進(jìn) 行可視化交互設(shè)計(jì)工作;其次,當(dāng)某特定Agent完成可視化交互的工作后,生成一條文本型 的特征設(shè)計(jì)命令,該命令在本地共享數(shù)據(jù)解鎖前執(zhí)行,可以保證本地生成的特征設(shè)計(jì)命令 執(zhí)行的文檔狀態(tài)保持不變,進(jìn)而保證新產(chǎn)生的特征實(shí)例中的拓?fù)鋵ο蟮木幋a/命名的確定 性,然后將特征設(shè)計(jì)命令以點(diǎn)對點(diǎn)的方式發(fā)往其它各個Agent ;相應(yīng)地,本地Agent生成的 特征設(shè)計(jì)命令執(zhí)行后,將本地共享數(shù)據(jù)解鎖,然后處理其它Agent上發(fā)送過來的特征設(shè)計(jì) 命令,執(zhí)行其他Agent生成的特征設(shè)計(jì)命令的時候,需要對包括本地Agent生成的特征設(shè) 計(jì)命令在內(nèi)的所有具有并發(fā)關(guān)系的特征設(shè)計(jì)命令進(jìn)行處理,因?yàn)槲臋n狀態(tài)的不確定性正是 由特征設(shè)計(jì)命令的并發(fā)執(zhí)行造成的。綜上,在本發(fā)明應(yīng)用過程中,只要能夠讓特征設(shè)計(jì)命 令在確定的文檔狀態(tài)下執(zhí)行,就可以避免特征中的拓?fù)鋵ο缶幋a/命名的沖突,進(jìn)而保證 執(zhí)行后的文檔狀態(tài)的確定性和協(xié)同設(shè)計(jì)工作的可持續(xù)性。文檔狀態(tài)包括兩部分內(nèi)容一是 Agent當(dāng)前的幾何模型,二是獲得當(dāng)前幾何模型的設(shè)計(jì)過程描述,即特征設(shè)計(jì)命令的執(zhí)行歷 史記錄,幾何模型與特征設(shè)計(jì)命令的執(zhí)行歷史記錄都在本地Agent上,并且?guī)缀文P涂梢?通過特征命令的設(shè)計(jì)歷史記錄經(jīng)過重構(gòu)得到。文檔狀態(tài)可以使用一種簡化的形式進(jìn)行描 述即狀態(tài)向量StateVector,簡稱SV,SV是一個η維向量,其中的第i個分量表示已經(jīng)執(zhí) 行的編號為i的Agent (假設(shè)所有Agent的編號為從1到η,η為整個系統(tǒng)中的Agent的個 數(shù))發(fā)出的特征設(shè)計(jì)命令的個數(shù),簡化形式的文檔狀態(tài)描述用于在Agent之間進(jìn)行交換, 從而使得系統(tǒng)中的所有特征設(shè)計(jì)命令都具有唯一的標(biāo)識FCtid(即Feature Command type identification)。因而,本發(fā)明能支持特征設(shè)計(jì)命令級并發(fā)粒度的CAD在線協(xié)同設(shè)計(jì)。綜上所述,本發(fā)明設(shè)計(jì)合理嚴(yán)謹(jǐn)、操作簡便、實(shí)現(xiàn)方便且使用效果好,編碼/命名 方式靈活,可操作性強(qiáng),能支持特征設(shè)計(jì)命令級并發(fā)粒度的CAD在線協(xié)同設(shè)計(jì)。下面通過附圖和實(shí)施例,對本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
圖1為本發(fā)明的方法流程圖。圖2為本發(fā)明需設(shè)計(jì)幾何模型一的結(jié)構(gòu)示意圖。圖3為本發(fā)明對方槽中各拓?fù)涿孢M(jìn)行編碼時的原理示意圖。附圖標(biāo)記說明I-直槽一;2-直槽二;3-直槽三;4-方臺;5-前側(cè)面;6-上表面;7-左側(cè)面。
具體實(shí)施例方式如圖1所示的一種在線協(xié)同設(shè)計(jì)用被引用拓?fù)鋵ο缶幋a/命名方法,包括以下步 驟步驟一、系統(tǒng)配置對參與CAD在線協(xié)同設(shè)計(jì)的多個參與終端Agent Pi進(jìn)行系統(tǒng) 配置,使得所有參與終端Agent Pi均具有對等的可視化交互功能、三維幾何建模功能和共 享數(shù)據(jù)副本;并且,任意兩個參與終端Agent Pi之間以點(diǎn)到點(diǎn)通信方式進(jìn)行雙向通訊;其 中,i = 1、2、3. ..n,n為參與終端Agent Pi的數(shù)量;同時,在各參與終端Agent Pi的系統(tǒng)內(nèi) 均相應(yīng)建有特征命令類型菜單,所述特征命令類型菜單包括對多種立體幾何單元進(jìn)行引用 時的特征命令類型標(biāo)識FCtid,多種幾何立體單元包括CAD設(shè)計(jì)中所采用的多種最基礎(chǔ)的立 體幾何單元,且CAD設(shè)計(jì)時任一被設(shè)計(jì)的幾何模型均為由一個或多個幾何立體單元組成的 組合結(jié)構(gòu)。所述幾何立體單元的數(shù)量及結(jié)構(gòu)可以由各設(shè)計(jì)人員進(jìn)行自主設(shè)置,一般包括CAD 設(shè)計(jì)時所需要的多種最基本的立體幾何單元,如圓柱孔、源錐孔、方孔、圓柱狀桿件、多棱 柱、直槽、弧形槽、通孔、盲孔、圓臺、螺紋結(jié)構(gòu)、螺旋狀結(jié)構(gòu)、圓球、橢圓形球等。步驟二、多個參與終端Agent Pi通過交換特征設(shè)計(jì)命令方式進(jìn)行協(xié)同工作,每個 參與終端Agent Pi的協(xié)同工作過程均相同,且每個參與終端Agent Pi均能作為特征設(shè)計(jì)命 令的命令生成及發(fā)送端與命令接收及執(zhí)行端,對于參與終端Agent Pi中的任一個參與終端 Agent Pj來說,其協(xié)同工作過程如下I、當(dāng)參與終端Agent Pj作為命令生成及發(fā)送端進(jìn)行協(xié)同工作時,通過可視化交互 方式生成特征設(shè)計(jì)命令,其工作過程包括以下步驟2011、本地共享數(shù)據(jù)副本加鎖調(diào)用數(shù)據(jù)加鎖模塊對當(dāng)前的本地共享數(shù)據(jù)副本進(jìn) 行加鎖。2012、特征設(shè)計(jì)命令生成,其生成步驟如下la、幾何模型拆分根據(jù)當(dāng)前需設(shè)計(jì)幾何模型的設(shè)計(jì)結(jié)構(gòu),對需設(shè)計(jì)的幾何模型進(jìn) 行拆分,且將所述幾何模型拆分成多個立體幾何單元,相應(yīng)將被設(shè)計(jì)的幾何模型拆分成以 所述立體幾何單元為單位的多個拓?fù)鋵ο?。lb、可視化交互調(diào)用可視化交互模塊以一個拓?fù)鋵ο鬄閱挝?,對組成當(dāng)前被設(shè)計(jì) 幾何模型中的所有拓?fù)鋵ο蠓謩e進(jìn)行可視化交互。lc、被引用拓?fù)鋵ο缶幋a/命名根據(jù)步驟Ib中對所有拓?fù)鋵ο筮M(jìn)行可視化交互的交互結(jié)果,調(diào)用編碼/命名模塊分別對各拓?fù)鋵ο筮M(jìn)行編碼/命名,并相應(yīng)生成多個分別 與各拓?fù)鋵ο笙鄬?yīng)的編碼/命名單元,完成所有被引用拓?fù)鋵ο蟮木幋a/命名過程;對任一個拓?fù)鋵ο蟆⑦M(jìn)行編碼/命名時,相應(yīng)對組成該拓?fù)鋵ο?、的多個拓?fù)涿?進(jìn)行編碼/命名,并對應(yīng)生成多個與各拓?fù)涿嫦鄬?yīng)的編碼/命名單元和一個數(shù)值參數(shù)單 元,且多個編碼/命名單元和一個數(shù)值參數(shù)單元與拓?fù)鋵ο骬相對應(yīng);且編碼/命名單元 和數(shù)值參數(shù)單元生成后,參與終端Agent Pj根據(jù)所述編碼/命名單元自動生成拓?fù)鋵ο蟆?中各拓?fù)涿?、各拓?fù)溥吅透魍負(fù)潼c(diǎn)的拓?fù)涿婷脝卧?、拓?fù)溥吤脝卧屯負(fù)潼c(diǎn) 命名引用單元;所述編碼/命名單元、數(shù)值參數(shù)單元、拓?fù)涿婷脝卧?、拓?fù)溥吤?用單元和拓?fù)潼c(diǎn)命名引用單元分別通過關(guān)聯(lián)單元與拓?fù)鋵ο?、進(jìn)行關(guān)聯(lián);所述編碼/命名單元內(nèi)存儲有用于表示拓?fù)鋵ο?、結(jié)構(gòu)類型的特征類型標(biāo)識 Ftid、用于表示結(jié)構(gòu)類型為Ftid的圖形實(shí)例的特征實(shí)例標(biāo)識Finstent和多個分別用于表示同一 個特征實(shí)例標(biāo)KFinstmt中所有拓?fù)涿娴奶卣魍負(fù)涿鏄?biāo)識Faceinstent ;所述數(shù)值參數(shù)單元內(nèi)存 儲有用于表示拓?fù)鋵ο?、大小尺寸的一組數(shù)值參數(shù)。綜上,對特征設(shè)計(jì)命令中引用到的拓?fù)鋵ο蟀匆?guī)則命名,其中拓?fù)涿骊P(guān)聯(lián)編碼/ 名字屬性,即對應(yīng)的編碼/命名單元;而拓?fù)溥吅屯負(fù)潼c(diǎn)不關(guān)聯(lián)編碼/名字屬性,同時由同 一個拓?fù)涿娣至讯鴣淼亩鄠€分裂面繼承分裂前的拓?fù)涿娴木幋a/名字屬性。為保證引用 拓?fù)鋵ο蠛推涿值囊灰粚?yīng)關(guān)系,當(dāng)特征設(shè)計(jì)命令引用某個拓?fù)鋵ο髸r,進(jìn)一步為其構(gòu) 造引用名字,其中拓?fù)涿娴囊妹?即拓?fù)涿婷脝卧?為Facem,拓?fù)溥叺囊妹?字(即拓?fù)溥吤脝卧?為Edgem和拓?fù)潼c(diǎn)的引用名字(即拓?fù)潼c(diǎn)命名引用單元)為 Vertexrn0實(shí)際設(shè)計(jì)過程中,所述拓?fù)涿婷脝卧拿问綖镕acem= (eletypeid, adj_face—number,adj—Facec/n—list);所述拓?fù)溥吤脝卧拿问綖镋dgem = (eletypeid,adj—face—number, adj—Facec/n—list,end—face—number,end—Facec/n—list);所述拓?fù)潼c(diǎn)命名引用單元的命名形式為Vertexm= (eletypeid, adj_face_ number, adj_Facec/n_list);其中,eletypeid表示被引用拓?fù)湓氐念愋颓移溆糜趨^(qū)分拓?fù)涿妗⑼負(fù)溥吅屯?撲點(diǎn)三種拓?fù)湓?,adj_face_number表示被引用拓?fù)湓氐泥徑用娴膫€數(shù),end_face_ number表示被引用拓?fù)溥厓蓚€端部的端面的個數(shù),adj_Facec/n_list表示被引用拓?fù)湓?的鄰接面的編碼/名字屬性列表,end_Facec/n_list表示被引用拓?fù)溥叺亩嗣娴木幋a/名字 屬性列表。雖然拓?fù)涿孀陨頁碛芯幋a/名字屬性,但分裂后的多個拓?fù)涿胬^承布爾運(yùn)算前的 特征實(shí)例中對應(yīng)的分列前的拓?fù)涿娴木幋a/名字屬性,故在具體引用到某個拓?fù)涿娴臅r候 仍需為其構(gòu)造引用名字。另外,拓?fù)溥吅屯負(fù)潼c(diǎn)本身不具有編碼/名字屬性,當(dāng)它們被特征 設(shè)計(jì)命令弓I用到的時候?yàn)槠錁?gòu)造引用名字。Id、特征設(shè)計(jì)命令生成調(diào)用特征設(shè)計(jì)命令生成模塊分別對編碼/命名完成的多 個編碼/命名單元分別進(jìn)行分析處理,并相應(yīng)生成多條特征設(shè)計(jì)命令FC ;所述特征設(shè)計(jì)命 令FC為由三元組組成的一條文本信息,且三元組分別為用于表示與特征類型標(biāo)識Ftid相 對應(yīng)的特征設(shè)計(jì)命令FC的命令類型標(biāo)識FCtid、用于表示特征設(shè)計(jì)命令FC生成時參與終端Agent Pj內(nèi)部的文檔狀態(tài)標(biāo)識SV。g[n]和特征設(shè)計(jì)命令FC的參數(shù)列表parameters,所述參 數(shù)列表parameters中存有所述編碼/命名單元、所述數(shù)值參數(shù)單元、拓?fù)涿婷脝卧?拓?fù)溥吤脝卧屯負(fù)潼c(diǎn)命名引用單元中所存儲的所有信息。其中,文檔狀態(tài)標(biāo)識SVeg[η]為一個η維向量,η表示參與在線協(xié)同設(shè)計(jì)的所有參 與終端的數(shù)量,SV。g[n]中的第i個分量表示參與終端Agent ρ」上已經(jīng)執(zhí)行的編號為i的參 與終端Agent Pi發(fā)出的與特征類型標(biāo)識Ftid相對應(yīng)的特征設(shè)計(jì)命令的數(shù)量。綜上,為了便于實(shí)施,對于任一特征設(shè)計(jì)命令FC,以FCtid表示其特征操作類型;對 于任一個參與終端Agent Pi,以FCtid(Cnt)表示參與終端Agent Pi上當(dāng)前已經(jīng)執(zhí)行的對 應(yīng)于FCtid的特征設(shè)計(jì)命令FC的個數(shù);對于參與終端Agent Pi執(zhí)行特征設(shè)計(jì)命令FC后生 成的特征實(shí)例中的拓?fù)涿?,根?jù)FCtid和FCtid(Cnt)對拓?fù)鋵ο筮M(jìn)行唯一命名,具體如下 特征設(shè)計(jì)命令FC的形式如公式FC = (FCtid,SVcg[η],parameters)所示,其中FCtid表示特 征設(shè)計(jì)命令FC的命令類型,SVcg[η]為特征設(shè)計(jì)命令FC生成時的文檔狀態(tài)標(biāo)識的簡化形 式,parameters為特征設(shè)計(jì)命令FC的參數(shù)列表。由此可看出,文檔狀態(tài)標(biāo)識用狀態(tài)向量 StateVector來表示,簡稱SV,SV是一個η維向量,其中的第i個分量表示已經(jīng)執(zhí)行的編號 為i的參與終端Agent Pi (假設(shè)所有參與終端的編號為從1到η,η為整個系統(tǒng)中的所有參 與終端的數(shù)量)發(fā)出的特征設(shè)計(jì)命令的數(shù)量。2013、特征設(shè)計(jì)命令執(zhí)行及本地共享數(shù)據(jù)副本解鎖調(diào)用執(zhí)行模塊對生成的多條 特征設(shè)計(jì)命令FC分別進(jìn)行執(zhí)行,并將執(zhí)行后生成的幾何模型結(jié)果同步通過所述可視化交 互模塊反饋給用戶,同時將執(zhí)行結(jié)果存入特征設(shè)計(jì)命令執(zhí)行歷史記錄;多條特征設(shè)計(jì)命令 FC執(zhí)行完后,調(diào)用數(shù)據(jù)解鎖模塊對加鎖后的本地共享數(shù)據(jù)副本進(jìn)行解鎖,且解鎖后參與終 端Agent P」便作為命令接收及執(zhí)行端對所接收到的來自其它Agent pk發(fā)送而來的特征設(shè) 計(jì)命令FC進(jìn)行執(zhí)行,其中,k = 1、2、3...11,且1^乒j。2014、特征設(shè)計(jì)命令發(fā)送參與終端Agent Pj將執(zhí)行后的多條特征設(shè)計(jì)命令FC以 點(diǎn)對點(diǎn)的通信方式并發(fā)至其它參與終端Agent pkoII、當(dāng)參與終端Agent Pj作為命令接收及執(zhí)行端進(jìn)行協(xié)同工作時,其工作過程包 括以下步驟2021、特征設(shè)計(jì)命令接收參與終端Agent P」對自其它參與終端Agentpk發(fā)送而來 的特征設(shè)計(jì)命令FC進(jìn)行接收;2022、本地?cái)?shù)據(jù)庫副本加鎖狀態(tài)判斷對本地?cái)?shù)據(jù)庫副本的當(dāng)前加鎖狀態(tài)進(jìn)行判 斷當(dāng)判斷得出地?cái)?shù)據(jù)庫副本處于加鎖狀態(tài)時,則執(zhí)行步驟2024 ;否則執(zhí)行步驟2023 ;2023、特征設(shè)計(jì)命令立即執(zhí)行參與終端Agent Pj立即執(zhí)行步驟2021中接收到的 特征設(shè)計(jì)命令FC,并將執(zhí)行結(jié)果存入特征設(shè)計(jì)命令執(zhí)行歷史記錄;且執(zhí)行完后檢查本地等 待隊(duì)列,并繼續(xù)處理本地等待隊(duì)列中其它處于等待狀態(tài)的特征設(shè)計(jì)命令FC ;2024、特征設(shè)計(jì)命令等待執(zhí)行參與終端Agent Pj將步驟2021中接收到的特征設(shè) 計(jì)命令FC放入本地等待隊(duì)列中進(jìn)行等待處理。步驟2023中,進(jìn)行特征設(shè)計(jì)命令直接執(zhí)行時,其執(zhí)行過程包括以下步驟2a、文檔狀態(tài)對比判斷調(diào)用文檔狀態(tài)比較模塊對步驟2021中接收到的特征設(shè)計(jì) 命令FC中的文檔狀態(tài)標(biāo)識SVeg[η]和參與終端Agent Pj當(dāng)前的文檔狀態(tài)標(biāo)識SVee [η]進(jìn)行 比較判斷當(dāng)比較判斷得出文檔狀態(tài)標(biāo)識SVcJn]和文檔狀態(tài)標(biāo)識SVcJn]相等時,則執(zhí)行步驟2b ;否則,表明此時參與終端Agent Pj上已經(jīng)執(zhí)行了與步驟2021中所接收特征設(shè)計(jì)命 令FC為廣義并發(fā)關(guān)系的特征設(shè)計(jì)命令,則執(zhí)行步驟2c。其中,文檔狀態(tài)標(biāo)識SVeg[η]為一個η維向量,η表示參與在線協(xié)同設(shè)計(jì)的所有參 與終端的數(shù)量,SV。g[n]中的第i個分量表示參與終端Agent ρ」上已經(jīng)執(zhí)行的編號為i的參 與終端Agent Pi發(fā)出的與特征類型標(biāo)識Ftid相對應(yīng)的特征設(shè)計(jì)命令的數(shù)量。2b、特征設(shè)計(jì)命令直接執(zhí)行參與終端Agent Pj直接執(zhí)行步驟2021中接收到的特 征設(shè)計(jì)命令FC,并將執(zhí)行結(jié)果存入特征設(shè)計(jì)命令執(zhí)行歷史記錄;且執(zhí)行完后檢查本地等待 隊(duì)列,并繼續(xù)處理本地等待隊(duì)列中其它處于等待狀態(tài)的特征設(shè)計(jì)命令FC。2c、特征設(shè)計(jì)命令執(zhí)行前判斷與執(zhí)行調(diào)取參與終端Agent Pj上特征設(shè)計(jì)命令執(zhí) 行歷史記錄,且根據(jù)所調(diào)取的特征設(shè)計(jì)命令執(zhí)行歷史記錄,構(gòu)建出與步驟2021中所接收特 征設(shè)計(jì)命令FC為廣義并發(fā)關(guān)系的所有特征設(shè)計(jì)命令的特征命令集合SCg(FC);并根據(jù)特征 命令集合SCg(FC)中所包括的所有特征設(shè)計(jì)命令,進(jìn)一步構(gòu)建出與步驟2021中所接收特征 設(shè)計(jì)命令FC為狹義并發(fā)關(guān)系的所有特征設(shè)計(jì)命令的特征命令集合SCn(FC),并對特征命令 集合SCn (FC)進(jìn)行判斷當(dāng)特征命令集合SCn(FC)為空時,則在參與終端Agent pj丸行步驟 2021中接收到的特征設(shè)計(jì)命令FC,并將執(zhí)行結(jié)果存入特征設(shè)計(jì)命令執(zhí)行歷史記錄,且執(zhí)行 完后檢查本地等待隊(duì)列并繼續(xù)處理本地等待隊(duì)列中其它處于等待狀態(tài)的特征設(shè)計(jì)命令FC ; 當(dāng)特征命令集合SCn(FC)不為空時,則執(zhí)行步驟2d。其中,所述廣義并發(fā)關(guān)系為不同Agent Pi在相同文檔狀態(tài)下生成的特征設(shè)計(jì)命令 之間的關(guān)系,即文檔狀態(tài)標(biāo)識SV。g[n]相同的特征設(shè)計(jì)命令FC之間的關(guān)系。所述狹義并發(fā) 關(guān)系為與命令類型標(biāo)識FCtid相同的廣義并發(fā)特征設(shè)計(jì)命令之間的關(guān)系,如廣義并發(fā)的圓柱 盲孔命令之間的關(guān)系、廣義并發(fā)的方通槽特征設(shè)計(jì)命令之間的關(guān)系等。2d、特征設(shè)計(jì)命令執(zhí)行前處理與執(zhí)行首先,將步驟2021中接收到的特征設(shè)計(jì) 命令FC加入到特征命令集合SCn(FC);之后,將本地共享數(shù)據(jù)文檔恢復(fù)到特征命令集合 SCn(FC)中最早執(zhí)行的特征設(shè)計(jì)命令執(zhí)行之前的文檔狀態(tài),且在恢復(fù)后的文檔狀態(tài)下,先將 特征命令集合SCg(FC)中除特征命令集合SCn(FC)之外的所有特征設(shè)計(jì)命令按照其原始相 對先后順序在參與終端Agent ρ」上執(zhí)行,然后根據(jù)預(yù)置的優(yōu)先級重新確定SCn(FC)中所有 特征設(shè)計(jì)命令的執(zhí)行順序,并按確定后的新執(zhí)行順序執(zhí)行SCn(FC)中的所有特征設(shè)計(jì)命令, 并將執(zhí)行結(jié)果存入特征設(shè)計(jì)命令執(zhí)行歷史記錄;且執(zhí)行完后檢查本地等待隊(duì)列,并繼續(xù)處 理本地等待隊(duì)列中其它處于等待狀態(tài)的特征設(shè)計(jì)命令FC。綜上,系統(tǒng)配置時首先,對參與CAD在線協(xié)同設(shè)計(jì)的所有參與者代理,稱為所有 參與終端Agent Pi進(jìn)行對等的共享數(shù)據(jù)和幾何建模功能配置,即不同參與終端Agent Pi的 地位是對等的;其次,各個參與終端Agent Pi之間以點(diǎn)到點(diǎn)的模式進(jìn)行通訊;之后,所有參 與終端Agent Pi之間的協(xié)同工作通過交換特征設(shè)計(jì)命令的方式完成;并且,特征設(shè)計(jì)命令 在所有參與終端Agent Pi上可以并發(fā)執(zhí)行。參與CAD在線協(xié)同設(shè)計(jì)的所有參與終端Agent Pi(其中,i = 1、2、3...η,η為參與者的個數(shù))都具有完備并且對等的可視化交互功能、三 維幾何建模功能和共享數(shù)據(jù)副本配置。其中任一個參與終端Agentpi在可視化交互階段只 需對本地共享數(shù)據(jù)副本加鎖,而不對其它參與終端Agent Pj造成任何影響,其中j Φ i,并 且可視化交互結(jié)果以特征設(shè)計(jì)命令表示。因而,本發(fā)明可以支持特征設(shè)計(jì)命令級并發(fā)粒度 的在線協(xié)同設(shè)計(jì)。特征設(shè)計(jì)命令可以在所有參與終端Agent Pi上并發(fā)執(zhí)行,在任兩個參與終端之間被交換執(zhí)行,從而可以提高協(xié)同設(shè)計(jì)工作的并行性。步驟2012中生成特征設(shè)計(jì)命令的原理是首先,進(jìn)行可視化交互,由于CAD系統(tǒng)本 身提供有基于鼠標(biāo)的可視化交互設(shè)計(jì)方式,而可視化交互方式的若干個交互步驟所得的交 互結(jié)果均能用一條文本形式的特征設(shè)計(jì)命令來表示。因而,完成任一個幾何模型的設(shè)計(jì)需 要對組成該幾何模型的所有拓?fù)鋵ο蠓謩e進(jìn)行可視化交互,每一個拓?fù)鋵ο缶c一條特征 設(shè)計(jì)命令FC相對應(yīng)。對于每一個拓?fù)鋵ο蠖?,在設(shè)計(jì)過程中,設(shè)計(jì)者為完成一個特征設(shè) 計(jì)命令FC需要進(jìn)行若干個交互步驟,以在一個基臺上添加一個圓柱定位孔為例進(jìn)行說明 1)設(shè)計(jì)者首先需要給出圓柱孔本身的尺寸參數(shù),如孔的半徑r、孔的深度h等;2)將圓柱孔 在基臺的一個面上定位,定位可以通過確定圓柱孔中心線與基臺面上的兩條之間 的距離完成,如圓柱孔中心線到邊ei的垂直距離為Cl1,到邊e2的垂直距離為d2。該圓柱孔 的交互設(shè)計(jì)過程的最終結(jié)果則能用一條特征設(shè)計(jì)命令R0imd_H0Ie (radius = r,depth = h,poSl = (e1; (I1), pos2 = (e2,d2))來表示。Round_Hole(……)形式的特征設(shè)計(jì)命令為文 本形式,可以在所有參與終端Agent Pj間進(jìn)行交換與執(zhí)行,從而達(dá)到在線協(xié)同工作的目的。 將協(xié)同設(shè)計(jì)的粒度建立在特征設(shè)計(jì)命令上,當(dāng)參與終端Agent Pj進(jìn)行可視化交互的時候只 需對本地共享數(shù)據(jù)加鎖,使得可視化交互工作可以并行進(jìn)行,從而可以提高協(xié)同工作的并 發(fā)粒度,獲得更好的并行性。本發(fā)明中的特征設(shè)計(jì)命令不同于文本編輯命令,傳統(tǒng)的協(xié)同文本編輯系統(tǒng)中的文 本編輯命令具有兩種基本的形式 Insert (value, position)禾口 Delete (position, number), 其中的value是插入的一個文本型的字符/字符串對象,position是插入/刪除字符/字 符串所在的位置,number是刪除的字符的個數(shù)。文本編輯命令自身的語義是完整的,即根據(jù) 編輯命令中的position參數(shù)在目標(biāo)文檔上進(jìn)行定位后就可以完成相應(yīng)的編輯操作。而特 征設(shè)計(jì)命令要復(fù)雜的多,以特征設(shè)計(jì)命令Round_Hole (radius = r, depth = h,poSl = (e1 (I1),Pos2 = (e2, d2))為例其中的參數(shù)有兩種類型,r,h,(I1和d2參數(shù)為一類,屬于純數(shù)值 型的參數(shù),與當(dāng)前的幾何模型無關(guān)W1和e2為另外一類參數(shù),這類參數(shù)是幾何模型中的拓?fù)?對象的編碼/名字,其產(chǎn)生與文檔的瞬間狀態(tài)(即設(shè)計(jì)過程中某個特定時刻的文檔狀態(tài)) 密切相關(guān)。被引用拓?fù)鋵ο髽?biāo)識的不正確將會導(dǎo)致特征設(shè)計(jì)命令無法被執(zhí)行或者得到錯誤 的執(zhí)行結(jié)果,這就是基于特征設(shè)計(jì)命令交換進(jìn)行協(xié)同設(shè)計(jì)中的被引用拓?fù)鋵ο蟮木幋a/命 名問題。實(shí)際操作時,對拓?fù)涿孢M(jìn)行編碼/命名的編碼/命名單元的形式如以下公式所示 Facec7n = (Ftid,F(xiàn)inst。nt,F(xiàn)aceinstmt),其中用于表示拓?fù)鋵ο蟆⒔Y(jié)構(gòu)類型的特征類型標(biāo)識Ftid 則為被引用拓?fù)涿嫠鶎俚奶卣鲗?shí)例類型編碼,以上述在一個基臺上添加圓柱定位孔中的底 面來說,特征類型標(biāo)識Ftid則為圓形;用于表示結(jié)構(gòu)類型為Ftid的圖形實(shí)例的特征實(shí)例標(biāo)識 Finst。nt,特征實(shí)例標(biāo)識Finstmt同時能反映出在參與終端Agent Pj已經(jīng)生成的結(jié)構(gòu)類型為Ftid 的特征實(shí)例的數(shù)量,特征實(shí)例標(biāo)識Finstmt表示出當(dāng)前被編碼/命名的拓?fù)涿嫠幍奶囟ǖ?特征實(shí)例;多個分別用于表示同一個特征實(shí)例標(biāo)識Finstent中所有拓?fù)涿娴奶卣魍負(fù)涿鏄?biāo)識 Faceinstmt,包括在上述特定特征實(shí)例中所包括所有拓?fù)涿娴臉?biāo)識(即包括當(dāng)前被編碼/命 名的拓?fù)涿婧推渌c該被編碼/命名的拓?fù)涿嫦噜徎虿幌噜彽亩鄠€拓?fù)涿娴臉?biāo)識),通過 當(dāng)前被編碼/命名的拓?fù)涿媾c其它拓?fù)涿骈g的位置關(guān)系,則能對當(dāng)前被編碼/命名的拓?fù)?面進(jìn)行準(zhǔn)確定位。因而,通過公式FaCe。/n= (Ftid,F(xiàn)instcnt, Faceinstcnt)則可對任一個拓?fù)涿孢M(jìn)行準(zhǔn)確引用,上述參數(shù)ei和e2則相當(dāng)于編碼/命名單元FaCe。/n。所述數(shù)值參數(shù)單元內(nèi)存 儲有用于表示拓?fù)鋵ο?、大小尺寸的一組數(shù)值參數(shù),上述參數(shù)r,h,Cl1和d2則相當(dāng)于數(shù)值 參數(shù)單元。實(shí)際操作過程中,步驟Ic中對被引用拓?fù)鋵ο?、進(jìn)行編碼/命名時,在對參與終 端Agent pj丸行拓?fù)鋵ο骬對應(yīng)特征設(shè)計(jì)命令FC的布爾運(yùn)算之前進(jìn)行編碼/命名。且編 碼/命名時,特征類型標(biāo)識Ftid根據(jù)拓?fù)鋵ο?、對?yīng)特征設(shè)計(jì)命令FC的命令類型標(biāo)識FCtid 來確定,且特征類型標(biāo)識Ftid與特征類型標(biāo)識Ftid —一對應(yīng)。特征實(shí)例標(biāo)識Finstmt根據(jù)參與 終端Agent Pj執(zhí)行拓?fù)鋵ο?、對?yīng)特征設(shè)計(jì)命令FC的當(dāng)前值確定(具體是根據(jù)參與終端 Agent PjIFCtid(Cnt)的當(dāng)前值確定,關(guān)鍵在于狹義并發(fā)關(guān)系的特征設(shè)計(jì)命令FC的處理, 其處理方法與以下所述特征設(shè)計(jì)命令執(zhí)行文檔狀態(tài)SV。g[n]的確定化方法相同),相應(yīng)地, 步驟2d中按確定后的新執(zhí)行順序執(zhí)行SCn(FC)中的所有特征設(shè)計(jì)命令后,便完成特征設(shè)計(jì) 命令執(zhí)行后文檔狀態(tài)的確定化,此時根據(jù)參與終端Agent Pj執(zhí)行拓?fù)鋵ο骬對應(yīng)特征設(shè)計(jì) 命令FC的當(dāng)前值確定特征實(shí)例標(biāo)識Finst。nt。所述拓?fù)鋵ο?、中所包含拓?fù)涿娴膫€數(shù)為m, 特征拓?fù)涿鏄?biāo)識Faceinstmt的編碼從0到m_l進(jìn)行,且進(jìn)行編碼時先取拓?fù)鋵ο?、中所?拓?fù)涿娴耐夥ㄏ蛳蛄縑tl,力…乂㈣,之后以Vtl,V^HVnri的三個分量為依據(jù)對拓?fù)鋵ο蟆⒌亩?個拓?fù)涿孢M(jìn)行排序,其中Vi為平面的外法向向量或曲面的平均外法向量。另外,當(dāng)所述執(zhí)行拓?fù)鋵ο?、由CAD設(shè)計(jì)中常規(guī)使用的掃略或拉伸方法生成,且 對拓?fù)鋵ο?、的多個拓?fù)涿孢M(jìn)行編碼時,將掃略或拉伸的起始截面編碼為0,結(jié)束截面編碼 為m-1,另外m-2個側(cè)面順序以構(gòu)成掃略或拉伸截面的m-2條邊的切向量V1, …vm_2來進(jìn) 行編碼,具體是以νι,ν2···νω-2的三個分量為依據(jù)對m-2個拓?fù)涿孢M(jìn)行編碼,m-2個側(cè)面的編 碼與拉伸截面的對應(yīng)邊的編碼相同??傮w來說,對拓?fù)鋵ο蟆?對應(yīng)特征實(shí)例Fp)的多個拓?fù)涿孢M(jìn)行編碼時,包括以下 步驟a)取拓?fù)鋵ο?、中所有拓?fù)涿娴耐夥ㄏ騐tl,V^-Vlrt,對于平面直接取面的外法向 向量,對于曲面取面的平均外法向量;b)以V。,力…乂㈣的三個分量為依據(jù)進(jìn)行排序,排序可以按X,y,ζ (但不限定三個 分量的選取順序,如還可以選取z,1,Χ或者1,ζ, ζ等順序)進(jìn)行升序(不限定升序,也可 以按降序排列);c)對于由掃略或拉伸方法生成的布爾運(yùn)算前的特征實(shí)例Fp,各個拓?fù)涿娴木幋a順 序還可采用這樣的方法將掃略/拉伸的起始截面編碼為0,結(jié)束截面編碼為m-l,m-2個側(cè) 面順序以構(gòu)成掃略/拉伸截面的m-2條邊的切向量Vl, …vm_2 ;按步驟b)中Vc^V1-Vlrt的 排序方法進(jìn)行1到m-2編碼,側(cè)面的編碼與拉伸截面的對應(yīng)邊的編碼相同。綜上所述,對任一個拓?fù)鋵ο蟀匆?guī)則編碼時,具體是對與該拓?fù)鋵ο笙鄬?yīng)的特 征設(shè)計(jì)命令執(zhí)行后生成的所有拓?fù)涿骊P(guān)聯(lián)一個編碼/名字屬性,而拓?fù)溥吅屯負(fù)漤旤c(diǎn)不關(guān) 聯(lián)編碼/名字屬性。對于被特征設(shè)計(jì)命令引用到的幾何模型中的拓?fù)鋵ο蠼o以引用名字, 所述引用名字的構(gòu)成包含拓?fù)涿娴木幋a/名字屬性和拓?fù)鋵ο蟮木植客負(fù)湫畔ⅰT诓紶栠\(yùn) 算過程中,拓?fù)涿娴木幋a/名字屬性在布爾運(yùn)算后的結(jié)果能在幾何模型中進(jìn)行傳播,傳播 規(guī)則為被分裂的拓?fù)涿胬^承分裂前的拓?fù)涿娴木幋a/名字屬性,所以幾何模型中拓?fù)涿?的編碼/名字屬性并不唯一。
具體操作時,特征設(shè)計(jì)命令生成時的狀態(tài)向量SV。g[n] (statevectorof command generation),是指參與終端作為特征設(shè)計(jì)命令生成終端且通過可視化交互得到特征設(shè)計(jì) 命令時,本地參與終端上的特征設(shè)計(jì)命令的執(zhí)行情況描述。參與終端作為特征設(shè)計(jì)命令接 收終端接收自另一參與終端發(fā)送出來的特征設(shè)計(jì)命令時,所接收的特征設(shè)計(jì)命令在本地/ 遠(yuǎn)端參與終端上執(zhí)行時的狀態(tài)向量為SVee [n] (statevector of command execution),是指 一個特征設(shè)計(jì)命令在本地/遠(yuǎn)端參與終端上執(zhí)行的時候遠(yuǎn)端系統(tǒng)上特征設(shè)計(jì)命令的執(zhí)行 情況描述。 具體實(shí)施時,可以通過本領(lǐng)域技術(shù)人員設(shè)置軟件控制自動實(shí)現(xiàn)本地共享數(shù)據(jù)的加 解鎖,以及各參與終端間進(jìn)行立即交換并執(zhí)行特征設(shè)計(jì)命令。本發(fā)明提供了一些方便技術(shù) 人員實(shí)施的簡略手段將廣義并發(fā)關(guān)系簡略標(biāo)記為“ 11 ”,將狹義并發(fā)關(guān)系簡略記為“ II·”; 將“恢復(fù)共享數(shù)據(jù)到某個狀態(tài)”簡略為“Undo特征設(shè)計(jì)命令”;將“執(zhí)行特征設(shè)計(jì)命令”簡略 為“Do特征設(shè)計(jì)命令”;將“重新執(zhí)行特征設(shè)計(jì)命令”簡略為“Redo”。多個參與終端Agent Pi上特征設(shè)計(jì)命令的執(zhí)行順序、個數(shù)的不一致會造成特征設(shè)計(jì)命令的SV。g[n]與SV。e[n]不 一致的情況,從而導(dǎo)致拓?fù)鋵ο蟮木幋a/命名的沖突。本發(fā)明通過區(qū)分廣義并發(fā)關(guān)系與狹 義并發(fā)關(guān)系以及Undo/Do/Redo機(jī)制的特征設(shè)計(jì)命令執(zhí)行文檔狀態(tài)確定化方法,保證拓?fù)?對象的編碼/命名的正確性,進(jìn)而保證協(xié)同設(shè)計(jì)過程中特征設(shè)計(jì)命令執(zhí)行的正確性,該方 法支持特征設(shè)計(jì)命令級的并發(fā)粒度的協(xié)同設(shè)計(jì)。在單機(jī)工作環(huán)境下,只有一個設(shè)計(jì)工作流,拓?fù)鋵ο蟮木幋a/名字生成的文檔狀 態(tài)具有確定性。當(dāng)需要在特征設(shè)計(jì)過程中引用拓?fù)鋵ο髸r,系統(tǒng)當(dāng)前的文檔狀態(tài)是不會發(fā) 生改變的,新生成的拓?fù)鋵ο蟮木幋a/名字具有確定性。但在CAD在線協(xié)同設(shè)計(jì)環(huán)境下,如 果欲通過允許特征設(shè)計(jì)命令并發(fā)執(zhí)行而提高協(xié)同設(shè)計(jì)的并行性,則存在文檔狀態(tài)發(fā)生變化 的情況。以初始狀態(tài)具有完全相同的文檔狀態(tài)的兩個參與終端Agent為例,參與 終端Agent P1和p2并發(fā)地經(jīng)過各自的可視化交互后分別生成兩個方槽特征設(shè)計(jì)命令Sl1 和Sl2并分別在各自系統(tǒng)上執(zhí)行;之后,參與終端Agent Pl和p2交換特征設(shè)計(jì)命令Sl1和 Sl2,并分別在對方的系統(tǒng)上執(zhí)行。此種情況下由于Sl1和Sl2是在相同的文檔狀態(tài)下生成 的,并且它們是相同類型的特征設(shè)計(jì)命令,根據(jù)現(xiàn)有的單機(jī)拓?fù)鋵ο蟮木幋a/命名方法,無 論是基于設(shè)計(jì)步驟計(jì)數(shù)還是基于特征實(shí)例計(jì)數(shù),兩個方槽特征的對應(yīng)拓?fù)涿鎸@得相同的 編碼結(jié)果,即兩個方槽特征中各拓?fù)涿娴木幋a具有一一對應(yīng)相同關(guān)系,這里假設(shè)參與終端 Agent P1上幾何模型中的拓?fù)涿媾c參與終端Agentp2上幾何模型中的拓?fù)涿鎓/獲得相 同的特征面的編碼,這就產(chǎn)生了特征面的編碼/命名沖突。結(jié)果是兩個參與終端Agent P1 和P2產(chǎn)生非預(yù)期的文檔狀態(tài),因而在后續(xù)的特征設(shè)計(jì)中,當(dāng)某個特征設(shè)計(jì)命令再次引用拓 撲面或者f/時,將會發(fā)生引用上的不確定性,從而導(dǎo)致特征設(shè)計(jì)結(jié)果的不確定。相應(yīng)地,本發(fā)明提供了一種特征設(shè)計(jì)命令執(zhí)行文檔狀態(tài)的確定化方法,假設(shè)任何 一個參與終端Agent ρχ (其中χ = 1,2,…η)發(fā)出的特征設(shè)計(jì)命令在任意遠(yuǎn)端的參與終端 Agent py(其中y = 1,2,···η且y乒χ)上的到達(dá)順序與生成順序一致,即認(rèn)為網(wǎng)絡(luò)提供基 于鏈接的可靠服務(wù),同時所有的參與終端具有預(yù)先設(shè)定的優(yōu)先級,其確定化過程如下對任何一個特征設(shè)計(jì)命令FCx, h,即Agent px發(fā)出的第h個特征設(shè)計(jì)命令,其處理 過程為i、在本地Agent px上,由于特征設(shè)計(jì)命令在本地系統(tǒng)上生成后被立即執(zhí)行,滿足SVce[n] = SVcg[η](指SV。g[n]的η個分量中的任何一個分量等于SVcJn]中對應(yīng)的分量), 即特征設(shè)計(jì)命令執(zhí)行時的文檔狀態(tài)沒被并發(fā)的特征設(shè)計(jì)命令改變,命令的執(zhí)行文檔狀態(tài)具 有確定性,此時FCx,h的執(zhí)行不會導(dǎo)致拓?fù)鋵ο缶幋a/命名沖突;ii、如果在遠(yuǎn)端Agent Py上執(zhí)行時也滿足SV。g[n] = SVee [η],則說明在Agent py 上沒有執(zhí)行過與FCx,h為廣義并發(fā)關(guān)系的其它特征設(shè)計(jì)命令,因而命令的執(zhí)行文檔狀態(tài)具有 確定性,此時FCx,h的執(zhí)行不會導(dǎo)致拓?fù)鋵ο缶幋a/命名沖突;iii、如果在遠(yuǎn)端Agent py上執(zhí)行時滿足SVcg[n] < SVce[η](指SVcg[η]的η個分 量中的任何一個分量小于SVee [η]中對應(yīng)的分量),則說明Agentpy上執(zhí)行了 Agent px之外 的其它參與終端發(fā)出的特征設(shè)計(jì)命令;iv、由于任何一個參與終端Agent px(其中x=l,2,…η)發(fā)出的特征設(shè)計(jì)命令 在任意遠(yuǎn)端的參與終端Agent py (其中y = 1,2,"·η且y乒x)上的到達(dá)順序與生成順序 一致,則在遠(yuǎn)端Agent py上不會出現(xiàn)SV。g[n] > SVee [η](指SVeg [η]的η個分量中的任何一 個分量大于SVcJn]中對應(yīng)的分量)的情況。因而,此處只需要對第iii種情況進(jìn)行處理,包括以下步驟I)由于參與終端Agent Py上已經(jīng)執(zhí)行與特征命令FCx,h為廣義并發(fā)關(guān)系的其它特 征設(shè)計(jì)命令,并記錄在參與終端Agent py的特征設(shè)計(jì)命令執(zhí)行歷史記錄中且在特征設(shè)計(jì)命 令FCx^之后,與FCx, h為廣義并發(fā)關(guān)系的特征設(shè)計(jì)命令以SCg (FCX,h)表示;II)在SCg(FCx,h)中查找所有與FCx,h的FCtid相同的特征設(shè)計(jì)命令,即與FCx,h為狹 義并發(fā)關(guān)系的特征設(shè)計(jì)命令,F(xiàn)Cx,h的狹義并發(fā)特征設(shè)計(jì)命令集以SCn(FCX,h)表示;III)將SCg (FCX, h)-SCn(FCX, h)中的特征命令按照原始的相對順序放在SCn(FCX, h) 中的特征設(shè)計(jì)命令之前,然后將SCn(FCX,h)中的特征設(shè)計(jì)命令按照預(yù)設(shè)的優(yōu)先級重新確定 執(zhí)行順序;IV)最后將FCx^后的所有特征命令按照新確定的順序執(zhí)行重構(gòu)幾何模型;按照該方法,可以解決FCtid相同的特征命令在并發(fā)執(zhí)行時,由于文檔狀態(tài)不確定 而造成的拓?fù)鋵ο笤诰幋a/命名上的沖突,即完成特征命令執(zhí)行文檔狀態(tài)的確定化。按照 特征計(jì)數(shù)方法,F(xiàn)Ctid不同的特征命令不會造成拓?fù)鋵ο笤诰幋a/命名上的沖突,故只需對 狹義并發(fā)關(guān)系的特征設(shè)計(jì)命令進(jìn)行處理。綜上,實(shí)際進(jìn)行協(xié)同設(shè)計(jì)過程中,任一個參與終端Agent Pj既可以生成特征設(shè)計(jì) 命令又能接收并執(zhí)行其它參與終端發(fā)送來的特征設(shè)計(jì)命令,各參與終端之間交換并執(zhí)行特 征設(shè)計(jì)命令時,按以下方式進(jìn)行處理任一個參與終端Agent Pj作為特征設(shè)計(jì)命令的生成 終端,在進(jìn)行可視化交互之前,首先將本地共享數(shù)據(jù)加鎖,然后進(jìn)行可視化交互,之后生成 特征設(shè)計(jì)命令FCy (表示由參與終端Agent ρ」生成的第k個特征設(shè)計(jì)命令),并立即在參與 終端Agent Pj上執(zhí)行并向用戶反饋相應(yīng)的執(zhí)行結(jié)果,然后將Fqk結(jié)合其在參與終端Agent Pj上生成時的SV。g[n] —起以點(diǎn)對點(diǎn)的方式發(fā)送給其它參與終端Agent pk,然后將本地共享 數(shù)據(jù)解鎖,F(xiàn)Cj,k的參數(shù)中含有被引用到的拓?fù)鋵ο蟮囊妹帧Ec此同時,參與終端Agent pm(m = 1,2···η,且m興j)作為接收終端,參與終端 Agent Pm接收到參與終端Agent Pj發(fā)送過來的特征設(shè)計(jì)命令FCiik后的處理步驟如下第一步、查看參與終端Agent pm的共享數(shù)據(jù)是否被加鎖,如果被加鎖則轉(zhuǎn)入第三 步,否則轉(zhuǎn)入第二步。
第二步、對文檔狀態(tài)進(jìn)行對比判斷判斷FCj, k在參與終端Agent Pj上生成時的 SVcg[η]和參與終端Agent pm當(dāng)前的文檔狀態(tài)SVee[η]是否相等,當(dāng)二者相等時,則執(zhí)行步驟 ①;否則,表明參與終端Agent pm上已經(jīng)執(zhí)行了和FCj, k為廣義并發(fā)關(guān)系的特征設(shè)計(jì)命令, 則執(zhí)行步驟②;步驟①直接在參與終端Agent Pm上執(zhí)行自參與終端Agent ρ」發(fā)送過來的FC^, 執(zhí)行完后檢查本地等待隊(duì)列并處理其他等待中的特征設(shè)計(jì)命令;步驟②根據(jù)參與終端Agent pm上的特征命令執(zhí)行歷史記錄,構(gòu)建出FCiik的廣義 并發(fā)特征設(shè)計(jì)命令集合SCg(FCy),進(jìn)一步以SCg(FCy)中與FCiik為狹義并發(fā)關(guān)系的特征設(shè) 計(jì)命令構(gòu)建出特征命令集合SCn(FCjik)。如果SCn(FCjik)為空,則在參與終端Agent pm上執(zhí) 行參與終端Agent Pj發(fā)送過來的FCj,k,執(zhí)行完后檢查本地等待隊(duì)列并處理其他等待中的特 征設(shè)計(jì)命令。如果SCn(Fqk)不為空,則轉(zhuǎn)步驟③;步驟③將FCj,k加入到SCn(FCjik),并將本地共享文檔恢復(fù)到SCn(FCjik)中最早執(zhí) 行的特征設(shè)計(jì)命令之前的文檔狀態(tài),在該狀態(tài)下先將SCg(Fqk)-SCn(FCwt)特征設(shè)計(jì)命令按 照其原始相對順序在參與終端Agentpm上執(zhí)行。然后根據(jù)預(yù)置的優(yōu)先級,重新確定SCn(FCj, k)中所有特征設(shè)計(jì)命令的執(zhí)行順序,并按新的順序執(zhí)行SCn(FCy)中的所有特征設(shè)計(jì)命令, 執(zhí)行完后檢查本地等待隊(duì)列并處理其他等待中的特征設(shè)計(jì)命令。第三步、將接收到的參與終端Agent Pj發(fā)送過來的特征設(shè)計(jì)命令Fq k,放入到參 與終端Agent 等待隊(duì)列中。結(jié)合圖2,需進(jìn)行設(shè)計(jì)的幾何模型一為在一個方臺4上分別開直槽一 1、直槽二 2 和直槽三3三個直槽,其中直槽一 1和直槽二 2呈平行布設(shè),直槽三3與直槽一 1呈垂直布 設(shè),且采用參與終端Agent P1、參與終端Agentp2和參與終端Agent P3三個參與終端進(jìn)行 在線協(xié)同設(shè)計(jì),具體以ACIS 6. 0為三維幾何建模內(nèi)核,以Wins0Cket2. 0作為通訊API,以 VC6. 0作為開發(fā)環(huán)境進(jìn)行實(shí)施。首先,3個參與終端Agent P1、Agent p2和Agent P3上都具有相同并且完備的可 視化交互功能、幾何建模功能、通訊功能和共享數(shù)據(jù)副本,且參與終端Agent Pl,Agent 2和 Agent p3之間通過Socket建立點(diǎn)到點(diǎn)的可靠的網(wǎng)絡(luò)通訊,假設(shè)3個參與終端的優(yōu)先級方案 為編號越小優(yōu)先級越高,即參與終端Agent P1的優(yōu)先級最高,Agent p3的優(yōu)先級最低,而 Agentp2的優(yōu)先級居中。采用三個參與終端Agent Pl、Agent p2和Agent P3對上述需設(shè)計(jì) 的幾何模型進(jìn)行CAD在線協(xié)同設(shè)計(jì)時,其具體設(shè)計(jì)過程如下步驟一、三個參與終端Agent P1、Agent 2和Agent P3上的初始狀態(tài)為由參與終 端Agent P1通過特征設(shè)計(jì)命令FClil (參與終端Agent Pl生成并執(zhí)行的第1個特征設(shè)計(jì)命 令)生成一個立方體特征,并相應(yīng)獲得對應(yīng)的立方體特征實(shí)例,且給立方體特征實(shí)例中的 各拓?fù)涿孢M(jìn)行了唯一編碼/命名,即設(shè)計(jì)出方臺4 ;步驟二、三個參與終端Agent Pl、Agent p2和Agent p3并發(fā)生成并執(zhí)行了各自的 方槽特征設(shè)計(jì)命令FC1^FCu和FC3il,具體而言參與終端Agentp1生成并執(zhí)行了設(shè)計(jì)方槽 一 1的方槽特征設(shè)計(jì)命令FCu (參與終端Agent Pl生成并執(zhí)行的第2個特征設(shè)計(jì)命令), 參與終端Agent p2生成并執(zhí)行了設(shè)計(jì)方槽二 2的方槽特征設(shè)計(jì)命令Fqi (參與終端Agent P2生成并執(zhí)行的第1個特征設(shè)計(jì)命令),參與終端Agent P3生成并執(zhí)行了設(shè)計(jì)方槽三3的 方槽特征設(shè)計(jì)命令FC3il (參與終端Agent P3生成并執(zhí)行的第1個特征設(shè)計(jì)命令);然后,每一個參與終端均與各自生成并執(zhí)行的所有特征設(shè)計(jì)命令以點(diǎn)到點(diǎn)的方式發(fā)送給另外兩個 參與終端。由于參與終端Agent P1、Agent p2和Agent p3在各自的系統(tǒng)上執(zhí)行的方槽特征設(shè) 計(jì)命令數(shù)量均為第1個,故三個參與終端上方槽特征設(shè)計(jì)命令的特征實(shí)例標(biāo)識(即方槽特 征實(shí)例的編碼)均為Finstent = 1。方槽特征設(shè)計(jì)命令中的各個拓?fù)涿娴腇aceinstent的編碼/ 命名按照布爾運(yùn)算前的實(shí)體中各個面的外法向V按照X、Y與Z三個分量的升序排列決定。 結(jié)合圖3,對于一個方槽來說,其包括六個拓?fù)涿媲伊鶄€拓?fù)涿娣謩e為前側(cè)面5、上表面6、 左側(cè)面7、與前側(cè)面5正對的后側(cè)面、與上表面6正對的下表面和與左側(cè)面7正對的右側(cè)面。 實(shí)際操作過程中,對六個拓?fù)涿孢M(jìn)行編碼時從0到5進(jìn)行,且所述后側(cè)面、右側(cè)面、左側(cè)面7、 下表面、上表面6和前側(cè)面5的編號依次為0、1、2、3、4和5。同時,此處僅以參與終端Agent p2上的特征設(shè)計(jì)命令處理為例說明本發(fā)明的特征 設(shè)計(jì)命令執(zhí)行文檔狀態(tài)確定化方法首先,參與終端Agent P2接收到參與終端Agent P3發(fā)送過來的FC3il,F(xiàn)C3il對應(yīng)的 SVcg[3] = (1,0,0),而此時參與終端Agent P2上的SVee [3] = (1,1,0),表明有一個參與終 端Agent p2生成的命令FC2,i已經(jīng)執(zhí)行,即有FC3il | |FC2a ;進(jìn)一步檢查后發(fā)現(xiàn),兩個特征設(shè) 計(jì)命令FC3il和FC2a的FCtid也相同,則有FC3il I I .FC2il,根據(jù)優(yōu)先級確定FC3il和FC2a新的 執(zhí)行順序?yàn)橄葓?zhí)行FC2il,再執(zhí)行FC3il,且執(zhí)行完后得到相應(yīng)的結(jié)果。FC3il和FC2il兩個方槽 特征實(shí)例的Finstmt依次為1和2。緊接著,參與終端Agent P2接收到參與終端Agent P1發(fā)送過來的FCli2,F(xiàn)Cli2對應(yīng) 的SVeg[3] = (1,0,0),而此時參與終端Agent P2上的SVee [3] = (1,1,1),表明有一個參與 終端Agent P2生成的命令FC2il以及參與終端Agent P3生成的命令FC3il已經(jīng)執(zhí)行,即有FC1, 2| Ifc2i1與FC1J Ifc3i1,進(jìn)一步檢查后得出三個特征設(shè)計(jì)命令的Fctid也相同,有FC1J | -fc2, !與FCli21 I · FC3il,根據(jù)優(yōu)先級確定FC1^FC3il和FC2il新的執(zhí)行順序?yàn)橄葓?zhí)行FCu,再執(zhí)行 FC2a,之后再執(zhí)行FCw,需要進(jìn)行特征設(shè)計(jì)命令執(zhí)行文檔狀態(tài)的回復(fù),具體過程為先進(jìn)行 Undo FC2J 與 Undo Fqi,再進(jìn)行 Do FC1J,之后再進(jìn)行 Redo FC2a 與 Redo FC3,。FC3^FCu 和FCli2三個方槽特征實(shí)例的Finstent依次為1,2和3。步驟三、三個參與終端Agent Pl、Agent p2和Agent p3根據(jù)相同的方法處理特征 設(shè)計(jì)命令FC1^FC2il和FCu。對于拓?fù)溥叀⑼負(fù)潼c(diǎn)在特征設(shè)計(jì)命令中的引用,以邊E為例進(jìn) 行說明,當(dāng)需要對邊E進(jìn)行倒圓角時,特征設(shè)計(jì)命令的形式為BlendEdge (Edgem,radius), Edgem為被倒圓角邊的引用名字,radius為倒圓角的半徑參數(shù)。其中,Edgem的結(jié)構(gòu)為 (edge, 2, adj_Face。/n_list,2,end_Facec/n_list), edge 表明該拓?fù)鋵ο蟮念愋蜑橐粭l拓 撲邊,鄰接面和端面的個數(shù)都為2,adj_Facec/n_list為邊E的兩個鄰接面的FaCe。/n,end_ Facec/n_list為邊E的兩個端面的Facec/n。以上所述,僅是本發(fā)明的較佳實(shí)施例,并非對本發(fā)明作任何限制,凡是根據(jù)本發(fā)明 技術(shù)實(shí)質(zhì)對以上實(shí)施例所作的任何簡單修改、變更以及等效結(jié)構(gòu)變化,均仍屬于本發(fā)明技 術(shù)方案的保護(hù)范圍內(nèi)。
權(quán)利要求
一種在線協(xié)同設(shè)計(jì)用被引用拓?fù)鋵ο缶幋a/命名方法,其特征在于該方法包括以下步驟步驟一、系統(tǒng)配置對參與CAD在線協(xié)同設(shè)計(jì)的多個參與終端Agent pi進(jìn)行系統(tǒng)配置,使得所有參與終端Agent pi均具有對等的可視化交互功能、三維幾何建模功能和共享數(shù)據(jù)副本;并且,任意兩個參與終端Agent pi之間以點(diǎn)到點(diǎn)通信方式進(jìn)行雙向通訊;其中,i=1、2、3...n,n為參與終端Agent pi的數(shù)量;同時,在各參與終端Agent pi的系統(tǒng)內(nèi)均相應(yīng)建有特征命令類型菜單,所述特征命令類型菜單包括對多種立體幾何單元進(jìn)行引用時的特征命令類型標(biāo)識FCtid,多種幾何立體單元包括CAD設(shè)計(jì)中所采用的多種最基礎(chǔ)的立體幾何單元,且CAD設(shè)計(jì)時任一被設(shè)計(jì)的幾何模型均為由一個或多個幾何立體單元組成的組合結(jié)構(gòu);步驟二、多個參與終端Agent pi通過交換特征設(shè)計(jì)命令方式進(jìn)行協(xié)同工作,每個參與終端Agent pi的協(xié)同工作過程均相同,且每個參與終端Agent pi均能作為特征設(shè)計(jì)命令的命令生成及發(fā)送端與命令接收及執(zhí)行端,對于參與終端Agent pi中的任一個參與終端Agent pj來說,其協(xié)同工作過程如下I、當(dāng)參與終端Agent pj作為命令生成及發(fā)送端進(jìn)行協(xié)同工作時,通過可視化交互方式生成特征設(shè)計(jì)命令,其工作過程包括以下步驟2011、本地共享數(shù)據(jù)副本加鎖調(diào)用數(shù)據(jù)加鎖模塊對當(dāng)前的本地共享數(shù)據(jù)副本進(jìn)行加鎖;2012、特征設(shè)計(jì)命令生成,其生成步驟如下1a、幾何模型拆分根據(jù)當(dāng)前需設(shè)計(jì)幾何模型的設(shè)計(jì)結(jié)構(gòu),對需設(shè)計(jì)的幾何模型進(jìn)行拆分,且將所述幾何模型拆分成多個立體幾何單元,相應(yīng)將被設(shè)計(jì)的幾何模型拆分成以所述立體幾何單元為單位的多個拓?fù)鋵ο螅?b、可視化交互調(diào)用可視化交互模塊以一個拓?fù)鋵ο鬄閱挝?,對組成當(dāng)前被設(shè)計(jì)幾何模型中的所有拓?fù)鋵ο蠓謩e進(jìn)行可視化交互;1c、被引用拓?fù)鋵ο缶幋a/命名根據(jù)步驟1b中對所有拓?fù)鋵ο筮M(jìn)行可視化交互的交互結(jié)果,調(diào)用編碼/命名模塊分別對各拓?fù)鋵ο筮M(jìn)行編碼/命名,并相應(yīng)生成多個分別與各拓?fù)鋵ο笙鄬?yīng)的編碼/命名單元,完成所有被引用拓?fù)鋵ο蟮木幋a/命名過程;對任一個拓?fù)鋵ο髏i進(jìn)行編碼/命名時,相應(yīng)對組成該拓?fù)鋵ο髏i的多個拓?fù)涿孢M(jìn)行編碼/命名,并對應(yīng)生成多個與各拓?fù)涿嫦鄬?yīng)的編碼/命名單元和一個數(shù)值參數(shù)單元,且多個編碼/命名單元和一個數(shù)值參數(shù)單元與拓?fù)鋵ο髏i相對應(yīng);且編碼/命名單元和數(shù)值參數(shù)單元生成后,參與終端Agent pj根據(jù)所述編碼/命名單元自動生成拓?fù)鋵ο髏i中各拓?fù)涿妗⒏魍負(fù)溥吅透魍負(fù)潼c(diǎn)的拓?fù)涿婷脝卧?、拓?fù)溥吤脝卧屯負(fù)潼c(diǎn)命名引用單元;所述編碼/命名單元、數(shù)值參數(shù)單元、拓?fù)涿婷脝卧?、拓?fù)溥吤脝卧屯負(fù)潼c(diǎn)命名引用單元分別通過關(guān)聯(lián)單元與拓?fù)鋵ο髏i進(jìn)行關(guān)聯(lián);所述編碼/命名單元內(nèi)存儲有用于表示拓?fù)鋵ο髏i結(jié)構(gòu)類型的特征類型標(biāo)識Ftid、用于表示結(jié)構(gòu)類型為Ftid的圖形實(shí)例的特征實(shí)例標(biāo)識Finstcnt和多個分別用于表示同一個特征實(shí)例標(biāo)識Finstcnt中所有拓?fù)涿娴奶卣魍負(fù)涿鏄?biāo)識Faceinstcnt;所述數(shù)值參數(shù)單元內(nèi)存儲有用于表示拓?fù)鋵ο髏i大小尺寸的一組數(shù)值參數(shù);1d、特征設(shè)計(jì)命令生成調(diào)用特征設(shè)計(jì)命令生成模塊分別對編碼/命名完成的多個編碼/命名單元分別進(jìn)行分析處理,并相應(yīng)生成多條特征設(shè)計(jì)命令FC;所述特征設(shè)計(jì)命令FC為由三元組組成的一條文本信息,且三元組分別為用于表示與特征類型標(biāo)識Ftid相對應(yīng)的特征設(shè)計(jì)命令FC的命令類型標(biāo)識FCtid、用于表示特征設(shè)計(jì)命令FC生成時參與終端Agent pj內(nèi)部的文檔狀態(tài)標(biāo)識SVcg[n]和特征設(shè)計(jì)命令FC的參數(shù)列表parameters,所述參數(shù)列表parameters中存有所述編碼/命名單元、所述數(shù)值參數(shù)單元、拓?fù)涿婷脝卧?、拓?fù)溥吤脝卧屯負(fù)潼c(diǎn)命名引用單元中所存儲的所有信息;其中,文檔狀態(tài)標(biāo)識SVcg[n]為一個n維向量,n表示參與在線協(xié)同設(shè)計(jì)的所有參與終端的數(shù)量,SVcg[n]中的第i個分量表示參與終端Agent pj上已經(jīng)執(zhí)行的編號為i的參與終端Agent pi發(fā)出的與特征類型標(biāo)識Ftid相對應(yīng)的特征設(shè)計(jì)命令的數(shù)量;
2.按照權(quán)利要求1所述的一種在線協(xié)同設(shè)計(jì)用被引用拓?fù)鋵ο缶幋a/命名方法,其特 征在于步驟2023中進(jìn)行特征設(shè)計(jì)命令直接執(zhí)行時,其執(zhí)行過程包括以下步驟2a、文檔狀態(tài)對比判斷調(diào)用文檔狀態(tài)比較模塊對步驟2021中接收到的特征設(shè)計(jì)命令 FC中的文檔狀態(tài)標(biāo)識SV。g[n]和參與終端Agent Pj當(dāng)前的文檔狀態(tài)標(biāo)識SV。e[n]進(jìn)行比較 判斷當(dāng)比較判斷得出二者相等時,則執(zhí)行步驟2b ;否則,表明此時參與終端Agent Pj上已 經(jīng)執(zhí)行了與步驟2021中所接收特征設(shè)計(jì)命令FC為廣義并發(fā)關(guān)系的特征設(shè)計(jì)命令,則執(zhí)行 步驟2c ;其中,文檔狀態(tài)標(biāo)識SV。Jn]為一個n維向量,n表示參與在線協(xié)同設(shè)計(jì)的所有參與終 端的數(shù)量,SV。e[n]中的第i個分量表示參與終端Agent p^上已經(jīng)執(zhí)行的編號為i的參與終 端Agent Pi發(fā)出的與特征類型標(biāo)識Ftid相對應(yīng)的特征設(shè)計(jì)命令的數(shù)量;2b、特征設(shè)計(jì)命令直接執(zhí)行參與終端Agent p^直接執(zhí)行步驟2021中接收到的特征設(shè)計(jì)命令FC,并將執(zhí)行結(jié)果存入特征設(shè)計(jì)命令執(zhí)行歷史記錄;且執(zhí)行完后檢查本地等待隊(duì) 列,并繼續(xù)處理本地等待隊(duì)列中其它處于等待狀態(tài)的特征設(shè)計(jì)命令FC ;2c、特征設(shè)計(jì)命令執(zhí)行前判斷與執(zhí)行調(diào)取參與終端Agent p^上特征設(shè)計(jì)命令執(zhí)行歷 史記錄,且根據(jù)所調(diào)取的特征設(shè)計(jì)命令執(zhí)行歷史記錄,構(gòu)建出與步驟2021中所接收特征設(shè) 計(jì)命令FC為廣義并發(fā)關(guān)系的所有特征設(shè)計(jì)命令的特征命令集合SCg(FC);并根據(jù)特征命令 集合SCg(FC)中所包括的所有特征設(shè)計(jì)命令,進(jìn)一步構(gòu)建出與步驟2021中所接收特征設(shè)計(jì) 命令FC為狹義并發(fā)關(guān)系的所有特征設(shè)計(jì)命令的特征命令集合SCn(FC),并對特征命令集合 SCn(FC)進(jìn)行判斷當(dāng)特征命令集合SCn(FC)為空時,則在參與終端Agent 」執(zhí)行步驟2021 中接收到的特征設(shè)計(jì)命令FC,并將執(zhí)行結(jié)果存入特征設(shè)計(jì)命令執(zhí)行歷史記錄,且執(zhí)行完后 檢查本地等待隊(duì)列并繼續(xù)處理本地等待隊(duì)列中其它處于等待狀態(tài)的特征設(shè)計(jì)命令FC;當(dāng) 特征命令集合SCn(FC)不為空時,則執(zhí)行步驟2d ;所述廣義并發(fā)關(guān)系為不同Agent Pi在相同文檔狀態(tài)下生成的特征設(shè)計(jì)命令之間的關(guān) 系,即文檔狀態(tài)標(biāo)識SV。g[n]相同的特征設(shè)計(jì)命令FC之間的關(guān)系;所述狹義并發(fā)關(guān)系為與命 令類型標(biāo)識FCtid相同的廣義并發(fā)特征設(shè)計(jì)命令之間的關(guān)系;2d、特征設(shè)計(jì)命令執(zhí)行前處理與執(zhí)行首先,將步驟2021中接收到的特征設(shè)計(jì)命令FC 加入到特征命令集合SCn(FC);之后,將本地共享數(shù)據(jù)文檔恢復(fù)到特征命令集合SCn(FC)中 最早執(zhí)行的特征設(shè)計(jì)命令執(zhí)行之前的文檔狀態(tài),且在恢復(fù)后的文檔狀態(tài)下,先將特征命令 集合SCg(FC)中除特征命令集合SCn(FC)之外的所有特征設(shè)計(jì)命令按照其原始相對先后順 序在參與終端Agent P」上執(zhí)行,然后根據(jù)預(yù)置的優(yōu)先級重新確定SCn(FC)中所有特征設(shè)計(jì) 命令的執(zhí)行順序,并按確定后的新執(zhí)行順序執(zhí)行SCn(FC)中的所有特征設(shè)計(jì)命令,并將執(zhí)行 結(jié)果存入特征設(shè)計(jì)命令執(zhí)行歷史記錄;且執(zhí)行完后檢查本地等待隊(duì)列,并繼續(xù)處理本地等 待隊(duì)列中其它處于等待狀態(tài)的特征設(shè)計(jì)命令FC。
3.按照權(quán)利要求1或2所述的一種在線協(xié)同設(shè)計(jì)用被引用拓?fù)鋵ο缶幋a/命名方法, 其特征在于步驟lc中對被引用拓?fù)鋵ο?、進(jìn)行編碼/命名時,在對參與終端Agent 」執(zhí) 行拓?fù)鋵ο?、對?yīng)特征設(shè)計(jì)命令FC的布爾運(yùn)算之前進(jìn)行編碼/命名;且編碼/命名時,特征類型標(biāo)識Ftid根據(jù)拓?fù)鋵ο蟆?yīng)特征設(shè)計(jì)命令FC的命令類型 標(biāo)識FCtid來確定,且特征類型標(biāo)識Ftid與特征類型標(biāo)識Ftid —一對應(yīng);特征實(shí)例標(biāo)識Finst。nt 根據(jù)參與終端Agent Pj執(zhí)行拓?fù)鋵ο?、對?yīng)特征設(shè)計(jì)命令FC的當(dāng)前值確定;所述拓?fù)鋵?象、中所包含拓?fù)涿娴膫€數(shù)為m,特征拓?fù)涿鏄?biāo)識Faceinst。nt的編碼從0到m_l進(jìn)行,且進(jìn) 行編碼時先取拓?fù)鋵ο?、中所有拓?fù)涿娴耐夥ㄏ蛳蛄浚ィx…乂㈣,之后以、,義…乂㈣的三 個分量為依據(jù)對拓?fù)鋵ο?、的多個拓?fù)涿孢M(jìn)行排序,其中\(zhòng)為平面的外法向向量或曲面的 平均外法向量。
4.按照權(quán)利要求3所述的一種在線協(xié)同設(shè)計(jì)用被引用拓?fù)鋵ο缶幋a/命名方法,其特 征在于所述執(zhí)行拓?fù)鋵ο?、由CAD設(shè)計(jì)中常規(guī)使用的掃略或拉伸方法生成,且對拓?fù)鋵?象、的多個拓?fù)涿孢M(jìn)行編碼時,將掃略或拉伸的起始截面編碼為0,結(jié)束截面編碼為m-1, 另外m-2個側(cè)面順序以構(gòu)成掃略或拉伸截面的m-2條邊的切向量Vl,vf vm_2來進(jìn)行編碼, 具體是以Vl, …vm-2的三個分量為依據(jù)對m-2個拓?fù)涿孢M(jìn)行編碼,m-2個側(cè)面的編碼與拉 伸截面的對應(yīng)邊的編碼相同。
5.按照權(quán)利要求2所述的一種在線協(xié)同設(shè)計(jì)用被引用拓?fù)鋵ο缶幋a/命名方法,其特征在于步驟2d中按確定后的新執(zhí)行順序執(zhí)行SCn(FC)中的所有特征設(shè)計(jì)命令后,便完成 特征設(shè)計(jì)命令執(zhí)行后文檔狀態(tài)的確定化,此時根據(jù)參與終端Agent Pj執(zhí)行拓?fù)鋵ο骬對應(yīng) 特征設(shè)計(jì)命令FC的當(dāng)前值確定特征實(shí)例標(biāo)識Finstmt。
6.按照權(quán)利要求3所述的一種在線協(xié)同設(shè)計(jì)用被引用拓?fù)鋵ο缶幋a/命名方法,其特 征在于所述拓?fù)涿婷脝卧拿问綖镕acem = (eletypeid, adj_face_number, adj_Facec/n_l i st);所述拓?fù)溥吤脝卧拿问綖镋dgem = (eletypeid,adj_face_number,adj_ Facec/n_list, end_face_number, end_Facec/n_l i st);所述拓?fù)潼c(diǎn)命名引用單元的命名形式為Vertexm = (eletypeid, adj_face_number, adj_Facec/n_l i st);其中,eletypeid表示被引用拓?fù)湓氐念愋颓移溆糜趨^(qū)分拓?fù)涿?、拓?fù)溥吅屯負(fù)潼c(diǎn)三 種拓?fù)湓兀琣dj_face_number表示被引用拓?fù)湓氐泥徑用娴膫€數(shù),end_face_number表 示被引用拓?fù)溥厓蓚€端部的端面的個數(shù),adj_Facec/n_list表示被引用拓?fù)湓氐泥徑用?的編碼/名字屬性列表,end_Face。/n_list表示被引用拓?fù)溥叺亩嗣娴木幋a/名字屬性列表。
全文摘要
本發(fā)明公開了一種在線協(xié)同設(shè)計(jì)用被引用拓?fù)鋵ο缶幋a/命名方法,包括步驟1.系統(tǒng)配置參與在線協(xié)同設(shè)計(jì)的多個參與終端地位對等;2.多個參與終端通過交換特征設(shè)計(jì)命令方式協(xié)同工作,每個參與終端均能作為命令生成及發(fā)送端與命令接收及執(zhí)行端當(dāng)作為命令生成及發(fā)送端時,過程如下本地共享數(shù)據(jù)副本加鎖、特征設(shè)計(jì)命令生成、特征設(shè)計(jì)命令執(zhí)行及本地共享數(shù)據(jù)副本解鎖與特征設(shè)計(jì)命令發(fā)送;當(dāng)作為命令接收及執(zhí)行端時,過程如下特征設(shè)計(jì)命令接收、本地?cái)?shù)據(jù)庫副本加鎖狀態(tài)判斷與特征設(shè)計(jì)命令立即執(zhí)行及等待執(zhí)行。本發(fā)明設(shè)計(jì)合理嚴(yán)謹(jǐn)、操作簡便、實(shí)現(xiàn)方便且使用效果好,編碼/命名方式靈活,能支持特征設(shè)計(jì)命令級并發(fā)粒度的CAD在線協(xié)同設(shè)計(jì)。
文檔編號G06F17/50GK101882173SQ20101019013
公開日2010年11月10日 申請日期2010年6月2日 優(yōu)先權(quán)日2010年6月2日
發(fā)明者荊樹旭 申請人:長安大學(xué)