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