国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于HAJIF系統(tǒng)的汽車部件模型庫設(shè)計(jì)與實(shí)現(xiàn)

2021-07-14 07:12許向彥羅國偉王立凱
工程與試驗(yàn) 2021年2期
關(guān)鍵詞:模型庫頂點(diǎn)文檔

許向彥,羅國偉,王立凱

(1.中國飛機(jī)強(qiáng)度研究所,陜西 西安 710065;2.廣東亞太新材料科技有限公司,廣東 肇慶 526000)

1 引 言

HAJIF是中國飛機(jī)強(qiáng)度研究所研發(fā)的一款大型有限元分析軟件,其功能全面,具備靜力、屈曲、模態(tài)等通用分析求解能力,在諸多航空產(chǎn)品結(jié)構(gòu)分析中獲得應(yīng)用。當(dāng)前,隨著軍民融合的不斷深入,以及工業(yè)CAE軟件自主化的緊迫需求,HAJIF軟件所服務(wù)的行業(yè)也從航空航天領(lǐng)域拓展到軌道交通、汽車等領(lǐng)域。

汽車工業(yè)中,汽車零部件是構(gòu)成汽車主機(jī)的基礎(chǔ),精確無誤的汽車零部件有限元模型是得到整車正確分析結(jié)果的基本保證?;贖AJIF平臺(tái)建立的汽車部件模型庫,作為零部件模型與分析軟件之間的連接紐帶,可以集成前人優(yōu)秀的建模經(jīng)驗(yàn)及技巧,同時(shí),鑒于HAJIF結(jié)構(gòu)分析軟件的國產(chǎn)自主化,可以有效保證該模型庫的延續(xù)性,方便后續(xù)修改與改進(jìn)。

本文以HAJIF平臺(tái)為依托,基于XML與OpenGL技術(shù)實(shí)現(xiàn)了汽車零部件模型庫的搭建。該模型庫可以同時(shí)存儲(chǔ)STL幾何模型與BDF、HJF等有限元模型,支持將其無縫加載至HAJIF系統(tǒng)中進(jìn)行顯示與分析,具有一定的工程實(shí)用價(jià)值。

2 相關(guān)技術(shù)

2.1 XML

XML(Extensible Markup Language)是一種類似于HTML的標(biāo)記語言,但是XML沒有使用預(yù)定義的標(biāo)記。因此,XML允許根據(jù)自己的設(shè)計(jì)需要定義專屬的標(biāo)記。這是一種十分有用的可存儲(chǔ)、可搜索和可共享的格式存儲(chǔ)數(shù)據(jù)的方法。更重要的是,因?yàn)閄ML的基本格式是標(biāo)準(zhǔn)化的,所以如果跨系統(tǒng)或平臺(tái)共享或傳輸XML,無論是在本地還是在互聯(lián)網(wǎng)上,接收方仍然可以根據(jù)標(biāo)準(zhǔn)化的XML語言解析數(shù)據(jù)。

XML文件的讀取技術(shù)有3種:分別是QXmlStreamReader、DOM和SAX??紤]到所建立的汽車部件模型庫需要具備模型動(dòng)態(tài)添加與刪除的功能,同時(shí)綜合上述3種XML文件讀取技術(shù)的各自特點(diǎn),本文最終選用DOM技術(shù)進(jìn)行XML文件的讀取與處理。

DOM將XML文檔描述為一棵樹結(jié)構(gòu),Tree數(shù)據(jù)結(jié)構(gòu)的每個(gè)節(jié)點(diǎn)表現(xiàn)為一個(gè)XML標(biāo)記或者XML標(biāo)記內(nèi)的文本項(xiàng)。樹形結(jié)構(gòu)精確地描述了XML文檔中標(biāo)記間以及文本項(xiàng)間的相互關(guān)聯(lián)性。下述XML文檔為系統(tǒng)中存儲(chǔ)汽車部件模型的部分信息,包含部件名稱及部件信息:

其所對應(yīng)的DOM樹如圖1所示。

圖1 XML文檔對應(yīng)DOM樹

由于利用DOM技術(shù)可以將XML文檔轉(zhuǎn)換為樹形數(shù)據(jù)結(jié)構(gòu),所以通過完成樹形結(jié)構(gòu)的遞歸遍歷即可完成XML文檔的完整讀取。反之,將用戶在模型庫中所做的修改保存至XML文檔中即可完成零部件模型信息的修改。

2.2 OpenGL

