基于SolidWorks API的參數(shù)化設(shè)計及智能裝配研究

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

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

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

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

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

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

  1.2、SolidWorksAPI

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

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

  VisualC++6.0與SolidWorks通信成功與否,直接決定整個程序功能的實現(xiàn)。VisualC++6.0平臺上對SolidWorks二次開發(fā)的向?qū)腔贏TL技術(shù)構(gòu)建的,ATL(ActiveXTemplateLibrary)是一套類似于MFC的C++模板,使用ATL能夠快速開發(fā)出高效、簡潔的代碼。VisualC++6.0開發(fā)環(huán)境已集成ATL,方便開發(fā)者的調(diào)用。當(dāng)在ATL的開發(fā)環(huán)境中可以看到SolidWorks的標志時,就證明兩者通信成功。

  1.4、數(shù)據(jù)庫的建立與鏈接

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

  結(jié)語

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