韓青金,孫文磊,袁逸萍,何 麗
HAN Qing-jin,SUN Wen-lei,YUAN Yi-ping,HE Li
(新疆大學 機械工程學院,烏魯木齊 830047)
隨著網絡技術的不斷發展和企業制造業信息化建設的不斷完善,網絡零件庫系統發展迅速,但是在應用過程中存在擴展方面的不足,用戶只能使用已經預先建立好的零件庫,無法調用常用但零件庫不存在的零件,并且面對常用設計資源,用戶無法自主向零件庫添加資源并建立自己的零件庫。如何在系統數據結構上實現開放性,在不更改系統結構和源程序的情況下使零件庫實現動態擴充,建立可參數化的開放式零件庫是本文研究重點。
本文即以CATIA V5 R20為平臺,以可參數化開放式零件庫系統構建為研究對象,闡述了CATIA二次開發實現過程,設計了新的系統數據庫結構,通過研究參數化技術、ADO.NET技術、數據庫并發控制技術,并以Microsoft Visual Studio(C#)為開發環境,以SQL Server2005構建數據庫,構建了一個任何設計人員都可擁有并且有自主管理權限的開放式零件庫系統,很好地實現了相應功能。
Web零件庫體系結構基于B/S模式,包括用戶層、邏輯層和數據層。所有的系統開發,維護在服務端就可以完成,用戶只需安裝VRML插件后通過網頁瀏覽器登錄系統就可以經由頁面的導航鏈接訪問各功能頁,享受服務端提供的服務。系統總體框架如圖1所示。

圖1 系統總體架構
參數化設計是由參數和約束驅動模型,通過修改參數值,實現模型修改和聯動的一種先進設計理念[1]。在參數化建模過程中引入知識工程,把產品的設計知識用知識工程原理表達出來,提高設計效率[2]。此外,我們采用CATIA Automation API技術對CATIA進行二次開發,其實質是調用外部應用程序與CATIA之間的接口CATIA API,通過根對象APPLICATION訪問CATIA中的所有對象[3]。在.NET平臺下引用由CATIA API提供的MECMOD.dll、INFITF.dll、PARTITF.dll、KnowledgewareTypeLib.dll 這4 個DLL 文件,利用C#語言程序調用各功能函數,實現CATIA操作,如參數化驅動、導出 WRL 文件等。
在零件庫系統中為了方便數據的處理及顯示,我們采用了統一的三維模型文件格式—WRL格式,利用VRML瀏覽器(文件格式為wrl)插件結合HTML語言中的OBJECT標簽嵌入到網頁中進行動態顯示瀏覽三維模型文件[4]。對于系統數據對象采用統一標準的格式對數據對象進行存儲。并以“零件模板+參數信息表”為模式構建數據,并結合事物特性表,完整描述零件資源信息。
為了對零件庫海量資源能夠進行快速而準確地檢索和重用,我們需要制定一套能夠方便存儲、快捷提取數據,提高系統管理效率的編碼方案。根據系統自身特點我們選取當今比較流行的平行編碼方案。從編碼中我們可以了解資源的分類、零件供應商等基本信息,增加零件的可重用性,提高計算機的處理速度[5]。如圖2所示。

圖2 編碼方案
分類碼包含四個層次:依次為零件資源所屬庫別代碼、二級、三級、四級分類碼,也就是說每個大的零件分類下設置四個子節點,每個級別碼位都是可變長。
另外我們為每一個供應商提供一個編號,即供應商代碼,便于資源的提取。通過編碼,我們為每一個零件分配了一個唯一的零件編號。
系統采用SQL server 2005數據庫管理器管理零件庫資源信息。包括:1)建立系統用戶表,管理系統用戶信息。2)建立已建自定義庫用戶表,可以方便快捷的了解自建庫情況。3)為每個用戶建立訪問控制表,此表規定其他用戶對自己自定義庫能否訪問和數據對象能夠進行或不能進行的操作。4)建立零件資源分類目錄表,儲存零件的零件目錄編號、名稱以及下屬分類信息,以方便系統快捷讀取信息,為用戶呈現一目了然的資源結構信息;5)為了保護知識產權,還需建立供應商列表,以方便用戶了解資源的來源。6)建立零件信息表,儲存三維零件編號、三維模型文件及瀏覽文件存儲地址,驅動參數信息,零件描述信息。7)建立系統庫及用戶自建零件分類庫代碼,管理系統的零件庫。8)建立零件參數表,儲存零件參數信息。9)建立軟件版本代碼表,儲存不同三維CAD模型建立時所用的軟件版本。

