0 引言
模具業多樣化發展使得通用的模具CAD軟件不再能完全滿足企業的特殊需要,所以研究在通用圖形軟件的基礎上二次開發企業自主的模具CAD系統十分必要。專用CAD軟件必須結合企業的自身實際情況,建立符合國家標準、行業標準和企業標準的模具標準件庫、模具通用結構庫及標準模架庫。在實現標準庫的同時建立相應的數據管理系統,以提高設計效率。當前三維實體造型軟件已逐步取代二維軟件,因此對三維軟件的二次開發也將成為我們研究的重點。針對當前我國中、小型企業以微機平臺為主的現狀,選用SolidWorks為二次開發平臺。SolidWorks采用了與Unigraphics相同的底層圖形核心Parasolid,它的核心技術----OLE技術是在Windows環境下生成的,有利于二次開發技術的實現。
1 OLE技術概述
對象鏈接與嵌入(Object Linking and Embedding)不是另一種編程技術,而是根植于Windows環境的一種編程模式技術,其核心在于允許一個Windows應用程序通過暴露對象的方式,控制和操作另一個Windows應用程序。即被調用的程序暴露自身的對象體系結構供調用程序引用。通過OLE技術,許多面向對象編程語言(如:VB、VC++、VBA等)和應用程序可以與SolidWorks通信,從而直接操縱SolidWorks編制用戶化程序滿足設計需要,如菜單設計、標準件庫的建立、參數化設計等。
2 SolidWorks對象模型樹
不管是用VC++ 、VB還是VBA對SolidWorks進行二次開發,都是通過調用SolidWorks的對象體系結構來進行的。基于OLE技術SolidWorks,API將SolidWorks, 的各種功能封裝在SolidWorks,對象之中供編程調用。作為一個對象,它包括以下幾個方面:(1)對象的類型;(2)對象的屬性;(3)對象的方法。開發者通過操縱對象的屬性和調用對象的方法建立自己的應用程序,實現二次開發。例如,建立一個長方體,可以訪問零件實體模型,則SolidWorks, 提供對象類型為PartDoc,它包含的屬性有MaterialldName、MaterialUserName、MaterialPorpertyValues, 它提供的方法有CreateNewBody(創建一個新實體)、EditRebuild(重新編輯實體)、FeatureByName(返回實體特征名)等。SolidWorks開發系統圖如圖1所示。

下面我們給出SolidWorks的對象模型樹見圖2。

3 數據庫的建立
設計合理的標準件數據庫管理,將極大的有利于開發注塑模CAD系統。采用數據庫管理注塑模具標準件,標準件數據按一定數據結構形式存放在數據庫中,由數據管理系統統一進行管理。關系型數據庫適用于關系結構復雜的數據類型,因此考慮到注塑模的裝配關系,在建立注塑模具標準件數據庫中選擇關系型數據庫,將有利于裝配模型中對各類標準件的管理。在建立規范的標準件數據庫基礎之上,通過面向對象的程序語言VB開發接口程序,實現數據庫與SolidWorks實體造型的通信,從而通過調用數據庫就直接生成所需要的標準件,并且通過管理數據庫可以實現標準件的各類管理。
4 面向對象的開發環境
通過VC++編寫動態連接庫文件(DynamicLink Library,DLL文件),運行SolidWorks時加載上去,可以實現對SolidWorks底層的開發。例如編寫菜單文件直接掛在SolidWorks的菜單下,形成應用程序與SolidWorks的統一的界面。VB可以直接訪問SolidWorks所提供實體對象,利用它來編寫參數化設計程序,以及調用數據庫的接口程序更加直觀。我們可以根據需要充分利用這些面向對象編程語言的優點來實現注塑模具CAD系統二次開發。圖3為利用面向對象的編程語言VC++,通過調用SolidWorks提供的菜單資源對象模型實現二次開發的菜單設計。

5 應用實例
本文通過建立注塑模具中常用的限位釘標準件自動生成三維圖,供模具設計者調用為例,說明基于OLE技術在SolidWorks平臺下進行的注塑模CAD三維標準件庫開發。
首先,在SolidWorks實體造型環境中建立以國標系列尺寸為驅動參數的限位釘模型;
其次,在關系數據庫中建立限位釘國標標準庫;
然后,利用VB編制程序,設計界面,訪問數據庫,同時調用SolidWorks中的Part對象實現限位釘的參數化繪圖。
最后,利用VC編制菜單文件,運行時加載上去,實現菜單的統一。
下面給出利用SolidWorks提供的OLE Automation技術在VB環境下二次開發的實例。在VB中訪問SolidWorks對象的代碼:
標準件限位釘參數程序needle()代碼:
Sub Cuboid(By Val DDValue__Passed As Double,By Val dValue__Passed As Double,ByVal ZValue__Passed As Double, Lvalue__ Passed As Double,)
Dim MyApp As Object
Dim Part As Object
Set MyApp = CreateObject ("SldWorks.Application")
MyApp.Visible(Ture)
Set Part = MyApp. OpenDoc ("needle.SLDPRT",swDocPART)
If Part Is Nothing Then
Exit Sub
Else
End if
Part. Parameter("DDValue@Sketchl").
System Value = DDalue__Passed
Part. Parameter("dValue @ Sketchl").
SystemValue = dValue__Passed
Part.Parameter("ZValue@Base-extrude").
System Value = ZValue__Passed
Part.Parameter("LValue@Base-Extrued").
System Value = LValue__Passed
Part.EditRebuild
End Sub
6 結束語
OLE技術以及后來發展的網絡版的對象鏈接與嵌入技術—ActiveX技術都是面向對象編程技術的重大進步。在CAD 技術中的運用也日益廣泛。最新版本的CAD軟件系統一般都支持這兩種技術或其中一種,用戶可根據需要進行選擇。
CAD系統的二次開發者在開發應用軟件時,關鍵是理清CAD軟件所提供的對象以及與面向對象編程語言的開發接口,就可以對該CAD軟件開發有一個總體認識,進而實施細節問題。
相關文章
- 2021-09-08BIM技術叢書Revit軟件應用系列Autodesk Revit族詳解 [
- 2021-09-08全國專業技術人員計算機應用能力考試用書 AutoCAD2004
- 2021-09-08EXCEL在工作中的應用 制表、數據處理及宏應用PDF下載
- 2021-08-30從零開始AutoCAD 2014中文版機械制圖基礎培訓教程 [李
- 2021-08-30從零開始AutoCAD 2014中文版建筑制圖基礎培訓教程 [朱
- 2021-08-30電氣CAD實例教程AutoCAD 2010中文版 [左昉 等編著] 20
- 2021-08-30電影風暴2:Maya影像實拍與三維合成攻略PDF下載
- 2021-08-30高等院校藝術設計案例教程中文版AutoCAD 建筑設計案例
- 2021-08-29環境藝術制圖AutoCAD [徐幼光 編著] 2013年PDF下載
- 2021-08-29機械AutoCAD 項目教程 第3版 [繆希偉 主編] 2012年PDF