一、開發背景
隨著企業信息化應用程度的不斷提高,各信息化系統之間的集成度越來越緊密,SolidWorks在企業的應用也毫無例外地受到信息化系統集成的影響,不再是單純地僅滿足企業研發人員的設計需要即可,它還需要滿足企業數據管理系統的需要,滿足工藝系統編制工藝的需要,滿足生產系統編制生產計劃的需要,否則將在企業內產生新的“信息孤島”, 因此隨著企業信息化應用的深入,必須考慮SolidWorks與其他信息化系統集成的問題,同時隨著協同設計技術的發展,設計人員之間經常需要交流設計方案及協作設計。因此需要有統一的標準件通用件數據源進行調用。
目前,市場上基于SolidWorks開發的各種標準件庫都是根 據國家標準進行設計和屬性定義的,屬于單機運行的系統。一 方面沒有考慮與企業各信息化系統之間的集成,也沒有考慮到為企業所有設計人員統一設計數據源的問題。雖然提供有自定 義標準件屬性的功能,但企業修改工作量巨大且可能造成標準 件庫系統不穩定。因此給企業設計人員及其他后續工作人員增加了大量的重復屬性定義工作,嚴重影響到企業的產品研制周 期及SolidWorks在企業的深化應用。
南陽防爆集團自應用信息化系統以來,現有PDM、ERP、CAPP、CAM、二維CAD和三維C A D(SolidWorks)等,所有的產 品資料及技術資料統一在P D M系統中進行集中管理。ERP系統已完全指導著企業的生產經營。因此三維CAD系統若要在企業中深入應用,必須考慮與PDM、ERP、CAPP系統的集成,必須在產品設計人員中統一標準件通用件數據源,同時南陽防爆集團有自己的編碼規則和編碼標準,以此來標識每一個零部件。因此原來所有基于SolidWorks開發的標準件庫已不再適合企業的應用,企業必須開發出自己的標準件通用件庫。經過詳細的分析論證,我們決定開發網絡版集成的標準件通用件庫,開發語言采用Visual Basic,數據庫采用SQL Server2000,所有標準件、 通用件編碼及屬性采用國標與企業標準結合的標示方法。
二、SolidWorks與各信息化模塊集成系統框架
企業開發的標準件通用件庫最終作為插件集成在SolidWorks界面,并且能實現與P D M系統的交互:即從P D M系統中讀取通用 件編碼屬性信息到SolidWorks中生成三維模型,同時把SolidWorks 中生成的標準件、通用件模型、零件和圖檔屬性信息提交入PDM系統中進行集中統一管理,如圖1所示。最終實現在SolidWorks裝配體設計環境中隨時方便地調用P D M系統中已有的標準件通用件 零件模型及屬性信息,并裝配到當前裝配體中。
三、SolidWorks二次開發的關鍵技術
SolidWorks通過對象鏈接嵌入技術(OLE)為用戶提供了強大的二次開發接口,凡支持OLE編程的開發工具,如Visual一管理,如圖4所示, 這大大減輕了設計人員零件屬性填寫的工作量。
1.讀取PDM系統中的零件信息
通過PDM系統接口函數及SolidWorks API函數,從PDM系統中讀取通用件信息后填寫到當前通用件三維模型屬性中。以下是從 PDM系統中讀取零件屬性信息的部分代碼(其中,PDM_OutPut為 PDM系統輸出控件,PDMOutPut.ocx、AddCustomInfo3是SolidWorks API函數)。
‘連接PDM數據庫
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系統
通用件在S o l i d W o r k s中建完模型及自動填寫完零件與圖檔 屬性信息后,提交入P D M系統進行集中管理;標準件模型可以 使用其他標準件庫三維模型,然后以企業的編碼規則進行批量 修改屬性信息后,提交入P D M進行集中管理。以下是部分提交 入PDM系統零件信息的代碼。
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的二次開 發,創建出用戶定制的、專用的SolidWorks功能模塊。我們主 要是利用Visual Basic語言進行開發。
1.SolidWorks的API接口
SolidWorksAPI中包含了數百個可以在VisualBasic、 VBA(Excel 、Access等)、C、C++或SolidWorks宏文件調用的函數。SolidWorks API接口采用面向對象的方法,所有的函數都是有關對象的方法或屬性。用戶通過對這些對象屬性的設置和方法的調用,就可以在自己開發的程序中對SolidWorks進行各種操作控制,如完成零件草圖的繪制和修改,零件特征的建立和修改,零件的特征信息、裝配信息及工程圖樣信息的自動填寫和提取等。
2.SolidWorks DLL插件的開發
SolidWorks中的插件是DLL文件,通過該文件,編程人員可以實現在SolidWorks中自定義功能菜單及命令按鈕并集成在設計界面,實現在SolidWorks設計環境中調用自己編寫的各種應用程序。在編寫DLL程序的過程中,必須定義DLL文件與SolidWorks 連接的接口。主要的接口函數是: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, “機械標 準件庫(&Y)”, -1)
‘增加子菜單項目
bRet = swApp.AddMenuItem2(swDocPART, iCookie,
“零件庫配置(&P)@機械標準件庫(&Y)”, 3, “DocPART_ Item_PZ”, “DocPART_Item_CPupdate”, “機械標準件庫- 零件庫配置”)
bRet=swApp.AddMenuItem2(s-wDocASSEMBLY,iCookie, “標準件庫幫助(&P)@機械標準件庫(&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”,“機械標準件庫-標準件庫幫助”)
……
‘增加工具欄
iToolbarID = swA pp.A ddToolbar3(iCookie, “機械 標準件庫”, 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, “機械
標準件庫(&Y)”, -1)
……
Set swApp = Nothing SwAddin_DisconnectFromSW = True End Function
插件程序編寫完后,編譯成D L L文件,注冊后,該插件程 序就會在S o l i d W o r k s“插件”對話框中出現。定制的功能菜單 及命令按鈕就會在SolidWorks菜單欄及工具欄上出現。
四、SolidWorks與PDM系統的集成
三維數據的管理是三維CAD應用過程中必須考慮的問題,而且不能脫離于現有的P D M系統,經過分析論證,我們把三維 數據統一集成到PDM系統中進行管理。南陽防爆集團使用的數 據管理系統為清軟英泰的PDM系統。通過清軟英泰提供的接口函數開發插件可以實現在SolidWorks中直接登錄入PDM系統,并提交已完成的三維模型及圖文檔進入PDM系統管理,如圖2和圖3所示。
同時,企業以前在P D M系統中積累了大量的通用件信息, 如果在三維C A D模型生成后重新再輸入一遍,將增加設計大量 的重復性勞動,并可能出現人工錯誤。我們開發的標準件通用 件庫可以實現從P D M系統中調用已有的二維圖文檔屬性自動填 寫到SolidWorks生成的三維模型中,然后再提交入PDM系統中統一管理,如圖4所示,這大大減輕了設計人員零件屬性填寫的工作量。
1.讀取PDM系統中的零件信息
通過PDM系統接口函數及SolidWorks API函數,從PDM系統中 讀取通用件信息后填寫到當前通用件三維模型屬性中。以下是從 PDM系統中讀取零件屬性信息的部分代碼(其中,PDM_OutPut為 PDM系統輸出控件,PDMOutPut.ocx、AddCustomInfo3是SolidWorks API函數)。
‘連接PDM數據庫
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系統
通用件在S o l i d W o r k s中建完模型及自動填寫完零件與圖檔 屬性信息后,提交入P D M系統進行集中管理;標準件模型可以 使用其他標準件庫三維模型,然后以企業的編碼規則進行批量 修改屬性信息后,提交入P D M進行集中管理。以下是部分提交 入PDM系統零件信息的代碼。
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裝配環境中調用
標準件通用件庫建立后,主要實現在SolidWorks裝配體環境中調用,根據前面的介紹,我們可以把所有程序代碼生成 DLL插件后集成在SolidWorks界面,從而實現標準件通用件庫隨著SolidWorks程序起動后主動加載在裝配體界面,如圖5所示。
這樣,在裝配體設計環境下,可以隨時從標準件通用件庫中調 用已有的標準件通用件三維模型。
六、標準件通用件庫的維護
標準件、通用件在企業的應用是一個長期的過程,隨著企業的發展,會生成新的通用件,標準件也會不斷地調整,因此程序必須具有開放性,方便工程師實現標準件通用件的添加功能(如圖6所示),可以方便地添加新的標準件通用件到PDM 系統及標準件通用件庫中,使不同企業的用戶通過修改標準件通用件的配置數據及屬性信息而形成自己企業的標準件通用件 庫。同時,當裝配體向P D M數據庫中提交數據時,因PDM數據庫中已有標準件通用件的數據,裝配體中所有的標準件通用件不會再提交進入PDM數據庫中,這減少了集成程序運行的時 間及PDM數據庫中的數據冗余。
七、結論
本文提出了基于各信息化系統集成的標準件通用件庫的開發方法,基于該方法可以實現SolidWorks與其他信息化系統 的高度集成。程序開發人員可以根據企業信息化應用系統的 特點,結合企業的編碼規則及編碼標準開發出企業自己的標準件通用件三維模型庫,從而提高設計效率,加強三維數據 管理,縮短產品研發生產周期。
相關文章
- 2021-01-09AutoCAD 2010工程繪圖及SolidWorks2010、UGNX7.0造型
- 2020-12-19AutoCAD 、SolidWorks實體仿真建模與應用解析 [芮勇勤
- 2016-01-27CAD標準件圖庫大全 5589張CAD圖紙免費下載
- 2013-03-06一些標準件和常用件規定畫法(PPT格式)
- 2012-04-27自攻螺釘CAD標準件圖庫免費下載
- 2011-12-21常用的緊固件、標準件、螺絲、螺母等的CAD圖紙大全
- 2011-10-04機械制圖課件(標準件和常用件).ppt
- 2011-08-20羅茨風機37KW密集成組型直聯外型尺寸圖
- 2011-03-08噴射泵CADCAPPCAM集成系統
- 2011-01-04常用標準件dwg圖紙