0 引言
隨著市場競爭的日趨激烈與制造業(yè)信息化程度的加深,企業(yè)間對獲取與共享信息的效率愈來愈高。據美國先進制造研究公司(AMR)的一項研究結果表明,產品中外購零件的比重正在逐漸上升,已經從五年前的40%上升至80%甚至更多。因此,建立零件庫系統(tǒng)是必要的。目前國內外研究機構或企業(yè)已經開發(fā)出了很多零件庫系統(tǒng)原型并已經投入商業(yè)運營模式,其中比較典型的有:國外:3D ContentCentral系統(tǒng)、TraceParts系統(tǒng)、Web2CAD系統(tǒng)、InPart系統(tǒng);國內的有:3DSource云應用中心、中國機械網等零件庫系統(tǒng)。這些系統(tǒng),大多數(shù)都采用了B/S構架,同時支持多種主流三維CAD建模軟件,如Pro/E、Catia、SolidWorks等;系統(tǒng)采用不同的方式構建數(shù)據庫,有“參數(shù)+模板”、大量數(shù)據形式存儲等方式;用戶可以使用網絡瀏覽器訪問系統(tǒng),也可以在線預覽零件模型?傊@些系統(tǒng)可以為用戶提供快速引用零件資源的平臺。但是,就每個單獨的系統(tǒng)而言,都或多或少的存在著缺點。比如:3DSource云應用中心系統(tǒng),使用戶無法快速定位到自己所需的零件模型資源,下載的3D模型沒有設計參數(shù),不利于用戶的后續(xù)設計工作:中國機械網零件庫圖庫目前只能提供對NX和SolidWorks兩種三維軟件的接口。
因此,本文通過研究Inventor的二次開發(fā)技術和數(shù)據庫接口訪問技術,建立了一個Web三維零件庫系統(tǒng)。系統(tǒng)中,綜合應用ASP.NET、ADO.NET、Web3D等技術,采用“參數(shù)+模板”的模式,開發(fā)出了基于Inventor的Web三維零件庫系統(tǒng)。
1 系統(tǒng)結構
1.1 系統(tǒng)開發(fā)工具的選用
作者開發(fā)該系統(tǒng)時采用的開發(fā)工具概括如下:
三維CAD軟件:Autodesk Inventor Professional 2012;
編程調試軟件:Visual Studio.NET 2008(以.NET FrameWork 3.5為基礎、IIS 6.0為服務器,選用C#作為服務端語言、JavaScript作為前臺腳本語言);
數(shù)據庫軟件采用Microsoft SQL Server 2005。
1.2 零件庫系統(tǒng)總體結構
Web三維零件庫系統(tǒng)采用了B/S結構,也就是所謂的三層體系結構,即表現(xiàn)層、業(yè)務層和數(shù)據層。系統(tǒng)的總體框架如圖1所示。

圖1 系統(tǒng)總體框架圖
表現(xiàn)層是對用戶接口的展示,是與用戶進行交互(數(shù)據交互)的窗口。用戶可以通過這一層在瀏覽器上瀏覽信息,同時,用戶可以通過鼠標或鍵盤,提交各種請求,實現(xiàn)用戶想要的功能。業(yè)務層和數(shù)據層都是由服務器端應用程序組成。業(yè)務層是系統(tǒng)的中間層,也是過程層。數(shù)據層是整個系統(tǒng)的內容和支撐,該層將根據業(yè)務層的需要調用相應的數(shù)據,它以數(shù)據表的形式存儲了零件庫中的所有零件參數(shù)信息和零件描述信息,并存儲了零件模板文件(*.ipt)數(shù)據和零件的瀏覽文件(*.wrl)數(shù)據以及標準格式文件(*.stp)數(shù)據。
2 系統(tǒng)的實現(xiàn)
2.1 系統(tǒng)的設計思路
本零件庫系統(tǒng)利用Inventor軟件的參數(shù)化建模方法,按照模型模板+參數(shù)系列的形式構建模型數(shù)據庫,當用戶想要使用零件模型時,系統(tǒng)通過在線調用Inventor_次開發(fā)接口,即時實現(xiàn)參數(shù)化驅動獲取用戶所需的模型。
2.2 系統(tǒng)開發(fā)的關鍵技術
2.2.1 基于.NET平臺下的Inventor=次開發(fā)技術
為了讓用戶能夠更好地實現(xiàn)二次開發(fā)技術,Inventor軟件提供了強大的API二次開發(fā)接口。Inventor API是一種以面向對象的方式提供應用程序對象功能的應用程序接口。它提供了Inventor的各種對象的內在功能,并且各個對象間是一種相互繼承的關系,該繼承關系的關鍵在于根對象Application,通過獲取對Application對象的訪問權,調用與其相關的其他對象。針對Inventor API,用戶可以用支持自動化(OLE Automation)技術的各種高級語言來控制Inventor的各種對象與其相關屬性和方法,進而開發(fā)出自己需要的應用程序。
在Inventor Professional 2012版本中,InventorAPI for.NET提供了多個DLL文件,但是,對于Web零件庫系統(tǒng)的開發(fā)功能的實現(xiàn),只需要在.NET平臺下引用Autodesk.lnventor.Interop.dll文件,通過聲明根對象Application以及庫文件的其他對象,就可以以面向對象的方式利用C#語言的語法調用各種功能函數(shù),來完成Inventor的絕大部分操作,如生成VRML文件,對零件的參數(shù)化驅動等。
在本系統(tǒng)中,通過引用COM組件對象,也就是Inventor的二次開發(fā)接口類庫AutodeskInventor Object Library,獲取對Application的訪問權,利用C#語言以面向對象的方式編寫應用程序來完成對Inventor三維零件圖形的各種操作,如打開/關閉三維零件模型文件、導出VRML文件、零件參數(shù)化驅動、下載/上傳等。具體過程詳見Inventor二次開發(fā)步驟流程圖(如圖2所示)。

圖2 Inventor二次開發(fā)過程
2.2.2 基于ADO.NET的數(shù)據庫訪問接口
ADO.NET是一組用于和數(shù)據源進行交互的面向對象類庫,提供了對關系型、XML和應用程序數(shù)據的訪問。在.NET框架中,ADO.NET類庫位于System.Data命名空間下。所以,在Visual Studio開發(fā)平臺中,必須先引用System.Data.dll文件,才能使用ADO.NET中的數(shù)據庫訪問對象。
在本系統(tǒng)中,以SQL Server 2005為開發(fā)工具,利用ADO.NET的數(shù)據訪問接口技術,實現(xiàn)了數(shù)據庫的查詢、添加、修改及刪除等功能;并減輕服務器負擔,提高了系統(tǒng)的運行效率,為用戶提供更好的Web應用程序。
2.3 系統(tǒng)功能模塊的實現(xiàn)
2.3.1 三維CAD模型的可視化
在本系統(tǒng)中,結合了最新的Web3D技術,實現(xiàn)了在Web頁面中顯示Inventor的三維模型,同時用戶可以對模型進行移動、旋轉、縮放等操作。
目前比較流行的Web3D技術主要有:VRML。JAVA3D,SHOCKWAVE3D,X3D等。綜合比較幾種Web3D技術,VRML的數(shù)據文件所描述的數(shù)據包括三維網格數(shù)據,場景信息,燈光材質及交互信息,能夠較為真實的還原模型的外形信息,能夠在三維場景中與用戶進行交互,其描述3D場景的能力較為出眾。所以,本系統(tǒng)采用了VRML(Virtual Reality Modeling Language,虛擬現(xiàn)實建模語言)插件。
在本系統(tǒng)的開發(fā)過程中,通過對Inventor的二次開發(fā)把三維模型文件格式(*.ipt)格式轉化為模型瀏覽文件格式(*.wrl)。在應用程序中,安裝VRML瀏覽器插件(如BS Contact VRML),然后可通過HTML語言中的<object></object>標簽把插件嵌入網頁中,并指定其控件識別碼(ID),便可以在網頁中動態(tài)的顯示三維模型的瀏覽文件。
2.3.2 在線參數(shù)化驅動
所謂在線參數(shù)化驅動,就是用戶可以在系統(tǒng)界面中填寫或者修改已有的模型設計參數(shù),進而實現(xiàn)快速的變形設計。這樣,不僅可以減少數(shù)據庫的信息存儲量,而且能夠滿足用戶的特殊要求。
系統(tǒng)中零件在線參數(shù)化驅動的過程,如圖3所示。用戶登錄系統(tǒng),進入首頁后,可以直接從樹形菜單中選擇零件名,瀏覽器把用戶的選擇提交給服務器,服務器從數(shù)據庫中讀取相應的零件的所有信息(包括三維可視化模型、二維尺寸標注圖、產品實物圖、驅動參數(shù)表達式等),并把信息返回給客戶端。用戶根據自己的需求在系統(tǒng)的要求范圍內修改模型文件的原始參數(shù),并將修改后的參數(shù)提交給服務器,服務器利用Inventor_次開發(fā)接口函數(shù)啟動Inventor應用程序,調用庫中的三維零件模型模板文件和用戶提交的修改后的參數(shù)值,更新原始模型模板文件,完成零件的在線參數(shù)化驅動;然后,在服務端保存更新后的零件模型文件(*.ipt),導出零件的VRML文件(*.wrl);最后,服務器將更新后的新零件模型的瀏覽文件(*.wrl)更新到客戶端供用戶瀏覽,而存于服務端的模型文件則供用戶下載。

圖3 在線參數(shù)化驅動流程圖
2.3.3 零件資源的動態(tài)擴充
三維零件資源是整個系統(tǒng)的內容,是系統(tǒng)正常運行的支撐和保證。對三維零件資源的動態(tài)擴充,即三維零件資源入庫(文件上傳)。該操作包括文件上傳、Inventor的二次開發(fā)接口程序的調用以及數(shù)據庫的訪問等操作,過程比較復雜。系統(tǒng)對三維零件資源的擴充分為兩種模式:單一零件資源入庫和批量零件資源入庫。兩種模式下,基本原理是相似的,具體的實現(xiàn)過程略有不同。由于單一零件資源入庫的過程比較簡單,下面以管理員批量零件資源文件上傳為例,說明整個過程。
系統(tǒng)中采用ZIP壓縮包的格式實現(xiàn)批量文件的上傳,故在ASP.NET應用程序中需添加ICSharp-Code組件來完成文件的壓縮和解壓。管理員登陸后臺管理系統(tǒng)后,選擇需要上傳的文件,以ZIP格式進行壓縮,把壓縮后的文件上傳給服務器;服務器接收到文件后,遍歷目錄文件中的所有節(jié)點,確定當前入庫的資源是否已經存在,若不存在,開始上傳;服務端利用ICSharp-Code組件對上傳的文件進行解壓,通過服務端應用程序讀取逐一被解壓的文件夾或文件,對所有的零件資源進行統(tǒng)一的零件級編號,保存能到零件庫中。然后,通過Inventor二次開發(fā)接口啟動Inventor應用程序,提取相關的數(shù)據,導出WRL格式文件,并保存到VRML文件庫中。最后,通過ADO.NET數(shù)據庫訪問接口連接服務端數(shù)據庫,將零件的所有數(shù)據信息存儲到數(shù)據庫中,完成零件資源的入庫。
3 零件庫系統(tǒng)實例
系統(tǒng)根據不同類別劃分了多個子庫,包括滾動軸承零件庫、標準齒輪零件庫、連接件與緊固件零件庫、組合夾具零件庫等。Web三維零件庫系統(tǒng)首頁如圖4所示。

圖4 系統(tǒng)的首頁
用戶在該系統(tǒng)注冊登錄后,點擊各子零件庫標簽就可以進入相應的圖庫系統(tǒng)。如圖5所示為常用滾動軸承圖庫,該系統(tǒng)包含了大量的有關常用滾動軸承的三維零件圖形。

圖5 常用滾動軸承圖庫
進入子零件庫后,用戶可以根據需要對現(xiàn)有零件模板進行在線參數(shù)化驅動,如圖6所示,零件在線參數(shù)化驅動頁面。

圖6 零件在線參數(shù)化驅動
4 結論
1)本文以Inventor的二次開發(fā)技術為核心,通過網絡編程,把ASP.NET、ADO.NET、可視化技術以及數(shù)據庫訪問技術綜合與一體,實現(xiàn)了基于Web的Inventor-3D資源零件庫系統(tǒng)的研究與開發(fā)。
2)基于該系統(tǒng),在不需要安裝Inventor軟件的情況下,用戶可以進行三維零件模型的在線瀏覽、在線參數(shù)化驅動、下載等操作。
3)用戶可以在系統(tǒng)中快速搜尋自己所需的零件并下載包含設計參數(shù)的3D模型,以進行相關零件產品的二次開發(fā)和再設計,實現(xiàn)資源信息的共享。
核心關注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務領域、行業(yè)應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業(yè)務領域的管理,全面涵蓋了企業(yè)關注ERP管理系統(tǒng)的核心領域,是眾多中小企業(yè)信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.oesoe.com/
