圖3 數據庫關系表
另外本系統利用ADO.NET技術將具體的數據訪問實現部分予以屏蔽,并通過其提供統一的數據訪問接口[6],實現了對數據庫的動態顯示、添加、修改和動態刪除等功能,構建了相應的動態數據庫。另外為了保證數據庫能同時為多個用戶提供數據共享,保證全局數據庫和局部數據的一致性,我們采用并發控制技術保證多個事務執行的可串行性和良好的并發度[7],以提升數據庫管理系統的性能。
現代制造業分工越來越細,每一個設計人員設計資源、設計風格都不相同,面對海量資源如何利用,并能使用本系統提供的在線參數化服務,為自己的資源進行優化存儲。這就是為用戶建立一個擁有自主管理權限的自定義零件庫,用戶可以進行資源的上傳、下載刪除等管理操作,只要登錄系統就可隨時隨地調用自己的資源。
首先,建立自定義庫時為了保證數據能夠統一調用,自定義庫所有數據表結構和集成庫擁有統一的字段。其次三維CAD模型、三維模型文件等物理文件和集成庫資源相同類型文件存儲在相應的統一名稱的文件夾內,在二級文件夾內分別以庫名或用戶名字來命名文件夾,以便系統的快速識別。同時為了保證用戶對系統數據進行操作時保證系統文件和模板文件的不變性,所有模型文件的下載、參數化等操作都是先把模板文件復制到一個事先建好的臨時文件夾內,在臨時文件夾內進行模型的打開、參數化驅動、新的三維CAD模型和三維模型文件的生成以及文件的下載。
數據集成庫與用戶之間以及各用戶之間的數據庫都是相互獨立的,如何實現他們的交互訪問,實現數據的動態切換是必須解決的問題。為了實現用戶的互訪我們在系統中會有一個獨立的頁面來顯示系統所有的用戶,用戶可以直接點擊用戶名來訪問其他用戶的資源,通過用戶的權限控制來決定是否能成功訪問,具體流程如圖4所示。

圖4 自定義庫互訪流程圖
基于WEB的可參數化開放式零件庫系統必須擁有一套完整的安全策略,防止對數據對象的非法訪問、修改和下載;保證只有經過授權的情況下才能對數據對象進行操作。本系統將權限分為系統管理、零件瀏覽、零件搜索、零件的下載、以及零件的審查入庫。采用自主訪問權限控制和強制訪問權限控制相結合,某些特定的資源系統可以采用自主訪問授權控制,通過設置訪問控制表來規定訪客及用戶對數據對象能夠或者不能進行的操作。通過強制訪問授權控制,以用戶和用戶組的方式來授予某個用戶相應的權限,并且給予數據對象分別授予安全級別,只有當用戶權限和數據對象的安全級別相適應時,用戶才可以對數據對象進行操作。系統將用戶分為訪客,普通用戶,系統管理員以及零件供應商。他們的權限如圖5所示。

圖5 不同用戶權限圖
為了很好地展示所開發系統的可應用性,以系統的參數化功能頁和自定義庫管理頁—上傳頁來作出系統實現說明;
在系統管理功能模塊用戶可以進行文件的上傳、刪除、修改,新零件庫的建立等操作。我們以半圓頭螺栓為例添加新零件資源,在左側零件樹分類中進行選擇所屬分類,選擇螺栓,右側相應父節點和目錄碼欄會自動顯示名稱及目錄碼,然后依次輸入節點名稱、模型文件版本、CATIA軟件版本,如有錯誤可進行全部重置或區域性修改。完成后點擊完成按鈕即可上傳。如果在左側零件樹中沒有所屬分類,先進行零件庫創建,再按照上述方法進行資源添加操作。

圖6 自定義庫用戶資源添加界面

圖7 參數化界面
在如圖所示的零件庫系統可參數化功能頁中可以進行三維模型文件和二維圖的在線瀏覽,并可以在線對三維模型進行參數化驅動。每一位設計人員可以根據需要對參數進行修改,然后程序驅動調用CATIA API,生成新的CAD模型和三維模型文件,并在客戶端顯示,完成參數化操作。
本文所構建的基于Web的可參數化開放式零件庫系統,從設計人員實際需求出發,設計了更為完善的零件庫及零件庫數據系統結構,完成了每個設計人員都擁有自主創建和管理權限的具有很好開放性的用戶自定義庫的開發,設計人員可以在隨時隨地調用自己的常用設計資源,具有很好的實用性。另外三維模型的可參數化,大大提高了企業零件模型的可重用性和設計效率以及企業參與市場的能力,具有很好的應用前景。
[1] 李堂明.基于CATIA的開放式焊裝夾具零件庫的研究與實現[J].制造業自動化,2013,33(4):119-123.
[2] 王智明,楊旭,平海濤.知識工程及專家系統[M].北京:化學工業出版社,2006:3-6.
[3] 羅嵩,樊留群.基于Automation的CATIAV5二次開發關鍵技術分析與應用[J].制造業自動化,2006(28):4-7.
[4] 王宏偉,孫文磊,何麗.AJAX技術在Web零件庫系統中的應用研究[J].制造業自動化,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] 張雪平,殷國富.協同CAD系統圖檔數據庫并發控制研究[J].計算機集成制造系統,2005(8):143-148.