孟祥杰 屈新田 席盛
摘要:針對企業(yè)在汽車整車建模、前處理過程中需處理大量數(shù)據(jù)重復(fù)操作多,所需工時占CAE分析比重大等問題,依托Hyper works軟件提供的二次開發(fā)接口平臺。應(yīng)用TK/TCL程序設(shè)計語言及相關(guān)工具開發(fā)整車網(wǎng)格批處理及相應(yīng)的前處理嵌套程序,提高CAE分析的工作效率。應(yīng)用到多個車型的網(wǎng)格建模與前處理,工作效率提高了70%-80%,驗證了嵌套程序的可靠性及穩(wěn)定性,縮短了企業(yè)設(shè)計產(chǎn)品開發(fā)周期,對企業(yè)其它平臺開發(fā)具有一定指導(dǎo)意義。
關(guān)鍵詞:網(wǎng)格批處理;程序開發(fā);CAE建模;二次開發(fā)
前言
企業(yè)在整車開發(fā)過程中,CAE分析大約需要4-5輪分析,分析項目一般為200-300項左右,其中整車建模數(shù)據(jù)量大,且有限元分析中的前處理需要時間占據(jù)整個分析的比重較大,其中大部分需要手工操作與重復(fù)操作,容易發(fā)生人為錯誤。為了提升這部分工作效率與仿真精度并使其操作簡便化,進(jìn)而縮短整個產(chǎn)品的研發(fā)周期,采用Hyper works軟件自帶的二次開發(fā)接口,將這一部分的工作程序化、模塊化是有必要的。本文以Hyperworks軟件中的Hyper mesh為開發(fā)環(huán)境,綜合采用TK/TCL程序設(shè)計語言與Hyper works內(nèi)置函數(shù),開發(fā)出用于整車網(wǎng)格批處理及相應(yīng)的有限元前處理功能的嵌套程序。并闡述了程序開發(fā)流程及關(guān)鍵技術(shù),并通過多個車型建模及前處理驗證,驗證程序的實用性及可行性,提高了產(chǎn)品沒計效率,對企業(yè)平臺開發(fā)具有借鑒意義。
1 程序開發(fā)需求分析
1.1開發(fā)流程的特點分析
以汽車在整車模態(tài)及剛度分析為例,整車建模及前處理過程占用大部分的分析時間。數(shù)據(jù)規(guī)模量大及重復(fù)操作為這部分工作的主要特點,白車身結(jié)構(gòu)件的數(shù)量一般為400~500個左右,車身焊點數(shù)量約為4000個左右。如圖1所示,建模過程中重復(fù)性操作較多,如CAD模型輸入、裝配調(diào)整、幾何清理、網(wǎng)格劃分、網(wǎng)格質(zhì)量調(diào)整及定義材料和屬性等前處理工作。一個車型開發(fā)需要4-5輪仿真分析,這就使分析工作中的重復(fù)操作成倍增加,同時幾何清理,網(wǎng)格劃分及前處理T作大部分都是手工操作,效率非常低。
1.2程序開發(fā)的需求
汽車整車結(jié)構(gòu)模態(tài)、剛度、及碰撞分析都需要整車建模,現(xiàn)在整車建模還需要大量的手工操作來完成,操作繁瑣且重復(fù)性高,占用整個分析的工時比例大,基于此特點,建立程序流程化建模以此來提高整車分析效率顯得尤為重要。要建立流程化建模程序,首先需要掌握整車分析流程的各個環(huán)節(jié)的作用,針對每個環(huán)節(jié)設(shè)計有針對性的程序來實現(xiàn)相應(yīng)的功能,相應(yīng)的程序開發(fā)流程圖如圖2所示。其次相應(yīng)的程序開發(fā)語言需要掌握,如Hyper Works內(nèi)置函數(shù)及命令語言,與軟件平臺接口銜接的TK/TCL語言等。
2 程序開發(fā)的關(guān)鍵技術(shù)
2.1 HyperWorks內(nèi)置函數(shù)
Hyper Works為企業(yè)用戶提供了功能豐富的內(nèi)置函數(shù),主要分為兩種:一種為“*”開頭的命令函數(shù),如*2create mark,*create mark panel,*property update等,另一種以“hm”開頭的命令,為TK/TCL語言,如hm-framework.hm_markclearall等,在Hyper Works軟件4.0以后的版本嵌套了TK/TCL語言,為企業(yè)定制嵌套程序及同化經(jīng)驗和傳承提供基礎(chǔ)。同時通過proc命令,用它可以隨時定義新的過程,應(yīng)用過程概念可以將問題解釋的方案打包,便于程序的重復(fù)性調(diào)用[1]。通過命令函數(shù)可以實現(xiàn)HyperMesh與DataBase的互聯(lián),使嵌入程序?qū)崿F(xiàn)其自身功能。
2.2 Tcl/Tk程序語言
Tcl為一種腳本語言,與C++和Java相比,Tcl能夠更簡單的向其應(yīng)用程序添加解釋器。Tk作為Tcl語言圖形界面的工具包,其作用為定義Tcl命令,創(chuàng)建與操縱用戶界面[2]。Tk是Tcl的應(yīng)用擴(kuò)展,本身的全部功能均可通過Tcl命令獲得,其本身具有很大彈性與動態(tài)可控性,凸顯比其它工具包功能更強(qiáng)大的特點[3]。Tcl/Tk語言在流程開發(fā)過程中的易學(xué),與軟件接口無縫嵌套等特點,用它來組織界面背后代碼,實現(xiàn)代碼間的邏輯關(guān)系,達(dá)成程序自動化的目的[4]。利用Tk語言創(chuàng)建的二次開發(fā)程序與用戶交互CUIs。如圖3所示,是劃分網(wǎng)格提取厚度的交互界而。
2.3 HyperWorks內(nèi)置交互界面
HyperWorks有許多的內(nèi)置交互界面創(chuàng)建函數(shù),可以通過調(diào)用函數(shù)來創(chuàng)建開發(fā)程序的交互界面,如,此命令創(chuàng)建一個交互窗口,進(jìn)而開發(fā)出自己需求的人機(jī)交互界面。
2.4獲取HyperMesh命令流
用戶在操作HyperMesh時,HyperMesh會自動記錄相關(guān)的命令內(nèi)容,如打開或?qū)CATIA數(shù)模,用戶進(jìn)行幾何清理,劃分網(wǎng)格,創(chuàng)建Component及賦單元屬性及材料等相關(guān)操作命令。所有的命令流均存放在C0mmond.cmf件中,文件路徑為HyperMesh的工作目錄下。而Cnmmond.cmf文件的命令流是以“*”為開頭的,如*evaltclscript(“midsurf_thickness.tcl”,0),由命令名稱與相關(guān)的參數(shù)構(gòu)成,參數(shù)包含在括號內(nèi),以逗號隔開。如*rotateahour(0,0,O,0),HyperMesh把*與“(”之間的部分作為命令流,其后的部分作為參數(shù),通過將命令流加以修改使之符合Tcl/Tk語法要求,即可以獲取操作相關(guān)內(nèi)容的命令流,如:
其命令為更改components名字,將后面的名字替換前面的名字。
3 建模流程自動化
在進(jìn)行整車有限元網(wǎng)格建模時,目前已經(jīng)實現(xiàn)從CATIA數(shù)模中抽取中面并根據(jù)幾何數(shù)據(jù)提取板件的厚度,并通過Batchmesher進(jìn)行幾何清理與網(wǎng)格劃分,處理后的網(wǎng)格只需要稍微的進(jìn)行干涉調(diào)整與網(wǎng)格質(zhì)量調(diào)整就可以應(yīng)用于分析。通過BOM表賦組件材料,根據(jù)焊點excel文件中的連接組件關(guān)系,通過excel中的VBA語言自動生成HyperMesh使用的焊點。用戶只需要根據(jù)分析流程,進(jìn)行相應(yīng)的簡單操作,就可以將繁瑣且重復(fù)的整車建模及前處理上作完成,提高了分析效率并減少了出錯率。
建模流程實現(xiàn)自動化后,相應(yīng)的車型建模工時由原來的1000個左右縮減為300個左右,同時建模的出錯率降低了80%-90%。
對于完成一個整車建模需要走的流程包括CATIA數(shù)據(jù)導(dǎo)入,幾何清理與網(wǎng)格劃分,賦屬性,模型組裝,建立焊點及相應(yīng)的連接關(guān)系等部分。建模流程自動化如下圖4所示,除模型導(dǎo)人與模型檢查及網(wǎng)格干涉和質(zhì)量調(diào)整外,其它的環(huán)節(jié)均實現(xiàn)自動化。
3.1 建模流程的具體實施步驟
整車建模自動化流程實施具體分為七大步驟:l導(dǎo)入模型并更改組件名稱;2.用batchmesh模塊進(jìn)行幾何清理與網(wǎng)格劃分;3讀取幾何厚度賦網(wǎng)格單元料厚;4將網(wǎng)格單元與幾何組件同組;5.根據(jù)組件名來創(chuàng)建相對應(yīng)的同名屬性;6.通過BOM表添加單元的材料屬性;7.將excel焊點文件轉(zhuǎn)換為HyperMesh軟件焊點,自動創(chuàng)建焊點。軟件的實施流程圖,如圖5所示,相關(guān)的程序TCL語言腳本如圖6所示:
3.1.1 導(dǎo)入模型并按標(biāo)準(zhǔn)更改組件名
將CATIA數(shù)模導(dǎo)入HyperMesh軟件時,其中Part名會增加一些沒用的后綴,使HyperMesh中的組件名與CATIA建立的名字不符,通過點擊“compname”實現(xiàn)Part名與HyperMesh軟件中組件名同名,具體實例如圖7、圖8所示:
3.1.2 BatchMesher自動清理幾何與網(wǎng)格劃分
將更改組件名后的模型,通過點擊“batch-mesh”來調(diào)用batchmesher模塊,進(jìn)行相應(yīng)的單元網(wǎng)格參數(shù)設(shè)置及幾何清理參數(shù)設(shè)置,自動劃分網(wǎng)格,網(wǎng)格劃分完后自動存入相應(yīng)的文件中,界面操作如圖9所示,給出了hatchmesher的操作界面。
3.1.3讀取幾何厚度賦網(wǎng)格單元料厚
依托前一步的單元網(wǎng)格劃分后的模型如圖10所示,點擊“midsurf_thickness”讀取幾何厚度賦予網(wǎng)格單元料厚,選擇相應(yīng)的軟件模板來提取料厚,并選擇相應(yīng)的單元賦料厚,操作界面如圖11所示:
3.1.4將網(wǎng)格單元與幾何組件同組
自動賦予單元料厚完成后,幾何組件與網(wǎng)格單元組件是分開存放的,網(wǎng)格單元存放在以”t-料厚*100-0“的組件里,如圖12所示,點擊“aum_assign”后會將幾何組件與網(wǎng)格單元同組,便于以后更改數(shù)據(jù),如圖13所示:
3.1.5根據(jù)組件名來創(chuàng)建同名屬性
根據(jù)整車建模標(biāo)準(zhǔn)要求,每一個Part組件對應(yīng)一個同名的屬性要求,點擊“propname”將前一步的單元與幾何組件同名模型,根據(jù)組件名依次創(chuàng)建同名對應(yīng)屬性,如圖14所示:
3.1.6通過BOM表添加單元材料屬性
完成以上操作后,點擊“read mat from BOM”根據(jù)彈出組件面板選取組件,根據(jù)提示指定相應(yīng)項目的BOM表(excel格式),程序自動讀取BOM表中的材料,并創(chuàng)建相應(yīng)的材料屬性賦予相應(yīng)的組件,并將材料牌號信息體現(xiàn)在組件名稱中。
3.1.7單元部件組裝并自動創(chuàng)建焊點
由于整車白車身組件大概在200-300個左右,劃分網(wǎng)格不能一個白車身一起畫,首先電腦硬件不支持及相應(yīng)的軟件不能一起處理這么大的數(shù)據(jù)量,另一個對于劃分網(wǎng)格后的網(wǎng)格單元質(zhì)量調(diào)整也不便,所以劃分網(wǎng)格一般按系統(tǒng)分為10-15個部分。在此將各個部分組裝到一起,導(dǎo)人一個模型中形成整車白車身網(wǎng)格。CATIA焊點幾何數(shù)據(jù)信息中的焊點層數(shù)與所連接部件通過excel格式輸出,如圖15所示,根據(jù)excel中的VBA語言將CATIA焊點數(shù)據(jù)信息轉(zhuǎn)換為HyperMesh軟件中的焊點信息,轉(zhuǎn)換工具如圖16所示。再點擊”auto-spot“根據(jù)轉(zhuǎn)換的焊點文件自動創(chuàng)建整車白車身焊點,如圖17所示。最后完成整車白車身網(wǎng)格建模,如圖18所示:
4 結(jié)論
本文創(chuàng)建的整車網(wǎng)格建模批處理及賦屬性自動化程序,目前已應(yīng)用到多個車型的開發(fā)。每輪車型白車身建模工時南1000T時縮短為300個工時左右。同時建模出錯率降低了80%-90%左右。
本文開發(fā)的自動化建模程序不僅提高了工作效率,還能確保建模按照規(guī)范進(jìn)行,減少人為錯誤發(fā)生幾率,提高了模型的準(zhǔn)確性與精度,減輕了CAE工程師繁重的網(wǎng)格前處理工作,同時能夠?qū)⒏蟮木ν度氲侥芰μ嵘c創(chuàng)造性開發(fā)工作來。
參考文獻(xiàn):
[l]John K. Ousterout Ken Jones著,張元章譯Tcl/Tk入門經(jīng)典(第2版)[M]北京:清華大學(xué)出版社.2010.10
[2]王道義,喬陶鵬,等,Tcl/Tk組合教程(第2版)[M].北京:電子工業(yè)出版社,2001.2
[3]王堅,金革,Tcl/Tk和C語言的接口.[J].計算機(jī)應(yīng)用.2000,20 (12):20
[4]曹文銅,范超,基于HyperWorks的CAE流程自動化系統(tǒng)設(shè)計開發(fā).[J].工程圖學(xué)學(xué)報,201