專利名稱:基于緩存的動(dòng)態(tài)數(shù)據(jù)加載方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,具體而言,涉及一種基于緩存的動(dòng)態(tài)數(shù)據(jù)加載方法及裝置。
背景技術(shù):
隨著三維CAD軟件在制造業(yè),尤其是在裝備業(yè)的廣泛應(yīng)用,軟件所處理的模型也 在不斷增大。由最初的幾百個(gè)零件的減速器模型,到現(xiàn)在的幾萬個(gè)零部件的整車模型和大 型機(jī)械裝備,使得模型數(shù)據(jù)文件由原來的幾百KB增加到幾百M(fèi)B,于是就對軟件性能和內(nèi)存 使用量提出了新的要求。例如打開一個(gè)有100多個(gè)零件的減速器裝配,目前主流配置的計(jì)算機(jī)只需要5秒 以內(nèi),占用內(nèi)存小于100MB,而打開一個(gè)有3萬個(gè)零件的大型機(jī)械裝配,同等配置的計(jì)算機(jī) 需要5分鐘以上,占用內(nèi)存接近2GB,這是一般用戶所無法忍受的。盡管用戶可以通過提高 硬件配置在一定程度上提高速度,解決內(nèi)存消耗問題,但對于零件數(shù)上萬的大裝配,僅僅提 升硬件配置的效果就不再那么明顯了,而且在Windows XP 32位系統(tǒng)下,每個(gè)進(jìn)程所占用的 內(nèi)存最大限制是3GB,超過這個(gè)限制時(shí),軟件將直接異常退出。因此,必須從軟件算法上做出 根本性改進(jìn),這樣才能使軟件在性能上有質(zhì)的提升,從而滿足企業(yè)進(jìn)一步的需要。目前針對相關(guān)技術(shù)的CAD文件數(shù)據(jù)打開過慢,占用內(nèi)存過多,系統(tǒng)總體性能低的 問題,目前尚未提出有效的解決方案。
發(fā)明內(nèi)容
針對相關(guān)技術(shù)的CAD文件數(shù)據(jù)打開過慢,占用內(nèi)存過多,系統(tǒng)總體性能低的問題, 目前尚未提出有效的問題而提出本發(fā)明,為此,本發(fā)明的主要目的在于提供一種基于緩存 的動(dòng)態(tài)數(shù)據(jù)加載方法及裝置,以解決上述問題。為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種基于緩存的動(dòng)態(tài)數(shù)據(jù)加 載方法,該方法包括CAD系統(tǒng)接收打開文件請求;根據(jù)打開文件請求將CAD文件數(shù)據(jù)寫入 緩存;根據(jù)CAD文件數(shù)據(jù)在緩存中構(gòu)建零件容器以及零件組件容器,使得CAD文件數(shù)據(jù)在緩 存中打開;CAD系統(tǒng)接收操作請求,并通過零件容器以及零件組件容器調(diào)用零件對象和零 件組件對象,從而將CAD文件數(shù)據(jù)加載至內(nèi)存。進(jìn)一步地,CAD系統(tǒng)接收操作請求,并通過零件容器以及零件組件容器調(diào)用零件對 象和零件組件對象,從而將CAD文件數(shù)據(jù)加載至內(nèi)存包括如下步驟CAD系統(tǒng)根據(jù)操作請求 來調(diào)用零件容器以及零件組件容器;通過零件容器調(diào)用與其對應(yīng)的零件對象,同時(shí),通過零 件組件容器調(diào)用與其相對應(yīng)的零件組件對象;根據(jù)零件對象和零件組件對象將CAD文件數(shù) 據(jù)加載至內(nèi)存;CAD系統(tǒng)返回CAD文件數(shù)據(jù)。進(jìn)一步地,在通過零件組件容器調(diào)用與其相對應(yīng)的零件組件對象之前,方法還包 括判斷是否存在與零件組件容器相對應(yīng)的零件組件對象,其中,如果存在,則通過零件組 件容器調(diào)用零件組件對象;如果不存在,則返回緩存,在緩存中構(gòu)建與零件組件容器相對應(yīng)的零件組件對象,并在構(gòu)建零件組件對象成功后,通過零件組件容器調(diào)用零件組件對象。進(jìn)一步地,CAD文件數(shù)據(jù)包含一個(gè)或多個(gè)零件數(shù)據(jù),各個(gè)零件數(shù)據(jù)按屬性分類包含 一個(gè)或多個(gè)零件組件數(shù)據(jù)。進(jìn)一步地,根據(jù)CAD文件數(shù)據(jù)在緩存中構(gòu)建零件容器以及零件組件容器的步驟包 括讀取緩存中的CAD文件數(shù)據(jù),以獲取各個(gè)零件數(shù)據(jù)的起始地址和數(shù)據(jù)大小,并根據(jù)各個(gè) 零件數(shù)據(jù)的起始地址和數(shù)據(jù)大小來構(gòu)建零件容器;讀取零件數(shù)據(jù),以獲取各個(gè)零件組件數(shù) 據(jù)的起始地址和數(shù)據(jù)大小,并根據(jù)各個(gè)零件組件數(shù)據(jù)的起始地址和數(shù)據(jù)大小來構(gòu)建零件組 件容器。 進(jìn)一步地,零件容器包含一個(gè)或多個(gè)零件組件容器。根據(jù)本發(fā)明的另一方面,提供了一種基于緩存的動(dòng)態(tài)數(shù)據(jù)加載的裝置,該裝置包 括獲取模塊,用于CAD系統(tǒng)接收打開文件請求;寫入模塊,用于根據(jù)打開文件請求將CAD 文件數(shù)據(jù)寫入緩存模塊中;構(gòu)建模塊,用于根據(jù)CAD文件數(shù)據(jù)在緩存模塊中構(gòu)建零件容器 以及零件組件容器,使得CAD文件數(shù)據(jù)在緩存模塊中打開;操作模塊,用于CAD系統(tǒng)接收操 作請求,并通過零件容器以及零件組件容器調(diào)用零件對象和零件組件對象,從而將CAD文 件數(shù)據(jù)加載至內(nèi)存。進(jìn)一步地,操作模塊包括調(diào)用模塊一,用于CAD系統(tǒng)根據(jù)操作請求來調(diào)用零件容 器以及零件組件容器;調(diào)用模塊二,用于通過零件容器調(diào)用與其對應(yīng)的零件對象,同時(shí),通 過零件組件容器調(diào)用與其相對應(yīng)的零件組件對象;加載模塊,用于根據(jù)零件對象和零件組 件對象將CAD文件數(shù)據(jù)加載至內(nèi)存;返回模塊,用于CAD系統(tǒng)返回CAD文件數(shù)據(jù)。進(jìn)一步地,調(diào)用模塊二包括判斷模塊,用于判斷是否存在與零件組件容器相對應(yīng) 的零件組件對象,其中,如果存在,則通過零件組件容器調(diào)用零件組件對象;如果不存在,則 返回緩存,在緩存中構(gòu)建與零件組件容器相對應(yīng)的零件組件對象,并在構(gòu)建零件組件對象 成功后,通過零件組件容器調(diào)用零件組件對象。進(jìn)一步地,構(gòu)建模塊包括第一構(gòu)建子模塊,用于讀取緩存中的CAD文件數(shù)據(jù),以 獲取各個(gè)零件數(shù)據(jù)的起始地址和數(shù)據(jù)大小,并根據(jù)各個(gè)零件數(shù)據(jù)的起始地址和數(shù)據(jù)大小來 構(gòu)建零件容器;第二構(gòu)建子模塊,用于讀取零件數(shù)據(jù),以獲取各個(gè)零件組件數(shù)據(jù)的起始地址 和數(shù)據(jù)大小,并根據(jù)各個(gè)零件組件數(shù)據(jù)的起始地址和數(shù)據(jù)大小來構(gòu)建零件組件容器。通過本發(fā)明,采用CAD系統(tǒng)接收打開文件請求;在接收打開文件請求后根據(jù)打開 文件請求將CAD文件數(shù)據(jù)寫入緩存;并在緩存中根據(jù)CAD文件數(shù)據(jù)構(gòu)建零件容器以及零件 組件容器,使得CAD文件數(shù)據(jù)在緩存中打開;將CAD文件數(shù)據(jù)在緩存中打開之后,CAD系統(tǒng) 再進(jìn)一步接收到操作請求,并通過零件容器以及零件組件容器調(diào)用零件對象和零件組件對 象,從而將CAD文件數(shù)據(jù)加載至內(nèi)存,進(jìn)而通過調(diào)用內(nèi)存中的文件數(shù)據(jù)完成操作。從而解決 了 CAD文件數(shù)據(jù)打開過慢,占用內(nèi)存過多,系統(tǒng)總體性能低的問題,進(jìn)而達(dá)到了節(jié)約內(nèi)存、 提高CAD系統(tǒng)整體運(yùn)行效率的效果。
此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,本發(fā) 明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中圖1是根據(jù)本發(fā)明實(shí)施例中的基于緩存的動(dòng)態(tài)數(shù)據(jù)加載裝置的結(jié)構(gòu)示意圖2是基于圖1所示的操作模塊的結(jié)構(gòu)示意圖;圖3是基于圖2所示的操作模塊中調(diào)用模塊二的結(jié)構(gòu)示意圖;圖4是基于圖1所示的構(gòu)建模塊的結(jié)構(gòu)示意圖;圖5是根據(jù)本發(fā)明實(shí)施例中的基于緩存的動(dòng)態(tài)數(shù)據(jù)加載方法的流程圖;圖6是根據(jù)本發(fā)明實(shí)施例中的CAD文件數(shù)據(jù)中零件數(shù)據(jù)的內(nèi)存結(jié)構(gòu)示意圖;以及圖7是根據(jù)本發(fā)明優(yōu)選實(shí)施例的基于緩存的動(dòng)態(tài)數(shù)據(jù)加載方法。
具體實(shí)施例方式需要說明的是,在不沖突的情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相 互組合。下面將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。圖1是根據(jù)本發(fā)明實(shí)施例中的基于緩存的動(dòng)態(tài)數(shù)據(jù)加載裝置的結(jié)構(gòu)示意圖;如圖 1所示,該裝置包括獲取模塊1,用于CAD系統(tǒng)接收打開文件請求;寫入模塊3,用于根據(jù)打 開文件請求將CAD文件數(shù)據(jù)寫入緩存模塊5中;構(gòu)建模塊7,用于根據(jù)CAD文件數(shù)據(jù)在緩存 模塊5中構(gòu)建零件容器以及零件組件容器,使得CAD文件數(shù)據(jù)在緩存模塊5中打開;操作模 塊9,用于CAD系統(tǒng)接收操作請求,并通過零件容器以及零件組件容器調(diào)用零件對象和零件 組件對象,從而將CAD文件數(shù)據(jù)加載至內(nèi)存。在上述實(shí)施例中,當(dāng)我們需要使用CAD文件數(shù)據(jù)并對該CAD文件數(shù)據(jù)進(jìn)行操作時(shí), CAD系統(tǒng)中的獲取模塊1可以接收打開文件請求;并將該請求發(fā)送給寫入模塊3,寫入模塊 3可以根據(jù)該請求將所請求的CAD文件數(shù)據(jù)寫入到緩存模塊5中;將CAD文件數(shù)據(jù)寫入到 緩存模塊5中之后,構(gòu)建模塊7根據(jù)CAD文件數(shù)據(jù)在緩存模塊5中構(gòu)建該文件數(shù)據(jù)的零件 容器和零件組件容器;CAD系統(tǒng)中的操作模塊9進(jìn)一步接收操作請求,并通過零件容器以及 零件組件容器調(diào)用零件對象和零件組件對象,從而將CAD文件數(shù)據(jù)加載至內(nèi)存中,進(jìn)而通 過調(diào)用內(nèi)存中的文件數(shù)據(jù)完成操作。通過上述實(shí)施方案,本發(fā)明能夠解決CAD文件數(shù)據(jù)打 開過慢,占用內(nèi)存過多,系統(tǒng)總體性能低的問題,進(jìn)一步地提高了三維CAD系統(tǒng)的總體運(yùn)行 效率和性能。圖2是基于圖1所示的操作模塊的結(jié)構(gòu)示意圖。上述實(shí)施例中的操作模塊9包括 調(diào)用模塊一 91,用于CAD系統(tǒng)根據(jù)操作請求來調(diào)用零件容器以及零件組件容器;調(diào)用模塊 二 92,用于通過零件容器調(diào)用與其對應(yīng)的零件對象,同時(shí),通過零件組件容器調(diào)用與其相對 應(yīng)的零件組件對象;加載模塊93,用于根據(jù)零件對象和零件組件對象將CAD文件數(shù)據(jù)加載 至內(nèi)存;返回模塊94,用于CAD系統(tǒng)返回CAD文件數(shù)據(jù)。在本發(fā)明的上述實(shí)施例中,當(dāng)CAD系統(tǒng)接收到操作請求時(shí),會(huì)將操作請求發(fā)送給 調(diào)用模塊一 91,調(diào)用模塊一根據(jù)具體的操作請求找到與其相對應(yīng)的零件容器以及零件組件 容器,之后,調(diào)用模塊92再通過零件容器以及零件組件容器找到與其相對應(yīng)的零件對象以 及零件組件對象,然后加載模塊93根據(jù)對應(yīng)的零件對象以及零件組件對象將CAD文件數(shù)據(jù) 加載至內(nèi)存中,最后,返回模塊94將CAD文件數(shù)據(jù)從內(nèi)存中返回,從而完成了操作請求。圖3是基于圖2所示的操作模塊中調(diào)用模塊二的結(jié)構(gòu)示意圖。如圖3所示,調(diào)用 模塊二 92包括判斷模塊921,用于判斷是否存在與零件組件容器相對應(yīng)的零件組件對象, 其中,如果存在,則通過零件組件容器調(diào)用零件組件對象;如果不存在,則返回緩存,在緩存 中構(gòu)建與零件組件容器相對應(yīng)的零件組件對象,并在構(gòu)建零件組件對象成功后,通過零件組件容器調(diào)用零件組件對象。圖4是基于圖1所示的構(gòu)建模塊的結(jié)構(gòu)示意圖。構(gòu)建模塊7包括第一構(gòu)建子模 塊71,用于讀取緩存中的CAD文件數(shù)據(jù),以獲取各個(gè)零件數(shù)據(jù)的起始地址和數(shù)據(jù)大小,并根 據(jù)各個(gè)零件數(shù)據(jù)的起始地址和數(shù)據(jù)大小來構(gòu)建零件容器;第二構(gòu)建子模塊72,用于讀取零 件數(shù)據(jù),以獲取各個(gè)零件組件數(shù)據(jù)的起始地址和數(shù)據(jù)大小,并根據(jù)各個(gè)零件組件數(shù)據(jù)的起 始地址和數(shù)據(jù)大小來構(gòu)建零件組件容器。圖5是根據(jù)本發(fā)明實(shí)施例中的基于緩存的動(dòng)態(tài)數(shù)據(jù)加載方法的流程圖。如圖5所 示,該方法包括如下步驟S10, CAD系統(tǒng)接收打開文件請求;S30,根據(jù)打開文件請求將CAD文件數(shù)據(jù)寫入緩存;S50,根據(jù)CAD文件數(shù)據(jù)在緩存中構(gòu)建零件容器以及零件組件容器,使得CAD文件 數(shù)據(jù)在緩存中打開;S70, CAD系統(tǒng)接收操作請求,并通過零件容器以及零件組件容器調(diào)用零件對象和 零件組件對象,從而將CAD文件數(shù)據(jù)加載至內(nèi)存。在上述實(shí)施例中,當(dāng)我們需要使用CAD文件數(shù)據(jù)并對該CAD文件數(shù)據(jù)進(jìn)行操作時(shí), CAD系統(tǒng)接收打開文件請求;在接收打開文件請求后根據(jù)打開文件請求將CAD文件數(shù)據(jù)寫 入緩存;并在緩存中根據(jù)CAD文件數(shù)據(jù)構(gòu)建零件容器以及零件組件容器,使得CAD文件數(shù)據(jù) 在緩存中打開;將CAD文件數(shù)據(jù)在緩存中打開之后,CAD系統(tǒng)再進(jìn)一步接收到操作請求,并 通過零件容器以及零件組件容器調(diào)用零件對象和零件組件對象,從而將CAD文件數(shù)據(jù)加載 至內(nèi)存,進(jìn)而通過調(diào)用內(nèi)存中的文件數(shù)據(jù)完成操作。通過本發(fā)明解決了 CAD文件數(shù)據(jù)打開 過慢,占用內(nèi)存過多,系統(tǒng)總體性能低的問題,能夠達(dá)到節(jié)約內(nèi)存,提高CAD系統(tǒng)整體運(yùn)行 效率的效果。本方法的上述實(shí)施例在如上裝置的實(shí)施例中已詳細(xì)闡述,在此不再贅述。圖6是根據(jù)本發(fā)明實(shí)施例中的CAD文件數(shù)據(jù)中零件數(shù)據(jù)的內(nèi)存結(jié)構(gòu)示意圖。如圖 6所示,一個(gè)CAD文件數(shù)據(jù)包含一個(gè)或多個(gè)零件數(shù)據(jù),每個(gè)零件數(shù)據(jù)按屬性分類包含一個(gè)或 多個(gè)零件組件數(shù)據(jù)。一個(gè)零件數(shù)據(jù)裝載一個(gè)零件,我們稱之為零件對象;一個(gè)零件組件數(shù)據(jù) 裝載多個(gè)零件組件,我們稱之為零件組件對象。為了能夠?qū)崿F(xiàn)動(dòng)態(tài)加載,分別用一個(gè)輕量級 的零件容器來包裝零件對象,該零件容器記載有該零件對象在CAD文件數(shù)據(jù)流中的起始地 址和數(shù)據(jù)大小;用一個(gè)輕量級的零件組件容器來包裝零件組件對象,該零件組件容器記載 有該零件組件對象在數(shù)據(jù)流中的起始地址和數(shù)據(jù)大小。零件容器和零件組件容器都是輕量 級數(shù)據(jù),占用內(nèi)存很少,零件對象和零件組件對象是重量級數(shù)據(jù),占用內(nèi)存較多。在訪問重 量級數(shù)據(jù)內(nèi)存時(shí),必須經(jīng)過輕量級的容器,也就是說外面無法直接訪問重量級數(shù)據(jù)的內(nèi)存。圖7是根據(jù)本發(fā)明優(yōu)選實(shí)施例的基于緩存的動(dòng)態(tài)數(shù)據(jù)加載方法。如圖7所示,該 方法的具體步驟如下S10,CAD系統(tǒng)接收打開文件請求。S30,根據(jù)打開文件請求將CAD文件數(shù)據(jù)寫入緩存。S50,根據(jù)CAD文件數(shù)據(jù)在緩存中構(gòu)建零件容器以及零件組件容器,使得CAD文件 數(shù)據(jù)在緩存中打開的步驟可以包括如下S51,根據(jù)CAD文件數(shù)據(jù)在緩存中構(gòu)建零件容器;
S53,在構(gòu)建完零件容器,根據(jù)CAD文件數(shù)據(jù)在緩存中構(gòu)建零件組件容器;S55,CAD文件數(shù)據(jù)在緩存中打開。S70, CAD系統(tǒng)接收操作請求,并通過零件容器以及零件組件容器調(diào)用零件對象和 零件組件對象,從而將CAD文件數(shù)據(jù)加載至內(nèi)存的步驟可以包括如下S71,CAD系統(tǒng)接收操作請求;S73,CAD系統(tǒng)根據(jù)所接收的操作請求判斷是否存在相對應(yīng)的零件組件對象,如果 不存在相對應(yīng)的零件組件對象,則進(jìn)入步驟S75,否則,轉(zhuǎn)入步驟S77。S75,在緩存中構(gòu)建零件組件對象,構(gòu)建完零件組件對象后,進(jìn)入步驟S77。S77,從緩存中調(diào)用零件組件對象,最后返回CAD文件數(shù)據(jù)。下面,我們以杯蓋和杯身這兩個(gè)常見物體的CAD設(shè)計(jì)來說明基于緩存的動(dòng)態(tài)數(shù)據(jù) 加載過程。在CAD系統(tǒng)中的設(shè)計(jì)階段,一般把杯蓋和杯身設(shè)計(jì)成兩個(gè)零件,通過零件裝配手 段來保證杯蓋和杯身尺寸相匹配。假設(shè)這兩個(gè)零件已經(jīng)設(shè)計(jì)并保存好了。下面重點(diǎn)以杯蓋 為例來說明打開CAD文件數(shù)據(jù)過程和打開文件之后使用過程中如何從緩存中動(dòng)態(tài)加載數(shù) 據(jù)的過程。CAD系統(tǒng)將裝置有杯蓋和杯身的文件數(shù)據(jù)打開,并將該文件數(shù)據(jù)寫入到緩存中,根 據(jù)杯蓋和杯身的文件數(shù)據(jù)在緩存中構(gòu)建分別構(gòu)建零件容器以及按屬性分別構(gòu)建零件組件 容器。如杯蓋的零件容器的構(gòu)建是將杯蓋在CAD文件數(shù)據(jù)中起始地址和數(shù)據(jù)大小裝載起 來,該杯蓋的零件組件容器的構(gòu)建是按該杯蓋各個(gè)屬性在CAD文件數(shù)據(jù)中的起始地址和數(shù) 據(jù)大小構(gòu)建起來的,杯身的零件容器以及零件組件容器的構(gòu)建原理與杯身相同。當(dāng)構(gòu)建完 零件容器以及零件組件容器后,杯蓋以及杯身的文件數(shù)據(jù)在緩存中已全部打開。當(dāng)上述杯蓋以及杯身的CAD文件在緩存中全部打開之后,CAD系統(tǒng)在操作的過程 中會(huì)依據(jù)不同的操作請求,對數(shù)據(jù)進(jìn)行加載。下面針對具體的操作請求,說明動(dòng)態(tài)數(shù)據(jù)加載 過程。操作請求一屏幕重繪請求(1) CAD系統(tǒng)把屏幕重繪請求轉(zhuǎn)發(fā)給每一個(gè)零件容器;(2)杯蓋零件容器收到重繪請求,轉(zhuǎn)發(fā)給管理顯示的零件組件容器;(3)管理顯示的零件組件容器訪問與其相對應(yīng)的管理顯示的零件組件對象,如果 它不存在,那么在緩存中構(gòu)建與顯示相對應(yīng)的零件組件對象;(4)通過調(diào)用管理顯示的零件組件對,將相對應(yīng)的數(shù)據(jù)返回屏幕上;(5)杯蓋重繪顯示完畢;(6) CAD系統(tǒng)接著把操作請求傳給下一個(gè)零件容器(例如杯身);接著,用戶選中了杯蓋,點(diǎn)擊了計(jì)算零件質(zhì)量命令。操作請求二 計(jì)算質(zhì)量請求(1) CAD系統(tǒng)把計(jì)算質(zhì)量請求傳給杯蓋的零件容器;(2)杯蓋零件容器收到計(jì)算質(zhì)量請求,轉(zhuǎn)發(fā)給管理實(shí)體幾何的零件組件容器;(3)管理實(shí)體幾何的零件組件容器訪問與其相對應(yīng)的管理實(shí)體幾何的零件組件對 象,如果它不存在,那么在緩存中構(gòu)建與其相對應(yīng)的管理實(shí)體幾何的零件組件對象;(4)管理實(shí)體幾何的零件組件對象計(jì)算出杯蓋零件的質(zhì)量;
(5)計(jì)算質(zhì)量請求完成;接著,用戶要把杯蓋放在杯身上,來檢查杯蓋大小是否合適。操作請求三修改位置請求(1) CAD系統(tǒng)把修改位置的請求傳給杯蓋的零件容器;(2)杯蓋零件容器收到修改位置請求,轉(zhuǎn)發(fā)給管理位置的零件組件容器;(3)管理位置的零件組件容器訪問與其相對應(yīng)的管理位置的零件組件對象,如果 它不存在,那么在緩存構(gòu)建與其相對應(yīng)的管理位置的零件組件對象;(4)管理位置的組件對象更新用戶指定的位置數(shù)據(jù);(5)位置修改請求完成;從以上的具體操作中,我們可以得知,一個(gè)CAD文件數(shù)據(jù)包含有一個(gè)或多個(gè)零件。 當(dāng)操作人員只需要對某個(gè)零件的某個(gè)屬性進(jìn)行操作時(shí),只需調(diào)用該零件的零件容器,以及 該零件容器下的與該屬性相對應(yīng)的零件組件容器,通過調(diào)用相對應(yīng)的零件組件容器,來調(diào) 用零件組件對象,而無需將整個(gè)CAD文件數(shù)據(jù)進(jìn)行加載,從而減少了內(nèi)存的占用。從以上的描述中,可以看出,本發(fā)明實(shí)現(xiàn)了如下技術(shù)效果針對現(xiàn)有技術(shù)的問題, 本發(fā)明解決了 CAD文件數(shù)據(jù)打開過慢,占用內(nèi)存過多,系統(tǒng)總體性能低的問題,使得三維 CAD軟件在技術(shù)上又適應(yīng)應(yīng)用上的需求,為企業(yè)生產(chǎn)提供有力的技術(shù)保障。顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用 的計(jì)算裝置來實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成 的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來實(shí)現(xiàn),從而,可以將它們存儲 在存儲裝置中由計(jì)算裝置來執(zhí)行,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們 中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的 硬件和軟件結(jié)合。以上僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人 員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、 等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種基于緩存的動(dòng)態(tài)數(shù)據(jù)加載方法,其特征在于,包括如下步驟 CAD系統(tǒng)接收打開文件請求;根據(jù)所述打開文件請求將CAD文件數(shù)據(jù)寫入緩存;根據(jù)所述CAD文件數(shù)據(jù)在所述緩存中構(gòu)建零件容器以及零件組件容器,使得所述CAD 文件數(shù)據(jù)在所述緩存中打開;CAD系統(tǒng)接收操作請求,并通過所述零件容器以及所述零件組件容器調(diào)用零件對象和 零件組件對象,從而將所述CAD文件數(shù)據(jù)加載至內(nèi)存。
2.根據(jù)權(quán)利要求1所述的基于緩存的動(dòng)態(tài)數(shù)據(jù)加載方法,其特征在于,CAD系統(tǒng)接收操 作請求,并通過所述零件容器以及所述零件組件容器調(diào)用零件對象和零件組件對象,從而 將所述CAD文件數(shù)據(jù)加載至內(nèi)存包括如下步驟CAD系統(tǒng)根據(jù)所述操作請求來調(diào)用所述零件容器以及所述零件組件容器; 通過所述零件容器調(diào)用與其對應(yīng)的所述零件對象,同時(shí),通過所述零件組件容器調(diào)用 與其相對應(yīng)的零件組件對象;根據(jù)所述零件對象和所述零件組件對象將所述CAD文件數(shù)據(jù)加載至內(nèi)存; CAD系統(tǒng)返回所述CAD文件數(shù)據(jù)。
3.根據(jù)權(quán)利要求2所述的基于緩存的動(dòng)態(tài)數(shù)據(jù)加載方法,其特征在于,在通過所述零 件組件容器調(diào)用與其相對應(yīng)的零件組件對象之前,所述方法還包括判斷是否存在與所述零件組件容器相對應(yīng)的所述零件組件對象,其中, 如果存在,則通過所述零件組件容器調(diào)用所述零件組件對象; 如果不存在,則返回所述緩存,在所述緩存中構(gòu)建與所述零件組件容器相對應(yīng)的所述 零件組件對象,并在構(gòu)建所述零件組件對象成功后,通過所述零件組件容器調(diào)用所述零件 組件對象。
4.根據(jù)權(quán)利要求3所述的基于緩存的動(dòng)態(tài)數(shù)據(jù)加載方法,其特征在于,所述CAD文件 數(shù)據(jù)包含一個(gè)或多個(gè)零件數(shù)據(jù),各個(gè)所述零件數(shù)據(jù)按屬性分類包含一個(gè)或多個(gè)零件組件數(shù) 據(jù)。
5.根據(jù)權(quán)利要求4所述的基于緩存的動(dòng)態(tài)數(shù)據(jù)加載方法,其特征在于,根據(jù)所述CAD文 件數(shù)據(jù)在所述緩存中構(gòu)建零件容器以及零件組件容器的步驟包括讀取所述緩存中的所述CAD文件數(shù)據(jù),以獲取各個(gè)所述零件數(shù)據(jù)的起始地址和數(shù)據(jù)大 小,并根據(jù)各個(gè)所述零件數(shù)據(jù)的起始地址和數(shù)據(jù)大小來構(gòu)建所述零件容器;讀取所述零件數(shù)據(jù),以獲取各個(gè)所述零件組件數(shù)據(jù)的起始地址和數(shù)據(jù)大小,并根據(jù)各 個(gè)所述零件組件數(shù)據(jù)的起始地址和數(shù)據(jù)大小來構(gòu)建所述零件組件容器。
6.根據(jù)權(quán)利要求5所述的基于緩存的動(dòng)態(tài)數(shù)據(jù)加載方法,其特征在于,所述零件容器 包含一個(gè)或多個(gè)所述零件組件容器。
7.一種基于緩存的動(dòng)態(tài)數(shù)據(jù)加載裝置,其特征在于,包括 獲取模塊(1),用于CAD系統(tǒng)接收打開文件請求;寫入模塊(3),用于根據(jù)所述打開文件請求將CAD文件數(shù)據(jù)寫入緩存模塊(5)中; 構(gòu)建模塊(7),用于根據(jù)所述CAD文件數(shù)據(jù)在所述緩存模塊(5)中構(gòu)建零件容器以及零 件組件容器,使得所述CAD文件數(shù)據(jù)在所述緩存模塊(5)中打開;操作模塊(9),用于CAD系統(tǒng)接收操作請求,并通過所述零件容器以及所述零件組件容器調(diào)用零件對象和零件組件對象,從而將所述CAD文件數(shù)據(jù)加載至內(nèi)存。
8.根據(jù)權(quán)利要求7所述的基于緩存的動(dòng)態(tài)數(shù)據(jù)加載裝置,其特征在于,所述操作模塊 (9)包括調(diào)用模塊一(91),用于CAD系統(tǒng)根據(jù)所述操作請求來調(diào)用所述零件容器以及所述零件 組件容器;調(diào)用模塊二(92),用于通過所述零件容器調(diào)用與其對應(yīng)的所述零件對象,同時(shí),通過所 述零件組件容器調(diào)用與其相對應(yīng)的零件組件對象;加載模塊(93),用于根據(jù)所述零件對象和所述零件組件對象將所述CAD文件數(shù)據(jù)加載 至內(nèi)存;返回模塊(94),用于CAD系統(tǒng)返回所述CAD文件數(shù)據(jù)。
9.根據(jù)權(quán)利要求8所述的基于緩存的動(dòng)態(tài)數(shù)據(jù)加載裝置,所述調(diào)用模塊二(9 包括: 判斷模塊(921),用于判斷是否存在與所述零件組件容器相對應(yīng)的所述零件組件對象,其中,如果存在,則通過所述零件組件容器調(diào)用所述零件組件對象; 如果不存在,則返回所述緩存,在所述緩存中構(gòu)建與所述零件組件容器相對應(yīng)的所述 零件組件對象,并在構(gòu)建所述零件組件對象成功后,通過所述零件組件容器調(diào)用所述零件 組件對象。
10.根據(jù)權(quán)利要求9所述的基于緩存的動(dòng)態(tài)數(shù)據(jù)加載裝置,其特征在于,所述構(gòu)建模塊 (7)包括第一構(gòu)建子模塊(71),用于讀取所述緩存中的所述CAD文件數(shù)據(jù),以獲取各個(gè)所述零 件數(shù)據(jù)的起始地址和數(shù)據(jù)大小,并根據(jù)各個(gè)所述零件數(shù)據(jù)的起始地址和數(shù)據(jù)大小來構(gòu)建所 述零件容器;第二構(gòu)建子模塊(72),用于讀取所述零件數(shù)據(jù),以獲取各個(gè)所述零件組件數(shù)據(jù)的起始 地址和數(shù)據(jù)大小,并根據(jù)各個(gè)所述零件組件數(shù)據(jù)的起始地址和數(shù)據(jù)大小來構(gòu)建所述零件組 件容器。
全文摘要
本發(fā)明公開了一種基于緩存的動(dòng)態(tài)數(shù)據(jù)加載方法及裝置,該方法包括CAD系統(tǒng)接收打開文件請求;在接收打開文件請求后根據(jù)打開文件請求將CAD文件數(shù)據(jù)寫入緩存;并在緩存中根據(jù)CAD文件數(shù)據(jù)構(gòu)建零件容器以及零件組件容器,使得CAD文件數(shù)據(jù)在緩存中打開;將CAD文件數(shù)據(jù)在緩存中打開之后,CAD系統(tǒng)再進(jìn)一步接收到操作請求,并通過零件容器以及零件組件容器調(diào)用零件對象和零件組件對象,從而將CAD文件數(shù)據(jù)加載至內(nèi)存,進(jìn)而通過調(diào)用內(nèi)存中的文件數(shù)據(jù)完成操作。通過本發(fā)明解決了CAD文件數(shù)據(jù)打開過慢,占用內(nèi)存過多,系統(tǒng)總體性能低的問題,能夠達(dá)到節(jié)約內(nèi)存,提高CAD系統(tǒng)整體運(yùn)行效率的效果。
文檔編號G06F17/30GK102136000SQ201110072729
公開日2011年7月27日 申請日期2011年3月24日 優(yōu)先權(quán)日2011年3月24日
發(fā)明者郭瑞軍 申請人:北京數(shù)碼大方科技有限公司