何玉林,陳磊磊
(桂林電子科技大學(xué),廣西 桂林 541004)
機(jī)構(gòu)運(yùn)動(dòng)簡(jiǎn)圖測(cè)繪實(shí)驗(yàn)是《機(jī)械原理》課程的一個(gè)必開(kāi)實(shí)驗(yàn)項(xiàng)目。由于實(shí)驗(yàn)用的機(jī)構(gòu)模型在使用的過(guò)程中有的已經(jīng)損壞,再加上種類(lèi)和數(shù)量少,又缺少一些新型的機(jī)構(gòu),這在一定程度上影響了實(shí)驗(yàn)的深度和教學(xué)效果[1]。而利用計(jì)算機(jī)技術(shù)進(jìn)行虛擬實(shí)驗(yàn),既可以降低實(shí)驗(yàn)成本,又可以提高實(shí)驗(yàn)效果。本文根據(jù)機(jī)構(gòu)運(yùn)動(dòng)簡(jiǎn)圖測(cè)繪實(shí)驗(yàn)的要求,設(shè)計(jì)開(kāi)發(fā)了機(jī)構(gòu)運(yùn)動(dòng)簡(jiǎn)圖測(cè)繪虛擬實(shí)驗(yàn)系統(tǒng),讓學(xué)生在計(jì)算機(jī)上就可以自主地完成實(shí)驗(yàn)的相關(guān)內(nèi)容。
本系統(tǒng)是基于機(jī)構(gòu)運(yùn)動(dòng)簡(jiǎn)圖測(cè)繪實(shí)驗(yàn)的實(shí)驗(yàn)?zāi)康摹?shí)驗(yàn)要求和實(shí)驗(yàn)內(nèi)容進(jìn)行設(shè)計(jì)和開(kāi)發(fā)的。該實(shí)驗(yàn)是要求學(xué)生學(xué)會(huì)撇開(kāi)機(jī)構(gòu)的外形,掌握各種機(jī)構(gòu)模型運(yùn)動(dòng)簡(jiǎn)圖的測(cè)繪方法,并分析和計(jì)算機(jī)構(gòu)的自由度,以及各種運(yùn)動(dòng)副在機(jī)構(gòu)中的正確表達(dá)方法。
繪制機(jī)構(gòu)運(yùn)動(dòng)簡(jiǎn)圖的基本步驟是:①找出結(jié)構(gòu)的原動(dòng)件,手動(dòng)機(jī)構(gòu),觀察機(jī)構(gòu)的運(yùn)動(dòng)特性,確定構(gòu)件數(shù)和運(yùn)動(dòng)副的種類(lèi);②選擇一個(gè)合適的平面,確定機(jī)架點(diǎn)的相對(duì)位置;③任意假定原動(dòng)件的位置,從原動(dòng)件出發(fā),沿著傳遞路線,將構(gòu)件用運(yùn)動(dòng)副的符號(hào)連接起來(lái),完成運(yùn)動(dòng)簡(jiǎn)圖的草圖;④進(jìn)行機(jī)構(gòu)尺寸測(cè)量,并按照一定的比例,將草圖畫(huà)成正式的運(yùn)動(dòng)簡(jiǎn)圖;⑤進(jìn)行自由度計(jì)算,驗(yàn)證所畫(huà)機(jī)構(gòu)運(yùn)動(dòng)簡(jiǎn)圖是否正確。
基于以上內(nèi)容,本系統(tǒng)的設(shè)計(jì)應(yīng)該包括實(shí)驗(yàn)幫助、機(jī)構(gòu)選型、機(jī)構(gòu)運(yùn)動(dòng)演示、機(jī)構(gòu)運(yùn)動(dòng)簡(jiǎn)圖測(cè)繪、自由度計(jì)算、檢查和提交實(shí)驗(yàn)報(bào)告保存模塊等。系統(tǒng)采用Delphi軟件編程和Solid Works軟件繪圖仿真共同完成和實(shí)現(xiàn)。
本系統(tǒng)設(shè)計(jì)了一個(gè)主窗體,是系統(tǒng)的啟動(dòng)窗體,具有機(jī)構(gòu)選型和提供幫助文件的功能,供學(xué)生進(jìn)行機(jī)構(gòu)選型和查看幫助文件。在窗體里設(shè)計(jì)了多個(gè)按鈕,將幫助文件和機(jī)構(gòu)模型用工具欄控件在主窗體中顯示出來(lái)。通過(guò)Delphi軟件編程實(shí)現(xiàn)對(duì)Solid Works文件的調(diào)用,可以對(duì)測(cè)繪機(jī)構(gòu)模型隨時(shí)添加和更新,學(xué)生做實(shí)驗(yàn)時(shí)只要選擇相應(yīng)的機(jī)構(gòu)名稱就可以開(kāi)始該機(jī)構(gòu)運(yùn)動(dòng)仿真和簡(jiǎn)圖測(cè)繪。目前開(kāi)發(fā)出來(lái)的機(jī)構(gòu)選型25種。
機(jī)構(gòu)選型源代碼:
begin
NiuTouBao.Show;
NiuTouBao.SetJGStyle(1);//機(jī)構(gòu)的類(lèi)型 1牛頭刨 2鉚釘機(jī) 3拋光機(jī)4雙沖頭機(jī)構(gòu)……;
FigForm.SetJGStyle(1);
end;
機(jī)構(gòu)運(yùn)動(dòng)演示設(shè)置部分源代碼:
begin
if(MediaPlayer1.DeviceID<>0)then
begin
if(MediaPlayer1.Mode=mpplaying)then
begin MediaPlayer1.Stop; end
end;
case JiGouStyle of
1:begin MediaPlayer1.FileName:='牛頭刨床.avi'; NiuTouBao.Caption:='牛頭刨床 ';end;
2:begin MediaPlayer1.FileName:='鉚釘機(jī).avi';NiuTouBao.Caption:='鉚釘機(jī) '; end;
3:begin
…… //新增
end;
主窗體中的“幫助”功能主要內(nèi)容包括軟件使用說(shuō)明和實(shí)驗(yàn)指導(dǎo)書(shū)的內(nèi)容,見(jiàn)圖1中的“幫助”。將這些內(nèi)容編輯成PDF文檔,自成一體,用Delphi軟件編程進(jìn)行調(diào)用,界面整潔、美觀,操作方便,當(dāng)操作其他窗體如機(jī)構(gòu)運(yùn)動(dòng)仿真、繪圖時(shí),也便于學(xué)生查看,不影響操作。選擇幫助文件的程序代碼:
procedure TForm3.FormShow(Sender:TObject);
begin
if typ=2 then
PDF1.LoadFile('機(jī)構(gòu)運(yùn)動(dòng)簡(jiǎn)圖繪虛擬仿真實(shí)驗(yàn)指導(dǎo)書(shū).pdf')
else if typ=1 then
PDF1.LoadFile('機(jī)械原理虛擬實(shí)驗(yàn)平臺(tái)使用說(shuō)明.pdf');
end;
每個(gè)機(jī)構(gòu)模型測(cè)繪的功能界面設(shè)計(jì)如圖1所示,主要包括機(jī)構(gòu)運(yùn)動(dòng)演示、基本圖元繪制工具、繪圖、分析檢查、自由度計(jì)算等。
圖1 機(jī)構(gòu)運(yùn)動(dòng)簡(jiǎn)圖繪制界面
機(jī)構(gòu)運(yùn)動(dòng)演示是通過(guò)Delphi軟件編程,調(diào)用Solid Works軟件繪制好的機(jī)構(gòu)三維圖,可以實(shí)現(xiàn)機(jī)構(gòu)運(yùn)動(dòng)的仿真,還可以實(shí)現(xiàn)運(yùn)動(dòng)快進(jìn)、暫停等控制,從不同的角度觀察機(jī)構(gòu)的運(yùn)動(dòng)情況,便于繪圖平面的選擇,如圖1中的①所示。
基本圖元繪制工具。基本圖元是指繪制機(jī)構(gòu)運(yùn)動(dòng)簡(jiǎn)圖時(shí)一次操作所繪制的最小圖形,一方面是考慮利用它們能夠靈活繪制出機(jī)構(gòu)運(yùn)動(dòng)簡(jiǎn)圖、方便結(jié)構(gòu)表達(dá)、數(shù)據(jù)計(jì)算、存儲(chǔ)等,另一方面圖元選擇要遵守“快速性、直觀性、可視性、方便性、可擴(kuò)展性”的基本原則[3],因此,本系統(tǒng)選擇了構(gòu)件和運(yùn)動(dòng)副作為基本圖元,符合機(jī)構(gòu)運(yùn)動(dòng)簡(jiǎn)圖的表達(dá)方式,可以提高繪制機(jī)構(gòu)運(yùn)動(dòng)簡(jiǎn)圖的效率和靈活性,通過(guò)編程也容易實(shí)現(xiàn)。系統(tǒng)中的基本圖元共有15種如圖1中的②所示。
機(jī)構(gòu)運(yùn)動(dòng)簡(jiǎn)圖繪制如圖1中的③所示,用鼠標(biāo)點(diǎn)擊②相應(yīng)的圖元,即可在繪圖區(qū)域繪制每一種機(jī)構(gòu)的機(jī)構(gòu)運(yùn)動(dòng)簡(jiǎn)圖,可以實(shí)現(xiàn)捕捉、導(dǎo)航、刪除、清屏、退出當(dāng)前操作、撤銷(xiāo)上一步等功能;其測(cè)繪功能可以利用Solid Works軟件的測(cè)量工具直接進(jìn)行測(cè)量。
繪制完圖后,可以進(jìn)行在線檢查、保存打印、分析等,還可以對(duì)原來(lái)繪制的機(jī)構(gòu)運(yùn)動(dòng)簡(jiǎn)圖進(jìn)行加載,如圖1中的④所示;輸入構(gòu)件數(shù)、高副數(shù)、低副數(shù)等,即可計(jì)算自由度,如圖1中的⑤所示。
繪圖檢查程序代碼:
begin
//繪圖檢查
zw:=FigForm.PanDuan();
if zw=true then
showMessage('perfect!恭喜你,繪制的機(jī)構(gòu)簡(jiǎn)圖是正確的')
else
ShowMessage('很遺憾,機(jī)構(gòu)簡(jiǎn)圖繪制有誤 ');
end;
結(jié)果保存程序代碼:
begin
//FigForm.DaYin();
//保存圖片 //打印
Hand:=FindWindow(nil,'牛頭刨床 ');
GetWindowRect(hand,rect);
ScreenCap(rect.Left+680,rect.Top+80,rect.Left+666+440,rect.Top+481);//
LeftPos,TopPos,RightPos,BottomPos:integer
end;
本文開(kāi)發(fā)了基于Delphi軟件編程和Solid Works繪圖軟件的機(jī)構(gòu)運(yùn)動(dòng)簡(jiǎn)圖測(cè)繪虛擬仿真實(shí)驗(yàn)教學(xué)系統(tǒng),實(shí)驗(yàn)系統(tǒng)已經(jīng)在2013級(jí)機(jī)械電子工程專(zhuān)業(yè)學(xué)生中得到應(yīng)用,取得了良好的實(shí)驗(yàn)效果。學(xué)生根據(jù)幫助文件,可以在課堂外自主進(jìn)行實(shí)驗(yàn),通過(guò)動(dòng)畫(huà)演示,可以了解一些新的機(jī)構(gòu),解決了實(shí)驗(yàn)?zāi)P透碌膯?wèn)題,在提高學(xué)生動(dòng)手能力的同時(shí),可以提高學(xué)生的觀察和思維能力,從而提高學(xué)生對(duì)機(jī)械原理課程的學(xué)習(xí)興趣。
[1]馬曉麗.機(jī)構(gòu)運(yùn)動(dòng)簡(jiǎn)圖測(cè)繪虛擬實(shí)驗(yàn)系統(tǒng)的研制[J].機(jī)械,2010,27(5):33-34.
[2]宋一兵,趙景波,李春艷,等.Delphi7基礎(chǔ)教程[M].北京:機(jī)械工業(yè)出版社,2005.
[3]王成志,黃凱旋,陳飛燕.計(jì)算機(jī)可視化繪制機(jī)構(gòu)及其動(dòng)畫(huà)系統(tǒng)的研究[J].機(jī)械設(shè)計(jì)與制造,2011,(3):24-25.