OpenGL是一項(xiàng)成熟的圖形化顯示技術(shù)。在OpenGL中,所有模型都處于3D空間中,而屏幕和窗口只能以2D像素?cái)?shù)組輸出,所以,OpenGL的大部分工作是把3D坐標(biāo)轉(zhuǎn)變?yōu)槠聊贿m應(yīng)的2D像素。3D坐標(biāo)轉(zhuǎn)變?yōu)?D坐標(biāo)的處理過程是由OpenGL的圖形渲染管線管理。本文通過在OpenGL固定渲染管線中加入自定義可編程著色器,完成STL幾何模型的圖形化顯示。

OpenGL的固定渲染管線一般包含以下幾個(gè)步驟:(1)頂點(diǎn)變換。頂點(diǎn)變換作為渲染管線中的首個(gè)處理模塊,所包含的信息非常多,模型的各項(xiàng)操作都在此模塊中完成。(2)圖元裝配。圖元裝配階段將頂點(diǎn)變換模塊輸出的所有頂點(diǎn)作為輸入,并將所有的點(diǎn)裝配成指定圖元的形狀輸出。(3)幾何裝配。幾何裝配模塊會(huì)把圖元裝配階段的輸出數(shù)據(jù)當(dāng)作其輸入,可以通過產(chǎn)生新的頂點(diǎn)構(gòu)造新的圖元來生成其他形狀。幾何裝配階段的輸出既可以輸出至紋理裝配模塊使圖形更為逼真,也可以直接發(fā)送至光柵化階段。(4)紋理裝配。紋理裝配的作用在于其可以通過添加模型細(xì)節(jié)使得模型或場景更為逼真。(5)光柵化。光柵化階段會(huì)把圖元映射為屏幕或窗口中相應(yīng)的像素,生成供片段著色階段使用的片段。(6)片段操作。片段著色階段的主要目的是計(jì)算一個(gè)像素的最終表現(xiàn)形式。在該階段中,利用著色器編程語言編寫相應(yīng)腳本可以自定義設(shè)置模型輸出顏色及光照效果。

在固定渲染管線的基礎(chǔ)上,本文利用圖形著色語言編寫頂點(diǎn)著色器與片段著色器,完成模型的控制與自定義顯示。頂點(diǎn)著色器與片段著色器的代碼片段如下所示:

(1)頂點(diǎn)著色器

#version 120

attribute vec3 vertex_position;

uniform mat4 transform_matrix;

uniform mat4 view_matrix;

varying vec3 ec_pos;

void main() {

gl_Position = view_matrix*transform_matrix*vec4(vertex_position, 1.0);

ec_pos = gl_Position.xyz;

}

(2)片段著色器

#version 120

uniform float zoom;

varying vec3 ec_pos;

void main() {

vec3 base3 = vec3(0.99, 0.96, 0.89);

vec3 base2 = vec3(0.92, 0.91, 0.83);

vec3 base00 = vec3(0.40, 0.48, 0.51);

vec3 ec_normal = normalize(cross(dFdx(ec_pos), dFdy(ec_pos)));

ec_normal.z *= zoom;

ec_normal = normalize(ec_normal);

float a = dot(ec_normal, vec3(0.0, 0.0, 1.0));

float b = dot(ec_normal, vec3(-0.57, -0.57, 0.57));

gl_FragColor = vec4((a*base2 + (1-a)*base00)*0.5 +(b*base3 + (1-b)*base00)*0.5, 1.0);

}

3 系統(tǒng)框架及子模塊設(shè)計(jì)

本系統(tǒng)依照XML文件完成系統(tǒng)初始化配置,同時(shí)對外開放3種類型的接口,分別是模型增加刪除的修改接口、模型信息的顯示接口,以及模型與HAJIF系統(tǒng)或幾何模型圖形化顯示模塊的交互接口。系統(tǒng)框架設(shè)計(jì)圖如圖2所示。

圖2 系統(tǒng)框架設(shè)計(jì)圖

對于模型增加與刪除接口,用戶完成模型修改后,通過將相關(guān)信息寫入XML配置文件中完成模型信息的保存與更新。以XML數(shù)據(jù)為基礎(chǔ)的系統(tǒng)搭建完成了數(shù)據(jù)與系統(tǒng)的分離,使模型數(shù)據(jù)的分享更為便捷。用戶可以導(dǎo)出模型相關(guān)文件與配置文件,進(jìn)而分享給其他人。與此同時(shí),用戶也可以直接導(dǎo)入從別處獲得的模型庫,快速實(shí)現(xiàn)相互共享。

對于模型顯示接口,系統(tǒng)提供統(tǒng)一的數(shù)據(jù)結(jié)構(gòu),模型具備以下屬性:(1)模型名稱;(2)模型文件;(3)模型描述信息;(4)模型圖片;(5)模型附加文件。這5項(xiàng)屬性可以較為完整地描述一個(gè)模型的相關(guān)信息。

