劉亞飛,宋效凱,陳 凱
(長安大學(xué)工程機(jī)械學(xué)院,陜西西安710064)
?
振動(dòng)壓路機(jī)CAD系統(tǒng)設(shè)計(jì)與開發(fā)
劉亞飛,宋效凱,陳凱
(長安大學(xué)工程機(jī)械學(xué)院,陜西西安710064)
摘要:為實(shí)現(xiàn)振動(dòng)壓路機(jī)的快速設(shè)計(jì),通過Visual C#集成開發(fā)環(huán)境開發(fā)出一套基于SolidWorks平臺(tái)的振動(dòng)壓路機(jī)CAD系統(tǒng)。實(shí)現(xiàn)了利用SolidWorks API函數(shù)參數(shù)化創(chuàng)建振動(dòng)壓路機(jī)零部件模型和自動(dòng)裝配的功能。最后以振動(dòng)壓路機(jī)的激振器設(shè)計(jì)為應(yīng)用實(shí)例詳細(xì)介紹了振動(dòng)壓路機(jī)CAD系統(tǒng)的應(yīng)用。
關(guān)鍵詞:振動(dòng)壓路機(jī)CAD系統(tǒng)參數(shù)化自動(dòng)裝配
隨著CAD技術(shù)的快速發(fā)展,對(duì)于一些結(jié)構(gòu)復(fù)雜、零部件繁多的機(jī)械產(chǎn)品可以通過CAD系統(tǒng)來實(shí)現(xiàn)產(chǎn)品的快速設(shè)計(jì)、縮短研發(fā)周期、快速投入市場,取得時(shí)間優(yōu)勢。振動(dòng)壓路機(jī)作為公路、鐵路、建筑等施工中的重要機(jī)械設(shè)備,其具有結(jié)構(gòu)復(fù)雜、品種繁多、設(shè)計(jì)性能對(duì)壓實(shí)影響大等諸多特點(diǎn)。在傳統(tǒng)的設(shè)計(jì)過程中,振動(dòng)壓路機(jī)的設(shè)計(jì)進(jìn)度緩慢、研發(fā)周期長[1],這嚴(yán)重制約了振動(dòng)壓路機(jī)的快速發(fā)展。利用CAD系統(tǒng)可以快速完成耗時(shí)耗力的重復(fù)性工作[2],有效縮短研發(fā)周期。
1系統(tǒng)總體方案
本文開發(fā)的振動(dòng)壓路機(jī)CAD系統(tǒng)功能包括發(fā)動(dòng)機(jī)選型、零件設(shè)計(jì)計(jì)算及建模、零部件自動(dòng)裝配等功能,系統(tǒng)能夠完整、連續(xù)地實(shí)現(xiàn)振動(dòng)壓路機(jī)的設(shè)計(jì)計(jì)算及裝配。軟件功能具體包括:
1)振動(dòng)壓路機(jī)發(fā)動(dòng)機(jī)選型。選型前需要通過計(jì)算牽引力與牽引功率、振動(dòng)功率以及轉(zhuǎn)向功率確定振動(dòng)壓路機(jī)最大功率[3],然后結(jié)合生產(chǎn)廠家提供的機(jī)型參數(shù)選擇。
2)零件設(shè)計(jì)計(jì)算及建模。建模需根據(jù)主要參數(shù)和壓路機(jī)機(jī)構(gòu)特點(diǎn),通過擬定零件部分尺寸并通過計(jì)算得到其他相關(guān)尺寸,而后驗(yàn)證擬定是否合理,符合設(shè)計(jì)要求則采用該設(shè)計(jì)尺寸。通過調(diào)用SolidWorks API對(duì)象控制SolidWorks軟件平臺(tái)參數(shù)化繪制零件模型。
3)零部件自動(dòng)裝配。利用裝配特征法實(shí)現(xiàn)功能零部件、輔助零部件的自動(dòng)裝配。
振動(dòng)壓路機(jī)CAD系統(tǒng)總體結(jié)構(gòu)如圖1,系統(tǒng)采用便于設(shè)計(jì)、調(diào)試和維護(hù)的模塊化設(shè)計(jì)思想,共分為六大模塊。各模塊又包含若干子模塊,組成一套完整的CAD系統(tǒng)。系統(tǒng)是由基于Microsoft .NET Framework平臺(tái)通過C#語言編寫的應(yīng)用程序、SolidWorks平臺(tái)及數(shù)據(jù)庫組成,用以完成以下結(jié)構(gòu)圖各節(jié)點(diǎn)的設(shè)計(jì)任務(wù)。系統(tǒng)的設(shè)計(jì)界面采用Microsoft Visual C#標(biāo)準(zhǔn)控件搭建,并通過修改控件屬性及事件得到多級(jí)人機(jī)交互界面,在主界面及其子界面輸入主要設(shè)計(jì)參數(shù),即可生成所需的零部件,再在最后一個(gè)子界面中添加一個(gè)裝配按鈕,實(shí)現(xiàn)該子界面中的零件及相關(guān)零件的裝配,實(shí)現(xiàn)零部件的自動(dòng)裝配功能。
圖1 振動(dòng)壓路機(jī)CAD系統(tǒng)總體結(jié)構(gòu)圖
2系統(tǒng)開發(fā)關(guān)鍵技術(shù)
(1)建模技術(shù)
通過對(duì)SolidWorks API中的線條繪制函數(shù)、特征生成函數(shù)以及其他相關(guān)函數(shù)的參數(shù)賦以驅(qū)動(dòng)參數(shù)[4],來控制SolidWorks繪制零件草圖,并以草圖為基礎(chǔ)生成一系列的特征,從而實(shí)現(xiàn)建模的方法比較困難。因此,系統(tǒng)采用以事先創(chuàng)建的零件模型為基礎(chǔ),通過為用戶提供的交互式界面輸入?yún)?shù)變量,來控制模型的尺寸,達(dá)到參數(shù)化零件自動(dòng)建模的目的。
(2)裝配技術(shù)
目前,自動(dòng)裝配技術(shù)主要是采用零部件空間位姿變化或基于裝配特征的零件自動(dòng)裝配方法來進(jìn)行裝配[5]。但空間坐標(biāo)變換法進(jìn)行裝配后,零部件之間沒有相關(guān)性,且計(jì)算復(fù)雜,因此,本文采用特征裝配法裝配零部件。這種裝配方法是通過裝配基體零部件與裝配對(duì)象零部件特征的自動(dòng)選取,并調(diào)用SolidWorks中的配合函數(shù),對(duì)零部件在裝配環(huán)境中的自由度進(jìn)行約束,最終實(shí)現(xiàn)完全定位的一種方法。
(3)數(shù)據(jù)庫訪問技術(shù)
由于本文研究的振動(dòng)壓路機(jī)CAD系統(tǒng)是選用基于NET Framework平臺(tái)的C#語言作為開發(fā)工具,所以采用ADO.NET數(shù)據(jù)訪問技術(shù)[6]。系統(tǒng)通過ADO.NET數(shù)據(jù)提供程序連接到數(shù)據(jù)源,并執(zhí)行針對(duì)數(shù)據(jù)源的SQL命令,以實(shí)現(xiàn)相應(yīng)操作。
3主要功能模塊
(1)發(fā)動(dòng)機(jī)選型模塊
首先選擇發(fā)動(dòng)機(jī)的基本型式(水冷柴油發(fā)動(dòng)機(jī)或風(fēng)冷柴油發(fā)動(dòng)機(jī)),然后通過計(jì)算牽引力與牽引功率、振動(dòng)功率、轉(zhuǎn)向力矩與轉(zhuǎn)向功率并組合得到發(fā)動(dòng)機(jī)最大功率,根據(jù)發(fā)動(dòng)機(jī)基本型式和最大功率與數(shù)據(jù)庫中廠家提供的機(jī)型參數(shù)進(jìn)行對(duì)比,選擇能滿足要求的最小功率機(jī)型。
(2)自動(dòng)建模模塊
在零件自動(dòng)建模之前應(yīng)創(chuàng)建零件模型庫,模型庫參照國家標(biāo)準(zhǔn),利用SolidWorks的特征造型技術(shù)建立三維零件模型庫。對(duì)每一種類型的零件都要建立一個(gè)模型文件,在造型的過程中要對(duì)零件圖形進(jìn)行幾何約束和尺寸約束,使圖形完全定義,并對(duì)需要尺寸驅(qū)動(dòng)的特征尺寸定義易于理解的變量名。現(xiàn)以固定偏心塊為例,講解自動(dòng)建模過程。代碼如下:
swApp.OpenDoc(strPath + "固定偏心塊模型庫.SLDPRT", 1);//打開存儲(chǔ)于StrPath路徑下已創(chuàng)建的固定偏心塊模型文件
swModel = (ModelDoc2)swApp.ActiveDoc;//獲取當(dāng)前活動(dòng)的工作環(huán)境狀態(tài)
Dimension swDimension;//聲明尺寸變量
swDimension = (Dimension)swModel.Parameter(“D1@草圖1”);//將模型零件中需要驅(qū)動(dòng)的尺寸賦給尺寸變量swDimension
swDimension.SystemValue = R1 * 2;//將尺寸變量swDimension的值賦以新值R1*2,用以修改外輪廓大圓半徑
swDimension = (Dimension)swModel.Parameter(“D2@草圖1”);
swDimension.SystemValue = R2 * 2;
swDimension = (Dimension)swModel.Parameter(“b@草圖1”);
swDimension.SystemValue = b;
swDimension = (Dimension)swModel.Parameter(“d@草圖1”);
swDimension.SystemValue = r * 2;
swDimension = (Dimension)swModel.Parameter(“h@凸臺(tái)-拉伸1”);
swDimension.SystemValue = h;
swDimension = (Dimension)swModel.Parameter(“C@草圖1”);
swDimension.SystemValue = c;swModel.EditRebuild3();//對(duì)驅(qū)動(dòng)后的尺寸,進(jìn)行重新建模
swModel.ViewZoomtofit2();//調(diào)整視野為合適的大小
(3)自動(dòng)裝配模塊
在創(chuàng)建模型庫時(shí)要對(duì)配合特征命名,且名稱在該模型中是唯一的,這樣以便在遍歷識(shí)別特征時(shí)正確找到該裝配特征。自動(dòng)裝配過程主要包括以下幾個(gè)步驟:新建裝配體;插入零部件;添加配合關(guān)系;檢查干涉;完成裝配并保存。現(xiàn)以激振器的振動(dòng)軸與移動(dòng)偏心塊裝配為例,講解自動(dòng)裝配過程。代碼如下:
swApp.OpenDoc(strPath +“振動(dòng)軸模型庫.SLDPRT”,0);//打開已構(gòu)建的振動(dòng)軸模型文件,裝入內(nèi)存,為下一步添加組件做準(zhǔn)備
swApp.OpenDoc(strPath +“移動(dòng)偏心塊模型庫.SLDPRT”, 0);
swModel = (ModelDoc2)swApp.NewAssembly();//新建裝配體
AssemblyName = swModel.GetTitle();//獲取裝配體名稱
swAssy = (AssemblyDoc)swModel;//使當(dāng)前活動(dòng)工作環(huán)境對(duì)象為裝配體環(huán)境對(duì)象
swAssy.AddComponent(“振動(dòng)軸模型庫.SLDPRT”, 0, 0, 0);//添加組件
swAssy.AddComponent(“移動(dòng)偏心塊模型庫.SLDPRT”, -0.5, 0, 0.5);
swModel = (ModelDoc2)swApp.ActivateDoc2(AssemblyName + “.SLDASM”, true, ref errors);//使當(dāng)前裝配體工作環(huán)境對(duì)象為活動(dòng)工作對(duì)象
swModel.SelectByID(“振動(dòng)軸模型庫-1” +“@” + AssemblyName,“COMPONENT”, 0, 0, 0);//選取零部件
swModel.AndSelectByID(“移動(dòng)偏心塊模型庫-1” +“@” + AssemblyName,“COMPONENT”, 0, 0, 0);
SelectComponentFaceByName(“ZY同軸配合面”, 1);//自定義方法,按名稱選取已命名面
SelectComponentFaceByName(“ZY同軸配合面”, 2);
swAssy.AddMate3((int)swMateType_e.swMateCONCENTRIC, (int)swMateAlign_e.swMateAlignCLOSEST, false, 0, 0, 0, 0, 0, 0, 0, 0, false, out mateError);//利用AddMate()進(jìn)行兩個(gè)已命名面的配合
…//此處省略其他特征配合過程,其他特征配合過程與以上過程類似
swAssy.ToolsCheckInterference2();//檢查干涉
4系統(tǒng)應(yīng)用實(shí)例
本系統(tǒng)可以設(shè)計(jì)成exe可執(zhí)行文件形式獨(dú)立運(yùn)行,也可以設(shè)計(jì)成dll作為SolidWorks軟件插件的形式。若設(shè)計(jì)成exe可執(zhí)行文件,其線程獨(dú)立于SolidWorks軟件,可以不受SolidWorks影響。如圖2所示,為振動(dòng)壓路機(jī)激振器設(shè)計(jì)界面及生成模型。
圖2 激振器設(shè)計(jì)界面及生成模型
5結(jié)束語
本文以振動(dòng)壓路機(jī)為研究對(duì)象、Visual C#為開發(fā)環(huán)境、SolidWorks為支撐平臺(tái),采用模塊化、數(shù)據(jù)庫、參數(shù)化及自動(dòng)裝配等技術(shù)完成了振動(dòng)壓路機(jī)整機(jī)設(shè)計(jì)CAD系統(tǒng)。該系統(tǒng)大大提高了設(shè)計(jì)效率、縮短了設(shè)計(jì)周期。文中討論的相關(guān)方法,可以為其他產(chǎn)品CAD系統(tǒng)提供借鑒。
參考文獻(xiàn)
[1]王世良.YZ16單鋼輪振動(dòng)壓路機(jī)設(shè)計(jì)[D].四川大學(xué),2004.
[2]姚壽廣.現(xiàn)代CAD技術(shù)的回顧與發(fā)展展望[J].南京工業(yè)職業(yè)技術(shù)學(xué)院學(xué)報(bào),2008(2)1-5.
[3]李冰,焦生杰.振動(dòng)壓路機(jī)與振動(dòng)壓實(shí)技術(shù)[M].北京:人民交通出版社,2001:120-125.
[4]SolidWorks公司. SolidWorks API二次開發(fā)[M].北京:機(jī)械工業(yè)出版社,2005:24-32.
[5]田源,王欣,許濱,等.基于SolidWorks二次開發(fā)的自動(dòng)裝配技術(shù)研究與應(yīng)用[J].機(jī)械科學(xué)與技術(shù),2012,31(5):703-707.
[6]Skinner J, Bipin J, Mack D, et al. Professional ADO.NET Programming[M]. Birmingham:Wrox Press,2001:25-31.
[7]濮良貴,紀(jì)名剛.機(jī)械設(shè)計(jì):第8版[M].北京:高等教育出版社,2006:250-261.
[8]Watson K, Nagel C, Pedersen J H, et al. Beginning Visual C# 2010[M]. Birmingham:Wrox Press,2010:393-409.
Design and development of the CAD system for vibratory rollers
LIU Yafei, SONG Xiaokai, CHEN Kai
Abstract:In order to realize rapid design of the vibratory roller, a CAD system for vibratory rollers based on SolidWorks was developed through Visual C# integrated development environment. The CAD system realized the functions of building component models of the vibratory roller through SolidWorks API function parameterization, as well as automatic assembly. In the end, with the design of the vibration exciter of the vibratory roller as an example, we introduced the application of the CAD system for vibratory rollers in detail.
Keywords:vibratory roller; CAD system; parameterization; automatic assembly
收稿日期:2015-10-13
作者簡介:劉亞飛(1991-),男,安徽阜陽人,長安大學(xué)工程機(jī)械學(xué)院,在讀碩士,研究方向:計(jì)算機(jī)輔助設(shè)計(jì)技術(shù)。
中圖分類號(hào):TH128
文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1002-6886(2016)02-0059-04