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