馬希青,劉丹丹,李 揚
(河北工程大學 機電工程學院,河北 邯鄲 056038)
機械產品有著不計其數的工程圖紙和三維實體模型,涵蓋的信息量非常龐大。因此,機械產品三維模型與圖紙的管理成為信息管理系統中的難點和瓶頸。機械產品管理系統的設計完成解決了大量三維模型及圖紙的統計、存儲、繼承等管理工作,且提供了一種智能查詢的環境,讓用戶能快速查找到所需要的相關機械產品的技術資料。
ActiveX 控件是基于COM 技術提出的在網絡環境中進行交互的技術集。機械產品管理系統的程序開發過程引用了主流繪圖軟件中的部分ActiveX 控件,使得本管理系統在未安裝任何繪圖軟件的情況下即可實現對產品圖檔文件的預覽。
在系統的開發初期,經過對機械設計人員的軟件需求調查分析,確定了系統要實現的基本功能,和系統的基本結構,設置了用戶安全認證和權限管理功能模塊。因此本系統包含用戶登陸子系統、2D 圖紙信息子系統、3D模型信息子系統,查詢子系統等,其總體結構如圖1所示。

圖1 機械產品管理系統總體結構Figs 1 The general structure of the management system for mechanical product
本系統以Microsoft SQL Server 2005為數據庫平臺,建立了一名為sheji的關系型數據庫,并且以此為本機械產品管理系統的服務器。作為服務器,本管理系統的動態數據會實時的更新到sheji的數據庫中。為了幫助用戶登陸系統,在該數據庫中建有Login 數據表,利用username、 pwd(password)、 power 等屬性來判斷用戶的使用權限及其合法性。另外還建有chanpin2D、chanpin3D等數據表,以記錄產品模型及其圖紙的基本信息,涵蓋了模型(圖紙)編號、模型(圖紙)名稱、模型(圖紙)設計者、錄入人員、錄入日期、存儲路徑、模型(圖紙)描述等關鍵的數據屬性,并且把模型(圖紙)名稱設置為每張數據表的主鍵值。
對于數據庫中圖紙及模型文件的存儲,在SQL Server 圖像存儲機制中,對于小于8000 字節的圖像數據可以用二進制表示。而機械產品圖形一般都會大于8000字節,所以SQL Server 提供了另一種機制,能存儲每行達到2GB的二進制對象(BLOB),可包括image、text 和ntext 三種數據類型。 在SQLServer 系統中,BLOB 數據的存儲方法與普通的數據存儲不同,它需要系統開辟新的存儲頁面,在數據字段中僅存放一個指針,使該指針指向存有該記錄的BLOB 頁面即可。VC++6.0的ADO Field 對象提供了GetChunk方法和AppendChunk 方法來存取BLOB 數據。其中, GetChunk 方法用于檢索部分或全部數據,將返回的數據賦給 “變量”。 如果字段為空,則返回Null;如果 Size 大于剩余的數據,則返回剩余的數據而無需用空白填充 “變量”;而每個后續的 GetChunk 調用將從前一次 的停止處開始檢索數據。在它從一個字段檢索數據時,只有在它離開該字段所在的記錄時,ADO 即認為檢索數據有效;如果在上述字段上再次使用GetChunk 方法,ADO 將把它解釋為新的 GetChunk 操作,并從記錄的起始處開始讀取。調用AppendChunk 方法是將數據寫入,覆蓋現有的數據,隨后用 AppendChunk 方法則將寫入數據添加到現有數據里。由于系統內存可利用率有限,因而一次讀(存)取大量數據會引起服務器、客戶機不運轉或是服務器的性能大大下降,因此本文只對文件路徑進行存儲,通過相關函數對數據庫中路徑字符串的截取、串并及比對等運算實現對數據文件的存儲及讀取。這樣將大大節省了系統資源,同時也避免了存取圖像時容易出現的未知錯誤。
為了保護系統及其內部數據的安全性,必須對登陸用戶的合法身份進行認證。因此,在系統運行伊始,需要為用戶提供登錄界面,由用戶輸入用戶名及密碼,經系統通過驗證后才能打開系統的主界面。實現此功能的代碼(略)。
根據登陸界面中的用戶名及密碼決定了該用戶的使用權限。在本系統中,設計了管理員和普通用戶兩個權限等級。其中,管理員依據自己的管理權限,不僅可對三維模型、二維圖紙等數據進行查詢和瀏覽,還可以對上述信息進行添加、刪除、修改、數據庫的還原與備份等各種操作;而普通用戶根據自己的管理權限只能對上述信息進行瀏覽和查詢、不能從事其他操作。
在如圖2所示的界面中,可直接利用標簽對數據庫的資料進行瀏覽及產品查詢,也可在菜單欄中打開查詢目錄分別對2D 圖紙、3D模型進行分項查詢。

