SolidWorks提供了二次開(kāi)發(fā)接口API,具有良好的開(kāi)發(fā)性和兼容性。用戶可以在SolidWorks本身功能的基礎(chǔ)上開(kāi)發(fā)出新的功能模塊,比如開(kāi)發(fā)出動(dòng)態(tài)鏈接庫(kù)DLL插件,以滿足特定的需求。SolidWorks通過(guò)COM技術(shù)為開(kāi)發(fā)人員提供二次開(kāi)發(fā)接口、COM對(duì)象包含接口、屬性和事件,SolidWorks可以使用標(biāo)準(zhǔn)的COM對(duì)象實(shí)現(xiàn)調(diào)用API函數(shù)的功能。
Visual C++是一種常用的軟件編程開(kāi)發(fā)工具,提供了功能強(qiáng)大的集成開(kāi)發(fā)環(huán)境。其本身開(kāi)發(fā)環(huán)境友好,高度的可視化開(kāi)發(fā)方式和強(qiáng)大的向?qū)Чぞ?AppWizards)能夠幫助用戶輕松開(kāi)發(fā)出多種類型的應(yīng)用程序。另外,Visual C++與SolidWorks有極好的連接性,能最大程度地使用SolidWorks API,可以開(kāi)發(fā)出DLL插件,實(shí)現(xiàn)特定功能。
作者采用Visual C++6.0對(duì)SolidWorks進(jìn)行二次開(kāi)發(fā),實(shí)現(xiàn)軸向柱塞泵的參數(shù)化建模設(shè)計(jì),包括零件的參數(shù)化建模以及自動(dòng)裝配。應(yīng)用參數(shù)化建模程序,可以極大地節(jié)省開(kāi)發(fā)與改造時(shí)間,提高效率,降低了設(shè)計(jì)的難度,并為后續(xù)的各仿真環(huán)節(jié)提供三維模型基礎(chǔ)。
1 參數(shù)化建模設(shè)計(jì)方法
零件參數(shù)化設(shè)計(jì)方法可以分為程序驅(qū)動(dòng)及尺寸驅(qū)動(dòng)兩種方法。
程序驅(qū)動(dòng)方法是根據(jù)設(shè)計(jì)的零件尺寸,根據(jù)當(dāng)前單位系統(tǒng),通過(guò)設(shè)計(jì)過(guò)程中的關(guān)系,得出方程式,求解各個(gè)關(guān)鍵點(diǎn)的坐標(biāo),利用SolidWorks API提供的草圖繪制工具函數(shù)將各個(gè)關(guān)鍵點(diǎn)連接起來(lái),完成草圖繪制后,調(diào)用特征生成命令,完成零件建模。運(yùn)行時(shí),采用交互式界面,由用戶指定尺寸,由程序自動(dòng)求解關(guān)鍵點(diǎn)坐標(biāo),完成建模。程序驅(qū)動(dòng)方法是一種自下而上的建模方法,由底層的點(diǎn)、線、面形成完整模型,一旦用戶需要修改模型,必須重新指定尺寸,程序重新求解坐標(biāo),繪制草圖,對(duì)于復(fù)雜零件來(lái)說(shuō),比較費(fèi)時(shí)麻煩。
尺寸驅(qū)動(dòng)方法是一種自上而下的建模方法,保持零件結(jié)構(gòu)不變,建立好零件模板,將設(shè)計(jì)尺寸設(shè)定為變量,運(yùn)行時(shí),用戶指定尺寸值,由程序自動(dòng)定位到相應(yīng)的尺寸變量對(duì)草圖進(jìn)行修改,然后完成建模,不必重新繪制草圖。此方法的優(yōu)點(diǎn)在于設(shè)計(jì)時(shí)不需考慮零件的具體尺寸,只需保證結(jié)構(gòu)不變,設(shè)定相應(yīng)的尺寸變量,這樣,用戶輸入不同參數(shù),即可得到結(jié)構(gòu)相同,尺寸不同的零件,方便了系列化的零件設(shè)計(jì)。這種自上而下的建模方法使得零件的修改與重建相比于程序驅(qū)動(dòng)來(lái)說(shuō)方便了很多。
2軸向柱塞泵參數(shù)化建模設(shè)計(jì)的關(guān)鍵技術(shù)
2.1程序的功能及設(shè)計(jì)思路
三維泵模型的建立是成品設(shè)計(jì)及后續(xù)仿真環(huán)節(jié)的基礎(chǔ),程序的功能是實(shí)現(xiàn)軸向柱塞泵主要零部件的參數(shù)化建模設(shè)計(jì),完成自動(dòng)裝配過(guò)程。
零件參數(shù)化建模程序的設(shè)計(jì)思路如圖1所示。自動(dòng)裝配過(guò)程的設(shè)計(jì)流程如圖2所示。
圖1 零件參數(shù)化建模設(shè)計(jì)流程
圖2自動(dòng)裝配過(guò)程設(shè)計(jì)流程
用戶只需指定關(guān)鍵參數(shù),而不必動(dòng)手操作繁瑣的繪制建模和選擇裝配過(guò)程,使設(shè)計(jì)難度和繁瑣度大大降低。
2.2建立零件參數(shù)化建模模板
以某系列軸向柱塞泵的柱塞為例,其結(jié)構(gòu)如圖3所示。
圖3柱塞結(jié)構(gòu)示意圖
根據(jù)其結(jié)構(gòu),在SolidWorks中按圖3繪制草圖,標(biāo)注尺寸,并按結(jié)構(gòu)圖中的尺寸名稱命名,如“Dl@草圖l”。尺寸變量命名完成后,退出草圖,旋轉(zhuǎn)生成柱塞實(shí)體,將裝配所需的點(diǎn)、線和面命名,如將與滑靴配合的柱塞球頭面命名為facel,最后將模板模型文件保存為piston.sldprt。
2.3建立插件工程和交互式對(duì)話框資源
SolidWorks提供的二次開(kāi)發(fā)向?qū)е校琕isual C++ 6.0平臺(tái)上的向?qū)腔贏TL技術(shù)構(gòu)造的。ATL是一套C++模板庫(kù),與MFC的概念相似。使用ATL能夠快速地開(kāi)發(fā)出高效、簡(jiǎn)潔的代碼,同時(shí)對(duì)COM組件的開(kāi)發(fā)提供最大限度的代碼自動(dòng)生成以及可視化支持。
打開(kāi)Visual C++6.0,新建所需的插件工程,添加插件菜單和函數(shù),可自動(dòng)生成函數(shù)框架,只需添加相關(guān)函數(shù)代碼,運(yùn)行即可實(shí)現(xiàn)插件功能。如添加函數(shù)paraPump,則生成函數(shù)框架:
新建柱塞參數(shù)化建模對(duì)話框如圖4所示,并添加輸入數(shù)據(jù)編輯框。打開(kāi)ClassWizard,創(chuàng)建新的對(duì)話框類,添加成員變量,將各尺寸輸入編輯框賦予變量名稱。如將D1編輯框添加為double類刑的變量m—D1。
圖4柱塞參數(shù)化建模對(duì)話框
2.4參數(shù)化尺寸驅(qū)動(dòng)建模過(guò)程
SolidWorks程序打開(kāi)模板文件,由以下語(yǔ)句實(shí)現(xiàn):
其中D:piston.SLDPRT為模板文件的儲(chǔ)存目錄,模板文件打開(kāi)后彈出對(duì)話框,用戶輸入尺寸參數(shù),點(diǎn)擊確定,程序?qū)⒂脩糨斎氲膮?shù)通過(guò)對(duì)話框中的變量傳遞至尺寸變量:
其中piston為新建的對(duì)話框類,C為定義的單位系數(shù),值為0.001,將用戶輸入的參數(shù)轉(zhuǎn)化成毫米。這樣,就已經(jīng)將用戶指定的D1(柱塞外徑)的值傳遞到SolidWorks中了,接下來(lái)就是將D1的值賦給之前定義的尺寸變量“D1@草圖1”:
首先定義一個(gè)尺寸類指針,然后將尺寸變量放到指針中,使用Dimension::SetSystemValue3將變量賦值修改,最后使用ModelDoc2::EditRebuild3重建模型,完成尺寸驅(qū)動(dòng)建模過(guò)程。
2.5 自動(dòng)裝配程序開(kāi)發(fā)過(guò)程
完成各主要零件的建模后,根據(jù)圖2的設(shè)計(jì)思路,先新建裝配體文件,然后將零件導(dǎo)入裝配體中,根據(jù)交互式對(duì)話框的數(shù)據(jù)添加裝配關(guān)系,完成裝配過(guò)程。
通過(guò)SldWorks::NewAssembly新建裝配體文件,通過(guò)SldWorks::OpenDoc將零件打開(kāi)放入緩沖區(qū)中,再通過(guò)AssemblyDoc::AddComponent4將零件導(dǎo)人新建的裝配體中,通過(guò)AssemblyDoc::AddMate添加裝配關(guān)系。
添加裝配關(guān)系時(shí),需要先選擇裝配的點(diǎn)線面,以柱塞和滑靴之間的重合配合為例,在零件建模時(shí),若原點(diǎn)定在柱塞和滑靴的球面中心,則此時(shí)可通過(guò)ModelDocExtension::SelectByID2選擇分別位于柱塞和滑靴原點(diǎn)的點(diǎn),然后添加重合裝配關(guān)系,程序如下:
若建模時(shí)原點(diǎn)不在中心位置,可以在中心位置定義一個(gè)點(diǎn),再使用上述方法。也可通過(guò)選擇柱塞球頭面和滑靴球窩面,添加面重合,這種方法是普遍適用的。零件建模時(shí)將配合所需的面命名,在裝配體中通過(guò)循環(huán)遍歷面查找選擇所需的面,添加裝配關(guān)系。
先獲取部件指針,然后獲取零件實(shí)體指針,再獲取面指針。通過(guò)Body2::GetFirstFace和ModelDoc2::
GetEntityName遍歷零件各面及獲取面的名稱,使用判斷語(yǔ)句判斷是否所需的面,再使用Entity::Select4選擇所需的面。
自動(dòng)裝配前,需要用戶輸入?yún)?shù),如斜盤(pán)的傾斜角度以及轉(zhuǎn)子與斜盤(pán)中心之間的距離等,方法與零件建模數(shù)據(jù)傳遞相似。以斜盤(pán)傾角為例:
pAssmDoc—>AddMate(6,l,true,0,Degree);
其中的Degree即為創(chuàng)建的變量,用來(lái)將用戶輸入的數(shù)據(jù)傳遞到SolidWorks API函數(shù)的變量中去。
2.6整體界面設(shè)計(jì)
前述零件參數(shù)化建模及自動(dòng)裝配的程序開(kāi)飯完成后,需要將這些程序整合成DLL插件形式方便使用,根據(jù)DLL插件開(kāi)發(fā)的步驟,在SolidWorks菜單欄中添加菜單“pumpdesign”及菜單項(xiàng)“進(jìn)入軸向柱塞泵設(shè)計(jì)”,如圖5所示。
圖5菜單及菜單項(xiàng)
總體交互式界面設(shè)計(jì)如圖6所示。
圖6選擇項(xiàng)目對(duì)話框
3結(jié)論
以SolidWorks為平臺(tái),利用Visual C++6.0為開(kāi)發(fā)工具進(jìn)行二次開(kāi)發(fā),設(shè)計(jì)出軸向柱塞泵主要零部件的參數(shù)化建模以及自動(dòng)裝配程序,使設(shè)計(jì)難度及繁瑣度大大降低,并為軸向柱塞泵虛擬樣機(jī)的后續(xù)的仿真研究提供了基礎(chǔ)。
相關(guān)文章
- 2021-08-30高等院校藝術(shù)設(shè)計(jì)案例教程中文版AutoCAD 建筑設(shè)計(jì)案例
- 2021-08-28計(jì)算機(jī)輔助設(shè)計(jì)與制造 21世紀(jì)全國(guó)應(yīng)用型本科大機(jī)械系
- 2021-08-28計(jì)算機(jī)輔助設(shè)計(jì)與制造(CAD∕CAM)PDF下載
- 2021-08-27計(jì)算機(jī)輔助設(shè)計(jì)與制造 21世紀(jì)全國(guó)應(yīng)用型本科大機(jī)械系
- 2021-08-27計(jì)算機(jī)輔助設(shè)計(jì)與制造(CAD∕CAM)PDF下載
- 2021-08-24經(jīng)典技法118例AutoCAD 機(jī)械設(shè)計(jì)經(jīng)典技法118例中文版_
- 2021-08-24經(jīng)典實(shí)例學(xué)設(shè)計(jì)AutoCAD 2016從入門(mén)到精通 [李軻 編著]
- 2021-08-24精通AutoCAD 2013電氣設(shè)計(jì) [李波 主編] 2013年P(guān)DF下載
- 2021-08-24精通AutoCAD 2013機(jī)械設(shè)計(jì)_李波,辛雄主編_2013PDF下載
- 2021-08-24精通AutoCAD 2013建筑設(shè)計(jì) [劉冰 主編] 2013年P(guān)DF下載