一、開發(fā)背景
隨著企業(yè)信息化應(yīng)用程度的不斷提高,各信息化系統(tǒng)之間的集成度越來越緊密,SolidWorks在企業(yè)的應(yīng)用也毫無例外地受到信息化系統(tǒng)集成的影響,不再是單純地僅滿足企業(yè)研發(fā)人員的設(shè)計需要即可,它還需要滿足企業(yè)數(shù)據(jù)管理系統(tǒng)的需要,滿足工藝系統(tǒng)編制工藝的需要,滿足生產(chǎn)系統(tǒng)編制生產(chǎn)計劃的需要,否則將在企業(yè)內(nèi)產(chǎn)生新的“信息孤島”, 因此隨著企業(yè)信息化應(yīng)用的深入,必須考慮SolidWorks與其他信息化系統(tǒng)集成的問題,同時隨著協(xié)同設(shè)計技術(shù)的發(fā)展,設(shè)計人員之間經(jīng)常需要交流設(shè)計方案及協(xié)作設(shè)計。因此需要有統(tǒng)一的標(biāo)準(zhǔn)件通用件數(shù)據(jù)源進(jìn)行調(diào)用。
目前,市場上基于SolidWorks開發(fā)的各種標(biāo)準(zhǔn)件庫都是根 據(jù)國家標(biāo)準(zhǔn)進(jìn)行設(shè)計和屬性定義的,屬于單機運行的系統(tǒng)。一 方面沒有考慮與企業(yè)各信息化系統(tǒng)之間的集成,也沒有考慮到為企業(yè)所有設(shè)計人員統(tǒng)一設(shè)計數(shù)據(jù)源的問題。雖然提供有自定 義標(biāo)準(zhǔn)件屬性的功能,但企業(yè)修改工作量巨大且可能造成標(biāo)準(zhǔn) 件庫系統(tǒng)不穩(wěn)定。因此給企業(yè)設(shè)計人員及其他后續(xù)工作人員增加了大量的重復(fù)屬性定義工作,嚴(yán)重影響到企業(yè)的產(chǎn)品研制周 期及SolidWorks在企業(yè)的深化應(yīng)用。
南陽防爆集團自應(yīng)用信息化系統(tǒng)以來,現(xiàn)有PDM、ERP、CAPP、CAM、二維CAD和三維C A D(SolidWorks)等,所有的產(chǎn) 品資料及技術(shù)資料統(tǒng)一在P D M系統(tǒng)中進(jìn)行集中管理。ERP系統(tǒng)已完全指導(dǎo)著企業(yè)的生產(chǎn)經(jīng)營。因此三維CAD系統(tǒng)若要在企業(yè)中深入應(yīng)用,必須考慮與PDM、ERP、CAPP系統(tǒng)的集成,必須在產(chǎn)品設(shè)計人員中統(tǒng)一標(biāo)準(zhǔn)件通用件數(shù)據(jù)源,同時南陽防爆集團有自己的編碼規(guī)則和編碼標(biāo)準(zhǔn),以此來標(biāo)識每一個零部件。因此原來所有基于SolidWorks開發(fā)的標(biāo)準(zhǔn)件庫已不再適合企業(yè)的應(yīng)用,企業(yè)必須開發(fā)出自己的標(biāo)準(zhǔn)件通用件庫。經(jīng)過詳細(xì)的分析論證,我們決定開發(fā)網(wǎng)絡(luò)版集成的標(biāo)準(zhǔn)件通用件庫,開發(fā)語言采用Visual Basic,數(shù)據(jù)庫采用SQL Server2000,所有標(biāo)準(zhǔn)件、 通用件編碼及屬性采用國標(biāo)與企業(yè)標(biāo)準(zhǔn)結(jié)合的標(biāo)示方法。
二、SolidWorks與各信息化模塊集成系統(tǒng)框架
企業(yè)開發(fā)的標(biāo)準(zhǔn)件通用件庫最終作為插件集成在SolidWorks界面,并且能實現(xiàn)與P D M系統(tǒng)的交互:即從P D M系統(tǒng)中讀取通用 件編碼屬性信息到SolidWorks中生成三維模型,同時把SolidWorks 中生成的標(biāo)準(zhǔn)件、通用件模型、零件和圖檔屬性信息提交入PDM系統(tǒng)中進(jìn)行集中統(tǒng)一管理,如圖1所示。最終實現(xiàn)在SolidWorks裝配體設(shè)計環(huán)境中隨時方便地調(diào)用P D M系統(tǒng)中已有的標(biāo)準(zhǔn)件通用件 零件模型及屬性信息,并裝配到當(dāng)前裝配體中。
三、SolidWorks二次開發(fā)的關(guān)鍵技術(shù)
SolidWorks通過對象鏈接嵌入技術(shù)(OLE)為用戶提供了強大的二次開發(fā)接口,凡支持OLE編程的開發(fā)工具,如Visual一管理,如圖4所示, 這大大減輕了設(shè)計人員零件屬性填寫的工作量。
1.讀取PDM系統(tǒng)中的零件信息
通過PDM系統(tǒng)接口函數(shù)及SolidWorks API函數(shù),從PDM系統(tǒng)中讀取通用件信息后填寫到當(dāng)前通用件三維模型屬性中。以下是從 PDM系統(tǒng)中讀取零件屬性信息的部分代碼(其中,PDM_OutPut為 PDM系統(tǒng)輸出控件,PDMOutPut.ocx、AddCustomInfo3是SolidWorks API函數(shù))。
‘連接PDM數(shù)據(jù)庫
Public Function ConnPDM() As Boolean ConnPDM = False FrmLoad.PDM_OutPut.UserName = PDMUser FrmLoad.PDM_OutPut.Password = PDMPass
FrmLoad.PDM_OutPut.MidServerName = PDMServer
……
End Function
……
填寫零件屬性信息到三維模型中:
R e t v a l=P a r t.A d d C u s t o m I n f o3(“”,“零部件代碼”, swCustomInfoText, partcode)
R e t v a l = P a r t . A d d C u s t o m I n f o 3 ( “ ” , “ 名 稱 ” , swCustomInfoText, name)
R e t v a l = P a r t . A d d C u s t o m I n f o 3 ( “ ” , “ 材 料 ” , swCustomInfoText, material)
2.在SolidWorks中提交零件信息到PDM系統(tǒng)
通用件在S o l i d W o r k s中建完模型及自動填寫完零件與圖檔 屬性信息后,提交入P D M系統(tǒng)進(jìn)行集中管理;標(biāo)準(zhǔn)件模型可以 使用其他標(biāo)準(zhǔn)件庫三維模型,然后以企業(yè)的編碼規(guī)則進(jìn)行批量 修改屬性信息后,提交入P D M進(jìn)行集中管理。以下是部分提交 入PDM系統(tǒng)零件信息的代碼。
Public Function Parttopdm(superid As String,subid A s S tring,subname A s S tring,subcode A s S tring,_ submaterial As String,number As Single,memo As String) As Long
……
A d o C m d p d m.C o m m a n d T e x t = “I N S E R T I N T O Parttopart (superid,superver,subid,subver,number,Remark, serial)” & “VALUES (‘” & superid & “’,’” & ver &
“’,’” & subid & “’,’0’,” & number & “,’ERP” &memo & “’,’2’)”
Set adorepdm = AdoCmdpdm.Execute
Set adorepdm = Nothing
……
End Function0
C++、Visual Basic和Delphi等均可用于SolidWorks的二次開 發(fā),創(chuàng)建出用戶定制的、專用的SolidWorks功能模塊。我們主 要是利用Visual Basic語言進(jìn)行開發(fā)。
1.SolidWorks的API接口
SolidWorksAPI中包含了數(shù)百個可以在VisualBasic、 VBA(Excel 、Access等)、C、C++或SolidWorks宏文件調(diào)用的函數(shù)。SolidWorks API接口采用面向?qū)ο蟮姆椒ǎ械暮瘮?shù)都是有關(guān)對象的方法或?qū)傩浴S脩敉ㄟ^對這些對象屬性的設(shè)置和方法的調(diào)用,就可以在自己開發(fā)的程序中對SolidWorks進(jìn)行各種操作控制,如完成零件草圖的繪制和修改,零件特征的建立和修改,零件的特征信息、裝配信息及工程圖樣信息的自動填寫和提取等。
2.SolidWorks DLL插件的開發(fā)
SolidWorks中的插件是DLL文件,通過該文件,編程人員可以實現(xiàn)在SolidWorks中自定義功能菜單及命令按鈕并集成在設(shè)計界面,實現(xiàn)在SolidWorks設(shè)計環(huán)境中調(diào)用自己編寫的各種應(yīng)用程序。在編寫DLL程序的過程中,必須定義DLL文件與SolidWorks 連接的接口。主要的接口函數(shù)是:SwAddin.ConnectToSW和 SwAddin.DisconnectFromSW,部分程序代碼如下。
Private Function SwAddin_ConnectToSW(ByVal ThisSW As Object, ByVal Cookie As Long) As Boolean
Dim bRet As Boolean
Set swApp = ThisSW ‘連接SOLIDWORKS
iCookie = Cookie
bRet = swApp.SetAddinCallbackInfo(App.hInstance, Me, iCookie)
‘增加主菜單
bRet = swApp.AddMenu(sw-DocASSEMBLY, “機械標(biāo) 準(zhǔn)件庫(&Y)”, -1)
‘增加子菜單項目
bRet = swApp.AddMenuItem2(swDocPART, iCookie,
“零件庫配置(&P)@機械標(biāo)準(zhǔn)件庫(&Y)”, 3, “DocPART_ Item_PZ”, “DocPART_Item_CPupdate”, “機械標(biāo)準(zhǔn)件庫- 零件庫配置”)
bRet=swApp.AddMenuItem2(s-wDocASSEMBLY,iCookie, “標(biāo)準(zhǔn)件庫幫助(&P)@機械標(biāo)準(zhǔn)件庫(&Y)”, 3, _“D o c P A R T_I t e m_B Z”, “D o c P A R T_I t e m_C P u p d a t e”,“機械標(biāo)準(zhǔn)件庫-標(biāo)準(zhǔn)件庫幫助”)
……
‘增加工具欄
iToolbarID = swA pp.A ddToolbar3(iCookie, “機械 標(biāo)準(zhǔn)件庫”, 102, 101, -1, s w D o c T e m p l a t e T y p e P A R T
+swDocTemplateTypeASSEMBLY+swDocTemplateTypeDRAWING)
‘增加命令按鈕
b R e t = s w A p p . A d d T o o l b a r C o m m a n d 2 ( i C o o k i e ,
i T o o l b a r I D , 0 , “ T o o l b a r F u n c t i o n 1 ” ,
“ToolbarFuncUpdate1”, “零件庫配置”, “”)
……
SwAddin_ConnectToSW = True
End Function
‘卸載插件的代碼
Private Function SwAddin_DisconnectFromSW() As
Boolean
Dim bRet As Boolean
bRet = swApp.RemoveToolbar2(iCookie, iToolbarID)
bRet = swApp.RemoveMenu(swDocASSEMBLY, “機械
標(biāo)準(zhǔn)件庫(&Y)”, -1)
……
Set swApp = Nothing SwAddin_DisconnectFromSW = True End Function
插件程序編寫完后,編譯成D L L文件,注冊后,該插件程 序就會在S o l i d W o r k s“插件”對話框中出現(xiàn)。定制的功能菜單 及命令按鈕就會在SolidWorks菜單欄及工具欄上出現(xiàn)。
四、SolidWorks與PDM系統(tǒng)的集成
三維數(shù)據(jù)的管理是三維CAD應(yīng)用過程中必須考慮的問題,而且不能脫離于現(xiàn)有的P D M系統(tǒng),經(jīng)過分析論證,我們把三維 數(shù)據(jù)統(tǒng)一集成到PDM系統(tǒng)中進(jìn)行管理。南陽防爆集團使用的數(shù) 據(jù)管理系統(tǒng)為清軟英泰的PDM系統(tǒng)。通過清軟英泰提供的接口函數(shù)開發(fā)插件可以實現(xiàn)在SolidWorks中直接登錄入PDM系統(tǒng),并提交已完成的三維模型及圖文檔進(jìn)入PDM系統(tǒng)管理,如圖2和圖3所示。
同時,企業(yè)以前在P D M系統(tǒng)中積累了大量的通用件信息, 如果在三維C A D模型生成后重新再輸入一遍,將增加設(shè)計大量 的重復(fù)性勞動,并可能出現(xiàn)人工錯誤。我們開發(fā)的標(biāo)準(zhǔn)件通用 件庫可以實現(xiàn)從P D M系統(tǒng)中調(diào)用已有的二維圖文檔屬性自動填 寫到SolidWorks生成的三維模型中,然后再提交入PDM系統(tǒng)中統(tǒng)一管理,如圖4所示,這大大減輕了設(shè)計人員零件屬性填寫的工作量。
1.讀取PDM系統(tǒng)中的零件信息
通過PDM系統(tǒng)接口函數(shù)及SolidWorks API函數(shù),從PDM系統(tǒng)中 讀取通用件信息后填寫到當(dāng)前通用件三維模型屬性中。以下是從 PDM系統(tǒng)中讀取零件屬性信息的部分代碼(其中,PDM_OutPut為 PDM系統(tǒng)輸出控件,PDMOutPut.ocx、AddCustomInfo3是SolidWorks API函數(shù))。
‘連接PDM數(shù)據(jù)庫
Public Function ConnPDM() As Boolean ConnPDM = False FrmLoad.PDM_OutPut.UserName = PDMUser FrmLoad.PDM_OutPut.Password = PDMPassFrmLoad.PDM_OutPut.MidServerName = PDMServer
……
End Function
……
填寫零件屬性信息到三維模型中:
R e t v a l=P a r t.A d d C u s t o m I n f o3(“”,“零部件代碼”, swCustomInfoText, partcode)
R e t v a l = P a r t . A d d C u s t o m I n f o 3 ( “ ” , “ 名稱 ” , swCustomInfoText, name)
R e t v a l = P a r t . A d d C u s t o m I n f o 3 ( “ ” , “ 材料 ” , swCustomInfoText, material)
2.在SolidWorks中提交零件信息到PDM系統(tǒng)
通用件在S o l i d W o r k s中建完模型及自動填寫完零件與圖檔 屬性信息后,提交入P D M系統(tǒng)進(jìn)行集中管理;標(biāo)準(zhǔn)件模型可以 使用其他標(biāo)準(zhǔn)件庫三維模型,然后以企業(yè)的編碼規(guī)則進(jìn)行批量 修改屬性信息后,提交入P D M進(jìn)行集中管理。以下是部分提交 入PDM系統(tǒng)零件信息的代碼。
Public Function Parttopdm(superid As String,subid A s S tring,subname A s S tring,subcode A s S tring,_ submaterial As String,number As Single,memo As String) As Long
……
A d o C m d p d m.C o m m a n d T e x t = “I N S E R T I N T O Parttopart (superid,superver,subid,subver,number,Remark, serial)” & “VALUES (‘” & superid & “’,’” & ver &
“’,’” & subid & “’,’0’,” & number & “,’ERP” &
memo & “’,’2’)”
Set adorepdm = AdoCmdpdm.Execute
Set adorepdm = Nothing
……
End Function0
五、在SolidWorks裝配環(huán)境中調(diào)用
標(biāo)準(zhǔn)件通用件庫建立后,主要實現(xiàn)在SolidWorks裝配體環(huán)境中調(diào)用,根據(jù)前面的介紹,我們可以把所有程序代碼生成 DLL插件后集成在SolidWorks界面,從而實現(xiàn)標(biāo)準(zhǔn)件通用件庫隨著SolidWorks程序起動后主動加載在裝配體界面,如圖5所示。
這樣,在裝配體設(shè)計環(huán)境下,可以隨時從標(biāo)準(zhǔn)件通用件庫中調(diào) 用已有的標(biāo)準(zhǔn)件通用件三維模型。
六、標(biāo)準(zhǔn)件通用件庫的維護
標(biāo)準(zhǔn)件、通用件在企業(yè)的應(yīng)用是一個長期的過程,隨著企業(yè)的發(fā)展,會生成新的通用件,標(biāo)準(zhǔn)件也會不斷地調(diào)整,因此程序必須具有開放性,方便工程師實現(xiàn)標(biāo)準(zhǔn)件通用件的添加功能(如圖6所示),可以方便地添加新的標(biāo)準(zhǔn)件通用件到PDM 系統(tǒng)及標(biāo)準(zhǔn)件通用件庫中,使不同企業(yè)的用戶通過修改標(biāo)準(zhǔn)件通用件的配置數(shù)據(jù)及屬性信息而形成自己企業(yè)的標(biāo)準(zhǔn)件通用件 庫。同時,當(dāng)裝配體向P D M數(shù)據(jù)庫中提交數(shù)據(jù)時,因PDM數(shù)據(jù)庫中已有標(biāo)準(zhǔn)件通用件的數(shù)據(jù),裝配體中所有的標(biāo)準(zhǔn)件通用件不會再提交進(jìn)入PDM數(shù)據(jù)庫中,這減少了集成程序運行的時 間及PDM數(shù)據(jù)庫中的數(shù)據(jù)冗余。
七、結(jié)論
本文提出了基于各信息化系統(tǒng)集成的標(biāo)準(zhǔn)件通用件庫的開發(fā)方法,基于該方法可以實現(xiàn)SolidWorks與其他信息化系統(tǒng) 的高度集成。程序開發(fā)人員可以根據(jù)企業(yè)信息化應(yīng)用系統(tǒng)的 特點,結(jié)合企業(yè)的編碼規(guī)則及編碼標(biāo)準(zhǔn)開發(fā)出企業(yè)自己的標(biāo)準(zhǔn)件通用件三維模型庫,從而提高設(shè)計效率,加強三維數(shù)據(jù) 管理,縮短產(chǎn)品研發(fā)生產(chǎn)周期。
相關(guān)文章
- 2021-01-09AutoCAD 2010工程繪圖及SolidWorks2010、UGNX7.0造型
- 2020-12-19AutoCAD 、SolidWorks實體仿真建模與應(yīng)用解析 [芮勇勤
- 2016-01-27CAD標(biāo)準(zhǔn)件圖庫大全 5589張CAD圖紙免費下載
- 2013-03-06一些標(biāo)準(zhǔn)件和常用件規(guī)定畫法(PPT格式)
- 2012-04-27自攻螺釘CAD標(biāo)準(zhǔn)件圖庫免費下載
- 2011-12-21常用的緊固件、標(biāo)準(zhǔn)件、螺絲、螺母等的CAD圖紙大全
- 2011-10-04機械制圖課件(標(biāo)準(zhǔn)件和常用件).ppt
- 2011-08-20羅茨風(fēng)機37KW密集成組型直聯(lián)外型尺寸圖
- 2011-03-08噴射泵CADCAPPCAM集成系統(tǒng)
- 2011-01-04常用標(biāo)準(zhǔn)件dwg圖紙