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