0 引言
隨著市場競爭的日趨激烈與制造業信息化程度的加深,企業間對獲取與共享信息的效率愈來愈高。據美國先進制造研究公司(AMR)的一項研究結果表明,產品中外購零件的比重正在逐漸上升,已經從五年前的40%上升至80%甚至更多。因此,建立零件庫系統是必要的。目前國內外研究機構或企業已經開發出了很多零件庫系統原型并已經投入商業運營模式,其中比較典型的有:國外:3D ContentCentral系統、TraceParts系統、Web2CAD系統、InPart系統;國內的有:3DSource云應用中心、中國機械網等零件庫系統。這些系統,大多數都采用了B/S構架,同時支持多種主流三維CAD建模軟件,如Pro/E、Catia、SolidWorks等;系統采用不同的方式構建數據庫,有“參數+模板”、大量數據形式存儲等方式;用戶可以使用網絡瀏覽器訪問系統,也可以在線預覽零件模型?傊,這些系統可以為用戶提供快速引用零件資源的平臺。但是,就每個單獨的系統而言,都或多或少的存在著缺點。比如:3DSource云應用中心系統,使用戶無法快速定位到自己所需的零件模型資源,下載的3D模型沒有設計參數,不利于用戶的后續設計工作:中國機械網零件庫圖庫目前只能提供對NX和SolidWorks兩種三維軟件的接口。
因此,本文通過研究Inventor的二次開發技術和數據庫接口訪問技術,建立了一個Web三維零件庫系統。系統中,綜合應用ASP.NET、ADO.NET、Web3D等技術,采用“參數+模板”的模式,開發出了基于Inventor的Web三維零件庫系統。
1 系統結構
1.1 系統開發工具的選用
作者開發該系統時采用的開發工具概括如下:
三維CAD軟件:Autodesk Inventor Professional 2012;
編程調試軟件:Visual Studio.NET 2008(以.NET FrameWork 3.5為基礎、IIS 6.0為服務器,選用C#作為服務端語言、JavaScript作為前臺腳本語言);
數據庫軟件采用Microsoft SQL Server 2005。
1.2 零件庫系統總體結構
Web三維零件庫系統采用了B/S結構,也就是所謂的三層體系結構,即表現層、業務層和數據層。系統的總體框架如圖1所示。
圖1 系統總體框架圖
表現層是對用戶接口的展示,是與用戶進行交互(數據交互)的窗口。用戶可以通過這一層在瀏覽器上瀏覽信息,同時,用戶可以通過鼠標或鍵盤,提交各種請求,實現用戶想要的功能。業務層和數據層都是由服務器端應用程序組成。業務層是系統的中間層,也是過程層。數據層是整個系統的內容和支撐,該層將根據業務層的需要調用相應的數據,它以數據表的形式存儲了零件庫中的所有零件參數信息和零件描述信息,并存儲了零件模板文件(*.ipt)數據和零件的瀏覽文件(*.wrl)數據以及標準格式文件(*.stp)數據。
2 系統的實現
2.1 系統的設計思路
本零件庫系統利用Inventor軟件的參數化建模方法,按照模型模板+參數系列的形式構建模型數據庫,當用戶想要使用零件模型時,系統通過在線調用Inventor_次開發接口,即時實現參數化驅動獲取用戶所需的模型。
2.2 系統開發的關鍵技術
2.2.1 基于.NET平臺下的Inventor=次開發技術
為了讓用戶能夠更好地實現二次開發技術,Inventor軟件提供了強大的API二次開發接口。Inventor API是一種以面向對象的方式提供應用程序對象功能的應用程序接口。它提供了Inventor的各種對象的內在功能,并且各個對象間是一種相互繼承的關系,該繼承關系的關鍵在于根對象Application,通過獲取對Application對象的訪問權,調用與其相關的其他對象。針對Inventor API,用戶可以用支持自動化(OLE Automation)技術的各種高級語言來控制Inventor的各種對象與其相關屬性和方法,進而開發出自己需要的應用程序。
在Inventor Professional 2012版本中,InventorAPI for.NET提供了多個DLL文件,但是,對于Web零件庫系統的開發功能的實現,只需要在.NET平臺下引用Autodesk.lnventor.Interop.dll文件,通過聲明根對象Application以及庫文件的其他對象,就可以以面向對象的方式利用C#語言的語法調用各種功能函數,來完成Inventor的絕大部分操作,如生成VRML文件,對零件的參數化驅動等。
在本系統中,通過引用COM組件對象,也就是Inventor的二次開發接口類庫AutodeskInventor Object Library,獲取對Application的訪問權,利用C#語言以面向對象的方式編寫應用程序來完成對Inventor三維零件圖形的各種操作,如打開/關閉三維零件模型文件、導出VRML文件、零件參數化驅動、下載/上傳等。具體過程詳見Inventor二次開發步驟流程圖(如圖2所示)。
圖2 Inventor二次開發過程
2.2.2 基于ADO.NET的數據庫訪問接口
ADO.NET是一組用于和數據源進行交互的面向對象類庫,提供了對關系型、XML和應用程序數據的訪問。在.NET框架中,ADO.NET類庫位于System.Data命名空間下。所以,在Visual Studio開發平臺中,必須先引用System.Data.dll文件,才能使用ADO.NET中的數據庫訪問對象。
在本系統中,以SQL Server 2005為開發工具,利用ADO.NET的數據訪問接口技術,實現了數據庫的查詢、添加、修改及刪除等功能;并減輕服務器負擔,提高了系統的運行效率,為用戶提供更好的Web應用程序。
2.3 系統功能模塊的實現
2.3.1 三維CAD模型的可視化
在本系統中,結合了最新的Web3D技術,實現了在Web頁面中顯示Inventor的三維模型,同時用戶可以對模型進行移動、旋轉、縮放等操作。
目前比較流行的Web3D技術主要有:VRML。JAVA3D,SHOCKWAVE3D,X3D等。綜合比較幾種Web3D技術,VRML的數據文件所描述的數據包括三維網格數據,場景信息,燈光材質及交互信息,能夠較為真實的還原模型的外形信息,能夠在三維場景中與用戶進行交互,其描述3D場景的能力較為出眾。所以,本系統采用了VRML(Virtual Reality Modeling Language,虛擬現實建模語言)插件。
在本系統的開發過程中,通過對Inventor的二次開發把三維模型文件格式(*.ipt)格式轉化為模型瀏覽文件格式(*.wrl)。在應用程序中,安裝VRML瀏覽器插件(如BS Contact VRML),然后可通過HTML語言中的<object></object>標簽把插件嵌入網頁中,并指定其控件識別碼(ID),便可以在網頁中動態的顯示三維模型的瀏覽文件。
2.3.2 在線參數化驅動
所謂在線參數化驅動,就是用戶可以在系統界面中填寫或者修改已有的模型設計參數,進而實現快速的變形設計。這樣,不僅可以減少數據庫的信息存儲量,而且能夠滿足用戶的特殊要求。
系統中零件在線參數化驅動的過程,如圖3所示。用戶登錄系統,進入首頁后,可以直接從樹形菜單中選擇零件名,瀏覽器把用戶的選擇提交給服務器,服務器從數據庫中讀取相應的零件的所有信息(包括三維可視化模型、二維尺寸標注圖、產品實物圖、驅動參數表達式等),并把信息返回給客戶端。用戶根據自己的需求在系統的要求范圍內修改模型文件的原始參數,并將修改后的參數提交給服務器,服務器利用Inventor_次開發接口函數啟動Inventor應用程序,調用庫中的三維零件模型模板文件和用戶提交的修改后的參數值,更新原始模型模板文件,完成零件的在線參數化驅動;然后,在服務端保存更新后的零件模型文件(*.ipt),導出零件的VRML文件(*.wrl);最后,服務器將更新后的新零件模型的瀏覽文件(*.wrl)更新到客戶端供用戶瀏覽,而存于服務端的模型文件則供用戶下載。
圖3 在線參數化驅動流程圖
2.3.3 零件資源的動態擴充
三維零件資源是整個系統的內容,是系統正常運行的支撐和保證。對三維零件資源的動態擴充,即三維零件資源入庫(文件上傳)。該操作包括文件上傳、Inventor的二次開發接口程序的調用以及數據庫的訪問等操作,過程比較復雜。系統對三維零件資源的擴充分為兩種模式:單一零件資源入庫和批量零件資源入庫。兩種模式下,基本原理是相似的,具體的實現過程略有不同。由于單一零件資源入庫的過程比較簡單,下面以管理員批量零件資源文件上傳為例,說明整個過程。
系統中采用ZIP壓縮包的格式實現批量文件的上傳,故在ASP.NET應用程序中需添加ICSharp-Code組件來完成文件的壓縮和解壓。管理員登陸后臺管理系統后,選擇需要上傳的文件,以ZIP格式進行壓縮,把壓縮后的文件上傳給服務器;服務器接收到文件后,遍歷目錄文件中的所有節點,確定當前入庫的資源是否已經存在,若不存在,開始上傳;服務端利用ICSharp-Code組件對上傳的文件進行解壓,通過服務端應用程序讀取逐一被解壓的文件夾或文件,對所有的零件資源進行統一的零件級編號,保存能到零件庫中。然后,通過Inventor二次開發接口啟動Inventor應用程序,提取相關的數據,導出WRL格式文件,并保存到VRML文件庫中。最后,通過ADO.NET數據庫訪問接口連接服務端數據庫,將零件的所有數據信息存儲到數據庫中,完成零件資源的入庫。
3 零件庫系統實例
系統根據不同類別劃分了多個子庫,包括滾動軸承零件庫、標準齒輪零件庫、連接件與緊固件零件庫、組合夾具零件庫等。Web三維零件庫系統首頁如圖4所示。
圖4 系統的首頁
用戶在該系統注冊登錄后,點擊各子零件庫標簽就可以進入相應的圖庫系統。如圖5所示為常用滾動軸承圖庫,該系統包含了大量的有關常用滾動軸承的三維零件圖形。
圖5 常用滾動軸承圖庫
進入子零件庫后,用戶可以根據需要對現有零件模板進行在線參數化驅動,如圖6所示,零件在線參數化驅動頁面。
圖6 零件在線參數化驅動
4 結論
1)本文以Inventor的二次開發技術為核心,通過網絡編程,把ASP.NET、ADO.NET、可視化技術以及數據庫訪問技術綜合與一體,實現了基于Web的Inventor-3D資源零件庫系統的研究與開發。
2)基于該系統,在不需要安裝Inventor軟件的情況下,用戶可以進行三維零件模型的在線瀏覽、在線參數化驅動、下載等操作。
3)用戶可以在系統中快速搜尋自己所需的零件并下載包含設計參數的3D模型,以進行相關零件產品的二次開發和再設計,實現資源信息的共享。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://m.vmgcyvh.cn/