基于SolidWorks API的參數化設計及智能裝配研究
對機械產品的參數化設計和智能裝配技術進行了研究,在編程工具VisualC++6.0的開發環境下根據SolidWorksAPI實現對SolidWorks2007的二次開發,采用VisualC++6.0+SQL2001+SolidWorks的技術方案,開發了某扳手噴霧器各零部件的參數化建模和智能裝配的插件。此插件提高了設計效率和質量,縮短了設計周期。
機械產品三維模型的建立是成品設計和后續仿真優化的基礎,為了研究機械產品的結構關系和運動特性,設計者需要創建一系列結構相似,尺寸不同的模型,采用傳統的手動建模和人工裝配,需要耗費大量的時間和精力,而采用三維軟件SolidWorks提供的開發工具(API),用戶可以建立適合自己需求的應用方案,從而實現參數化設計和自動裝配的目的,有效地縮短設計周期。下面將采用VisualC++6.0+SQL2001+SolidWorks的技術方案,實現機械產品設計過程中參數化設計和智能裝配技術。
1、SolidWorks二次開發相關技術及實現思路
1.1、OLE自動化技術
SolidWorks是圍繞OLE自動化技術設計的,同時它也是SolidWorksAPI構造的基礎。SolidWorks的二次開發是通過OLE技術實現的,OLE自動化技術,是一種為Windows交互進程通信機制,它讓1個應用程序驅動或自動完成另一個應用程序,實現不同應用程序間可以共享信息資源的技術,將OLE組建暴露出來使之可控制的應用程序,叫做OLE自動化服務器,利用OLE服務器提供的組件對該對象進行控制制作的應用程序,叫做OLE客戶。SolidWorks本身就是OLE自動化服務器,而在SolidWorks提供接口進行開發得到的插件就是OLE客戶。通過OLE自動化技術,許多面向對象的應用程序可以與SolidWorks鏈接,直接操控SolidWorks,編制用戶化程序滿足設計需要[4]。
1.2、SolidWorksAPI
SolidWorks的API又稱為SolidWorks應用程序開發接口,是為設計人員提供開發使用的接口[5]34,SolidWorksAPI是1個多層次的樹形網絡結構,其主體結構如圖1所示。SolidWorks提供了幾百個API函數,調用這些基于OLE(對象的嵌入與鏈接)和COM(組件對象技術)的各類對象的方法和屬性,用戶可以使用VB,Delphi,VC等高級語言與其鏈接,建立合適用戶需要的專用功能模塊,這些專用模塊可以生成Dll插件掛載在SolidWorks的菜單下,也可以作為exe程序獨立于Solidworks獨立使用。
1.3、VisualC++6.0與SolidWorks的成功通信
VisualC++6.0與SolidWorks通信成功與否,直接決定整個程序功能的實現。VisualC++6.0平臺上對SolidWorks二次開發的向導是基于ATL技術構建的,ATL(ActiveXTemplateLibrary)是一套類似于MFC的C++模板,使用ATL能夠快速開發出高效、簡潔的代碼。VisualC++6.0開發環境已集成ATL,方便開發者的調用。當在ATL的開發環境中可以看到SolidWorks的標志時,就證明兩者通信成功。
1.4、數據庫的建立與鏈接
由于程序需要處理大量的數據,例如存貯各類相關變量參數和零部件模型等數據,因此數據庫提供的服務變得尤為關鍵。采用開發簡單的SQL2001作為存儲數據的數據庫,建立零件模型庫和關系型數據庫,分別儲存相關的零部件模型和相關的配合關系,然后VisualC++6.0可以通過相關數據控件與其相鏈接,采用ADO的方式來處理數據庫中的相關數據[5]34。
結語
以上對SolidWorks的二次開發的原理及實現理論作出了簡要論述,以某型號扳手噴霧器為例,設計開發了其相關零部件參數化設計建模以及零部件智能裝配的程序,實際證明此開發思路簡便易行,效果明顯,此程序最大特點是實現了對整個產品設計過程的自動化,極大提高了設計者的工作效率,同時,有助于設計人員了解噴霧器的運動特性并根據工程的實際要求來確定設計參數,方便設計者對扳手噴霧器機構的結構、運動學關系、噴霧特性等基礎性內容進行深入細致的研究。