畢業(yè)設(shè)計(jì)(論文)牛頭刨床六桿機(jī)構(gòu)運(yùn)動(dòng)分析
《畢業(yè)設(shè)計(jì)(論文)牛頭刨床六桿機(jī)構(gòu)運(yùn)動(dòng)分析》由會(huì)員分享,可在線閱讀,更多相關(guān)《畢業(yè)設(shè)計(jì)(論文)牛頭刨床六桿機(jī)構(gòu)運(yùn)動(dòng)分析(80頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、河南理工大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 摘 要 在工程技術(shù)領(lǐng)域,經(jīng)常會(huì)遇到一些需要反復(fù)操作,重復(fù)性很高的工作,如果能有一個(gè)供反復(fù)操作且操作簡(jiǎn)單的專(zhuān)用工具,圖形用戶(hù)界面就是最好的選擇。如在本設(shè)計(jì)中對(duì)于牛頭刨床平面六桿機(jī)構(gòu)來(lái)說(shuō),為了保證結(jié)構(gòu)參數(shù)與運(yùn)動(dòng)參數(shù)不同的牛頭刨床的運(yùn)動(dòng)特性,即刨刀在切削過(guò)程中接近于等速運(yùn)動(dòng)從而保證加工質(zhì)量和延長(zhǎng)刀具壽命,以及刀具的急回性能從而提高生產(chǎn)率,這樣的問(wèn)題如果能夠通過(guò)設(shè)計(jì)一個(gè)模型平臺(tái),之后只需改變參量就可以解決預(yù)期的問(wèn)題,這將大大的提高設(shè)計(jì)效率。本設(shè)計(jì)中正是通過(guò)建立牛頭刨床六桿機(jī)構(gòu)的數(shù)學(xué)模型,然后用MATLAB程序設(shè)計(jì)出一個(gè)友好的人機(jī)交互的圖形界面,并將數(shù)學(xué)
2、模型參數(shù)化,使用戶(hù)只需改變牛頭刨床的參數(shù)就可以方便的實(shí)現(xiàn)運(yùn)動(dòng)分析和運(yùn)動(dòng)仿真,用戶(hù)可以形象直觀地觀察到牛頭刨床的運(yùn)動(dòng)軌跡、速度變化及加速度變化規(guī)律。 關(guān)鍵詞:牛頭刨床 六桿機(jī)構(gòu) MATLAB 運(yùn)動(dòng)仿真 程序開(kāi)發(fā) Abstract In the engineering area, often repeatedly encountered some operational needs, repetitive highly, and if the operation can be repeated for a simple operation
3、and dedicated tool graphical user interface is the best choice. As in the planer graphic design for six pole bodies, and campaigns to ensure the structural parameters of different parameters planer movement characteristics, planning tool in the process of cutting close to equal campaign to ensure pr
4、ocessing quality and extended life cutlery and cutlery rush back to the performance enhancing productivity, If such issues can be adopted to design a model platform parameter can be changed only after the expected settlement, which will greatly enhance the efficiency of the design. It is through the
5、 establishment of this design planer six pole bodies mathematical model, and then use MATLAB to devise procedures of a friendly aircraft in the world graphics interface, and mathematical models of the parameters, so that users only need to change the parameters planer can facilitate the realization
6、of movement analysis and sports simulation, Users can visual image observed in planer movement trajectories, speed changes and acceleration changes. Keywords:Planer 6 pole bodies MATLAB Campaign simulation Procedure development. 目錄 1 緒論...............................................
7、................4 2牛頭刨床六桿機(jī)構(gòu)運(yùn)動(dòng)分析程序設(shè)計(jì) 2.1 MATLAB介紹 ................................................5 2.2 MATLAB的特點(diǎn) ..............................................6 2.3 用MATLAB處理工程問(wèn)題優(yōu)缺點(diǎn)................................7 3牛頭刨床運(yùn)動(dòng)分析的模型 3.1 基本概念與原理..........................................
8、.....9 3.2 牛頭刨床六桿機(jī)構(gòu)的數(shù)學(xué)模型 .................................9 4 圖形用戶(hù)界面GUI 4.1界面設(shè)計(jì)的原則 .............................................13 4.2 功能要求 .................................................. 16 4.3界面結(jié)構(gòu)設(shè)計(jì) ................................................17 4.4 程序框圖的設(shè)計(jì) .....................
9、........................19 5運(yùn)動(dòng)仿真程序界面設(shè)計(jì)與編程實(shí)現(xiàn) 5.1 句柄圖形體系 .................................................21 5.1.1 圖形對(duì)象、對(duì)象句柄和句柄圖形樹(shù)結(jié)構(gòu)..................... 22 5.1.2 對(duì)象屬性 ..............................................23 5.1.3 對(duì)象句柄的獲取方法.....................................2
10、3 5.1.4 對(duì)象句柄的獲取和設(shè)置...................................25 5.2 主界面參數(shù)含義 ............................................. 27 5.3 界面制作步驟................................................ 27 6總結(jié) ............................................................. 49 7致謝....................................
11、.......................... 50 8參考書(shū)目.......................................................... 51 9附錄 程序源代碼.................................................... 52 1 緒論 1.1本課題的意義 機(jī)構(gòu)運(yùn)動(dòng)分析是不考慮引起機(jī)構(gòu)運(yùn)動(dòng)的外力的影響,而僅從幾何角度出發(fā),根據(jù)已知的原動(dòng)件的運(yùn)動(dòng)規(guī)律(通常假設(shè)為勻速運(yùn)動(dòng)),確定機(jī)構(gòu)其它構(gòu)件上各點(diǎn)的位移、速度、加速度,或構(gòu)件的角位移、角速度、角加速度等運(yùn)動(dòng)參數(shù)。無(wú)論是
12、分析研究現(xiàn)有機(jī)械的工作性能,還是優(yōu)化綜合新機(jī)械,機(jī)構(gòu)運(yùn)動(dòng)分析都是十分重要的。 通過(guò)對(duì)機(jī)構(gòu)的位移和軌跡分析,可以考察某構(gòu)件能否實(shí)現(xiàn)預(yù)定的位置、構(gòu)件上某點(diǎn)能否實(shí)現(xiàn)預(yù)定的軌跡要求,可以確定從動(dòng)件的行程或所需的運(yùn)動(dòng)空間,據(jù)此判斷運(yùn)動(dòng)中是否發(fā)生碰撞干涉或確定機(jī)構(gòu)的外形輪廓尺寸。 通過(guò)速度和加速度分析可以了解機(jī)構(gòu)從動(dòng)件的速度、加速度的變化規(guī)律能否達(dá)到工作要求。 而在本設(shè)計(jì)課題中通過(guò)對(duì)機(jī)構(gòu)的加速度和速度分析,就可以在設(shè)計(jì)牛頭刨床的導(dǎo)桿機(jī)構(gòu)時(shí)保證刨刀在切削過(guò)程中接近于等速運(yùn)動(dòng),從而保證加工質(zhì)量和延長(zhǎng)刀具壽命;此外還保證了刀具的急回性能,從而提高了生產(chǎn)率。 1.2 六桿機(jī)構(gòu)的研究
13、現(xiàn)狀: 以機(jī)電一體化為核心的現(xiàn)代機(jī)械系統(tǒng)不斷創(chuàng)新,推動(dòng)著現(xiàn)代機(jī)構(gòu)學(xué)不斷發(fā)展。平面連桿機(jī)構(gòu)運(yùn)動(dòng)綜合在工程應(yīng)用中有重要的意義,一直為機(jī)構(gòu)學(xué)領(lǐng)域的經(jīng)典課題之一。較早時(shí)人們主要用幾何圖解法,但是其求解精度和適用范圍都受到了極大的限制。隨著計(jì)算機(jī)技術(shù)的發(fā)展,在軌跡綜合中引入了計(jì)算機(jī),并開(kāi)始出現(xiàn)代數(shù)法和優(yōu)化法,把機(jī)構(gòu)學(xué)問(wèn)題轉(zhuǎn)化為數(shù)學(xué)問(wèn)題。 1.3本課題的目的 本課題的目的是通過(guò)編制MATLAB程序,從而設(shè)計(jì)出一個(gè)用戶(hù)界面,用戶(hù)可以通過(guò)對(duì)界面上面參數(shù)的操作而實(shí)現(xiàn)對(duì)牛頭刨床運(yùn)動(dòng)分析和運(yùn)動(dòng)仿真,以此觀察牛頭刨床的運(yùn)動(dòng)特性是否合乎要求。 2 MATLAB軟件介紹 2.1 MATLAB
14、軟件介紹 如今,計(jì)算機(jī)技術(shù)已經(jīng)被應(yīng)用于各行各業(yè),科研和工程計(jì)算領(lǐng)域也不例外。對(duì)于經(jīng)常需要大量數(shù)據(jù)進(jìn)行分析處理或者對(duì)復(fù)雜問(wèn)題進(jìn)行計(jì)算求解的科研工作者來(lái)說(shuō),計(jì)算機(jī)技術(shù)的引入大大的降低了工作強(qiáng)度,是原本復(fù)雜的工作變得簡(jiǎn)單,從而極大的提高了工作效率。 隨著科學(xué)研究的不斷深入,以及工程應(yīng)用不斷朝著專(zhuān)業(yè)化、精確化方向發(fā)展,科研工作者以及工程技術(shù)人員對(duì)計(jì)算機(jī)技術(shù)的要求也越來(lái)越高。面對(duì)越來(lái)越繁重的科學(xué)以及工程計(jì)算任務(wù),雖然用傳統(tǒng)的c或Fortran語(yǔ)言也能完成任務(wù),但是程序設(shè)計(jì)者所承擔(dān)的編程工作是極為繁重的,而且要求程序設(shè)計(jì)者對(duì)算法有比較深入的理解,這就使工作人員不得不將大量的時(shí)間和精力放在
15、與研究課題關(guān)系不大的計(jì)算編程上來(lái)。為了減輕科技工作者的壓力,使工作人員將時(shí)間和精力更多的放在建立模型等關(guān)鍵性的工作中,許多公司相繼開(kāi)發(fā)了一系列的數(shù)學(xué)應(yīng)用軟件,如MATHEMATICA、Maple、MATHCAD以及MATLAB等,其中MATLAB以其強(qiáng)大的功能和極高的編程效率吸引了眾多的用戶(hù)。 MATLAB 是MATRIX LABORATORY(“矩陣實(shí)驗(yàn)室”)的縮寫(xiě),是由美國(guó)MATHWORKS 公司開(kāi)發(fā)的集數(shù)值計(jì)算、符號(hào)計(jì)算和圖形可視化三大基本功能于一體的,功能強(qiáng)大、操作簡(jiǎn)單的語(yǔ)言。是國(guó)際公認(rèn)的優(yōu)秀數(shù)學(xué)應(yīng)用軟件之一。 20世紀(jì)80年代初期,Cleve Moler與John Little
16、等利用C語(yǔ)言開(kāi)發(fā)了新一代的MATLAB語(yǔ)言,此時(shí)的MATLAB語(yǔ)言已同時(shí)具備了數(shù)值計(jì)算功能和簡(jiǎn)單的圖形處理功能。1984年,Cleve Moler與John Little等正式成立了MATHWORKS公司,把MATLAB語(yǔ)言推向市場(chǎng),并開(kāi)始了對(duì)MATLAB工具箱等的開(kāi)發(fā)設(shè)計(jì)。1993年,MATHWORKS公司推出了基于個(gè)人計(jì)算機(jī)的MATLAB 4.0版本,到了1997年又推出了MATLAB 5.X版本(Release 11),并在2000年又推出了最新的MATLAB 6版本(Release 12),如今,MATLAB7.0已經(jīng)問(wèn)世。 現(xiàn)在,MATLAB已經(jīng)發(fā)展成為適合多學(xué)科的大型軟件,在世界
17、各高校,MATLAB已經(jīng)成為線性代數(shù)、數(shù)值分析、數(shù)理統(tǒng)計(jì)、優(yōu)化方法、自動(dòng)控制、數(shù)字信號(hào)處理、動(dòng)態(tài)系統(tǒng)仿真等高級(jí)課程的基本教學(xué)工具。特別是最近幾年,MATLAB在我國(guó)大學(xué)生數(shù)學(xué)建模競(jìng)賽中的應(yīng)用,為參賽者在有限的時(shí)間內(nèi)準(zhǔn)確、有效的解決問(wèn)題提供了有力的保證。 2.2 MATLAB軟件的特點(diǎn) MATLAB是一種高度集成化的科學(xué)計(jì)算環(huán)境,是集數(shù)值計(jì)算和圖形處理等功能于一體的工程計(jì)算應(yīng)用軟件。MATLAB不僅可以處理代數(shù)問(wèn)題和數(shù)值分析問(wèn)題,而且還具有強(qiáng)大的圖形處理和仿真模擬等功能。MATLAB能夠很好的幫助工程師及科學(xué)家解決實(shí)際問(wèn)題,它經(jīng)過(guò)20多年來(lái)的不斷完善和改進(jìn),已經(jīng)成為公認(rèn)的優(yōu)秀的數(shù)學(xué)應(yīng)
18、用軟件之一。 概括地講,整個(gè)MATLAB系統(tǒng)由兩部分組成,即MATLAB內(nèi)核及輔助工具箱,兩者的調(diào)用構(gòu)成了MATLAB的強(qiáng)大功能。MATLAB語(yǔ)言以數(shù)組為基本數(shù)據(jù)單位,包括控制流語(yǔ)句、函數(shù)、數(shù)據(jù)結(jié)構(gòu)、輸入輸出及面向?qū)ο蟮忍攸c(diǎn)的高級(jí)語(yǔ)言,它具有以下主要特點(diǎn): 1)MATLAB的程序設(shè)計(jì)語(yǔ)言編程效率較高,運(yùn)算符和庫(kù)函數(shù)極其豐富,語(yǔ)言簡(jiǎn)潔,編程效率高,MATLAB除了提供和C語(yǔ)言一樣的運(yùn)算符號(hào)外,還提供廣泛的矩陣和向量運(yùn)算符。利用其運(yùn)算符號(hào)和庫(kù)函數(shù)可使其程序相當(dāng)簡(jiǎn)短,兩三行語(yǔ)句就可實(shí)現(xiàn)幾十行甚至幾百行C或FORTRAN的程序功能,從而極大的簡(jiǎn)化了線性運(yùn)算,而線性運(yùn)算是整個(gè)數(shù)值計(jì)算的基礎(chǔ),所以以矩
19、陣作為基本語(yǔ)言要素可以提高數(shù)值計(jì)算的編程效率。MATLAB本身?yè)碛胸S富的庫(kù)函數(shù),并具有結(jié)構(gòu)化的流程控制語(yǔ)句和運(yùn)算符,用戶(hù)可以在使用的過(guò)程中方便自如的使用。 2)既具有結(jié)構(gòu)化的控制語(yǔ)句(如for循環(huán)、while循環(huán)、break語(yǔ)句、if語(yǔ)句和switch語(yǔ)句),又有面向?qū)ο蟮木幊烫匦浴? 3)圖形功能強(qiáng)大。它既包括對(duì)二維和三維數(shù)據(jù)可視化、圖像處理、動(dòng)畫(huà)制作等高層次的繪圖命令,也包括可以修改圖形及編制完整圖形界面的、低層次的繪圖命令。 4)功能強(qiáng)大的工具箱。工具箱可分為兩類(lèi):功能性工具箱和學(xué)科性工具箱。功能性工具箱主要用來(lái)擴(kuò)充其符號(hào)計(jì)算功能、圖示建模仿真功能、文字處理功能以及與硬件實(shí)時(shí)交互的功
20、能。而學(xué)科性工具箱是專(zhuān)業(yè)性比較強(qiáng)的,如優(yōu)化工具箱、統(tǒng)計(jì)工具箱、控制工具箱、小波工具箱、圖象處理工具箱、通信工具箱等。 5)易于擴(kuò)充。除內(nèi)部函數(shù)外,所有MATLAB的核心文件和工具箱文件都是可讀可改的源文件,用戶(hù)可修改源文件和加入自己的文件,它們可以與庫(kù)函數(shù)一樣被調(diào)用。 當(dāng)然,任何事物都不是十全十美的。與C、Fortran等傳統(tǒng)的程序設(shè)計(jì)語(yǔ)言相比,MATLAB的程序設(shè)計(jì)語(yǔ)言的一個(gè)顯著缺點(diǎn)即使循環(huán)代碼執(zhí)行效率較低,這是與其執(zhí)行方式直接相關(guān)的。MATLAB編寫(xiě)的程序在應(yīng)用的過(guò)程中為解釋執(zhí)行,既不需要編譯生成也不生成可執(zhí)行文件,而是解釋一句,執(zhí)行一句,其速度是可想而知的了。當(dāng)然這個(gè)問(wèn)題也不是不可以
21、解決的,由于MATLAB以矩陣作為基本的程序設(shè)計(jì)語(yǔ)言要素,對(duì)于在c、Fortran的那個(gè)編程語(yǔ)言中需要使用循環(huán)來(lái)解決的問(wèn)題,MATLAB程序設(shè)計(jì)語(yǔ)言中巧妙的利用矩陣的特點(diǎn),就可以避免使用循環(huán)代碼。所以,通過(guò)對(duì)MATLAB的深入學(xué)習(xí),提高編程技巧,完全可以做到揚(yáng)長(zhǎng)避短,并充分發(fā)揮MATLAB語(yǔ)言的強(qiáng)大功能。 目前,MATLAB已經(jīng)成為國(guó)際上公認(rèn)的優(yōu)秀數(shù)學(xué)應(yīng)用軟件之一。 2.3 用MATLAB處理工程問(wèn)題優(yōu)缺點(diǎn) MATLAB是MATHWOTKS公司于1982年推出的一套高性能的數(shù)值計(jì)算和可視化軟件。它集數(shù)值分析、矩陣運(yùn)算、信號(hào)處理和圖形顯示于一體,構(gòu)成了一個(gè)方便、界面友好的用戶(hù)環(huán)境。它
22、還包括了TOOLBOX(工具箱)的各類(lèi)問(wèn)題的求解工具,可用來(lái)求解特定學(xué)科的問(wèn)題。其特點(diǎn)是: (1)可擴(kuò)展性:MATLAB最重要的特點(diǎn)是易于擴(kuò)展,它允許用戶(hù)自行建立指定功能的M文件。對(duì)于一個(gè)從事特定領(lǐng)域的工程師來(lái)說(shuō),不僅可利用MATLAB所提供的函數(shù)及基本工具箱函數(shù),還可方便地構(gòu)造出專(zhuān)用的函數(shù),從而大大擴(kuò)展了其應(yīng)用范圍。當(dāng)前支持MATLAB的商用Toolbox(工具箱)有數(shù)百種之多。而由個(gè)人開(kāi)發(fā)的Toolbox則不可計(jì)數(shù)。 (2)易學(xué)易用性:MATLAB不需要用戶(hù)有高深的數(shù)學(xué)知識(shí)和程序設(shè)計(jì)能力,不需要用戶(hù)深刻了解算法及編程技巧。 (3)高效性:MATLAB語(yǔ)句功能十
23、分強(qiáng)大,一條語(yǔ)句可完成十分復(fù)雜的任務(wù)。如FFT語(yǔ)句可完成對(duì)指定數(shù)據(jù)的快速傅立葉變換,這相當(dāng)于上百條C語(yǔ)言語(yǔ)句的功能。它大大加快了工程技術(shù)人員從事軟件開(kāi)發(fā)的效率。據(jù)MATHWOKS公司聲稱(chēng),MATLAB軟件中所包含的MATLAB源代碼相當(dāng)于70萬(wàn)行C代碼。 由于MATLAB具有如此之多的特點(diǎn),在歐美高等院校,MATLAB已成為應(yīng)用于線性代數(shù)、自動(dòng)控制理論、數(shù)理統(tǒng)計(jì)、數(shù)字信號(hào)處理、時(shí)間序列分析、動(dòng)態(tài)系統(tǒng)仿真等高級(jí)課程的基本教學(xué)工具;在研究單位、工業(yè)部門(mén),MATLAB也被廣泛用于研究和解決各種工程問(wèn)題。當(dāng)前在全世界有超過(guò)40萬(wàn)工程師和科學(xué)家使用它來(lái)分析和解決問(wèn)題。 然而MATLAB自身所
24、存在的某些缺點(diǎn)限制了它的應(yīng)用范圍。 (1) MATLAB是一種解釋性語(yǔ)言,因此它的實(shí)時(shí)效率是相當(dāng)差的。 (2) MATLAB程序不能脫離其環(huán)境運(yùn)行,因?yàn)镸ATLAB不是計(jì)算機(jī)語(yǔ)言,雖然如今它已經(jīng)可以進(jìn)行編譯,但是還不太方便。 3 牛頭刨床運(yùn)動(dòng)分析的模型 3.1 基本概念與原理 機(jī)構(gòu)運(yùn)動(dòng)分析的任務(wù)是在已知機(jī)構(gòu)尺寸及原動(dòng)件運(yùn)動(dòng)規(guī)律的情況下,確定機(jī)構(gòu)中其他構(gòu)件上某些點(diǎn)的軌跡、位移、速度、加速度和構(gòu)件的角位移、角速度及角加速度。上述這些內(nèi)容,不論是設(shè)計(jì)新的機(jī)器,還是為了了解現(xiàn)有機(jī)械的運(yùn)動(dòng)性能,都是十分必要的,而且它還是研究機(jī)械動(dòng)力性能的必要基礎(chǔ)和前提。 對(duì)
25、于牛頭刨床來(lái)說(shuō),其刨刀在工作行程中應(yīng)該接近等速,,而回程速度卻應(yīng)高于前者速度,從而提高效率。為了確定牛頭刨床的設(shè)計(jì)是否滿(mǎn)足要求,就必須對(duì)其進(jìn)行運(yùn)動(dòng)分析。 機(jī)構(gòu)運(yùn)動(dòng)分析的方法很多,主要有圖解法和解析法。當(dāng)需要簡(jiǎn)捷直觀地了解機(jī)構(gòu)的某個(gè)或某幾個(gè)位置的運(yùn)動(dòng)特性時(shí),采用圖解法比較方便,而且精度也能滿(mǎn)足實(shí)際問(wèn)題的要求。而當(dāng)需要精確地知道或要了解機(jī)構(gòu)在整個(gè)運(yùn)動(dòng)循環(huán)過(guò)程中的運(yùn)動(dòng)特性時(shí),采用解析法并借助于計(jì)算機(jī),不僅可以獲得很高的計(jì)算精度及一系列位置的分析結(jié)果,并能繪出機(jī)構(gòu)相應(yīng)的運(yùn)動(dòng)線圖,同時(shí)還可以把機(jī)構(gòu)分析和機(jī)構(gòu)綜合問(wèn)題聯(lián)系起來(lái),以便于機(jī)構(gòu)的優(yōu)化設(shè)計(jì)。本設(shè)計(jì)正是基于這些用MATLAB編程實(shí)現(xiàn)牛頭刨床的運(yùn)動(dòng)分
26、析以及圖解法無(wú)法實(shí)現(xiàn)的運(yùn)動(dòng)仿真。 3.2 牛頭刨床的數(shù)學(xué)模型 如下圖所示為牛頭刨床的機(jī)構(gòu)簡(jiǎn)圖。設(shè)已知結(jié)構(gòu)參數(shù)為:L1,L3,L5,G,H,原動(dòng)件的轉(zhuǎn)角φ1和轉(zhuǎn)速n1。 解:如圖,先建立一個(gè)直角坐標(biāo)系,并標(biāo)出各桿矢及其方位角。其中有四個(gè)未知變量φ3,φ5,P及S。為求解需建立兩個(gè)封閉矢量方程,為此需利用兩個(gè)封閉圖形ABDA及DEFD。 1)求φ3、ω3及α3 由封閉形ABDA可得 ………………………………………(1) 分別用i和j點(diǎn)積上式兩端,有
27、 聯(lián)解上面兩個(gè)式子可得: 圖 3—1 牛頭刨床結(jié)構(gòu)模型 式(1)對(duì)時(shí)間t求導(dǎo)數(shù),注意P為變量,有 …………………………(2) 可用點(diǎn)積上式兩端以消去,并利用矢量方程解析法,有 用點(diǎn)積(2)兩端可消去,并注意到,則 再將式(2)對(duì)時(shí)間t求導(dǎo),則有
28、 可分別用和點(diǎn)積上式兩端,以消去和,注意,則 得 = 2) 求s、、 由封閉圖形DEFAD可得 ………………………………(3) 分別用i和j點(diǎn)積上面的式子兩端,有 有上面第二
29、個(gè)式子可得 由上面第一個(gè)式子可得 對(duì)上面的(3)式對(duì)時(shí)間t取導(dǎo)可得 …………………………..(4) 分別用j、點(diǎn)積上式,可得 (4)式對(duì)時(shí)間t求導(dǎo)可得 分別用就j和點(diǎn)積上面的式子可得 4 圖形用戶(hù)界面GUI 用戶(hù)界面或接口是指:人與機(jī)器之間或程序之間交互作用的工具和方法。如、鍵盤(pán)、鼠標(biāo)、跟蹤球、話筒都可以成為與計(jì)算機(jī)交換信息的接口。
30、 圖形用戶(hù)界面(GUI:Graphic User Interface)則是指有窗口、光標(biāo)、按鍵、菜單、文字說(shuō)明等對(duì)象構(gòu)成的一個(gè)用戶(hù)界面。用戶(hù)通過(guò)一定的方法(如鼠標(biāo)或鍵盤(pán))選擇、激活這些圖形對(duì)象,使計(jì)算機(jī)產(chǎn)生某種動(dòng)作或變化,比如實(shí)現(xiàn)計(jì)算、繪圖等。 4.1界面設(shè)計(jì)的原則 GUI的設(shè)計(jì)包括編寫(xiě)源代碼之前的所有工作。設(shè)計(jì)者必須重視設(shè)計(jì)工作,不能急于編寫(xiě)源代碼。否則,編程員思路不清晰,開(kāi)發(fā)過(guò)程中回走很多彎路,因而開(kāi)發(fā)的效率低下,并且設(shè)計(jì)出的GUI也不一定讓人滿(mǎn)意。那么如何進(jìn)行成功的設(shè)計(jì),就應(yīng)該從以下兩個(gè)方面予以考慮: (1) GUI 設(shè)計(jì)的指導(dǎo)原則 (2) GUI 設(shè)計(jì)應(yīng)遵循的步
31、驟。 指導(dǎo)原則: 可以用就個(gè)字來(lái)概括優(yōu)秀的設(shè)計(jì)標(biāo)準(zhǔn):簡(jiǎn)潔性、一致性、熟悉性。 簡(jiǎn)潔性意味著界面簡(jiǎn)單明了,直接清晰。擁護(hù)可以很快的提取出對(duì)自己有用的信息。 熟悉性意味著系統(tǒng)設(shè)計(jì)時(shí)盡量保持與該類(lèi)流行界面的相似,比如VC的對(duì)話框風(fēng)格、視圖的風(fēng)格、MATLAB的Figure風(fēng)格。這樣用戶(hù)操作起來(lái)就容易上手,誤操作率比較低。 以上三點(diǎn)也許過(guò)于抽象,具體過(guò)程中不宜操作。其實(shí),只要在設(shè)計(jì)整個(gè)過(guò)程中貫穿以人為本的設(shè)計(jì)理念,設(shè)計(jì)出的界面自然會(huì)達(dá)到以上要求。設(shè)計(jì)者應(yīng)該經(jīng)常考慮以下兩個(gè)問(wèn)題: (1)用戶(hù)在沒(méi)有熟悉界面之前,完成一個(gè)操作需要多長(zhǎng)時(shí)間? (2)用戶(hù)在熟悉界面后,完成
32、一個(gè)普通操作需要多長(zhǎng)時(shí)間? 簡(jiǎn)潔性、一致性、熟悉性圍繞著上述兩個(gè)問(wèn)題展開(kāi)。它們有時(shí)也存在著矛盾的地方,比如會(huì)為了一致性而犧牲簡(jiǎn)潔性。這種取舍的標(biāo)準(zhǔn)應(yīng)著眼于用戶(hù),要看是否便于用戶(hù)操作。用戶(hù)應(yīng)該是設(shè)計(jì)者心中的上帝。 1)簡(jiǎn)潔性: 簡(jiǎn)潔是一種直觀的美,它是設(shè)計(jì)者所要達(dá)到的主要目標(biāo),通過(guò)GUIDE,我們很容易向界面添加許多功能。但是功能強(qiáng)大并不一定代表成功,有時(shí)增加一些功能反而顯得畫(huà)蛇添足。GUI本來(lái)是從圖像的角度幫助用戶(hù)理解客觀世界的,但是繽紛蕪雜的表面想象卻很容易掩蓋事物的真相,影響擁護(hù)做出正確的判斷,這當(dāng)然是不可取的。設(shè)計(jì)者一定要警惕這種盲目追求強(qiáng)大的心理。 a注重形式 圖
33、像往往給人一種直觀的感受,告訴人們事物發(fā)展的趨勢(shì),數(shù)字有助于將這種趨勢(shì)量化,增強(qiáng)人們對(duì)發(fā)展趨勢(shì)的認(rèn)識(shí)。但是并不意味著圖像必須借助于數(shù)字。 b縮小交互區(qū)域 如果能在一個(gè)界面中完成的事情堅(jiān)決不要放在兩個(gè)界面中完成。這也上操作簡(jiǎn)潔性的一種間接體現(xiàn)。這樣除了增加圖形的可讀性,還減輕了不同截面之間數(shù)據(jù)的傳遞負(fù)擔(dān)。關(guān)于這一點(diǎn)在本設(shè)計(jì)中就有涉及。比較以下兩個(gè)設(shè)計(jì): 圖4—1 多界面窗口 圖4—2 單界面窗口結(jié)果 由以上兩個(gè)設(shè)計(jì)不難發(fā)現(xiàn)在第二種設(shè)計(jì)中只需要通過(guò)按鈕就可以實(shí)現(xiàn)預(yù)期的功能,而無(wú)須像第一種設(shè)計(jì)中那樣在不同的界面中進(jìn)行切換。 c用圖形輸入代替數(shù)值輸入 對(duì)于用戶(hù)來(lái)說(shuō),
34、在圖形用戶(hù)界面下,圖形輸入比數(shù)值輸入更加方便。為了從各個(gè)角度來(lái)觀察一個(gè)三維幾何形體,我們需要不斷地進(jìn)行坐標(biāo)系的轉(zhuǎn)化。用數(shù)值輸入的方法,困難程度難以想象,其復(fù)雜性會(huì)讓用戶(hù)望而卻步,而圖形輸入的方式則能很好地解決上述問(wèn)題。 2)一致性: 一致性的含義很廣泛,既包括操作指令的前后一致,也包括操作界面中各種圖形對(duì)象擺放位置的一致性。這個(gè)原則基于以下認(rèn)識(shí),即用戶(hù)的操作經(jīng)驗(yàn)應(yīng)有助于用戶(hù)完成后面的操作;設(shè)計(jì)者不應(yīng)該給用戶(hù)太多意外,否則會(huì)讓用戶(hù)一頭霧水;前面執(zhí)行這個(gè)命令是一種用法,于是產(chǎn)生了歧義。優(yōu)秀的界面設(shè)計(jì)往往注重這個(gè)問(wèn)題。 3)熟悉性。 設(shè)計(jì)遵循的步驟: 圖4—3 設(shè)計(jì)遵循的步驟
35、 4.2 功能要求 本次論文的結(jié)果是設(shè)計(jì)出如上述4—2所示的圖形用戶(hù)界面,該界面應(yīng)該具有以下功能: 1)在編輯框中輸入牛頭刨床的參數(shù)后,點(diǎn)擊“運(yùn)算”按鈕,實(shí)現(xiàn)后臺(tái)的運(yùn)算,并把運(yùn)算的結(jié)果存儲(chǔ)在數(shù)據(jù)文件mydata.mat 中。 2)在1)完成后,用戶(hù)點(diǎn)擊“數(shù)據(jù)顯示”按鈕,彈出“數(shù)據(jù)顯示”窗口,并顯示牛頭刨床運(yùn)動(dòng)分析的結(jié)果數(shù)據(jù)。 3)同上,在完成1)后,用戶(hù)點(diǎn)擊“運(yùn)動(dòng)線圖”按鈕,彈出“運(yùn)動(dòng)線圖”窗口,并在窗口中分別顯示牛頭刨床刨頭的“位移——曲柄轉(zhuǎn)角”、“速度——曲柄轉(zhuǎn)角”、“加速度——曲柄轉(zhuǎn)角”的曲線圖。 4)同上,在完成1)后,用戶(hù)點(diǎn)擊“運(yùn)動(dòng)仿真
36、”按鈕,彈出“運(yùn)動(dòng)仿真”窗口,并在窗口中顯示牛頭刨床動(dòng)態(tài)仿真的結(jié)果。 4.3界面結(jié)構(gòu)設(shè)計(jì) 根據(jù)上述4.1和4.2,在本設(shè)計(jì)的界面設(shè)計(jì)中確立以下思路: 由于本設(shè)計(jì)是對(duì)牛頭刨床進(jìn)行運(yùn)動(dòng)分析和運(yùn)動(dòng)仿真,所以在界面中應(yīng)該首先創(chuàng)建五個(gè)框架區(qū),分別顯示結(jié)構(gòu)參數(shù),結(jié)構(gòu)模型,初始數(shù)據(jù),運(yùn)動(dòng)參數(shù)和命令按鈕;然后在相應(yīng)的框架區(qū)中分別創(chuàng)建text文本和edit編輯框以及命令按鈕,以使用戶(hù)可以通過(guò)對(duì)參數(shù)的改變來(lái)實(shí)現(xiàn)相應(yīng)的控制;最后,除“運(yùn)算”和“退出”按鈕在后臺(tái)操作外,其它的按鈕“數(shù)據(jù)顯示”、“運(yùn)動(dòng)分析”、“運(yùn)動(dòng)仿真”被按下都會(huì)彈出相應(yīng)的操作界面。以下是預(yù)期的界面: 圖4—4 預(yù)期主界面
37、 圖4—5 預(yù)期數(shù)據(jù)結(jié)果顯示界面窗口 圖4—6 預(yù)期的運(yùn)動(dòng)分析界面窗口 圖4—7 預(yù)期運(yùn)動(dòng)仿真界面 4.4 程序框圖的設(shè)計(jì) 程序框圖如下所示: 圖4—8 程序框圖 以上既是總界面的結(jié)構(gòu),也是軟件的總結(jié)構(gòu),也同時(shí)是程序流程圖。 5 運(yùn)動(dòng)仿真程序界面設(shè)計(jì)與編程實(shí)現(xiàn) 界面制作包括界面設(shè)計(jì)和程序?qū)崿F(xiàn)。具體制作步驟如下: 1) 分析界面所要求實(shí)現(xiàn)的主要功能,明確設(shè)計(jì)任務(wù); 2) 在稿紙上面繪出界面草圖,并站在使用者的角度來(lái)審查草圖; 3) 按構(gòu)思的草圖,上機(jī)制作(靜態(tài))界面,并檢查之; 4) 編寫(xiě)界面動(dòng)
38、態(tài)功能的程序,對(duì)功能進(jìn)行逐項(xiàng)檢查 。 以上過(guò)程,僅僅是一般原則。在設(shè)計(jì)中,步驟之間也許要交叉執(zhí)行或復(fù)合 執(zhí)行;設(shè)計(jì)和實(shí)現(xiàn)過(guò)程往往不是一步到位的,可能需要反復(fù)修改,才能獲得滿(mǎn)意的界面。 在MATLAB軟件中,所提供的界面的基本設(shè)計(jì)方法共有兩種: 一種是用戶(hù)自己編寫(xiě)并調(diào)用函數(shù)生成界面; 另一種是直接使用MATLAB提供的GUI設(shè)計(jì)工具。 第二種方法雖然簡(jiǎn)單,但是不利于我們更加熟悉MATLAB的編程語(yǔ)言以及鍛煉我們的思維和設(shè)計(jì)能力,加上邏輯性紊亂,所以本設(shè)計(jì)中的四個(gè)界面全是采用第一種方法制作,也就是編寫(xiě)函數(shù)。 在這四個(gè)界面的實(shí)現(xiàn)中,大體又可分為兩類(lèi): 一、主界面的實(shí)現(xiàn)。
39、二、功能界面的實(shí)現(xiàn)。 在本章內(nèi)容展開(kāi)之前,有必要介紹句柄圖形的知識(shí),因?yàn)檫@是MATLAB可視化的內(nèi)核,與本章界面的制作關(guān)系密切。 5.1 句柄圖形體系 句柄圖形是一種面向?qū)ο蟮睦L圖系統(tǒng)。該系統(tǒng)提供創(chuàng)建計(jì)算機(jī)圖形所必需的各種軟件。它所支持的指令,可直接創(chuàng)建線、文字、網(wǎng)線、面以及圖形用戶(hù)界面。MATLAB的各種高層圖形指令如:plot,mesh等都是以句柄圖形軟件為基礎(chǔ)寫(xiě)成的,因此句柄圖形被稱(chēng)為低層圖形。這也是在這里要首先介紹句柄圖形的原因所在。 5.1.1 圖形對(duì)象、對(duì)象句柄和句柄圖形樹(shù)結(jié)構(gòu) (1)圖形對(duì)象 MATLAB把用于數(shù)據(jù)可視化和界面制作的基本繪圖要素成為句柄圖形
40、對(duì)象。構(gòu)成MATLAB句柄圖形對(duì)象體系的11個(gè)圖形對(duì)象如圖5—1中方塊所示每個(gè)圖形對(duì)象都可以獨(dú)立操作。 在MATLAB中生成的每個(gè)具體圖形,由若干個(gè)不同對(duì)象構(gòu)成。每個(gè)圖形對(duì)象不必包含全部對(duì)象,但是每個(gè)圖形必須具備根屏幕和圖形窗。 圖5—1 句柄圖形樹(shù)結(jié)構(gòu) (2)句柄 每個(gè)具體對(duì)象都有一個(gè)“與生俱來(lái)、終生不變”的身份,即句柄。句柄的存取圖形對(duì)象惟一規(guī)范識(shí)別符。不同對(duì)象的句柄不可能重復(fù)和混淆。 每個(gè)計(jì)算機(jī),根對(duì)象只有一個(gè),即屏幕。它的句柄值總是0。而簡(jiǎn)稱(chēng)為圖的圖形窗的句柄總是正整數(shù),它是用來(lái)標(biāo)示圖形窗序號(hào)。除以上兩種對(duì)象外,其余對(duì)象句柄則是雙精度浮點(diǎn)數(shù)。 (3)句柄圖形的
41、結(jié)構(gòu) 在句柄圖形體系中,各圖形對(duì)象并非平等,它們之間的關(guān)系可用圖5—1 的樹(shù)層次結(jié)構(gòu)表示。 5.1.2 對(duì)象屬性 (1)屬性 所有對(duì)象都有一組定義和刻畫(huà)其外貌和性狀的屬性(Properties)。屬性有兩部分組成:屬性名和屬性值,即屬性二元對(duì)(Property_Name,Property_Value)。在創(chuàng)建和修改屬性的指令中,屬性名和屬性值總是成對(duì)出現(xiàn)。 屬性名是英文詞組字符串。該英文詞組字符串每個(gè)單詞的第一個(gè)字母大寫(xiě),而單詞間沒(méi)有空格,;例如‘LineStyle’,‘ColorMap’等。這樣書(shū)寫(xiě)的目的是便于閱讀。至于在指令中援引屬性名時(shí),為用戶(hù)輸入的方便,
42、MATLAB采取了兩個(gè)措施:第一,不分字母大小寫(xiě),都同樣識(shí)別;第二,只要不引起歧義,屬性名不必全寫(xiě)。 不同的屬性值將使對(duì)象有不同的表現(xiàn)。 (2)缺省屬性 在創(chuàng)建圖形對(duì)象時(shí),MATLAB并不需要用戶(hù)對(duì)每個(gè)屬性加以定義。因?yàn)樘热粲脩?hù)不對(duì)屬性加以定義,MATLAB總會(huì)自動(dòng)給對(duì)象的每個(gè)屬性賦予廠家定義的屬性。當(dāng)然用戶(hù)如果希望創(chuàng)建具有個(gè)性的圖形,那么就可以通過(guò)指令對(duì)某些屬性進(jìn)行定義。 5.1.3 對(duì)象句柄的獲取方法 要設(shè)置圖形對(duì)象屬性值,首先要知道該對(duì)象的句柄。因此,掌握對(duì)象句柄的獲取方法十分重要。 1)基本方法 (1)從圖形創(chuàng)建指令獲得句柄 所有高層
43、或低層指令都能通過(guò)以下格式產(chǎn)生句柄。 H_GC=GraphicCommand(……) 繪圖同時(shí)給出句柄的調(diào)用指令H_GC。 本設(shè)計(jì)中主程序創(chuàng)建主界面窗口并獲取其句柄的程序代碼如下: h1=figure(position,[20 20 800 600],... name, 牛頭刨床運(yùn)動(dòng)分析,... numbertitle,off,...% 不顯示標(biāo)題數(shù)目 defaultuicontrolfontsize,6,... defaultuicontrolunits,normalized,... menubar,none,...% 隱去菜單條以便接下來(lái)自己制作菜單 res
44、ize,off); % 主窗口的大小不能改變 (2)追溯法獲取圖柄 若一個(gè)對(duì)象的句柄已知,那么可用以下格式追溯獲得其“父”或“子”的句柄。 H_pa=get(H_known,’Parent’) 獲取H_known句柄對(duì)象之“父”的句柄 H_ch=get(H_known,’Children’) 獲取H_known句柄對(duì)象之“子”的句柄 本設(shè)計(jì)中主程序創(chuàng)建主界面“初始數(shù)據(jù)”框架后,可利用上述格式獲取其“父”句柄: h1_framec=uicontrol(... parent,h1,... style,frame,... positio
45、n,[0.05 0.05 0.3 0.3],... foregroundcolor,b); H_pa=get(h1_framec,’Parent’) H_pa= h1 獲取h1_framec句柄對(duì)象之“父”的句柄為 h1。 (3)當(dāng)前對(duì)象句柄的獲取 MATLAB有以下三種專(zhuān)用獲取圖柄的指令:前兩個(gè)是直接指令式的;后一個(gè)必須與鼠標(biāo)配合使用。 gcf 返回當(dāng)前圖形窗口的句柄 gca 返回當(dāng)前軸的句柄 gco 返回“被鼠標(biāo)最近點(diǎn)擊”的圖形對(duì)象的句柄 本設(shè)計(jì)中在計(jì)算
46、程序caculate1函數(shù)中,從主程序當(dāng)中讀取句柄值 handles=guihandles(gcf); (4)根據(jù)圖形對(duì)象特性獲取句柄 利用對(duì)象特性搜索對(duì)象句柄可以得到較高的搜索速度。具體指令如下: H=findobj(H_ori,PN,PV) 在H_ori指定對(duì)象上,尋找與屬性(PN,PV)匹配的對(duì)象句柄。 (5)根據(jù)對(duì)象“標(biāo)簽”獲取句柄 用戶(hù)可以通過(guò)“Tag”屬性,給對(duì)象一個(gè)“標(biāo)簽”。此后,就可以通過(guò)“標(biāo)簽”獲取該對(duì)象的句柄。 設(shè)置“標(biāo)簽”的兩個(gè)方法: 第一,創(chuàng)建時(shí)賦名 第二,用set賦名 據(jù)標(biāo)簽獲取對(duì)象句柄:如果屏幕上有多個(gè)圖形窗,且有的窗口又有多個(gè)子圖,那么獲取帶
47、“標(biāo)簽”對(duì)象句柄的簡(jiǎn)捷指令是:hax=findobj(0,‘Tag’,‘A4’)。 本設(shè)計(jì)中在計(jì)算程序caculate1函數(shù)中,從主程序當(dāng)中讀取牛頭刨床參量L1的句柄值 L1=get(handles.hL1,string); L1=str2num(L1); %%把字符轉(zhuǎn)換為數(shù)值 5.1.4 對(duì)象句柄的獲取和設(shè)置 (1)創(chuàng)建對(duì)象時(shí)設(shè)置屬性 H_GC=GraphicCommand(……,PN,PV) 利用“屬性對(duì)”設(shè)置的繪圖指令 H_GC=GraphicCommand(……,PS) 利用“構(gòu)架”進(jìn)行屬性設(shè)置的繪圖指令
48、 [說(shuō)明] 1)GraphicCommand代表所有合法的MATLAB高層或低層繪圖命令 2)(PN,PV)是屬性名、屬性值構(gòu)成的屬性對(duì)。屬性對(duì)的數(shù)目沒(méi)有限制 3)PS 是域名為屬性名的構(gòu)架數(shù)組 (2)get和 set get(H) 獲取H句柄對(duì)象所有屬性的當(dāng)前值 get(H,PN) 獲取H句柄對(duì)象由PN指定屬性的當(dāng)前值 set(H) 顯示H句柄對(duì)象所有可設(shè)置屬性名和全部供選屬性值 set(H,PN) 顯示H句柄對(duì)象由PN指定屬性的全部供選屬性值 s
49、et(H,PN,PV,。。。) 設(shè)置H句柄對(duì)象的PN屬性名取PV屬性值 set(H,PS) 利用構(gòu)架數(shù)組設(shè)置H的屬性值 [說(shuō)明] 1) (PN,PV)是屬性名、屬性值構(gòu)成的屬性對(duì)。屬性對(duì)的數(shù)目沒(méi)有限制 2) PS 是域名為屬性名的構(gòu)架數(shù)組 (3)對(duì)象屬性設(shè)置示例 本設(shè)計(jì)中數(shù)據(jù)顯示窗口中創(chuàng)建顯示數(shù)據(jù)的listbox時(shí),把listbox的‘string’屬性設(shè)置為‘vars1’的程序如下: h2_zhuanjiaoslist=uicontrol(... parent,h2,... style,listbox,
50、... position,[0.10 0.10 0.20 0.75],... fontsize,14); vars1 = phi1; set(h2_zhuanjiaoslist,string,vars1); 5.2 主界面參數(shù)含義 在主界面中參數(shù)的含義如下表所示: 表5—1 主界面參數(shù)含義 參數(shù)名稱(chēng) 參數(shù)含義 L1 原動(dòng)件AB的長(zhǎng)度 L3 從動(dòng)件DE的長(zhǎng)度 L5 從動(dòng)件EF的長(zhǎng)度 H
51、 AD的長(zhǎng)度 G 刨頭距離底座的豎直高度 從動(dòng)件DE的轉(zhuǎn)角 P 滑塊2到底座的距離 從動(dòng)件EF的轉(zhuǎn)角 S 滑塊6的位移 原動(dòng)件AB的轉(zhuǎn)速 原動(dòng)件AB的轉(zhuǎn)角 轉(zhuǎn)向 原動(dòng)件AB的轉(zhuǎn)向 5.3 界面制作步驟 5.3.1 創(chuàng)建主界面窗口 創(chuàng)建窗口的函數(shù)為figure,它有兩種調(diào)用形式: (1)figure ,單獨(dú)的f
52、igure創(chuàng)建一個(gè)新的窗口,并且返回它的句柄值。 (2)figure(H),使H為當(dāng)前的窗口,強(qiáng)制它在屏幕其他窗口的上面;假如H窗口不存在,同時(shí)H為整數(shù),這是將創(chuàng)建句柄為H的窗口,如下例。 本設(shè)計(jì)中主程序創(chuàng)建主界面窗口的程序代碼如下: h1=figure(position,[20 20 800 600],... name, 牛頭刨床運(yùn)動(dòng)分析,... numbertitle,off,...% 不顯示標(biāo)題數(shù)目 defaultuicontrolfontsize,6,... defaultuicontrolunits,normalized,... menubar,none,...
53、% 隱去菜單條以便接下來(lái)自己制作菜單 resize,off); % 主窗口的大小不能改變 5.3.2 創(chuàng)建主界面自制菜單 PC平臺(tái)上,缺省情況下產(chǎn)生的MATLAB圖形窗總有一個(gè)頂層菜單條,它包含五個(gè)標(biāo)準(zhǔn)菜單項(xiàng):文件(file)、編輯(edit)、工具(tools)、窗口(windows)和幫助(help)。每個(gè)菜單項(xiàng)在點(diǎn)擊的時(shí)候都回產(chǎn)生一個(gè)下拉菜單(Pull-down menu)。 這標(biāo)準(zhǔn)菜單受界面菜單‘MenuBar’屬性管理。該屬性有兩個(gè)取值[none|figure]。當(dāng)屬性值取‘none’時(shí),圖形窗不出現(xiàn)標(biāo)準(zhǔn)菜單(及工具條);當(dāng)屬性取‘figure’時(shí),圖形窗
54、顯示標(biāo)準(zhǔn)菜單,如圖5—2所示。 如上面例子隱去缺省菜單條的目的正是為了制作自制菜單,自制用戶(hù)菜單,通過(guò)uimenu指令創(chuàng)建。其典型的調(diào)用格式為: 圖5—2 缺省的菜單條 Hm= uimenu(PropertyName1,value1,PropertyName2,value2,...) [說(shuō)明] 1)Hm為該用戶(hù)菜單的句柄。H_parent為其父對(duì)象的句柄。該父對(duì)象只能是圖形窗對(duì)象,或另一用戶(hù)菜單對(duì)象。假如H_parent輸入宗量缺省,那么菜單項(xiàng)將建立在當(dāng)前圖形窗的頂層菜單條上。 2)‘PropertyName’和‘PropertyV
55、alue’構(gòu)成屬性二元對(duì),它們定義用戶(hù)菜單的屬性。 本設(shè)計(jì)中主程序創(chuàng)建主界面窗口自制菜單的程序如下: h1_file_menu=uimenu(h1,label,文件); h1_save_menu=uimenu(h1_file_menu,label,保存); h1_exit_menu=uimenu(h1_file_menu,label,退出,callback,close all); h1_help_menu=uimenu(h1,label,幫助,callback,msgbox(-360度<=φ1<=360度,help,modal);); h1_about_menu=uime
56、nu(h1,label,關(guān)于,callback,msgbox(作者:河南理工大學(xué) 邵翔宇 楊廣磊 email:sxy454003@ 2006年五月 版權(quán)所有,about,modal);); h1_acknowledge_menu=uimenu(h1,label,支持,callback,msgbox(在畢業(yè)設(shè)計(jì)的過(guò)程中得到了王小林院長(zhǎng)和謝剛老師的耐心指導(dǎo)和大力支持 非常感謝!,acknowledge,modal);); 本例的結(jié)果如圖5—3所示: 在上例中用到了消息顯示對(duì)話框msgbox,從本質(zhì)上說(shuō),對(duì)話框也是一類(lèi)窗口; 而從功能上說(shuō),對(duì)話框是用來(lái)要求用戶(hù)輸入某些信息或給用戶(hù)提供
57、某些信息而暫時(shí)出現(xiàn)的一個(gè)窗口。即對(duì)話框是用戶(hù)與計(jì)算機(jī)之間進(jìn)行交互操作的一種手段,通過(guò)對(duì)話框,用戶(hù)可以通知計(jì)算機(jī)一些用戶(hù)所做的選擇,也可以輸入一些參數(shù)給計(jì)算機(jī),并且計(jì)算機(jī)功能也給用戶(hù)提供一些信息或各種運(yùn)行結(jié)果等。msgbox的調(diào)用格式為: msgbox(Message) msgbox(Message,Title) msgbox(Message,Title,Icon) msgbox(Message,Title,custom,IconData,IconCMap) msgbox(Message, ... ,CreateMode) 圖5—
58、3 自制菜單結(jié)果 此外,在主界面的設(shè)計(jì)中還用到了warndlg,它的調(diào)用格式為: Handle=warndlg(Warnstring,DlgTitle) 產(chǎn)生警告信息框并返回其句柄 [說(shuō)明] 1)參數(shù)Warnstring是一個(gè)字符串變量,他表示了在對(duì)話框中要顯示的警告信息內(nèi)容 2)參數(shù)DlgTitle是一個(gè)字符串變量,它表示對(duì)話框的名稱(chēng) 本設(shè)計(jì)中主程序創(chuàng)建主界面窗口自制警告信息對(duì)話框的程序如下: warndlg(歡迎你使用牛頭刨床六桿機(jī)構(gòu)運(yùn)動(dòng)分析程序,!!!hello!!!,modal) ; 圖5—4 信息框的設(shè)計(jì)結(jié)果 5.3
59、.3創(chuàng)建主界面的五個(gè)框架,各個(gè)編輯框、靜態(tài)文本和按鈕 在MATLAB系統(tǒng)中,共定義了9種不同類(lèi)型的控件。這9種控件分別為: 命令按鈕(PushButton)、單選按鈕(RadioButton)、檢查框(Check Box)、列表框(List Box)、下拉式菜單(Popup Menu)、滑塊(Slider)、編輯框(Edit Box)、靜態(tài)文字(Static Text)、框架(Frame)。 控件是MATLAB所定義的10個(gè)基本圖形對(duì)象之一,在某一圖形窗口中的各種控件都是uicontrol命令實(shí)現(xiàn)的。它的調(diào)用格式: hcontrol=uicontrol(Prop
60、ertyName1,value1,PropertyName2,value2,...) [功能]:在句柄為handle的圖形窗口中實(shí)現(xiàn)一個(gè)控件,并返回該控件的句柄到hControl變量。 [說(shuō)明]: 1)在所實(shí)現(xiàn)的控件中,其 PropertyName1屬性的屬性值為value1;PropertyName2屬性的屬性值為value2 2) 該控件的“雙親”句柄為handle,若缺省該參數(shù),則其“雙親”為當(dāng)前窗口 3)對(duì)于該命令所實(shí)現(xiàn)的控件,其屬性值確定了該控件的外觀顯示特征及各種特點(diǎn) 4)當(dāng)某一控件的取值被改變之后,會(huì)導(dǎo)致系統(tǒng)去執(zhí)行由其
61、‘callback’屬性所確定的一些響應(yīng)序列 5)屬性‘style’確定了控件的基本外觀特征。‘style’屬性的取值及其所表示的控件種類(lèi)見(jiàn)表5—2 表5—2 控件style屬性取值及其對(duì)應(yīng)的控件種類(lèi) Style屬性的取值 控件種類(lèi) Style屬性的取值 控件種類(lèi) Pushbutton push 命令按鈕 Popupmenu 下拉式菜單 Radiobutton,radio 單選按鈕 Slider 滑塊 Checkbox,check 檢查框 Edit 編輯框 Listbox ,list 列表框 Text 靜態(tài)文字 Frame 框架
62、 本設(shè)計(jì)中主程序創(chuàng)建主界面窗口框架的程序如下(因篇幅有限,只能列舉兩個(gè)框架的創(chuàng)建程序): h1_framec=uicontrol(... parent,h1,... style,frame,... position,[0.05 0.05 0.3 0.3],... foregroundcolor,b); h1_framej=uicontrol(... parent,h1,... style,frame,... position,[0.05 0.45 0.3 0.50],... foregroundcolor,b); 圖5—5 主界面框架的設(shè)計(jì)結(jié)果 本設(shè)計(jì)
63、中在主窗口中創(chuàng)建編輯框和靜態(tài)文本的程序如下(限于篇幅這里指列舉部分程序): h1_jgtext=uicontrol(... parent,h1,... style,text,... position,[0.05 0.95 0.15 0.05],... string,結(jié)構(gòu)參數(shù),... backgroundcolor,w,... fontsize,16); h1_cstext=uicontrol(... parent,h1,... style,text,... position,[0.05 0.35 0.15 0.05],... string,初始數(shù)據(jù),...
64、 backgroundcolor,w,... fontsize,16); h1_ydtext=uicontrol(... parent,h1,... style,text,... position,[0.40 0.30 0.15 0.05],... string,運(yùn)動(dòng)參數(shù),... backgroundcolor,w,... fontsize,16); h1_jl1text=uicontrol(... parent,h1,... style,text,... position,[0.10 0.87 0.05 0.05],... string,L1); h1_jl1ed
65、it=uicontrol(... tag,hL1,... parent,h1,... style,edit,... string,125,... position,[0.15 0.87 0.10 0.05],... backgroundcolor,w,... fontsize,6); h1_jl1htext=uicontrol(... parent,h1,... style,text,... position,[0.26 0.87 0.05 0.05],... string,mm,... fontsize,8); 本例的結(jié)果如圖5—6所示 圖5—6 靜態(tài)文本和編輯框的設(shè)計(jì)結(jié)果 本設(shè)計(jì)中在主窗口中創(chuàng)建命令按鈕的程序如下(限于篇幅這里只舉出部分程序): b=imread(saoxy,jpg); h1_mxjgbutton=uicontrol(... parent,h1,... style,push,... cdata,b,... position,[0.40 0.35 0.55 0.65],... backgr
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑施工重大危險(xiǎn)源安全管理制度
- 安全培訓(xùn)資料:典型建筑火災(zāi)的防治基本原則與救援技術(shù)
- 企業(yè)雙重預(yù)防體系應(yīng)知應(yīng)會(huì)知識(shí)問(wèn)答
- 8 各種煤礦安全考試試題
- 9 危險(xiǎn)化學(xué)品經(jīng)營(yíng)單位安全生產(chǎn)管理人員模擬考試題庫(kù)試卷附答案
- 加壓過(guò)濾機(jī)司機(jī)技術(shù)操作規(guī)程
- 樹(shù)脂砂混砂工藝知識(shí)總結(jié)
- XXXXX現(xiàn)場(chǎng)安全應(yīng)急處置預(yù)案
- 某公司消防安全檢查制度總結(jié)
- 1 煤礦安全檢查工(中級(jí))職業(yè)技能理論知識(shí)考核試題含答案
- 4.燃?xì)獍踩a(chǎn)企業(yè)主要負(fù)責(zé)人模擬考試題庫(kù)試卷含答案
- 工段(班組)級(jí)安全檢查表
- D 氯化工藝作業(yè)模擬考試題庫(kù)試卷含答案-4
- 建筑起重司索信號(hào)工安全操作要點(diǎn)
- 實(shí)驗(yàn)室計(jì)量常見(jiàn)的30個(gè)問(wèn)問(wèn)答題含解析