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

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

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

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

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

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

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

  1.2、SolidWorksAPI

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

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

  VisualC++6.0與SolidWorks通信成功與否,直接決定整個(gè)程序功能的實(shí)現(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的標(biāo)志時(shí),就證明兩者通信成功。

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