版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 本科畢業(yè)論文(設計)</p><p><b> 目 錄</b></p><p><b> 摘 要1</b></p><p> Abstract2</p><p><b> 1 緒論3</b></p><p&g
2、t;<b> 1.1 前言3</b></p><p><b> 1.2研究現(xiàn)狀4</b></p><p> 1.2.1艙口蓋設計現(xiàn)狀4</p><p> 1.2.2 PATRAN二次開發(fā)現(xiàn)狀4</p><p> 2 PCL語言的介紹5</p><p>
3、2.1 PCL語言的簡介5</p><p> 2.2 PCL的主要功用5</p><p> 2.3 PCL語言結構6</p><p> 2.4 PCL的編譯和使用6</p><p> 3 參數(shù)化建模的概述7</p><p> 4 艙口蓋參數(shù)化建模程序的開發(fā)8</p><p>
4、; 4.1生成用戶界面8</p><p> 4.2 設置參數(shù)界面9</p><p><b> 總結35</b></p><p><b> 參考文獻36</b></p><p><b> 致謝37</b></p><p> 基于PAT
5、RAN艙口蓋參數(shù)化建模研究</p><p><b> 摘 要</b></p><p> 艙口蓋的設計主要是依據(jù)規(guī)范確定艙口蓋各種構件的尺寸,然后采用有限元軟件直接計算,然后根據(jù)應力結果和規(guī)范要求來修改構建尺寸,如此循環(huán)反復多次,不斷調(diào)整設計方案,直至使其滿足安全性和經(jīng)濟性的要求為止。但由于艙口蓋結構比較復雜,構建種類繁多,而且某些構件在不同區(qū)域的板厚也有所區(qū)
6、別。因此艙口蓋的設計分析過程相當費時費力的。本文采用了MSC.Patran內(nèi)置的PCL語言對其進行二次開發(fā),開發(fā)了基于規(guī)范的艙口蓋快速建模系統(tǒng),實現(xiàn)了艙口蓋有限元模型的參數(shù)化,大大縮短了艙口蓋的設計周期。</p><p> [關鍵詞]: 艙口蓋;Patran;PCL;參數(shù)化建模</p><p> THE PARAMETERIZED MODELING STUDY OF HATCH COV
7、ER BASED ON PATRAN</p><p><b> Abstract</b></p><p> The design of hatch cover are mainly based on the hatch cover regulating with various components to determine the size, and then
8、calculated by finite element software. At last, according the stress results and specifications to revise the building size, Keep revising several times until its safety and economy reach the standard. Because of the hat
9、ch cover structure is very complicate, construction have a large stype, thickness of hatch cover in different regions is different. Therefore, hatch co</p><p> [Key words]: hatch cover;Patran;PCL;parameteri
10、zed modeling</p><p><b> 1 緒論</b></p><p><b> 1.1 前言</b></p><p> 隨著經(jīng)濟的發(fā)展、社會的進步、全球化趨勢日趨明顯。隨著經(jīng)濟全球化的不斷發(fā)展,資源配置已經(jīng)從一個工廠、一個地區(qū)乃至一個國家擴展到整個世界,社會分工更加明顯,遠洋物流一直在不斷壯大,船舶制
11、造業(yè)正越來越受到廣泛的關注。</p><p> 艙口蓋作為船舶結構上的重要組成部分,承受波浪涌上甲板時的水頭壓力載荷,肩負密封艙口,保護貨物和支撐平臺的作用。近年來,因艙口蓋發(fā)生問題造成船舶沉沒事故已有多起。因此,國際造船界、各船級社都把艙口蓋的設計列為重要熱點問題之一。隨著造船技術和航運市場的發(fā)展,船舶建造向大型化方向發(fā)展已成必然趨勢,越來越多的船舶超過了原有規(guī)范的規(guī)定,需要利用有限元直接計算的手段來評估船舶
12、結構的安全性。</p><p> 在計算機技術高度發(fā)達的今天,有限元方法大量應用實踐過程中涌現(xiàn)出了很多表現(xiàn)優(yōu)秀、功能卓越的有限元軟件。經(jīng)過了大量科學工作者的不斷完善和創(chuàng)新,以及幾十年實踐應用的考驗。船舶工程中有限元方法的應用也有很大的發(fā)展,大量的有限元軟件應用于船舶結構建造等方面。其中就有國際著名的MSC.Software開發(fā)的大型通用有限元軟件MSC.Patran。</p><p>
13、 MSC.Software公司是世界領先的虛擬產(chǎn)品開發(fā)工具供應商,其仿真軟件、專業(yè)服務以及企業(yè)級系統(tǒng),幫助企業(yè)在產(chǎn)品設計、試驗和制造過程中創(chuàng)造財富、節(jié)約時間、降低成本。MSC.Software與全球數(shù)百個行業(yè)的數(shù)千家企業(yè)一道,利用信息技術、軟件、服務和系統(tǒng),增強他們的產(chǎn)品開發(fā)能力、優(yōu)化其產(chǎn)品開發(fā)流程,以期更快地開發(fā)出更好的產(chǎn)品。產(chǎn)品性能的仿真能夠降低開發(fā)成本,縮短產(chǎn)品上市周期、并降低維護成本。MSC公司的軟件產(chǎn)品以其在解決各類大型復雜結
14、構的強度、剛度、屈曲、模態(tài)、動力學、熱力學、非線性、(噪)聲學、流體-結構耦合、氣動彈性、超級單元、慣性釋放以及結構優(yōu)化問題等方面的卓越表現(xiàn),被廣泛應用于包括國防、航空航天、機械制造、汽車、船舶等大量行業(yè)和部門,用戶遍布世界100多個國家和地區(qū)的主要設計制造公司和研究機構。</p><p> 船舶結構中艙口蓋的設計是一個結構、強度、穩(wěn)定的綜合問題。傳統(tǒng)的做法是通過多次試算、不斷逼近最優(yōu)值。在這個過程中,設計人員
15、在很大程度上依賴經(jīng)驗和類比來進行設計,而分析人員則需要重復的進行修改模型、分析、校核,耗時多、周期長、工作量大。MSC.Patran是工業(yè)領域最著名的有限元前、后處理器,是一個開放式、多功能的三維MCAE軟件包,具有集工程設計、工程分析、和結果評估功能于一體的、交互圖形界面的CAE集成環(huán)境。Patran強大的處理功能足以解決當前艙口蓋建造過程中的不足,省去工程師大量繁瑣而枯燥的反復試算調(diào)整的過程。</p><p>
16、; 基于以上原因,為綜合以上多道工序,利用MSC.Patran自帶的PCL(Patran Command Language)語言做相應的二次開發(fā),進行參數(shù)化建模、定義優(yōu)化設計任務,完成優(yōu)化參數(shù)的設置,使艙口蓋在滿足結構安全性的同時,盡量降低制造成本有著重要的現(xiàn)實意義。</p><p><b> 1.2研究現(xiàn)狀</b></p><p> 1.2.1艙口蓋設計現(xiàn)狀&
17、lt;/p><p> 艙口蓋是船舶中用來遮蔽艙口,保護艙內(nèi)貨物不受風浪侵襲的結構,同時承受著波浪上涌時的水頭壓力。艙口蓋在設計的過程中需要考慮經(jīng)濟性和安全性。目前艙口蓋的設計主要是依據(jù)規(guī)范確定艙口蓋各種構件的尺寸,然后采用有限元軟件直接計算,分析結構應力,然后根據(jù)應力結果和規(guī)范要求來修改構建尺寸,如此反復,不斷調(diào)整設計方案,直到滿足安全性和經(jīng)濟性的要求為止。</p><p> 由于艙口蓋結
18、構比較復雜,構建種類繁多,而且某些構件在不同區(qū)域的板厚也有所區(qū)別。因此,當艙口蓋按照初步的設計尺寸進行有限元分析后都需要根據(jù)計算結果來修改調(diào)整初始的尺寸,再加上板格屈曲的影響,因此需要不止一次地調(diào)整板厚,修改設計方案。因此艙口蓋的設計分析過程相當費時費力的。</p><p> 1.2.2 PATRAN二次開發(fā)現(xiàn)狀</p><p> 美國MSC公司的Patran軟件平臺是世界一流的計算機
19、輔助分析前后處理器,具有快速幾何建模、通用有限元網(wǎng)格劃分和方便的邊界條件和材料特性定義的前處理功能,以及強大的有限元分析結果可視化后處理功能。但實際的工程應用都有其工程領域的專業(yè)特殊性,這些特定的專業(yè)應用領域希望有特定的功能和用戶界面。為此,MSC專門提供了二次開發(fā)語言PCL,即MSC.Patran Command Language。這個命令語言是集成于MSC.Patran中的一個高級化、模塊化結構的全功能計算機編程語言和用戶自定義工具
20、,類似于C語言和FORTRAN語言,具有標準C語言的幾乎全部功能,可以編制具有MSC.Patran風格或自由風格的用戶界面,也可以生成專用應用程序,它提供了豐富的表格和菜單庫以及大量的有限元前后處理內(nèi)部函數(shù),供用戶集成自編開發(fā)的分析程序或特定的圖形界面于MSC.Patran軟件系統(tǒng)中。</p><p> 目前,PCL的二次開發(fā)水平以美國為最高。開發(fā)隊伍除了MSC總部以外,主要集中在航空、航天、造船、汽車等行業(yè)的
21、領導型企業(yè)的軟件開發(fā)部門。但相對而言,他們還沒有把PCL開發(fā)作為一項軟件開發(fā)服務來看待,只是為了解決各自領域或部門的具體應用。</p><p> 國內(nèi)PCL開發(fā)隊伍也是主要集中于航空、航天、造船、汽車的大型企業(yè),以及一些科研院所。其中,由中國船級社組織開發(fā)的“船舶結構安全解決方案”軟件包較有代表性。</p><p> 2 PCL語言的介紹</p><p> 2
22、.1 PCL語言的簡介</p><p> PCL(全稱Patran Command Language)語言是的MSC.Patran一個高級的、模塊化結構的編程語言和用戶自定義工具,其語法規(guī)則十分類似于FORTRAN語言,而在界面創(chuàng)建方面又遠遠領先于FORTRAN。PCL語言提供了豐富的表格、控件、窗體、內(nèi)部函數(shù)等,供開發(fā)用戶開發(fā)各種用途的自定義界面(下拉菜單、窗體、工具欄圖標等)、執(zhí)行程序、宏命令和用戶函數(shù)等。
23、PCL語言的基礎知識與其他語言都大同小異,對于一個有FORTRAN等其他語言基礎的用戶來說,掌握PCL語言沒有任何障礙。根據(jù)MSC提供的幫助手冊,足夠用戶編寫功能強大的自定義界面和用戶子程序。</p><p> PCL語言類似于C語言和FORTRAN語言,它包含與之相同的數(shù)據(jù)類型,也具有大量的函數(shù)庫。除了基本的數(shù)學函數(shù)庫和系統(tǒng)訪問的函數(shù)庫以外,它還提供了大量與有限元建模有關的函數(shù),如幾何建模函數(shù),網(wǎng)格自動劃分函
24、數(shù),載荷施加,屬性添加及結果后處理有關的函數(shù)。利用這些函數(shù),用戶可以編寫自己的函數(shù),并用系統(tǒng)命令!!library將其加載到Patran中,建立與NASTRAN的連接,可以在以后的建模中隨時調(diào)用。由于MSC.Patran沒有自帶的程序編輯器,需要利用那些具有外部工具調(diào)用功能的編輯器,比如Microsoft Visual C++、Editplus等。這些編輯器都支持用戶自己開發(fā)的工具,首先要進行相關的參數(shù)設置,添加PCL工具菜單,將PCL
25、開發(fā)環(huán)境與批處理程序集成。設置完成后就可以在編寫函數(shù)文件的同時,直接通過編輯器進行PCL函數(shù)文件的編譯、轉換等工作,極大地方便了程序開發(fā)。</p><p> 2.2 PCL的主要功用</p><p> MSC.Patran命令語言(PCL)是一個高級、模塊化的結構編程語言和用戶自定義工具,類似于C語言和FORTRAN語言,可用于生成應用程序或特定的用戶界面,顯示自定義圖形、讀寫PATR
26、AN數(shù)據(jù)庫,建立新的或增強功能。同時通過PCL,其他商品化的或自編分析程序可被集成到Patran中。</p><p><b> 命令行表達式輸入。</b></p><p> 可編譯的命令庫函數(shù)。</p><p> 豐富的表格及菜單庫供開發(fā)用戶圖形界面。</p><p> 遞歸的子程序和函數(shù)調(diào)用。</p>
27、;<p> 同類函數(shù)歸于一個類。</p><p> 條件分子語句:if、then、else、swith、case、default、break、continue。</p><p> 條件循環(huán)語句:repeat、until、while、end while、for、to、by、end for、list、end list。</p><p> 用戶可定義
28、的表格生成功能使用戶的PCL函數(shù)可通過菜單選項來執(zhí)行。</p><p> 數(shù)據(jù)庫的訪問存取工具。</p><p> 整型、實型、邏輯型、字符串變量及常數(shù)。</p><p> 局部、全局、靜態(tài)變量及類變量。</p><p> 任意變量類型的數(shù)組。</p><p> 虛擬內(nèi)存數(shù)組及數(shù)組內(nèi)存管理功能。</p&
29、gt;<p><b> 跟蹤調(diào)試工具。</b></p><p><b> 數(shù)組排序和搜索。</b></p><p> 字符串函數(shù)包括大小寫轉換和所寫檢查。</p><p> 二進制和文本文件讀寫功能。</p><p><b> 多種數(shù)學函數(shù)程序。</b>
30、</p><p> 豐富的圖形函數(shù):繪點、線、虛圓或?qū)崍A、虛方塊或?qū)嵎綁K、虛多邊形或?qū)嵍噙呅?、在任意位置顯示文本、改變圖形寄存器。</p><p> 模型管理程序:比例縮放,轉動、旋轉、平移。</p><p><b> 系統(tǒng)實用工具。</b></p><p> 2.3 PCL語言結構</p>&l
31、t;p> 一個PCL程序類似于C或者FORTRAN的函數(shù),在第一行必須以FUNCTION開頭一行以END FUNCTION結尾,中間為函數(shù)段,PCL函數(shù)的定義格式如下:</p><p> FUNCTION fname (arglist)</p><p> declarations. . .</p><p> statements. . .</p&
32、gt;<p><b> (and/ or)</b></p><p> NOODL commands</p><p> END FUNCTION</p><p> 使用時,直接FUNCTION( arg )執(zhí)行就行了。</p><p> 2.4 PCL的編譯和使用</p><p&
33、gt; Patran提供了一個PCL的編譯程序p3pclcomp,在DOS窗口下可以執(zhí)行p3pclcomp,會出現(xiàn)“→”提示符,可以在提示符后輸入PCL編譯連接的指令,也可以直接在Patran圖形窗口的命令條中直接輸入PCL編譯連接的指令,常用的PCL編譯命令包括:</p><p> 1.input:讀入PCL文件并編譯解釋,用此方法可以直接使用PCL文件。其具體使用說明格式為:!!input file.p
34、cl</p><p> 2.compile:將PCL程序編譯成Patran的庫文件,用此方法可以把文本文件編譯成二進制文件,方便程序調(diào)用,而且可以進行程序的封裝。其具體使用格式為:!!compile file.pcl library.plb</p><p> 3.library:加載和組織Patran庫文件??梢约虞d任意個庫文件,也可以組織管理,包括合并,刪除程序類庫。 常用的使用說
35、明格式為:</p><p> !!library [add] library.plb(library.plb...) !!library [remove] library.plb(library.plb...) !!library [delete] librar
36、y.plb(lfunction.plb...)</p><p> 4.path:加載PCL目錄 !!path [add] directory(directory...) !!path [remove] directory(directory...)
37、 !!path none !!path 另外,PCL還提供了跟蹤調(diào)試命令和其他命令,實用比較少。我們一般把PCL程序的后綴作“.pcl”。PCL程序在PATRAN中可通過三種方法來進行編譯和連接,即:(1)PATRAN;(2)p3pclcomp;(3) make。</p><p> 3 參數(shù)化建模的概述</
38、p><p> 參數(shù)化建模一般應用在優(yōu)化技術上,通過將模型參數(shù)化,優(yōu)化過程中不斷對其進行迭代而求出最佳解。參數(shù)化建模是參數(shù)(變量)而不是數(shù)字建立和分析的模型,通過簡單的改變模型中的參數(shù)值就能建立和分析新的模型。參數(shù)化建模的參數(shù)不僅可以是幾何參數(shù),也可以是溫度、材料等屬性參數(shù)。在參數(shù)化的幾何造型系統(tǒng)中,設計參數(shù)的作用范圍是幾何模型。但幾何模型不能直接用于進行分析計算,需要將其轉化為有限元模型,才能為分析優(yōu)化程序所用。因
39、此,如果希望以幾何模型中的設計參數(shù)作為形狀優(yōu)化的設計變量,就必須將設計參數(shù)的作用范圍延拓至有限元模型,使有限元模型能夠根據(jù)設計變量的變化,實現(xiàn)有限元模型的參數(shù)化。</p><p> 參數(shù)化技術是最早是CAD在實際應用工作中提出的課題,它是該應用領域內(nèi)的一個重要的、且正在蓬勃發(fā)展的研究課題。參數(shù)化是指設計對象的結構形狀比較定型,可以用一組參數(shù)來確定設計對象,參數(shù)與設計對象的控制尺寸有明顯的對應關系,從而可使設計的
40、結果受尺寸的驅(qū)動。參數(shù)化設計是指參數(shù)化模型的尺寸對應關系的表示,而不是確定具體的數(shù)值,通過調(diào)準參數(shù)來修改和控制幾何形狀,自動實現(xiàn)產(chǎn)品的精確造型。變化一個參數(shù)值,自動改變所有與它相關的模型尺寸,并遵守約束條件,這就是采用參數(shù)化的模型。參數(shù)化設計與傳統(tǒng)方法相比,最大的不同在于它存儲了設計的整個過程,能設計出一簇而不是單一的產(chǎn)品模型。傳統(tǒng)的人機交互式繪圖一般要用精確的尺寸值定義幾何元素,輸入的每一條線都必須有確定的位置,圖形一旦確定,即使結構
41、相似,但想改變圖形大小尺寸,只能對圖形進行編輯。而工程設計中,一方面,進行新產(chǎn)品的設計不可避免地需要多次反復修改,需要進行零件結構和尺寸的綜合協(xié)調(diào)、優(yōu)化;另一方面,從大量機械、電子等系列產(chǎn)品的圖紙中可以發(fā)現(xiàn),同一基本結構形式的零部件,其圖形結構具有一定的相似性,往往只是尺寸的大小不同,其圖形尺寸隨尺寸參數(shù)的變化而相應變化。特別</p><p> 4 艙口蓋參數(shù)化建模程序的開發(fā)</p><p&
42、gt;<b> 4.1生成用戶界面</b></p><p> 為了利用MSC.Patran的前后處理功能,編寫了一系列的PCL 函數(shù),用來從MSC. Patran的數(shù)據(jù)庫中讀取數(shù)據(jù),并生成計算時所需的數(shù)據(jù)輸入文件,以及將結果文件的數(shù)據(jù)寫入Patran的數(shù)據(jù)庫中,供MSC.Patran進行前后處理。開發(fā)用戶界面的目的是為了將這些自編譯的函數(shù)集中起來,通過直觀的圖形界面進行交互,方便使用。在
43、開發(fā)用戶界面時,PCL提供了一系列與表格位置及大小有關的參數(shù)和用戶界面函數(shù),如:</p><p> Ui_form_create (創(chuàng)建一個用戶界面) :</p><p> Ui_botton_create (創(chuàng)建一個按鈕) :</p><p> Ui_listbox_create (創(chuàng)建一個list框) :</p><p> Ui_
44、optionmenu_create (創(chuàng)建一個優(yōu)選菜單):</p><p> 這些函數(shù)都可以直接調(diào)用,而FORM-WID-SML表示表格寬度為MSC.Patran中一個標準列的寬度。用戶不需要知道表格位置及大小的具體數(shù)值,便可以制定出符合MSC.Patran風格的界面。這些參數(shù)都包含在PCL語言的頭文件“appforms.p”中。因此,在程序的開始必須增加語句:include“appforms.p”。在程序編譯
45、時,首先要在C預編譯器中將含有該語句的“.pcl”文件編譯為“.cpp”文件,然后在MSC.Patran的命令行中編譯“.cpp”文件。 </p><p> 在進行參數(shù)化建模時,需要不斷地更改參數(shù),以建立新的模型。為此,可以生成相應的界面,使用戶很方便地通過界面的參數(shù),并啟動相關聯(lián)的程序。在PCL中提供一系列生成窗體和菜單的函數(shù),如:ui_menu_create ( )生成菜單、ui_form_ctreate
46、( )產(chǎn)生窗體、ui_button_create ( )產(chǎn)生按鈕、ui_databox_create ( )產(chǎn)生數(shù)據(jù)輸入對話框等,還有與窗體和菜單外觀有關的函數(shù)等。經(jīng)過編譯后就可以得到符合MSC.Patran風格的界面。在窗體中輸入或選擇參數(shù)后,可以ui_wid_get_vstring ( ) ,ui_wid_get ( )等函數(shù)得到相應參數(shù),并在關聯(lián)的程序中使用。</p><p> 4.2 設置參數(shù)界面<
47、;/p><p> 此次程序的開發(fā)主要針對艙口蓋的參數(shù)化建模。其有限元分析系統(tǒng)的程序框架分為三步,輸入特征參數(shù)如:強橫梁位置參數(shù),第一塊蓋板縱向?qū)挾葏?shù),第一根縱桁參數(shù),第二根縱桁參數(shù),第三根縱桁參數(shù),第一塊蓋板橫向長度,腹板高度參數(shù);程序獲取艙口蓋參數(shù)值;生成模型,實現(xiàn)參數(shù)化建模。設置的參數(shù)界面要合理,易于操作,并且符合MSC.Patran的操作規(guī)則。</p><p> 程序的開始,進行文
48、件聲明,如下:</p><p> #include "appforms.p"</p><p> #include "uiforms.p"</p><p> #include "lpenums.i"</p><p> #include "pdamsg.h"&
49、lt;/p><p> #include "lpkeywords.i"</p><p> CLASS bysj</p><p> CLASSWIDE WIDGET form_id1, dbox_bankuang, dbox_scd, dbox_x1, dbox_x2, dbox_x3, dbox_x4, dbox_x5</p>&l
50、t;p> FUNCTION init ()</p><p> REAL x_loc, y_loc, label_x_loc</p><p> REAL db_length</p><p> x_loc = UNFRAMED_L_MARGIN</p><p> y_loc = FORM_T_MARGIN</p>&
51、lt;p> db_length = DBOX_WID_SPECIAL - DBOX_LABEL_LEN_SPECIAL - DBOX_LABEL_X_OFFSET</p><p> form_id1 = ui_form_create ("", @</p><p> /*相對于screen而言的x坐標*/ FORM_X_LOC_SML, @</p>
52、<p> /*相對于screen而言的y坐標*/ FORM_Y_LOC, @</p><p> /*相對于哪個角落,本文選用左上角*/ "UL", @</p><p> /*寬度*/ FORM_WID_SML, @</p><p> /*高度*/ FORM_HGT_TALL, @</p><p>
53、/*標簽*/ "徐操畢業(yè)設計", @</p><p><b> "" )</b></p><p> 該函數(shù)所創(chuàng)建的標簽,如圖1。</p><p><b> 圖1 程序標簽</b></p><p> /*********創(chuàng)建作者信息的標簽*******
54、*****/</p><p> label_x_loc = BUTTON_THIRD_X_LOC2</p><p> ui_label_create(form_id1,"",label_x_loc,y_loc,"創(chuàng)建幾何")</p><p> 該函數(shù)所創(chuàng)建的標簽,如圖2。</p><p><
55、b> 圖2 創(chuàng)建標簽</b></p><p> /*********創(chuàng)建加載到MPC或者分點力加載************/</p><p> /*********************************創(chuàng)建艙口蓋特點的控件************************************************/</p><p&
56、gt; y_loc = y_loc + BUTTON_HGT + INTER_WIDGET_SPACE </p><p> dbox_bankuang=ui_databox_create (form_id1,"", x_loc, y_loc, 1, db_length, @</p><p> "強橫梁位置(mm):", ""
57、, FALSE, "REAL", 1)</p><p> y_loc = y_loc + DBOX_HGT_LABOVE + INTER_WIDGET_SPACE</p><p> dbox_scd=ui_databox_create (form_id1,"", x_loc, y_loc, 1, db_length, @</p>&
58、lt;p> "第一塊蓋板縱向?qū)挾?mm):", "", FALSE, "REAL", 1)</p><p> y_loc = y_loc + DBOX_HGT_LABOVE + INTER_WIDGET_SPACE</p><p> dbox_x1=ui_databox_create (form_id1,"&
59、quot;, x_loc, y_loc, 1, db_length, @</p><p> "第一根縱桁(mm):", "", FALSE, "REAL", 1)</p><p> y_loc = y_loc + DBOX_HGT_LABOVE + INTER_WIDGET_SPACE</p><p>
60、 dbox_x2=ui_databox_create (form_id1,"", x_loc, y_loc, 1, db_length, @</p><p> "第二根縱桁(mm):", "", FALSE, "REAL", 1)</p><p> y_loc = y_loc + DBOX_HGT_LAB
61、OVE + INTER_WIDGET_SPACE</p><p> dbox_x3=ui_databox_create (form_id1,"", x_loc, y_loc, 1, db_length, @</p><p> "第三根縱桁(mm):", "", FALSE, "REAL", 1)</p
62、><p> y_loc = y_loc + DBOX_HGT_LABOVE + INTER_WIDGET_SPACE</p><p> dbox_x4=ui_databox_create (form_id1,"", x_loc, y_loc, 1, db_length, @</p><p> "第一塊蓋板橫向長度(mm):"
63、, "", FALSE, "REAL", 1)</p><p> y_loc = y_loc + DBOX_HGT_LABOVE + INTER_WIDGET_SPACE</p><p> dbox_x5=ui_databox_create (form_id1,"", x_loc, y_loc, 1, db_length, @
64、</p><p> "腹板高度(mm):", "", FALSE, "REAL", 1)</p><p> 上述程序用于創(chuàng)建了參數(shù)輸入界面,如圖3。</p><p><b> 圖3 參數(shù)輸入框</b></p><p> /***************
65、******************創(chuàng)建計算艙口蓋特點的控件************************************************/</p><p> y_loc = y_loc + DBOX_HGT_LABOVE + INTER_WIDGET_SPACE</p><p> ui_button_create (form_id1, @</p>&l
66、t;p> /*調(diào)用函數(shù)名*/ "sure", @</p><p> /* x坐標*/ x_loc, @</p><p> /* y坐標*/ y_loc, @</p><p> /*按鈕的寬度 */ BUTTON_WID_THIRD, @</p><p> /* 按鈕的高度 */ BUTTON_HGT, @&
67、lt;/p><p> /*文字內(nèi)容 */ "關閉", @</p><p> /* */ TRUE, @</p><p> /*高亮度顯示為默認的按鈕 */ TRUE)</p><p> 該函數(shù)所創(chuàng)建的控制鍵,如圖4。</p><p><b> 圖4 關閉控制鍵</b>&
68、lt;/p><p> ui_button_create (form_id1, @</p><p> /*調(diào)用函數(shù)名*/ "next", @</p><p> /* x坐標*/ x_loc+BUTTON_WID_THIRD+2*INTER_WIDGET_SPACE, @</p><p> /* y坐標*/ y_loc,
69、@</p><p> /*按鈕的寬度 */ BUTTON_WID_THIRD, @</p><p> /* 按鈕的高度 */ BUTTON_HGT, @</p><p> /*文字內(nèi)容 */ "下一步...", @</p><p> /* */ TRUE, @</p><p> /*高亮度
70、顯示為默認的按鈕 */ TRUE)</p><p> END FUNCTION</p><p> 該函數(shù)所創(chuàng)建的控制鍵,如圖5。</p><p> 圖5 下一步控制鍵</p><p> FUNCTION display ()</p><p> ui_form_display ("bysj"
71、;)</p><p> END FUNCTION</p><p> /*****************建立關閉函數(shù)***************/</p><p> FUNCTION sure ()</p><p> ui_form_hide ("bysj")</p><p> END
72、FUNCTION</p><p> /*****************結束關閉頁面函數(shù)***************/</p><p> /*****************建立選擇新頁面函數(shù)***************/</p><p> /*****************建立選擇新頁面函數(shù)***************/</p><
73、;p> FUNCTION next ()</p><p> GLOBAL REAL bankuang, scd, x1, x2, x3, x4, x5</p><p> ui_wid_get (dbox_bankuang, "VALUE", bankuang)</p><p> ui_wid_get (dbox_scd, "
74、;VALUE", scd)</p><p> ui_wid_get (dbox_x1,"VALUE", x1)</p><p> ui_wid_get (dbox_x2,"VALUE", x2)</p><p> ui_wid_get (dbox_x3,"VALUE", x3)</p&
75、gt;<p> ui_wid_get (dbox_x4,"VALUE", x4)</p><p> ui_wid_get (dbox_x5,"VALUE", x5)</p><p> ui_exec_function ("bysj1","display")</p><p&
76、gt; ui_form_hide ("bysj")</p><p> ui_wid_save ("bysj")</p><p> END FUNCTION</p><p><b> END CLASS</b></p><p> /*****************結束選擇
77、新頁面函數(shù)***************/</p><p> CLASS bysj1</p><p> CLASSWIDE WIDGET form_id1, dbox_cbkszzs, dbox_scdgdszzs</p><p> FUNCTION init ()</p><p> REAL x_loc, y_loc, label_
78、x_loc</p><p> REAL db_length</p><p> x_loc = UNFRAMED_L_MARGIN</p><p> y_loc = FORM_T_MARGIN</p><p> db_length = DBOX_WID_SPECIAL - DBOX_LABEL_LEN_SPECIAL - DBOX_LA
79、BEL_X_OFFSET</p><p> form_id1 = ui_form_create ("", @</p><p> /*相對于screen而言的x坐標*/ FORM_X_LOC_SML, @</p><p> /*相對于screen而言的y坐標*/ FORM_Y_LOC, @</p><p> /*相對
80、于哪個角落,本文選用左上角*/ "UL", @</p><p> /*寬度*/ FORM_WID_SML, @</p><p> /*高度*/ FORM_HGT_TALL, @</p><p> /*標簽*/ "畢業(yè)設計", @</p><p><b> "" )&
81、lt;/b></p><p> 該函數(shù)所創(chuàng)建的標簽,如圖6。</p><p> 圖6 畢業(yè)設計標簽</p><p> /*********創(chuàng)建作者信息的標簽************/</p><p> label_x_loc = BUTTON_THIRD_X_LOC2</p><p> ui_labe
82、l_create(form_id1,"",label_x_loc,y_loc,"布種子")</p><p> /*********創(chuàng)建加載到MPC或者分點力加載************/</p><p> /*********************************創(chuàng)建艙口蓋特點的控件***************************
83、*********************/</p><p> y_loc = y_loc + BUTTON_HGT + INTER_WIDGET_SPACE </p><p> dbox_cbkszzs=ui_databox_create (form_id1,"", x_loc, y_loc, 1, db_length, "??:", &quo
84、t;", FALSE, "REAL", 1)</p><p> y_loc = y_loc + DBOX_HGT_LABOVE + INTER_WIDGET_SPACE</p><p> dbox_scdgdszzs=ui_databox_create (form_id1,"", x_loc, y_loc, 1, db_length,
85、"??:", "", FALSE, "REAL", 1)</p><p> /*********************************創(chuàng)建計算艙口蓋特點的控件************************************************/</p><p> y_loc = y_loc + DBOX_
86、HGT_LABOVE + INTER_WIDGET_SPACE</p><p> ui_button_create (form_id1, @</p><p> /*調(diào)用函數(shù)名*/ "sure", @</p><p> /* x坐標*/ x_loc, @</p><p> /* y坐標*/ y_loc, @</
87、p><p> /*按鈕的寬度 */ BUTTON_WID_THIRD, @</p><p> /* 按鈕的高度 */ BUTTON_HGT, @</p><p> /*文字內(nèi)容 */ "確定", @</p><p> /* */ TRUE, @</p><p> /*高亮度顯示為默認的按鈕 *
88、/ TRUE)</p><p> 該函數(shù)所創(chuàng)建的控制鍵,如圖7。</p><p><b> 圖7 確定控制鍵</b></p><p> ui_button_create (form_id1, @</p><p> /*調(diào)用函數(shù)名*/ "next", @</p><p>
89、; /* x坐標*/ x_loc+BUTTON_WID_THIRD+2*INTER_WIDGET_SPACE, @</p><p> /* y坐標*/ y_loc, @</p><p> /*按鈕的寬度 */ BUTTON_WID_THIRD, @</p><p> /* 按鈕的高度 */ BUTTON_HGT, @</p><p>
90、 /*文字內(nèi)容 */ "上一步...", @</p><p> /* */ TRUE, @</p><p> /*高亮度顯示為默認的按鈕 */ TRUE)</p><p> 該函數(shù)所創(chuàng)建的控制鍵,如圖8。</p><p> 圖8 上一步控制鍵</p><p> ui_wid_set (
91、dbox_scdgdszzs,"ENABLE", FALSE)</p><p> ui_wid_set (dbox_cbkszzs,"ENABLE", FALSE)</p><p> END FUNCTION</p><p> FUNCTION display ()</p><p> ui_fo
92、rm_display ("bysj1")</p><p> END FUNCTION</p><p> /*****************建立關閉函數(shù)***************/</p><p> FUNCTION sure ()</p><p> ui_form_hide ("bysj1"
93、;)</p><p> ui_exec_function ("bysj2","play")</p><p> END FUNCTION</p><p> /*****************結束關閉頁面函數(shù)***************/</p><p> /*****************建
94、立選擇新頁面函數(shù)***************/</p><p> /*****************建立選擇新頁面函數(shù)***************/</p><p> FUNCTION next ()</p><p> GLOBAL REAL cbkszzs, scdgdszzs</p><p> ui_wid_get (dbo
95、x_cbkszzs,"VALUE", cbkszzs)</p><p> ui_wid_get (dbox_scdgdszzs,"VALUE", scdgdszzs)</p><p> ui_exec_function ("bysj","display")</p><p> ui_
96、form_hide ("bysj1")</p><p> ui_wid_save ("bysj1")</p><p> END FUNCTION</p><p><b> END CLASS</b></p><p> /*****************結束選擇新頁面函數(shù)*
97、**************/</p><p> CLASS bysj2</p><p> FUNCTION init ()</p><p> END FUNCTION</p><p> FUNCTION play ()</p><p> GLOBAL REAL bankuang, scd, x1, x2,
98、x3, x4, x5</p><p> STRING bankuangxx [VIRTUAL], zz [VIRTUAL], z1 [VIRTUAL], z2 [VIRTUAL], @</p><p> z3 [VIRTUAL], z4 [VIRTUAL], z5 [VIRTUAL]</p><p> STRING z6 [VIRTUAL], fem_crea
99、te_mesh_2_nodes_created [VIRTUAL], @</p><p> fem_create_mesh_2_elems_created [VIRTUAL]</p><p> STRING fem_transform_elem_created_nids [VIRTUAL], </p><p> fem_transform_elem_creat
100、ed_eids [VIRTUAL],</p><p> fem_transform_elem_deleted_nids [VIRTUAL], </p><p> fem_transform_elem_deleted_eids [VIRTUAL]</p><p> STRING asm_line_2point_created_ids [VIRTUAL]</
101、p><p> STRING FEM_CREATE_MESH_C_NODES_CREATED [VIRTUAL]</p><p> STRING FEM_CREATE_MESH_C_ELEMS_CREATED [VIRTUAL]</p><p> INTEGER fem_create_mesh_2c_num_nodes</p><p> I
102、NTEGER fem_create_mesh_2c_num_elems</p><p> INTEGER fem_create_mesh_curve_num_nodes</p><p> INTEGER fem_create_mesh_curve_num_elems</p><p> /*****************變量傳遞***************/
103、</p><p> STRING xx [VIRTUAL]</p><p> sys_allocate_string (xx, 30)</p><p> sys_allocate_string (bankuangxx, 20)</p><p> sys_allocate_string (zz, 20)</p><p
104、> sys_allocate_string (z1, 20)</p><p> sys_allocate_string (z2, 20)</p><p> sys_allocate_string (z3, 20)</p><p> sys_allocate_string (z4, 20)</p><p> sys_alloca
105、te_string (z5, 20)</p><p> sys_allocate_string (z6, 20)</p><p> sys_allocate_string (fem_create_mesh_2_nodes_created, 20)</p><p> sys_allocate_string (fem_create_mesh_2_elems_cre
106、ated, 20)</p><p> sys_allocate_string (fem_transform_elem_created_nids, 20)</p><p> sys_allocate_string (fem_transform_elem_created_eids, 20)</p><p> sys_allocate_string (fem_tra
107、nsform_elem_deleted_nids, 20)</p><p> sys_allocate_string (fem_transform_elem_deleted_eids, 20)</p><p> sys_allocate_string (asm_line_2point_created_ids, 20)</p><p> sys_allocate
108、_string (FEM_CREATE_MESH_C_NODES_CREATED, 20)</p><p> sys_allocate_string (FEM_CREATE_MESH_C_ELEMS_CREATED, 20)</p><p> point_size (10)</p><p> asm_const_grid_xyz ("1",
109、 "[0 0 0]", "Coord 0", xx)</p><p><b> $# 創(chuàng)建第一個點</b></p><p> bankuangxx="["//str_from_real (bankuang)//" "//"0 0]"</p><p
110、> asm_const_grid_xyz ("2", bankuangxx,"Coord 0", xx)</p><p><b> $# 創(chuàng)建第二個點</b></p><p> zz="["//str_from_real (scd)//" "//"0 0]"
111、</p><p> asm_const_grid_xyz ("3", zz,"Coord 0", xx)</p><p><b> $# 創(chuàng)建第三個點</b></p><p> $# 123點y方向偏移1210偏移</p><p> z1="<0 "
112、;//str_from_real(x1)//" "//"0>"</p><p> asm_transform_grid_translate_1 ("4", z1, x1, FALSE, "Coord 0", 1, @</p><p> FALSE, FALSE, "Point 1:3&quo
113、t;, xx)</p><p> z2="<0 "//str_from_real(x2)//" "//"0>"</p><p> asm_transform_grid_translate_1 ("7", z2, x2, FALSE, "Coord 0", 1, @</p
114、><p> FALSE, FALSE, "Point 1:3", xx)</p><p> z3="<0 "//str_from_real(x3)//" "//"0>"</p><p> asm_transform_grid_translate_1 ("10&qu
115、ot;, z3, x3, FALSE, "Coord 0", 1, @</p><p> FALSE, FALSE, "Point 1:3", xx)</p><p> z4="<0 "//str_from_real(x4)//" "//"0>"</p><
116、;p> asm_transform_grid_translate_1 ("13", z4, x4, FALSE, "Coord 0", 1, @</p><p> FALSE, FALSE, "Point 1:3", xx)</p><p> z5="<0 0 "//"-"
117、//str_from_real(x5)//" "//">"</p><p> asm_transform_grid_translate_1 ("16", z5, x5, FALSE, "Coord 0", 1, @</p><p> FALSE, FALSE, "Point 1:15&quo
118、t;, xx)</p><p> asm_const_line_2point( "1", "Point 1", "Point 4", 0, "", 50., 1, z6 )</p><p> $# 1 Line created: Line 1</p><p> asm_const_
119、line_2point( "2", "Point 2", "Point 5", 0, "", 50., 1, z6 )</p><p> $# 1 Line created: Line 2</p><p> asm_const_line_2point( "3", "Point
120、3", "Point 6", 0, "", 50., 1, z6 )</p><p> $# 1 Line created: Line 3</p><p> asm_const_line_2point( "4", "Point 4", "Point 7", 0, "&
121、quot;, 50., 1, z6 )</p><p> $# 1 Line created: Line 4</p><p> asm_const_line_2point( "5", "Point 5", "Point 8", 0, "", 50., 1, z6 )</p><p>
122、 $# 1 Line created: Line 5</p><p> asm_const_line_2point( "6", "Point 6", "Point 9", 0, "", 50., 1, z6 )</p><p> $# 1 Line created: Line 6</p>&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于patran板架參數(shù)化建模研究【畢業(yè)設計】
- 基于patran船體結構參數(shù)化建模初步研究【畢業(yè)設計】
- 基于nastran的艙口蓋有限元計算【畢業(yè)設計】
- 基于patran板架參數(shù)化建模研究【開題報告】
- 基于patran船體結構參數(shù)化建模初步研究【開題報告】
- 船舶與海洋工程畢業(yè)設計基于vb的艙口蓋結構計算程序開發(fā)
- 某集裝箱船艙口蓋自由振動分析【畢業(yè)設計】
- 基于vb與acess數(shù)據(jù)庫艙口蓋規(guī)范計算軟件開發(fā)【畢業(yè)設計】
- 7000dwt成品油船艙口蓋自由振動模態(tài)分析【畢業(yè)設計】
- 船舶與海洋工程畢業(yè)設計散貨船艙口蓋自由振動分析
- 船舶與海洋工程畢業(yè)設計成品油船艙口蓋自由振動分析
- 基于 nastran的艙口蓋有限元設計【開題報告】
- 艙口蓋結構優(yōu)化設計及軟件開發(fā).pdf
- 船舶與海洋工程畢業(yè)設計集裝箱船艙口蓋自由振動分析
- 基于vb的艙口蓋結構計算程序開發(fā)【文獻綜述】
- 基于vb的艙口蓋結構計算程序開發(fā)【開題報告】
- 深溝球軸承畢業(yè)設計--基于ugnx深溝球軸承的參數(shù)化建模
- 散貨船艙口蓋方案優(yōu)化設計與制造工藝研究.pdf
- 齒輪參數(shù)化設計畢業(yè)設計
- 超大型礦砂船艙口蓋的結構強度研究.pdf
評論
0/150
提交評論