韓青金,孫文磊,袁逸萍,何 麗
HAN Qing-jin,SUN Wen-lei,YUAN Yi-ping,HE Li
(新疆大學 機械工程學院,烏魯木齊 830047)
隨著網(wǎng)絡技術的不斷發(fā)展和企業(yè)制造業(yè)信息化建設的不斷完善,網(wǎng)絡零件庫系統(tǒng)發(fā)展迅速,但是在應用過程中存在擴展方面的不足,用戶只能使用已經(jīng)預先建立好的零件庫,無法調(diào)用常用但零件庫不存在的零件,并且面對常用設計資源,用戶無法自主向零件庫添加資源并建立自己的零件庫。如何在系統(tǒng)數(shù)據(jù)結(jié)構上實現(xiàn)開放性,在不更改系統(tǒng)結(jié)構和源程序的情況下使零件庫實現(xiàn)動態(tài)擴充,建立可參數(shù)化的開放式零件庫是本文研究重點。
本文即以CATIA V5 R20為平臺,以可參數(shù)化開放式零件庫系統(tǒng)構建為研究對象,闡述了CATIA二次開發(fā)實現(xiàn)過程,設計了新的系統(tǒng)數(shù)據(jù)庫結(jié)構,通過研究參數(shù)化技術、ADO.NET技術、數(shù)據(jù)庫并發(fā)控制技術,并以Microsoft Visual Studio(C#)為開發(fā)環(huán)境,以SQL Server2005構建數(shù)據(jù)庫,構建了一個任何設計人員都可擁有并且有自主管理權限的開放式零件庫系統(tǒng),很好地實現(xiàn)了相應功能。
Web零件庫體系結(jié)構基于B/S模式,包括用戶層、邏輯層和數(shù)據(jù)層。所有的系統(tǒng)開發(fā),維護在服務端就可以完成,用戶只需安裝VRML插件后通過網(wǎng)頁瀏覽器登錄系統(tǒng)就可以經(jīng)由頁面的導航鏈接訪問各功能頁,享受服務端提供的服務。系統(tǒng)總體框架如圖1所示。
圖1 系統(tǒng)總體架構
參數(shù)化設計是由參數(shù)和約束驅(qū)動模型,通過修改參數(shù)值,實現(xiàn)模型修改和聯(lián)動的一種先進設計理念[1]。在參數(shù)化建模過程中引入知識工程,把產(chǎn)品的設計知識用知識工程原理表達出來,提高設計效率[2]。此外,我們采用CATIA Automation API技術對CATIA進行二次開發(fā),其實質(zhì)是調(diào)用外部應用程序與CATIA之間的接口CATIA API,通過根對象APPLICATION訪問CATIA中的所有對象[3]。在.NET平臺下引用由CATIA API提供的MECMOD.dll、INFITF.dll、PARTITF.dll、KnowledgewareTypeLib.dll 這4 個DLL 文件,利用C#語言程序調(diào)用各功能函數(shù),實現(xiàn)CATIA操作,如參數(shù)化驅(qū)動、導出 WRL 文件等。
在零件庫系統(tǒng)中為了方便數(shù)據(jù)的處理及顯示,我們采用了統(tǒng)一的三維模型文件格式—WRL格式,利用VRML瀏覽器(文件格式為wrl)插件結(jié)合HTML語言中的OBJECT標簽嵌入到網(wǎng)頁中進行動態(tài)顯示瀏覽三維模型文件[4]。對于系統(tǒng)數(shù)據(jù)對象采用統(tǒng)一標準的格式對數(shù)據(jù)對象進行存儲。并以“零件模板+參數(shù)信息表”為模式構建數(shù)據(jù),并結(jié)合事物特性表,完整描述零件資源信息。
為了對零件庫海量資源能夠進行快速而準確地檢索和重用,我們需要制定一套能夠方便存儲、快捷提取數(shù)據(jù),提高系統(tǒng)管理效率的編碼方案。根據(jù)系統(tǒng)自身特點我們選取當今比較流行的平行編碼方案。從編碼中我們可以了解資源的分類、零件供應商等基本信息,增加零件的可重用性,提高計算機的處理速度[5]。如圖2所示。
圖2 編碼方案
分類碼包含四個層次:依次為零件資源所屬庫別代碼、二級、三級、四級分類碼,也就是說每個大的零件分類下設置四個子節(jié)點,每個級別碼位都是可變長。
另外我們?yōu)槊恳粋€供應商提供一個編號,即供應商代碼,便于資源的提取。通過編碼,我們?yōu)槊恳粋€零件分配了一個唯一的零件編號。
系統(tǒng)采用SQL server 2005數(shù)據(jù)庫管理器管理零件庫資源信息。包括:1)建立系統(tǒng)用戶表,管理系統(tǒng)用戶信息。2)建立已建自定義庫用戶表,可以方便快捷的了解自建庫情況。3)為每個用戶建立訪問控制表,此表規(guī)定其他用戶對自己自定義庫能否訪問和數(shù)據(jù)對象能夠進行或不能進行的操作。4)建立零件資源分類目錄表,儲存零件的零件目錄編號、名稱以及下屬分類信息,以方便系統(tǒng)快捷讀取信息,為用戶呈現(xiàn)一目了然的資源結(jié)構信息;5)為了保護知識產(chǎn)權,還需建立供應商列表,以方便用戶了解資源的來源。6)建立零件信息表,儲存三維零件編號、三維模型文件及瀏覽文件存儲地址,驅(qū)動參數(shù)信息,零件描述信息。7)建立系統(tǒng)庫及用戶自建零件分類庫代碼,管理系統(tǒng)的零件庫。8)建立零件參數(shù)表,儲存零件參數(shù)信息。9)建立軟件版本代碼表,儲存不同三維CAD模型建立時所用的軟件版本。
圖3 數(shù)據(jù)庫關系表
另外本系統(tǒng)利用ADO.NET技術將具體的數(shù)據(jù)訪問實現(xiàn)部分予以屏蔽,并通過其提供統(tǒng)一的數(shù)據(jù)訪問接口[6],實現(xiàn)了對數(shù)據(jù)庫的動態(tài)顯示、添加、修改和動態(tài)刪除等功能,構建了相應的動態(tài)數(shù)據(jù)庫。另外為了保證數(shù)據(jù)庫能同時為多個用戶提供數(shù)據(jù)共享,保證全局數(shù)據(jù)庫和局部數(shù)據(jù)的一致性,我們采用并發(fā)控制技術保證多個事務執(zhí)行的可串行性和良好的并發(fā)度[7],以提升數(shù)據(jù)庫管理系統(tǒng)的性能。
現(xiàn)代制造業(yè)分工越來越細,每一個設計人員設計資源、設計風格都不相同,面對海量資源如何利用,并能使用本系統(tǒng)提供的在線參數(shù)化服務,為自己的資源進行優(yōu)化存儲。這就是為用戶建立一個擁有自主管理權限的自定義零件庫,用戶可以進行資源的上傳、下載刪除等管理操作,只要登錄系統(tǒng)就可隨時隨地調(diào)用自己的資源。
首先,建立自定義庫時為了保證數(shù)據(jù)能夠統(tǒng)一調(diào)用,自定義庫所有數(shù)據(jù)表結(jié)構和集成庫擁有統(tǒng)一的字段。其次三維CAD模型、三維模型文件等物理文件和集成庫資源相同類型文件存儲在相應的統(tǒng)一名稱的文件夾內(nèi),在二級文件夾內(nèi)分別以庫名或用戶名字來命名文件夾,以便系統(tǒng)的快速識別。同時為了保證用戶對系統(tǒng)數(shù)據(jù)進行操作時保證系統(tǒng)文件和模板文件的不變性,所有模型文件的下載、參數(shù)化等操作都是先把模板文件復制到一個事先建好的臨時文件夾內(nèi),在臨時文件夾內(nèi)進行模型的打開、參數(shù)化驅(qū)動、新的三維CAD模型和三維模型文件的生成以及文件的下載。
數(shù)據(jù)集成庫與用戶之間以及各用戶之間的數(shù)據(jù)庫都是相互獨立的,如何實現(xiàn)他們的交互訪問,實現(xiàn)數(shù)據(jù)的動態(tài)切換是必須解決的問題。為了實現(xiàn)用戶的互訪我們在系統(tǒng)中會有一個獨立的頁面來顯示系統(tǒng)所有的用戶,用戶可以直接點擊用戶名來訪問其他用戶的資源,通過用戶的權限控制來決定是否能成功訪問,具體流程如圖4所示。
圖4 自定義庫互訪流程圖
基于WEB的可參數(shù)化開放式零件庫系統(tǒng)必須擁有一套完整的安全策略,防止對數(shù)據(jù)對象的非法訪問、修改和下載;保證只有經(jīng)過授權的情況下才能對數(shù)據(jù)對象進行操作。本系統(tǒng)將權限分為系統(tǒng)管理、零件瀏覽、零件搜索、零件的下載、以及零件的審查入庫。采用自主訪問權限控制和強制訪問權限控制相結(jié)合,某些特定的資源系統(tǒng)可以采用自主訪問授權控制,通過設置訪問控制表來規(guī)定訪客及用戶對數(shù)據(jù)對象能夠或者不能進行的操作。通過強制訪問授權控制,以用戶和用戶組的方式來授予某個用戶相應的權限,并且給予數(shù)據(jù)對象分別授予安全級別,只有當用戶權限和數(shù)據(jù)對象的安全級別相適應時,用戶才可以對數(shù)據(jù)對象進行操作。系統(tǒng)將用戶分為訪客,普通用戶,系統(tǒng)管理員以及零件供應商。他們的權限如圖5所示。
圖5 不同用戶權限圖
為了很好地展示所開發(fā)系統(tǒng)的可應用性,以系統(tǒng)的參數(shù)化功能頁和自定義庫管理頁—上傳頁來作出系統(tǒng)實現(xiàn)說明;
在系統(tǒng)管理功能模塊用戶可以進行文件的上傳、刪除、修改,新零件庫的建立等操作。我們以半圓頭螺栓為例添加新零件資源,在左側(cè)零件樹分類中進行選擇所屬分類,選擇螺栓,右側(cè)相應父節(jié)點和目錄碼欄會自動顯示名稱及目錄碼,然后依次輸入節(jié)點名稱、模型文件版本、CATIA軟件版本,如有錯誤可進行全部重置或區(qū)域性修改。完成后點擊完成按鈕即可上傳。如果在左側(cè)零件樹中沒有所屬分類,先進行零件庫創(chuàng)建,再按照上述方法進行資源添加操作。
圖6 自定義庫用戶資源添加界面
圖7 參數(shù)化界面
在如圖所示的零件庫系統(tǒng)可參數(shù)化功能頁中可以進行三維模型文件和二維圖的在線瀏覽,并可以在線對三維模型進行參數(shù)化驅(qū)動。每一位設計人員可以根據(jù)需要對參數(shù)進行修改,然后程序驅(qū)動調(diào)用CATIA API,生成新的CAD模型和三維模型文件,并在客戶端顯示,完成參數(shù)化操作。
本文所構建的基于Web的可參數(shù)化開放式零件庫系統(tǒng),從設計人員實際需求出發(fā),設計了更為完善的零件庫及零件庫數(shù)據(jù)系統(tǒng)結(jié)構,完成了每個設計人員都擁有自主創(chuàng)建和管理權限的具有很好開放性的用戶自定義庫的開發(fā),設計人員可以在隨時隨地調(diào)用自己的常用設計資源,具有很好的實用性。另外三維模型的可參數(shù)化,大大提高了企業(yè)零件模型的可重用性和設計效率以及企業(yè)參與市場的能力,具有很好的應用前景。
[1] 李堂明.基于CATIA的開放式焊裝夾具零件庫的研究與實現(xiàn)[J].制造業(yè)自動化,2013,33(4):119-123.
[2] 王智明,楊旭,平海濤.知識工程及專家系統(tǒng)[M].北京:化學工業(yè)出版社,2006:3-6.
[3] 羅嵩,樊留群.基于Automation的CATIAV5二次開發(fā)關鍵技術分析與應用[J].制造業(yè)自動化,2006(28):4-7.
[4] 王宏偉,孫文磊,何麗.AJAX技術在Web零件庫系統(tǒng)中的應用研究[J].制造業(yè)自動化,2011(12):113-11.
[5] 許靜,紀楊建,等.大批量機械零部件分類編碼方法[J].機械工程學報,2010(26):149-155.
[6] José A.Blakeley.The ADO.NET entity framework:making the conceptual level real[J].SIGMOD Record,2006,35(4):32-39.
[7] 張雪平,殷國富.協(xié)同CAD系統(tǒng)圖檔數(shù)據(jù)庫并發(fā)控制研究[J].計算機集成制造系統(tǒng),2005(8):143-148.