基于SolidWorks API的參數化設計及智能裝配研究

2014-11-19 歐長(cháng)勁 特種裝備制造與先進(jìn)加工技術(shù)教育

  對機械產(chǎn)品的參數化設計和智能裝配技術(shù)進(jìn)行了研究,在編程工具VisualC++6.0的開(kāi)發(fā)環(huán)境下根據SolidWorksAPI實(shí)現對SolidWorks2007的二次開(kāi)發(fā),采用VisualC++6.0+SQL2001+SolidWorks的技術(shù)方案,開(kāi)發(fā)了某扳手噴霧器各零部件的參數化建模和智能裝配的插件。此插件提高了設計效率和質(zhì)量,縮短了設計周期。

  機械產(chǎn)品三維模型的建立是成品設計和后續仿真優(yōu)化的基礎,為了研究機械產(chǎn)品的結構關(guān)系和運動(dòng)特性,設計者需要創(chuàng )建一系列結構相似,尺寸不同的模型,采用傳統的手動(dòng)建模和人工裝配,需要耗費大量的時(shí)間和精力,而采用三維軟件SolidWorks提供的開(kāi)發(fā)工具(API),用戶(hù)可以建立適合自己需求的應用方案,從而實(shí)現參數化設計和自動(dòng)裝配的目的,有效地縮短設計周期。下面將采用VisualC++6.0+SQL2001+SolidWorks的技術(shù)方案,實(shí)現機械產(chǎn)品設計過(guò)程中參數化設計和智能裝配技術(shù)。

  1、SolidWorks二次開(kāi)發(fā)相關(guān)技術(shù)及實(shí)現思路

  1.1、OLE自動(dòng)化技術(shù)

  SolidWorks是圍繞OLE自動(dòng)化技術(shù)設計的,同時(shí)它也是SolidWorksAPI構造的基礎。SolidWorks的二次開(kāi)發(fā)是通過(guò)OLE技術(shù)實(shí)現的,OLE自動(dòng)化技術(shù),是一種為Windows交互進(jìn)程通信機制,它讓1個(gè)應用程序驅動(dòng)或自動(dòng)完成另一個(gè)應用程序,實(shí)現不同應用程序間可以共享信息資源的技術(shù),將OLE組建暴露出來(lái)使之可控制的應用程序,叫做OLE自動(dòng)化服務(wù)器,利用OLE服務(wù)器提供的組件對該對象進(jìn)行控制制作的應用程序,叫做OLE客戶(hù)。SolidWorks本身就是OLE自動(dòng)化服務(wù)器,而在SolidWorks提供接口進(jìn)行開(kāi)發(fā)得到的插件就是OLE客戶(hù)。通過(guò)OLE自動(dòng)化技術(shù),許多面向對象的應用程序可以與SolidWorks鏈接,直接操控SolidWorks,編制用戶(hù)化程序滿(mǎn)足設計需要[4]。

  1.2、SolidWorksAPI

  SolidWorks的API又稱(chēng)為SolidWorks應用程序開(kāi)發(fā)接口,是為設計人員提供開(kāi)發(fā)使用的接口[5]34,SolidWorksAPI是1個(gè)多層次的樹(shù)形網(wǎng)絡(luò )結構,其主體結構如圖1所示。SolidWorks提供了幾百個(gè)API函數,調用這些基于OLE(對象的嵌入與鏈接)和COM(組件對象技術(shù))的各類(lèi)對象的方法和屬性,用戶(hù)可以使用VB,Delphi,VC等高級語(yǔ)言與其鏈接,建立合適用戶(hù)需要的專(zhuān)用功能模塊,這些專(zhuān)用模塊可以生成Dll插件掛載在SolidWorks的菜單下,也可以作為exe程序獨立于Solidworks獨立使用。

  1.3、VisualC++6.0與SolidWorks的成功通信

  VisualC++6.0與SolidWorks通信成功與否,直接決定整個(gè)程序功能的實(shí)現。VisualC++6.0平臺上對SolidWorks二次開(kāi)發(fā)的向導是基于A(yíng)TL技術(shù)構建的,ATL(ActiveXTemplateLibrary)是一套類(lèi)似于MFC的C++模板,使用ATL能夠快速開(kāi)發(fā)出高效、簡(jiǎn)潔的代碼。VisualC++6.0開(kāi)發(fā)環(huán)境已集成ATL,方便開(kāi)發(fā)者的調用。當在A(yíng)TL的開(kāi)發(fā)環(huán)境中可以看到SolidWorks的標志時(shí),就證明兩者通信成功。

  1.4、數據庫的建立與鏈接

  由于程序需要處理大量的數據,例如存貯各類(lèi)相關(guān)變量參數和零部件模型等數據,因此數據庫提供的服務(wù)變得尤為關(guān)鍵。采用開(kāi)發(fā)簡(jiǎn)單的SQL2001作為存儲數據的數據庫,建立零件模型庫和關(guān)系型數據庫,分別儲存相關(guān)的零部件模型和相關(guān)的配合關(guān)系,然后VisualC++6.0可以通過(guò)相關(guān)數據控件與其相鏈接,采用ADO的方式來(lái)處理數據庫中的相關(guān)數據[5]34。

  結語(yǔ)

  以上對SolidWorks的二次開(kāi)發(fā)的原理及實(shí)現理論作出了簡(jiǎn)要論述,以某型號扳手噴霧器為例,設計開(kāi)發(fā)了其相關(guān)零部件參數化設計建模以及零部件智能裝配的程序,實(shí)際證明此開(kāi)發(fā)思路簡(jiǎn)便易行,效果明顯,此程序最大特點(diǎn)是實(shí)現了對整個(gè)產(chǎn)品設計過(guò)程的自動(dòng)化,極大提高了設計者的工作效率,同時(shí),有助于設計人員了解噴霧器的運動(dòng)特性并根據工程的實(shí)際要求來(lái)確定設計參數,方便設計者對扳手噴霧器機構的結構、運動(dòng)學(xué)關(guān)系、噴霧特性等基礎性?xún)热葸M(jìn)行深入細致的研究。