ADAMS二次開發(fā)基礎(chǔ)研究.doc_第1頁
ADAMS二次開發(fā)基礎(chǔ)研究.doc_第2頁
ADAMS二次開發(fā)基礎(chǔ)研究.doc_第3頁
ADAMS二次開發(fā)基礎(chǔ)研究.doc_第4頁
ADAMS二次開發(fā)基礎(chǔ)研究.doc_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

ADAMS二次開發(fā)基礎(chǔ)研究摘要:本文對(duì)ADAMS二次開發(fā)中的用戶子程序與用戶界面定制進(jìn)行了簡(jiǎn)單探討。關(guān)鍵詞:ADAMS,二次開發(fā),Subroutine,用戶界面定制1概述ADAMS具有很強(qiáng)的二次開發(fā)功能,包括ADAMS/View界面的用戶化設(shè)計(jì),利用cmd語言實(shí)現(xiàn)自動(dòng)建模和仿真控制,通過編制用戶子程序滿足用戶的某些特定需求,甚至可以拓展ADAMS的功能,還有就是使用ADAMS/SDK來把運(yùn)動(dòng)仿真功能完全集成到自己的軟件包中,脫離ADAMS軟件環(huán)境來進(jìn)行自己的運(yùn)動(dòng)仿真。由于ADAMS/SDK能在脫離ADAMS其它前處理環(huán)境使用,因此使用它的都是一些脫離ADAMS環(huán)境自己開發(fā)運(yùn)動(dòng)仿真工具的高級(jí)用戶使用,普通用戶在不脫離ADAMS環(huán)境的條件下,使用Subroutines、自定義用戶界面等二次開發(fā)功能就能滿足用戶所需的需求。因此本文只對(duì)不脫離ADAMS環(huán)境的二次開發(fā)技術(shù)做一定的探討,對(duì)ADAMS/SDK只作簡(jiǎn)單的介紹。2 ADAMS/SDK介紹ADAMS/SDK是ADAMS軟件開發(fā)工具包。利用ADAMS/SDK,用戶可以把運(yùn)動(dòng)仿真功能完全集成到自己的軟件包中,也可以為已有的產(chǎn)品增加更強(qiáng)的運(yùn)動(dòng)仿真能力。集成后的工具包與ADAMS具有同樣的仿真分析功能。ADAMS/SDK使用流行的C或C語言作為編程接口環(huán)境??梢钥焖?、簡(jiǎn)單、有效地在用戶的軟件包中增加運(yùn)動(dòng)仿真功能。用戶通過集成ADAMS在各行業(yè)中已驗(yàn)證的經(jīng)驗(yàn),可以大大地節(jié)省在運(yùn)動(dòng)仿真開發(fā)方面的投資。ADAMS/SDK可以廣泛地應(yīng)用于CAD軟件中的運(yùn)動(dòng)學(xué)和動(dòng)力學(xué)工具,CAD軟件中裝配位置的確定,制造業(yè)中的動(dòng)態(tài)仿真,數(shù)字化裝配運(yùn)動(dòng)回放及工業(yè)特殊用途的運(yùn)動(dòng)仿真。3 ADAMS用戶子程序3.1用戶子程序簡(jiǎn)介一般情況下,ADAMS的大部分功能可以通過函數(shù)表達(dá)式完成,函數(shù)表達(dá)式很容易操作,因?yàn)椴槐鼐幾g或連接程序,而且ADAMS/Solver還會(huì)實(shí)時(shí)地提供函數(shù)表達(dá)式。但函數(shù)表達(dá)式提供的只是有限的編程結(jié)構(gòu),因此有些復(fù)雜的情況,特別是涉及到一些邏輯表達(dá),用函數(shù)表達(dá)式則很難表達(dá)出來。因此在需要采用一些ADAMS沒有提供的特殊函數(shù)時(shí),可以采用用戶子程序。用戶子程序更具有通用性,可以利用編程語言來定義模型元素或者特定的輸出。用戶可以將函數(shù)表達(dá)式寫成子程序的形式并將其與ADAMS/View連接,它具有函數(shù)表達(dá)式所沒有的通用性和靈活性。子程序利用通用程序設(shè)計(jì)語言(FORTRAN或C)的功能來定義ADAMS/View不能提供的函數(shù),并使之按照需要而量身設(shè)計(jì)。通過連接用戶子程序,不會(huì)失去ADAMS/View的任何功效,也不會(huì)降低仿真速度。當(dāng)出現(xiàn)下列情況時(shí),通常會(huì)使用到用戶子程序:(1)數(shù)學(xué)函數(shù)很難表達(dá)。(2)需要定義多用戶使用的函數(shù)。(3)GSE和UCON聲明時(shí),需要用戶子程序。(4)需要控制復(fù)雜仿真運(yùn)行時(shí),以及需要作決策邏輯時(shí)。使用用戶子程序時(shí)要小心,因?yàn)椴徽_的用戶子程序會(huì)很難調(diào)試。3.2用戶子程序的種類根據(jù)用戶子程序的功能,可以將它們分為三類:(1)Driver Subroutine驅(qū)動(dòng)子程序(2)Evaluation Subroutines計(jì)算子程序(3)Restart subroutines重啟子程序1. 驅(qū)動(dòng)子程序(Driver Subroutine)驅(qū)動(dòng)子程序(Driver Subroutine)CONSUB用來驅(qū)動(dòng)ADAMS/Solver。這樣ADAMS/Solver在仿真時(shí)可更進(jìn)一步地完成對(duì)模型的分析和修改的自動(dòng)化工作。CONSUB發(fā)出request(請(qǐng)求),regulate(調(diào)整),和vary simulations(改變仿真)的命令,并通過作出的交互式命令來修改數(shù)據(jù),或者進(jìn)行不同的分析。大多數(shù)運(yùn)行ADAMS/Solver的情況都是交互式,或者是以批處理的形式,一次只涉及到單個(gè)的分析。使用CONSUB,可以完成對(duì)數(shù)據(jù)的動(dòng)態(tài)分析,改變前提條件,并重復(fù)動(dòng)態(tài)分析。2. 計(jì)算子程序(Evaluation Subroutines)計(jì)算子程序(Evaluation Subroutines)為用戶自定義。ADAMS/Solver可寫子程序來對(duì)某些非標(biāo)準(zhǔn)的或復(fù)雜的計(jì)算式計(jì)算其數(shù)值。3. 重啟子程序(Restart Subroutines)重啟子程序(Restart subroutines)由一對(duì)子程序組成,SAVESUB和RELSUB。它們可以保存和重新加載子程序運(yùn)行過程中的某些狀態(tài)變量,這些狀態(tài)變量是那些相關(guān)的用戶子程序在重新啟動(dòng)或進(jìn)行某些變量初始化時(shí)所必須的數(shù)據(jù)。如果在用戶子程序之間相互調(diào)用時(shí),需要使用它們?cè)谧映绦騼?nèi)部保存數(shù)據(jù)。如果沒有使用RELSUB和SAVSUB,在保存仿真文件時(shí),內(nèi)部數(shù)據(jù)就會(huì)丟失。雖然SAVE命令可將模型和仿真數(shù)據(jù)保存到文件中去,而且可以通過使用RELOAD命令重新調(diào)入保存文件,并可以從該保存點(diǎn)重新啟動(dòng)仿真。但SAVE和RELOAD不可能對(duì)用戶子程序的內(nèi)部數(shù)據(jù)進(jìn)行特殊操作,在RELOAD命令之后,ADAMS/Solver會(huì)從仿真流程中斷點(diǎn)繼續(xù)調(diào)用用戶子程序,但用戶子程序中某些感興趣的內(nèi)部變量卻沒有得到保存。3.3子程序的使用相對(duì)于ADAMS/View來講,用戶定義子程序有兩個(gè)任務(wù):輸入和輸出。輸入就是在相應(yīng)的命令或狀態(tài),或在表明當(dāng)前系統(tǒng)狀態(tài)的計(jì)算結(jié)果中,提供給ADAMS/View的相關(guān)信息。輸出就是從ADAMS/View中獲得的相關(guān)信息。1. 聲明浮點(diǎn)變量為了保證數(shù)值在子程序之間或者ADAMS/Solver和子程序之間能夠正確地傳遞,需要聲明浮點(diǎn)變量,就像在ADAMS/Solver中作的聲明一樣。在UNIX和Windows機(jī)器上,ADAMS/Solver使用雙精度浮點(diǎn)變量。因?yàn)槲绰暶鞯母↑c(diǎn)變量通常都是單精度的(如REAL),所以應(yīng)當(dāng)明確聲明所有的浮點(diǎn)變量都是雙精度的。2. 參數(shù)的使用ADAMS/View會(huì)從FUNCTION=USER()的表達(dá)式中提供給用戶子程序參數(shù)值。例如,如果你使用FUNTION=(4.0,5.0,6.0),ADAMS/View通過一個(gè)包含4.0,5.0,6.0的PAR數(shù)組參數(shù),以及通過一個(gè)值為3的NPAR參數(shù)傳遞這些數(shù)值。通過使用這些功能使得用戶子程序更加靈活。例如,如果計(jì)算需要marker101和marker102的距離,可以將這些標(biāo)志符直接寫進(jìn)用戶子程序。3. 避免不連續(xù)在運(yùn)行表達(dá)式中,當(dāng)使用子程序來定義運(yùn)動(dòng),傳感器,力,或者模型中的狀態(tài)平衡方程時(shí),應(yīng)當(dāng)保證這些函數(shù)是連續(xù)的。不連續(xù)的函數(shù)很難處理,因?yàn)榇蠖鄶?shù)數(shù)學(xué)理論都是假定系統(tǒng)方程是連續(xù)的。如果違反了該規(guī)則,ADAMS/Solver就會(huì)得出出人意料的結(jié)果。當(dāng)使用IF聲明,將分段函數(shù)連接起來時(shí),常常會(huì)產(chǎn)生不連續(xù)函數(shù)。為了保證函數(shù)是連續(xù)的,在使用該類型的函數(shù)時(shí),一定要小心。4. 創(chuàng)建用戶子程序?yàn)榱藙?chuàng)建自己的用戶子程序,ADAMS提供了子程序模板并將它們放在安裝目錄install_dir/adams/solver/usersubs中。子程序不能以C語言為模板。如果需要一個(gè)C語言的子程序,必須通過修改FORTRAN文件來創(chuàng)建它,或者使用FORTRAN模板作為向?qū)?,?chuàng)建自己的C語言格式子程序。創(chuàng)建用戶子程序的步驟:(1) 決定需要?jiǎng)?chuàng)建什么樣的用戶子程序。例如,如果有GFORCE的聲明,可以創(chuàng)建GFOSUB的用戶子程序。(2) 決定要計(jì)算什么,需要什么輸入?yún)?shù)。(3) 將合適的用戶子程序模板從安裝目錄拷貝到當(dāng)前目錄。模板目錄中包含了要使用的所有子程序模板。(4) 使用文字編輯器來察看用戶子程序模板。(5) 按需要修改用戶子程序。從用戶子程序中調(diào)用功能子程序,或者其他FORTRAN或C語言子程序。(6) 保存用戶子程序。因?yàn)榭赡軐?duì)不同的模型會(huì)使用相同的子程序,所以最好給文件起一個(gè)容易區(qū)分的名字。5. 調(diào)用用戶子程序可以通過使用聲明或者命令來調(diào)用用戶子程序。通過使用前面定義的用戶子程序的名字來讓ADAMS/Solver知道調(diào)用哪一個(gè)子程序。也可以使用子程序來定義一些模型元素。能調(diào)用用戶子程序的聲明或命令如表1所示。表1 調(diào)用用戶子程序的聲明或命令要調(diào)用的子程序使用的聲明/命令CONSUBCONTROLCOUSUB,COUXX,COUXX2COUPLERCURSUBCURVEDIFSUBDIFFFIESUBFIELDGFOSUBGFORCEGSE_DERIV,GSE_UPDATE,GSE_OUTPUT,GSE_SAMPGSEMOTSUBMOTIONRELSUBRELOADREQSUBREQUESTSAVSUBSAVESENSUBSENSORSFOSUBSFORCETIRSUBTIREUCOSUBUCONVARSUBVARIABLEVFOSUBVFORCEVTOSUBVTORQUE可以從用戶子程序中調(diào)用功能子程序。這些子程序的功能就像是在用戶的數(shù)據(jù)和用戶使用的用戶子程序的接口一樣。例如,在driver userwritten subroutine(驅(qū)動(dòng)用戶子程序)中,可以使用control,access功能子程序。從evaluation userwritten subroutines(計(jì)算用戶子程序)中,也可以調(diào)用access,function,以及某些情況下setup 函數(shù)。換句話說,可以從上面任何一個(gè)用戶子程序中調(diào)用access和function函數(shù),但用戶只能從driver subroutine中調(diào)用control函數(shù),從某個(gè)evaluation subroutines中調(diào)用setup函數(shù)。6. 編譯,連接和運(yùn)行庫在寫完定制的子程序后,必須要將它們編譯并連接到ADAMS以創(chuàng)建到ADAMS/Solver的用戶庫文件中去。然后,可以連同該庫與ADAMS/Solver一同運(yùn)行。必須有一個(gè)FORTRAN(Fortran語言)或C(用C語言)編譯器,因?yàn)锳DAMS本身不提供編譯器。下面給出編譯和連接的過程。(1) 軟件平臺(tái)在ADAMS中可以用FORTRAN或C進(jìn)行User-subroutine的編寫,文中實(shí)例使用的相應(yīng)版本和編譯命令如下: MSC.ADAMS的版本是2005.0.0 C語言的編譯器是Microsoft Virtual C+ v6.0 +SP5,編譯命令為:Cl/c/G6/Ox/MD xxx.c我們?cè)谑褂玫臅r(shí)候不需要計(jì)上面的命令,在ADAMS2005中可以直接把源代碼編譯成動(dòng)態(tài)鏈接庫(dll)。(2)編譯和連接在命令行Command窗口下輸入ADAMS05-CR-USER-xxx.c,之后會(huì)在你的工作目錄下自動(dòng)生成xxx.dll文件。圖1 編譯和連接命令行窗口圖2編譯和連接命令行窗口(3)運(yùn)行加載dll鏈接庫運(yùn)行和加載dll的方法有兩種:第一種是在命令行下面運(yùn)行加載,其命令為:adams05 aview ru-u i n xxx.dll另外一種方法是在ADAMS/View用戶界面中通過設(shè)置來加載dll,如圖3所示。圖3 加載用戶子程序加載后就可以在函數(shù)編輯器中使用自己定義的用戶子程序了。4用戶界面的定制ADAMS/View的界面對(duì)象都是以層次結(jié)構(gòu)存儲(chǔ)在模型數(shù)據(jù)庫中,類似于零件模型的層次結(jié)構(gòu)。所有定制的界面對(duì)象都存儲(chǔ)在名為GUI的數(shù)據(jù)庫中,該數(shù)據(jù)庫可以很方便地管理所有的標(biāo)準(zhǔn)界面對(duì)象。界面對(duì)象的層次結(jié)構(gòu)如圖4所示。圖4 界面對(duì)象的層次結(jié)構(gòu)最上層的界面對(duì)象是窗口和對(duì)話框。如果主要建模窗口起名為main的話,其數(shù)據(jù)庫全名應(yīng)為.gui.main。盡管窗口和對(duì)話框看起來很相似,但它們卻是很不相同的。窗口通常是在用戶工作的時(shí)候在屏幕上停留一段時(shí)間,而對(duì)話框通常是在用戶輸入數(shù)據(jù)或是進(jìn)行訪問控制時(shí)才會(huì)出現(xiàn)。窗口有工具條和菜單欄,窗口和對(duì)話框也包含其他的界面對(duì)象如按鈕,標(biāo)簽等等。大多數(shù)用戶化操作涉及到創(chuàng)建對(duì)話框或者修改標(biāo)準(zhǔn)對(duì)話框。但若不用創(chuàng)建一個(gè)完整的用戶化界面時(shí),則通常只用修改菜單條和工具欄。在大多數(shù)情況下,用戶定制界面是指制作用戶自己的菜單和對(duì)話框。通常可使用菜單編輯器和對(duì)話框編輯器來定制界面,通過它們可以很快地訪問并改變大多數(shù)界面對(duì)象和功能。下面就這兩方面的內(nèi)容作簡(jiǎn)單介紹。4.1定制菜單4.1.1菜單編輯器通過以下菜單路徑可以調(diào)出菜單編輯器窗口:Main menuToolsMenuModify菜單編輯器窗口如圖5所示:圖5 菜單編輯器窗口在菜單編輯器窗口中顯示的是ADAMS菜單文件,菜單文件是按照一定的語法書寫的解釋性程序文件,在默認(rèn)情況下,菜單編輯器窗口里顯示的是描述ADAMS標(biāo)準(zhǔn)菜單的菜單文件,通過按照一定的語法規(guī)則修改該菜單文件,就可以得到用戶化的菜單。下面的程序段是對(duì)標(biāo)準(zhǔn)ADAMS/View菜單文件的節(jié)選,粗略顯示了標(biāo)準(zhǔn)ADAMS/View菜單文件的各個(gè)菜單項(xiàng)和File菜單項(xiàng)所包含的按鈕和分割條界面對(duì)象,以便讀者能把握菜單文件的全貌,如圖6所示為相應(yīng)的圖形界面。圖6 File菜單的圖形界面MENU1 &File !File菜單項(xiàng) NAME=file HELP=Read and write files, print model views, or exit ADAMS BUTTON2 &New Database:Ctrl+N !New Database按鈕 NAME=new BUTTON2 &Open Database:Ctrl+O !Open Database按鈕 NAME=open HELP=Open a Database File (ADAMS/View Binary File) BUTTON2 Save Database &As. !Save Database按鈕SEPARATOR2 !分割線BUTTON2 &Import !Import按鈕.BUTTON2 &Export !Export按鈕.SEPARATOR2 !分割線BUTTON2 &Print.:Ctrl+P !Print按鈕SEPARATOR2 !分割線BUTTON2 &Select Directory. !Select Directory.按鈕.SEPARATOR2 !分割線BUTTON2 E&xit:Ctrl+Q !Exit按鈕MENU1 &Edit !Edit菜單項(xiàng)MENU1 &View !View菜單項(xiàng)MENU1 &Build !Build菜單項(xiàng)MENU1 &Simulate !Simulate菜單項(xiàng)MENU1 &Review !Review菜單項(xiàng)MENU1 Settin&gs !Settings菜單項(xiàng)MENU1 &Tools !Tools菜單項(xiàng)MENU1 &Help ! Help菜單項(xiàng)在菜單編輯器窗口中對(duì)菜單文件進(jìn)行用戶化修改后,點(diǎn)擊編輯器窗口上的Menu bar菜單項(xiàng)下的Export Text按鈕可將用戶化的菜單文件到用戶二次開發(fā)文件目錄中。如果要重新調(diào)入菜單,使用菜單編輯器的Import Text按鈕調(diào)入相應(yīng)的菜單文件,然后點(diǎn)擊Apply按鈕;或者直接通過以下菜單路徑來實(shí)現(xiàn):Main menuToolsMenuRead.4.1.2菜單語法如前所述,菜單文件實(shí)際上是用解釋性語言編制的程序段,下面介紹該解釋性語言的編程語法。菜單對(duì)象有四種類型:菜單、按鈕或圖標(biāo)按鈕、開關(guān)按鈕和分割線,分別用關(guān)鍵詞MENUn、BUTTONn、TOGGLEn和SEPARATORn定義。如表2所示列出的是菜單對(duì)象類型及其參數(shù)含義。表2 菜單對(duì)象類型及其參數(shù)含義菜單對(duì)象參數(shù)含義:MENUnLabelBUTTONnLabel or name of icon fileTOGGLEnLableSEPARATORn(none)表中菜單對(duì)象的參數(shù)含義如下:(1) n是從1到10之間的整數(shù),它表示對(duì)象在菜單中出現(xiàn)的級(jí)別。例如,MENU1出現(xiàn)在菜單欄,BUTTON2出現(xiàn)在MENU1的之中。MENU菜單后面的n是必須要的,而對(duì)于其他的對(duì)象則為可選項(xiàng)。如果忽略級(jí)別,ADAMS/View將默認(rèn)該對(duì)象屬于最后一個(gè)MENU。(2) lable是出現(xiàn)在菜單中的文本。對(duì)于圖標(biāo)按鈕,可以指定圖標(biāo)的名字,或者其他圖形格式文件。在Windows中圖標(biāo)名字為bitmap(.bmp)格式的文件名字。創(chuàng)建每種菜單對(duì)象的語法結(jié)構(gòu)如下:創(chuàng)建MENU 可以創(chuàng)建多級(jí)的菜單,第一級(jí)菜單為MENU1,出現(xiàn)在菜單條上,低一級(jí)的菜單如MENU2和MENU3出現(xiàn)在層疊的下拉菜單中。語法: MENUn TITLE NAME=name HELP=Help參數(shù):n=整數(shù)值,表明該菜單在菜單條中出現(xiàn)的層數(shù)。n=1時(shí)菜單出現(xiàn)在菜單欄上,n2時(shí)菜單出現(xiàn)在下拉菜單中。TITLE=字符串,出現(xiàn)在菜單欄上,可以在表提前加一個(gè)&字符用作記憶法(如“&File”在菜單上顯示為File)。NAME=模型數(shù)據(jù)庫中對(duì)象的名字。HELP=出現(xiàn)在狀態(tài)欄中的文字。創(chuàng)建BUTTON每個(gè)按鈕對(duì)應(yīng)一個(gè)菜單命令,可以在下拉菜單或是子菜單上放置按鈕。語法:BUTTONn LABLE ACCELERATOR NAME=name HELP=help CMD=command參數(shù):n=整數(shù)值,表明按鈕出現(xiàn)的層數(shù)。N=2時(shí)按鈕出現(xiàn)在下拉菜單上,n3時(shí)按鈕出現(xiàn)在子菜單上。LABLE=按鈕名,出現(xiàn)在下拉菜單或子菜單上。ACCELERATOR=鍵或鍵組用來執(zhí)行菜單命令。NAME=模型數(shù)據(jù)庫中菜單對(duì)象的名字。HELP=出現(xiàn)在狀態(tài)條上的文字。CMD=點(diǎn)擊按鈕時(shí)所執(zhí)行的命令,當(dāng)有:多行命令時(shí),每一行前面都要加CMD。創(chuàng)建分隔符(SEPERATOR)在下拉菜單和子菜單中的各項(xiàng)目之間添加分割線。語法:SEPERATORn參數(shù):n=整數(shù)值,表明分隔符出現(xiàn)的層數(shù),n=2時(shí)分隔符出現(xiàn)在下拉菜單中,n=3時(shí)分隔符出現(xiàn)在子菜單中。創(chuàng)建開關(guān)按鈕TOGGLE用于在兩種狀態(tài)之間設(shè)置切換開關(guān),開關(guān)按鈕可以在下拉菜單或是在子菜單上。語法:TOGGLEn TITLE NAME=name HELP=help STATE=state CMD=command其參數(shù)含義同上其他對(duì)象。下面是一個(gè)利用菜單編輯器定制用戶化菜單的例子,該例在ADAMS/View標(biāo)準(zhǔn)菜單的Controls之后定制了用戶自己的菜單項(xiàng)MyMenu2005,通過展開該菜單項(xiàng)顯示了用戶菜單各層次之間的關(guān)系,如圖7所示。圖7 自定義菜單實(shí)例界面下面是本例的程序清單:MENU1 &ControlsMENU1 &MyMenu2003 NAME=mymenu2003 HELP=A Menu Test BUTTON2 My Button &1 NAME=My_Button_1 HELP=Test of My Button 1 CMD=Adams Command of My Button 1 BUTTON2 My Button &2 NAME=My_Button_2 HELP=Test of My Button 2 CMD=Adams Command of My Button 2 BUTTON2 NAME=Some_Buttons HELP=Test of Some Button CMD=Adams Commands of Some Buttons BUTTON2 My Button &n NAME=My_Button_n HELP=Test of My Button n CMD=Adams Command of My Button n SEPARATOR2 MENU2 &Son Menu 1 BUTTON3 Son Button 1 NAME=Son_Button_1 CMD=Adams Command of Son Button 1 BUTTON3 Son Button 2 NAME=Son_Button_2 CMD=Adams Command of Son Button 2 BUTTON3 NAME=Some_Son_Button CMD=Adams Command of Some Son Button BUTTON3 Son Button n NAME=Son_Button_n CMD=Adams Command of Son Button n SEPARATOR3 MENU3 Sons Son Menu BUTTON4 Sons Son Button BUTTON4 MENU3 . MENU2 &Son Menu 2 MENU2 MENU2 &Son Menu n4.2定制對(duì)話框ADAMS/View中使用的對(duì)話框包括各種界面對(duì)象,如標(biāo)簽、數(shù)據(jù)區(qū)、按鈕等等??梢允褂肁DAMS對(duì)話框編輯器來創(chuàng)建和修改對(duì)話框以更好地滿足用戶的需要。例如為標(biāo)準(zhǔn)對(duì)話框添加一個(gè)按鈕來包含要作的選項(xiàng),或添加一個(gè)對(duì)話框以執(zhí)行經(jīng)常運(yùn)行的步驟等等。利用對(duì)話框編輯器創(chuàng)建用戶自定義對(duì)話框的操作方法如下:4.2.1創(chuàng)建對(duì)話框?qū)υ捒蚓庉嬈靼擞脕韯?chuàng)建對(duì)話框的所有工具,創(chuàng)建對(duì)話框的步驟如下:(1)通過如下菜單路徑:在ToolsDialog BoxCreate,于是出現(xiàn)對(duì)話框編輯器如圖8所示:圖8 對(duì)話框編輯器界面(2) 在Dialog Box菜單中,選擇New按鈕,出現(xiàn)新的對(duì)話框,如圖9所示。圖9 創(chuàng)建一個(gè)新的對(duì)話框(3) 在Name欄中輸入你的對(duì)話框的標(biāo)題,然后選擇想在對(duì)話框上添加的默認(rèn)按鈕。(4) 選擇OK按鈕完成設(shè)置,于是出現(xiàn)一個(gè)新對(duì)話框如圖10所示。我們可以在該對(duì)話框界面上添加和修改按鈕等相關(guān)操作。圖10 創(chuàng)建的新對(duì)話框4.2.2修改對(duì)話框可以利用對(duì)話框編輯器對(duì)創(chuàng)建好的對(duì)話框進(jìn)行修改,可以添加各種不同的界面對(duì)象到對(duì)話框中,設(shè)計(jì)布局、外觀、命令和對(duì)話框?qū)ο蟮拇笮〉取>唧w做法為:(1) 選擇在ToolsDialog BoxModify,出現(xiàn)數(shù)據(jù)庫向?qū)А?2) 選擇想修改的對(duì)話框,在從Tools菜單選擇對(duì)話框編輯器之后,通過雙擊出現(xiàn)的對(duì)話框的背景,這樣就顯示對(duì)話框編輯器并可以修改對(duì)話框了。4.2.3增加界面對(duì)象到用戶定制對(duì)話框可以利用對(duì)話框編輯器為用戶定制對(duì)話框添加界面對(duì)象,ADAMS/View對(duì)話框的界面對(duì)象有以下幾種類型。(1) Label顯示對(duì)話框中的文字和圖象。(2) Field提供輸入文字和數(shù)值的空間。(3) Button激活操作;在按鈕上有顯示該操作的圖象,標(biāo)題或文字。(4) Toggle button顯示激活狀態(tài)。(5) Seperator劃一條水平線。(6) Slider設(shè)置對(duì)象的數(shù)值而不用鍵入數(shù)據(jù)。(7) Option menu從多個(gè)選擇中挑選一個(gè),有彈出式圖框以顯示整個(gè)菜單。(8) Button stack設(shè)置狀態(tài)。(9) Button stack包含多個(gè)按鈕,可通過右鍵彈出所有按鈕。(10) Container可添加信息。利用對(duì)話框編輯器為用戶定制對(duì)話框添加界面對(duì)象的步驟為:(1) 在Create菜單中,選擇想添加的對(duì)象。(2) 將鼠標(biāo)放在想添加對(duì)象的對(duì)話框中。(3) 放下鼠標(biāo)左鍵,并拖動(dòng)來創(chuàng)建對(duì)象。所有界面對(duì)象的屬性都可以通過對(duì)話框編輯器進(jìn)行修改。4.2.4在對(duì)話框中使用命令在用戶定制對(duì)話框中,大多數(shù)界面對(duì)象都對(duì)應(yīng)著一個(gè)ADAMS/View可執(zhí)行命令,這些命令是為了完成用戶希望的某項(xiàng)功能,或改變模型,或改變用戶輸入數(shù)據(jù),或作出選擇。.可以用ADAMS/View命令語言(cmd)來為對(duì)象創(chuàng)建命令。也可以通過命令向?qū)碚业剿枰拿?。一旦你找到命令,就可將它從命令窗口和log文件中拷貝,并粘貼或鍵入到命令編輯框。(1) 察看對(duì)象的命令可以通過如下操作查看界面對(duì)象所對(duì)應(yīng)的命令: 雙擊你想察看命令的對(duì)象。 從菜單的Attribute選項(xiàng)中,選擇Commands。(2) 將命令替換成文本在執(zhí)行命令之前,ADAMS/View會(huì)執(zhí)行一些文本替代操作。這些替代操作就是用界面對(duì)象的屬性值來取代替換文本,并將其用在命令中。替代文本表字符為“$”,表明替代文本的位置。有四種形式的替代文本: $object_name其名字與界面對(duì)象的名字相同。當(dāng)ADAMS/View執(zhí)行命令時(shí),它會(huì)將當(dāng)前object_name的值替換為$object_name的值。如表3所示列出了不同界面對(duì)象的值。表3 不同界面對(duì)象的值對(duì)象數(shù)值含義Field(數(shù)據(jù)區(qū))當(dāng)前數(shù)據(jù)區(qū)內(nèi)容Option-menu(可選菜單項(xiàng))當(dāng)前選定的數(shù)據(jù)Radio-box(狀態(tài)設(shè)置框)當(dāng)前選定的數(shù)據(jù)Toggle-button(開關(guān)按鈕)當(dāng)前定義的開關(guān)值Slide(滑動(dòng)條)當(dāng)前的滑動(dòng)整數(shù)值例如,為將命令中的my_value值賦給參數(shù),可用以下語句:my_command my_parameter=$my_value如果數(shù)據(jù)區(qū)內(nèi)容為123,那么在ADAMS/View中執(zhí)行命令時(shí):my_command my_parameter=123缺省情況下,選擇菜單或狀態(tài)設(shè)置框的值為顯示或選擇按鈕的文字,也可以為ADAMS/View的替換指定別的值。在toggle button開關(guān)按鈕值的屬性中,由數(shù)據(jù)區(qū)來設(shè)置開關(guān)數(shù)值。在OptionMenu選項(xiàng)菜單和Radio Box狀態(tài)控制欄,你可以用“|”符來分割多個(gè)選擇。 $_value替換包含該對(duì)象命令的值。例如,如果是名字為“my_toggle”的按鈕上的命令,則$_value的含義與$_toggle是相同的。在可能的情況下,應(yīng)該使用$_value的值來替代實(shí)際對(duì)象的值,因?yàn)檫@樣更容易理解和維護(hù)。如果在命令中看見了$_value,應(yīng)該知道它代表界面對(duì)象的值,另外,如果要改變對(duì)象的名字,也不必改變命令。這一點(diǎn)對(duì)于toggle buttons,radio box和option menu特別有用,因?yàn)檫@樣可以在相關(guān)聯(lián)的命令中改變這些對(duì)象的值。 $_self,$_parent,$_topgui它們可使對(duì)話框更容易理解和維護(hù)。例如,對(duì)話框能用以下命令調(diào)入它的子類的數(shù)據(jù):interface field set field=$_self.myfield strings=一般應(yīng)盡可能使用$_self或$_parent命令來指代對(duì)象名字,而不用真實(shí)的名字。 $_1,$_2,$_3用來指代窗口或?qū)υ捒蝻@示命令相關(guān)的參數(shù),窗口或?qū)υ捒蛞约八鼈兊淖宇惗伎梢栽诿钪惺褂?_1,$_2,$_3。當(dāng)ADAMS/View執(zhí)行命令時(shí),它可替代參數(shù)的當(dāng)前值。(3) 條件命令替換替換文本被包含在單引號(hào)內(nèi),如果在引號(hào)內(nèi)的$name或$value為空,則ADAMS/View除去單引號(hào)之間的文本。如果返回文字為空(),該對(duì)象無效或不顯示,則$name為空。條件替代更容易處理選擇或命

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論