圖2 系統2D 圖紙產品瀏覽界面Figs.2 The browsing interface of 2D drawing product

圖3 2D 圖紙產品查詢界面Fig.3 The query interface of 2D drawing product
在圖3所示的查詢界面中,選擇要查詢的項目和查詢條件,輸入要查詢資料的信息進行查詢,結果將顯現在下圖的列表框中。選中列表框中的任意結果點擊預覽按鈕,將能夠查看選中的圖像文件。
在系統框架與數據庫初步建立之后,還需要將其連接起來才能對數據庫中的數據進行處理。在VC++中,數據庫的連接方式有多種,如ADO、ODBC 等。ODBC主要應用于文檔視圖類程序,不適合對話框類的使用,且使用前須在數據源中進行注冊;而ADO 不需要注冊數據源即可直接供VC++6.0 使用。本文采用了后者實現了與數據庫的連接。因為ADO 僅用三個主要對象Connection、Command、Recordset 和幾個輔助對象便可輕松實現對數據庫的便捷操作;與ODBC 相比,ADO 方法可以對某Connection 數據源下的多個Recordset 實例進行批量處理和更新,大大減輕網絡負擔和提高數據庫處理效率。本系統中關于數據庫連接的功能代碼(略)。
為了提高數據查詢的準確性,本管理系統中采用了AutoCAD 中ActiveX 控件實現了對數據查詢結果的快速預覽功能。應用控件進行預覽可使編寫應用程序更加方便簡潔;與編寫代碼相比,封裝后的控件是準確的、通用的。
(1)注冊控件。在開發管理系統之前,如果計算機中已安裝了CAD 軟件,則無需注冊控件,VC++6.0 可直接把控件中引入應用到系統中;否則,就必須進行注冊以VC++6.0 使用。其注冊方法是:復制DWGThumbnail.ocx到C:盤的系統文件夾下,打開開始程序選擇運行,在文本框中輸入regsvr32 DWGThumbnail.ocx,點擊確定即注冊成功。這樣,即使在未安裝AutoCAD 程序的情況下也可預覽dwg 格式的圖形文件。
(2)添加控件。打開VC++6.0的工具箱中右擊,然后選擇 “選擇項目......”,切換到 “COM組件” 選項卡, 瀏覽選擇DWGThumbnail.ocx。至此,控件會出現在程序的工具欄中供設計程序使用。
機械產品管理系統運用數據庫及ActiveX 技術,實現了對機電產品三維模型及二維圖紙的計算機輔助管理,這將進一步加強企事業單位對于產品模型及圖檔資料的科學化管理,提高工程技術資料的管理效率、避免不必要的信息丟失或泄露,提高了數據管理的安全性和保密性,因此具有重要的實際意義。
[1]續愛民,等.船舶企業電子圖檔管理系統研究[J].上海造船,2010,4.
[2]裴良東,張建毅.南陽站圖紙檔案信息網絡管理系統設計[J].電力系統通信,2010,211.