本系統(tǒng)同時(shí)支持汽車零部件的有限元模型與幾何模型的存儲(chǔ),有限元模型的存儲(chǔ)意義在于其可以固化前人的有限元建模經(jīng)驗(yàn),而幾何模型的存儲(chǔ)則可以固化前人的設(shè)計(jì)經(jīng)驗(yàn),經(jīng)典的設(shè)計(jì)結(jié)構(gòu)對后續(xù)設(shè)計(jì)人員的工作具有重要的指導(dǎo)作用。

在計(jì)算機(jī)圖形應(yīng)用系統(tǒng)中,STL文件是一種描述三角形網(wǎng)格的標(biāo)準(zhǔn)格式,其具有ASCII碼格式與二進(jìn)制兩種格式。主流的CAD系統(tǒng)均可輸出STL格式的幾何模型,鑒于此,本系統(tǒng)同時(shí)提供STL幾何模型的圖形化顯示接口。

幾何模型圖形化模塊的設(shè)計(jì)邏輯如圖3所示。當(dāng)STL幾何模型從汽車部件模型庫中導(dǎo)入進(jìn)來時(shí),通過STL模型解析器首先判斷STL幾何模型文件格式,對于ASCII格式與二進(jìn)制格式分別處理解析得到模型頂點(diǎn)與面法線相關(guān)信息,將所有信息傳入可編程渲染管線中進(jìn)行渲染,同時(shí)通過設(shè)計(jì)模型交互模塊獲取用戶的操作信息(旋轉(zhuǎn),平移,放大縮小),繼而在幾何模型中反饋顯示。

圖3 幾何模型顯示模塊邏輯設(shè)計(jì)圖

4 軟件實(shí)現(xiàn)

本系統(tǒng)基于Visual Studio 2010,采用面向?qū)ο笏枷?,依托HAJIF系統(tǒng)搭建完成,主要涉及到的Qt庫有QtGui庫、QtOpenGL庫、QGLShaderProgram庫、QDomDocument庫及QTreeWidget庫。幾何模型顯示模塊的界面設(shè)計(jì)如圖4所示。

圖4 幾何模型顯示模塊界面

幾何模型顯示模塊支持用戶與模型的交互,用戶可以通過鼠標(biāo)操作實(shí)現(xiàn)模型的旋轉(zhuǎn)、縮放及平移。圖5是測試模型經(jīng)過一定程度的縮放、平移與旋轉(zhuǎn)后的模型顯示圖。

圖5 模型交互顯示圖

幾何模型顯示模塊作為其中一個(gè)功能點(diǎn),可以滿足用戶的基本需求。相對于幾何模型顯示功能,有限元模型的有效管理以及與HAJIF系統(tǒng)的無縫連接會(huì)發(fā)揮更為重要的作用。

圖6描述了某汽車左前門防撞梁的模型信息,通過加載接口,可以將該模型直接導(dǎo)入HAJIF系統(tǒng)中,通過HAJIF系統(tǒng)可直接提交該模型的求解計(jì)算,計(jì)算結(jié)果如圖7所示。完整的模型信息展示以及與HAJIF系統(tǒng)的無縫連接大大提高了分析人員的工作效率。

圖6 左前門防撞梁導(dǎo)入HAJIF系統(tǒng)圖

圖7 左前門防撞梁計(jì)算結(jié)果圖

5 結(jié)束語

本文以HAJIF平臺(tái)為依托,基于XML與OpenGL技術(shù)完成了汽車部件模型庫的搭建,可以同時(shí)集成包含大量建模經(jīng)驗(yàn)的有限元模型數(shù)據(jù)與包含設(shè)計(jì)經(jīng)驗(yàn)的幾何模型數(shù)據(jù),大大提高了有限元分析人員的分析效率。自定義的XML配置與HAJIF分析軟件的國產(chǎn)自主化保證了該系統(tǒng)的可拓展性與可延續(xù)性,具有一定的工程實(shí)用價(jià)值。

猜你喜歡
模型庫頂點(diǎn)文檔
淺談Matlab與Word文檔的應(yīng)用接口
過非等腰銳角三角形頂點(diǎn)和垂心的圓的性質(zhì)及應(yīng)用(下)
過非等腰銳角三角形頂點(diǎn)和垂心的圓的性質(zhì)及應(yīng)用(上)
有人一聲不吭向你扔了個(gè)文檔
基于Creo參數(shù)化建模的設(shè)備模型庫建立方法
Pro/E的三維往復(fù)壓縮機(jī)參數(shù)化模型庫的建立
基于RI碼計(jì)算的Word復(fù)制文檔鑒別
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
基于模型庫系統(tǒng)的金融體系流動(dòng)性風(fēng)險(xiǎn)預(yù)警機(jī)制研究
基于模型庫的現(xiàn)代成本會(huì)計(jì)計(jì)量系統(tǒng)研究