亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于通用讀寫框架的CAE文件轉(zhuǎn)換方法及裝置與流程

文檔序號(hào):12364150閱讀:957來(lái)源:國(guó)知局
一種基于通用讀寫框架的CAE文件轉(zhuǎn)換方法及裝置與流程

本發(fā)明涉及CAE模型文件轉(zhuǎn)換領(lǐng)域,具體涉及一種基于通用讀寫框架的CAE文件轉(zhuǎn)換方法及裝置。



背景技術(shù):

商業(yè)CAE軟件基本都會(huì)附帶專業(yè)的前處理軟件和后處理軟件,大都支持主流商業(yè)CAE模型的輸入。當(dāng)然也間接實(shí)現(xiàn)模型間的相互轉(zhuǎn)換,例如:ABAQUS和NASTRAN之間是支持互相轉(zhuǎn)換的。

這里要提一下HyperWorks,它有專門的前處理軟件HyperMesh。HyperMesh特長(zhǎng)在于網(wǎng)格劃分的功能。同時(shí)HyperMesh支持很多不同的求解器輸入輸出格式,這樣在利用Hypermesh劃分好模型的有限元網(wǎng)格后,可以直接把計(jì)算模型轉(zhuǎn)化成不同的求解器文件格式,從而利用相應(yīng)的求解器進(jìn)行計(jì)算。

HyperMesh能為所有主流求解器做前處理,不僅在于它的網(wǎng)格質(zhì)量非常好,還在于它多樣化的模板,通過(guò)模板可以將HyperMesh的專有格式輸出為用戶自定義的格式。但是HyperMesh在讀取特定格式的模型文件時(shí)只提供二進(jìn)制(.exe或者.dll)的讀取器(reader)。顯然在用戶想擴(kuò)展HyperMesh的讀取功能時(shí)會(huì)受到限制(因?yàn)橛脩舨豢赡苤雷x取器的實(shí)現(xiàn)規(guī)則)。

總結(jié)而言,HyperMesh的方式值得借鑒。然而HyperMesh價(jià)格昂貴,對(duì)中小企業(yè)而言負(fù)擔(dān)較重。除去價(jià)格問(wèn)題,這些商業(yè)CAE軟件基本缺乏對(duì)開(kāi)源CAE模型的支持。例如Code_Aster的模型格式上述商業(yè)CAE軟件均不提供直接支持。如果用戶想通過(guò)自定義的方式支持新類型的模型文件讀入目前來(lái)看還是有難度的。

當(dāng)然各種開(kāi)源的資源里也提供有一些CAE模型文件轉(zhuǎn)換的方案,可以省卻重新造輪子的工作,但問(wèn)題也隨之而來(lái)。開(kāi)源的讀寫器原理不同,使用的計(jì)算機(jī)語(yǔ)言也不同,有的用C++,有的用Java,有的用Python。如果都集成到平臺(tái)中來(lái),必然帶來(lái)軟件工程管理上的混亂。而且商業(yè)求解器的輸入輸出文件解析一般都是不開(kāi)源的,很難都從網(wǎng)上找到現(xiàn)成的解決方案。



技術(shù)實(shí)現(xiàn)要素:

為了克服現(xiàn)有技術(shù)的不足和缺陷,本發(fā)明提供了一種基于通用讀寫框架的CAE文件轉(zhuǎn)換方法及裝置。

本發(fā)明解決上述技術(shù)問(wèn)題的技術(shù)方案如下:

一方面,本發(fā)明提供了一種基于通用讀寫框架的CAE文件轉(zhuǎn)換方法,用于在CAE數(shù)據(jù)處理過(guò)程中的各類模型文件之間的轉(zhuǎn)換,包括以下步驟:

S1、按行順序讀取模型文件A的文件內(nèi)容;

S2、根據(jù)在通用讀寫框架中預(yù)先配置的讀配置文件將所述模型文件A中的每一行文件內(nèi)容按照所述模型文件A的格式解析映射到統(tǒng)一數(shù)據(jù)模型中;

S3、根據(jù)在通用讀寫框架中預(yù)先配置的寫配置文件將統(tǒng)一數(shù)據(jù)模型按照模型文件B的格式映射為模型文件B。

本發(fā)明的有益效果為:引入了通用的讀寫框架和統(tǒng)一數(shù)據(jù)模型,通過(guò)在通用讀寫框架中編寫讀配置文件和寫配置文件,并結(jié)合統(tǒng)一數(shù)據(jù)模型共同將CAE數(shù)據(jù)處理過(guò)程中產(chǎn)生的模型文件A轉(zhuǎn)換為不同格式的模型文件B,實(shí)現(xiàn)了不同格式模型文件之間的相互轉(zhuǎn)化。

在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以作如下改進(jìn)。

進(jìn)一步的,所述步驟S1具體包括:

S11、按行順序讀取模型文件A,判斷該行是否為注釋行;

S12、若否,識(shí)別該行的區(qū)域關(guān)鍵字,執(zhí)行S13;若是,舍棄該行,返回S11,重新讀取模型文件A的下一行;

S13、若識(shí)別到區(qū)域關(guān)鍵字,獲取對(duì)應(yīng)的區(qū)域?qū)傩耘渲茫瑘?zhí)行S14;若未識(shí)別到區(qū)域關(guān)鍵字,則獲取該行的記錄配置,執(zhí)行S14;

S14、區(qū)域?qū)傩耘渲没蛘哂涗浥渲弥泻袇^(qū)域?qū)傩曰蛘哂涗浀母袷脚渲庙?xiàng),該格式配置項(xiàng)根據(jù)預(yù)先編寫的模型文件A的格式說(shuō)明書(shū)得來(lái),可對(duì)獲取的行內(nèi)容進(jìn)行格式的檢查,若格式檢查正確,則執(zhí)行S2;若格式檢查錯(cuò)誤,舍棄該行,則返回S11,重新讀取模型文件A的下一行。

所述進(jìn)一步的有益效果為:將模型文件A中的注釋行剔除,以及對(duì)獲取的區(qū)域?qū)傩耘渲煤陀涗浥渲眠M(jìn)行格式檢查,對(duì)于格式不正確的也進(jìn)行剔除,保證了模型文件A中數(shù)據(jù)的正確性。

進(jìn)一步的,根據(jù)所述預(yù)先編寫的模型文件A的格式說(shuō)明書(shū)來(lái)配置讀配置文件。

所述進(jìn)一步的有益效果為:根據(jù)模型文件A的格式說(shuō)明書(shū)編寫讀配置文件,更具針對(duì)性。

進(jìn)一步的,所述步驟S2與步驟S3之間還包括:

從所述讀配置文件中獲取至少一個(gè)區(qū)域關(guān)鍵字,并設(shè)置每一個(gè)所述區(qū)域關(guān)鍵字的優(yōu)先級(jí)別;

對(duì)于每一個(gè)優(yōu)先級(jí)別的區(qū)域關(guān)鍵字,查找是否有對(duì)應(yīng)的記錄配置;

若有,獲取對(duì)應(yīng)的記錄配置;若沒(méi)有,獲取對(duì)應(yīng)的區(qū)域?qū)傩耘渲茫?/p>

按照獲取的所述記錄配置和區(qū)域?qū)傩耘渲脧慕y(tǒng)一數(shù)據(jù)模型中獲取到具體的模型數(shù)據(jù),執(zhí)行步驟S3。

所述進(jìn)一步的有益效果為:對(duì)從讀配置文件中獲取的區(qū)域關(guān)鍵字進(jìn)行優(yōu)先級(jí)的配置,使得最終根據(jù)各個(gè)區(qū)域關(guān)鍵字得到的記錄配置之間具有連貫性。

進(jìn)一步的,所述讀配置文件和所述寫配置文件均采用YAML格式。

進(jìn)一步的,所述模型文件A的格式和所述模型文件B的格式均可為X3D格式、json格式、INP格式、BDF格式、FRD格式、F06格式或者VTK格式。

所述進(jìn)一步的有益效果為:能適用于CAE文件處理過(guò)程中的各種不同格式的模型文件之間的轉(zhuǎn)換,適用性廣泛。

另一方面,本發(fā)明還提供了一種基于通用讀寫框架的CAE文件轉(zhuǎn)換裝置,用于在CAE數(shù)據(jù)處理過(guò)程中的各類模型文件之間的轉(zhuǎn)換,包括讀取模塊、解析模塊和映射轉(zhuǎn)換模塊;

所述讀取模塊,用于按行順序讀取模型文件A的文件內(nèi)容;

所述解析模塊,用于根據(jù)在通用讀寫框架中預(yù)先配置的讀配置文件將所述模型文件A中的每一行文件內(nèi)容按照所述模型文件A的格式解析映射到統(tǒng)一數(shù)據(jù)模型中;

所述映射轉(zhuǎn)換模塊,用于根據(jù)在通用讀寫框架中預(yù)先配置的寫配置文件將統(tǒng)一數(shù)據(jù)模型按照模型文件B的格式映射為模型文件B。

本發(fā)明的有益效果為:引入了通用的讀寫框架和統(tǒng)一數(shù)據(jù)模型,通過(guò)在通用讀寫框架中編寫讀配置文件和寫配置文件,并結(jié)合統(tǒng)一數(shù)據(jù)模型共同將CAE數(shù)據(jù)處理過(guò)程中產(chǎn)生的模型文件A轉(zhuǎn)換為不同格式的模型文件B,實(shí)現(xiàn)了不同格式模型文件之間的相互轉(zhuǎn)化。

在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以作如下改進(jìn)。

進(jìn)一步的,所述讀取模塊用于按行順序讀取模型文件A具體包括:

按行順序讀取模型文件A,判斷該行是否為注釋行;

若否,識(shí)別該行的區(qū)域關(guān)鍵字,執(zhí)行下一步;若是,舍棄該行,重新讀取模型文件A的下一行;

若識(shí)別到區(qū)域關(guān)鍵字,獲取區(qū)域?qū)傩耘渲?;若未識(shí)別到區(qū)域關(guān)鍵字,則獲取該行的記錄配置,其中,區(qū)域?qū)傩耘渲没蛘哂涗浥渲弥泻袇^(qū)域?qū)傩曰蛘哂涗浀母袷脚渲庙?xiàng),該格式配置項(xiàng)根據(jù)預(yù)先編寫的模型文件A的格式說(shuō)明書(shū)得來(lái);

通過(guò)所述格式配置項(xiàng)對(duì)獲取的模型文件A的行內(nèi)容進(jìn)行格式的檢查,若格式檢查正確,則將該行映射到統(tǒng)一數(shù)據(jù)模型中;若格式檢查錯(cuò)誤,則舍棄該行,重新讀取模型文件A的下一行。

所述進(jìn)一步的有益效果為:將模型文件A中的注釋行剔除,以及對(duì)獲取的區(qū)域?qū)傩耘渲煤陀涗浥渲眠M(jìn)行格式檢查,對(duì)于格式不正確的也進(jìn)行剔除,保證了模型文件A中數(shù)據(jù)的正確性。

進(jìn)一步的,根據(jù)所述預(yù)先編寫的模型文件A的格式說(shuō)明書(shū)來(lái)配置讀配置文件。

所述進(jìn)一步的有益效果為:根據(jù)模型文件A的格式說(shuō)明書(shū)編寫讀配置文件,更具針對(duì)性。

進(jìn)一步的,所述映射轉(zhuǎn)換模塊還用于:

從所述讀配置文件中獲取至少一個(gè)區(qū)域關(guān)鍵字,并設(shè)置每一個(gè)所述區(qū)域關(guān)鍵字的優(yōu)先級(jí)別;

對(duì)于每一個(gè)優(yōu)先級(jí)別的區(qū)域關(guān)鍵字,查找是否有對(duì)應(yīng)的記錄配置;

若有,獲取對(duì)應(yīng)的記錄配置;若沒(méi)有,獲取對(duì)應(yīng)的區(qū)域?qū)傩耘渲茫?/p>

按照獲取的所述記錄配置和區(qū)域?qū)傩耘渲脧慕y(tǒng)一數(shù)據(jù)模型中獲取到具體的模型數(shù)據(jù),將具體的模型數(shù)據(jù)映射到模型文件B中。

所述進(jìn)一步的有益效果為:對(duì)從讀配置文件中獲取的區(qū)域關(guān)鍵字進(jìn)行優(yōu)先級(jí)的配置,使得最終根據(jù)各個(gè)區(qū)域關(guān)鍵字得到的記錄配置之間具有連貫性。

附圖說(shuō)明

圖1為本發(fā)明實(shí)施例1的一種基于通用讀寫框架的CAE文件轉(zhuǎn)換方法流程圖;

圖2為CAE數(shù)據(jù)處理過(guò)程中產(chǎn)生的各種模型文件的轉(zhuǎn)換過(guò)程圖;

圖3是實(shí)施例1中外部文件轉(zhuǎn)換為內(nèi)部文件的示意圖;

圖4為實(shí)施例1利用通用讀寫框架來(lái)實(shí)現(xiàn)不同模型文件之間的轉(zhuǎn)換示意圖;

圖5為本發(fā)明實(shí)施例2的一種基于通用讀寫框架的CAE文件轉(zhuǎn)換裝置示意圖。

具體實(shí)施方式

以下結(jié)合附圖對(duì)本發(fā)明的原理和特征進(jìn)行描述,所舉實(shí)例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。

實(shí)施例1、一種基于通用讀寫框架的CAE文件轉(zhuǎn)換方法。

參見(jiàn)圖1,本實(shí)施例提供的基于通用讀寫框架的CAE文件轉(zhuǎn)換方法包括:

S1、按行順序讀取模型文件A的文件內(nèi)容。

具體的,在CAE數(shù)據(jù)處理的過(guò)程中,會(huì)存在各種各樣不同格式的模型文件,這些文件主要可以分為兩類:外部文件和內(nèi)部文件,其中,外部文件主要包括CAD文件、CAE網(wǎng)格文件以及求解器輸入輸出文件;內(nèi)部文件主要包括X3D文件、VTK文件以及求解器參數(shù)設(shè)置文件,內(nèi)部文件通常又可以分為兩類:第一類為模型顯示文件,包括X3D文件(是CAD文件和CAE網(wǎng)格文件的web顯示文件)和VTK文件(后處理結(jié)果顯示文件);第二類為求解器參數(shù)設(shè)置文件(在web頁(yè)面上進(jìn)行求解器設(shè)置后得到的json文件)。外部文件可以跟外界CAD/CAE軟件進(jìn)行交互,內(nèi)部文件是在web平臺(tái)使用,不可以直接與外界CAD/CAE軟件交互。

本申請(qǐng)的整個(gè)過(guò)程核心就是進(jìn)行文件轉(zhuǎn)換,主要是外部文件和內(nèi)部文件的轉(zhuǎn)換,例如,圖2中1、2、3和4標(biāo)識(shí)的部分,在將外部文件轉(zhuǎn)換為內(nèi)部文件的過(guò)程中,本申請(qǐng)的核心即為引入中間數(shù)據(jù)模型,即統(tǒng)一數(shù)據(jù)模型,將將外部文件轉(zhuǎn)換為統(tǒng)一數(shù)據(jù)模型,再將統(tǒng)一數(shù)據(jù)模型轉(zhuǎn)換為內(nèi)部文件,如圖3所示,即完成外部文件向內(nèi)部文件的轉(zhuǎn)換。在某些場(chǎng)合下還涉及外部文件之間的相互轉(zhuǎn)換,主要包括:不同類型的CAD文件之間的相互轉(zhuǎn)換,不同類型的CAE網(wǎng)格文件之間的相互轉(zhuǎn)換,不同求解器輸入文件之間的相互轉(zhuǎn)換,比如,各類CAD文件/CAE網(wǎng)格文件向X3D文件的轉(zhuǎn)換,CAD文件/CAE網(wǎng)格文件中主要就是模型的幾何信息,包括點(diǎn)、單元和單元組。支持的CAD模型格式主要有:.igs、.step和.stl;支持的CAE網(wǎng)格文件格式有:Calculix(.inp)、Code_Aster(.unv)、Openfoam(由point、faces以及boundary等文件集合組成)、NA.NASTRAN(.bdf)。這些不同格式的模型文件之間均是可以互相轉(zhuǎn)換的。比如,本實(shí)施例希望將模型文件A轉(zhuǎn)換為不同格式的模型文件B,首先利用通用讀寫框架下的Reader按行順序讀取模型文件A中的文件內(nèi)容,可參見(jiàn)圖4,為后續(xù)的描述的方便性,模型文件A的文件格式內(nèi)容可參見(jiàn)如下:

*Node,NSET=N1

1,-2.20970058,9.02866745,-36.723629

2,-2.07132006,9.10467529,-36.4850159

3,-1.9632616,9.25493431,-36.2648697

其中,該模型文件A為INP文件樣例,表示由三個(gè)點(diǎn)組成的集合(名稱叫N1),*Node表示一個(gè)區(qū)域的開(kāi)始,因此*Node為區(qū)域關(guān)鍵字,后面緊跟的NSET=N1是區(qū)域?qū)傩?,以逗?hào)分隔;區(qū)域?qū)傩韵旅媸怯涗洠惨远禾?hào)分隔,第一個(gè)元素是點(diǎn)的序列1,2,3,第二到第4個(gè)元素是點(diǎn)的三維坐標(biāo)。

具體的按行順序讀取模型文件A中的文件內(nèi)容的讀取過(guò)程為:S11、按行順序讀取模型文件A,判斷該行是否為注釋行;S12、若否,識(shí)別該行的區(qū)域關(guān)鍵字,執(zhí)行S13;若是,舍棄該注釋行,返回S11,讀取下一行內(nèi)容;S13、若識(shí)別到區(qū)域關(guān)鍵字,獲取區(qū)域?qū)傩耘渲茫瑘?zhí)行S14;若未識(shí)別到區(qū)域關(guān)鍵字(表明該行沒(méi)有區(qū)域關(guān)鍵字,應(yīng)該是記錄行),則獲取該行的記錄配置,執(zhí)行S14;S14、區(qū)域?qū)傩耘渲没蛘哂涗浥渲弥泻袇^(qū)域?qū)傩曰蛘哂涗浀母袷脚渲庙?xiàng),該格式配置項(xiàng)根據(jù)預(yù)先編寫的模型文件A的格式說(shuō)明書(shū)得來(lái),可對(duì)獲取的行內(nèi)容進(jìn)行格式的檢查,若格式檢查正確,則執(zhí)行S2;若格式檢查錯(cuò)誤,舍棄該行,則返回S11,重新讀取模型文件A的下一行。本實(shí)施例對(duì)無(wú)意義的注釋行以及格式錯(cuò)誤的區(qū)域?qū)傩耘渲煤陀涗浥渲镁釛?,保證了提取的數(shù)據(jù)的正確性。

S2、根據(jù)在通用讀寫框架中預(yù)先配置的讀配置文件將所述模型文件A中的每一行文件內(nèi)容按照所述模型文件A的格式解析映射到統(tǒng)一數(shù)據(jù)模型中。

具體的,在本領(lǐng)域,將模型文件A映射為統(tǒng)一數(shù)據(jù)模型稱為序列化Reader,與上述模型文件A對(duì)應(yīng)的讀配置文件可參見(jiàn)如下:

其中,區(qū)域關(guān)鍵字KEYWORD為‘*Node’:K_POINT,區(qū)域?qū)傩耘c區(qū)域關(guān)鍵字之間使用的分割符為逗號(hào),各記錄之間也為逗號(hào),K_POINT的優(yōu)先級(jí)別為0(最高級(jí)別),區(qū)域?qū)傩耘渲脼椤埃”(即字符串型)。其中,預(yù)先配置的讀配置文件是依據(jù)預(yù)先編寫的模型文件A的格式說(shuō)明書(shū),模型文件A的格式說(shuō)明書(shū)描述了模型文件A的具體信息,比如,分隔符,區(qū)域?qū)傩院陀涗浀母袷降?。通過(guò)讀配置文件將所述模型文件A中的每一行文件內(nèi)容按照所述模型文件A的格式解析映射到統(tǒng)一數(shù)據(jù)模型中的數(shù)據(jù)如下:

S3、根據(jù)在通用讀寫框架中預(yù)先配置的寫配置文件將統(tǒng)一數(shù)據(jù)模型按照模型文件B的格式映射為模型文件B。

具體的,在本領(lǐng)域,將統(tǒng)一數(shù)據(jù)模型中的文件內(nèi)容映射到模型文件B稱為反序列化Writer,在將統(tǒng)一數(shù)據(jù)模型中的文件內(nèi)容按照模型文件B的格式映射為模型文件B之前,利用通用讀寫框架下的Writer從所述讀配置文件中獲取至少一個(gè)區(qū)域關(guān)鍵字,比如,上述讀配置文件中的K_POINT,即此時(shí)的區(qū)域關(guān)鍵字為表示點(diǎn)集合,也有可能為單元集合,單元由多個(gè)點(diǎn)組成,并獲取每一個(gè)所述區(qū)域關(guān)鍵字的優(yōu)先級(jí)別,比如,當(dāng)同時(shí)有點(diǎn)和單元關(guān)鍵字時(shí),由于單元是由各個(gè)點(diǎn)組成的,則點(diǎn)的優(yōu)先級(jí)別高于單元的優(yōu)先級(jí)別,這樣可以先輸出點(diǎn),然后再由點(diǎn)組成單元。對(duì)于每一個(gè)優(yōu)先級(jí)別的區(qū)域關(guān)鍵字,查找是否有對(duì)應(yīng)的記錄配置;若有,獲取對(duì)應(yīng)的記錄配置;若沒(méi)有,獲取對(duì)應(yīng)的區(qū)域?qū)傩耘渲?。通常每一個(gè)優(yōu)先級(jí)別的區(qū)域關(guān)鍵字一定是對(duì)應(yīng)有區(qū)域?qū)傩耘渲玫?,通常也具有?duì)應(yīng)的記錄配置,當(dāng)時(shí)特殊情況下也可以沒(méi)有對(duì)應(yīng)的記錄配置,即記錄配置為空。因此,當(dāng)區(qū)域關(guān)鍵字下面有對(duì)應(yīng)的記錄配置時(shí),則獲取該對(duì)應(yīng)的記錄配置,若沒(méi)有對(duì)應(yīng)的記錄配置,則獲取對(duì)應(yīng)的區(qū)域?qū)傩耘渲?。然后根?jù)獲取的所述記錄配置和區(qū)域?qū)傩耘渲脧慕y(tǒng)一數(shù)據(jù)模型中獲取到具體的模型數(shù)據(jù),采用在通用讀寫框架中預(yù)先配置的寫配置文件將具體的模型數(shù)據(jù)按照模型文件B的格式映射為模型文件B。其中,寫配置文件(即反序列化writer的配置文件)的一個(gè)具體例子如下:

比如,將上述格式為INP的模型文件A轉(zhuǎn)換為X3D格式的模型文件B后,形成的X3D格式的模型文件的一個(gè)具體例子為:

<IndexedFaceSet DEF='N1'coordIndex='0 1 2'>

<Coordinate point='-2.20970058 9.02866745-36.723629,-2.07132006

9.10467529-36.4850159,-1.9632616 9.25493431-36.2648697'/>

</IndexedFaceSet>

其中,需要說(shuō)明的是,本實(shí)施例在對(duì)比很多配置文件形式的基礎(chǔ)上,采用YAML作為配置文件的格式,YAML格式具有如下優(yōu)勢(shì):

(1)YAML和腳本語(yǔ)言的交互性好;

(2)YAML有一個(gè)一致的信息模型;

(3)YAML可以基于流來(lái)處理;

(4)YAML表達(dá)能力強(qiáng),擴(kuò)展性好。

模型文件A的格式和模型文件B的格式均可為X3D格式、json格式、INP格式、BDF格式、FRD格式、F06格式或者VTK格式,能夠?qū)崿F(xiàn)各種不同格式的CAE模型文件之間的轉(zhuǎn)換,適用性廣泛。比如,各類CAE前處理文件的相互轉(zhuǎn)換,例如,Calculix的前處理模型是INP格式,NS_NASTRAN的前處理模型是BDF格式,通過(guò)通用讀寫框架下的INP_Reader,將INP文件轉(zhuǎn)換為統(tǒng)一數(shù)據(jù)模型,然后通過(guò)通用讀寫框架下的BDF_Writer將統(tǒng)一數(shù)據(jù)模型轉(zhuǎn)換為BDF文件,從而實(shí)現(xiàn)了INP到BDF的轉(zhuǎn)換。又比如,各類CAE后處理文件的相互轉(zhuǎn)換,例如,Calculix的后處理模型是FRD格式,NS_NASTRAN的后處理模型是F06格式,通過(guò)通用讀寫框架下的FRD_Reader,將RFD文件轉(zhuǎn)換為統(tǒng)一數(shù)據(jù)模型,然后通過(guò)通用讀寫框架下的F06_Writer將統(tǒng)一數(shù)據(jù)模型轉(zhuǎn)換為F06文件,從而實(shí)現(xiàn)了FRD到F06的轉(zhuǎn)換。

實(shí)施例2、一種基于通用讀寫框架的CAE文件轉(zhuǎn)換裝置。

參見(jiàn)圖5,本實(shí)施例提供的基于通用讀寫框架的CAE文件轉(zhuǎn)換裝置,用于在CAE數(shù)據(jù)處理過(guò)程中的各類模型文件之間的轉(zhuǎn)換,包括讀取模塊21、解析模塊22和映射轉(zhuǎn)換模塊23。

其中,所述讀取模塊21,主要用于按行順序讀取模型文件A的文件內(nèi)容;

所述解析模塊22,用于根據(jù)預(yù)先配置的讀配置文件將所述模型文件A中的每一行文件內(nèi)容按照所述模型文件A的格式解析映射到統(tǒng)一數(shù)據(jù)模型22中。

所述映射轉(zhuǎn)換模塊23,主要用于根據(jù)預(yù)先配置的寫配置文件將統(tǒng)一數(shù)據(jù)模型22按照模型文件B的格式映射為模型文件B。

其中,所述讀取模塊21,用于按行順序讀取模型文件A的文件內(nèi)容具體包括:

按行順序讀取模型文件A,判斷該行是否為注釋行;

若否,識(shí)別該行的區(qū)域關(guān)鍵字,執(zhí)行下一步;若是,舍棄該行,重新讀取模型文件A的下一行;

若識(shí)別到區(qū)域關(guān)鍵字,獲取區(qū)域?qū)傩耘渲茫蝗粑醋R(shí)別到區(qū)域關(guān)鍵字,則獲取該行的記錄配置,其中,區(qū)域?qū)傩耘渲没蛘哂涗浥渲弥泻袇^(qū)域?qū)傩曰蛘哂涗浀母袷脚渲庙?xiàng),該格式配置項(xiàng)根據(jù)預(yù)先編寫的模型文件A的格式說(shuō)明書(shū)得來(lái);

通過(guò)所述格式配置項(xiàng)對(duì)獲取的模型文件A的行內(nèi)容進(jìn)行格式的檢查,若格式檢查正確,則將該行映射到統(tǒng)一數(shù)據(jù)模型中;若格式檢查錯(cuò)誤,則舍棄該行,重新讀取模型文件A的下一行。

其中的讀配置文件是根據(jù)預(yù)先編寫的模型文件A的格式說(shuō)明書(shū)來(lái)配置的。所述映射轉(zhuǎn)換模塊23還用于:

從所述讀配置文件中獲取至少一個(gè)區(qū)域關(guān)鍵字,并設(shè)置每一個(gè)所述區(qū)域關(guān)鍵字的優(yōu)先級(jí)別;

對(duì)于每一個(gè)優(yōu)先級(jí)別的區(qū)域關(guān)鍵字,查找是否有對(duì)應(yīng)的記錄配置;

若有,獲取對(duì)應(yīng)的記錄配置;若沒(méi)有,獲取對(duì)應(yīng)的區(qū)域?qū)傩耘渲茫?/p>

按照獲取的所述記錄配置和區(qū)域?qū)傩耘渲脧慕y(tǒng)一數(shù)據(jù)模型22中獲取到具體的模型數(shù)據(jù),將具體的模型數(shù)據(jù)映射到模型文件B中。

其中,所述模型文件A的格式和所述模型文件B的格式均可為X3D格式、json格式、INP格式、BDF格式、FRD格式、F06格式或者VTK格式,能適用于CAE文件處理過(guò)程中的各種不同格式的模型文件之間的轉(zhuǎn)換,適用性廣泛。

本發(fā)明提供的一種基于通用讀寫框架的CAE文件轉(zhuǎn)換方法及裝置,引入了通用的讀寫框架和統(tǒng)一數(shù)據(jù)模型,通過(guò)在通用讀寫框架中編寫讀配置文件和寫配置文件,并通過(guò)統(tǒng)一數(shù)據(jù)模型共同將CAE數(shù)據(jù)處理過(guò)程中產(chǎn)生的模型文件A轉(zhuǎn)換為不同格式的模型文件B,實(shí)現(xiàn)了不同格式模型文件之間的相互轉(zhuǎn)化;在讀取模型文件A的過(guò)程中,將模型文件A中的注釋行剔除,以及對(duì)獲取的區(qū)域?qū)傩耘渲煤陀涗浥渲眠M(jìn)行格式檢查,對(duì)于格式不正確的也進(jìn)行剔除,保證了模型文件A中數(shù)據(jù)的正確性;對(duì)從讀配置文件中獲取的區(qū)域關(guān)鍵字進(jìn)行優(yōu)先級(jí)的配置,使得最終根據(jù)各個(gè)區(qū)域關(guān)鍵字得到的記錄配置之間具有連貫性;模型文件A和模型文件B可為多種不同格式的模型文件,能適用于CAE文件處理過(guò)程中的各種不同格式的模型文件之間的轉(zhuǎn)換,適用性廣泛。

在本說(shuō)明書(shū)的描述中,參考術(shù)語(yǔ)“實(shí)施例一”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實(shí)施例或示例描述的具體方法、裝置或者特點(diǎn)包含于本發(fā)明的至少一個(gè)實(shí)施例或示例中。在本說(shuō)明書(shū)中,對(duì)上述術(shù)語(yǔ)的示意性表述不必須針對(duì)的是相同的實(shí)施例或示例。而且,描述的具體特征、方法、裝置或者特點(diǎn)可以在任一個(gè)或多個(gè)實(shí)施例或示例中以合適的方式結(jié)合。此外,在不相互矛盾的情況下,本領(lǐng)域的技術(shù)人員可以將本說(shuō)明書(shū)中描述的不同實(shí)施例或示例以及不同實(shí)施例或示例的特征進(jìn)行結(jié)合和組合。

以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有3條留言
  • 134554... 來(lái)自[中國(guó)] 2023年02月10日 08:49
    1
    0
  • 134554... 來(lái)自[中國(guó)] 2023年02月10日 08:48
    FEMTransfer軟件可以實(shí)現(xiàn)Patran/Nastran/Femap、Abaqus、Ansys/Workbench、Sesam(Genie/Patranpre)、盈建科/PKPM等仿真分析軟件的有限元模型相互轉(zhuǎn)換,保證了板單元、梁?jiǎn)卧?、?shí)體單元、質(zhì)量點(diǎn)單元、彈簧單元等各類單元的完美轉(zhuǎn)換,最終實(shí)現(xiàn)了只需要建立一個(gè)模型就可以在多種CAE仿真分析軟件中計(jì)算的目的,極大提高了工作效率
    0
  • 訪客 來(lái)自[中國(guó)] 2023年02月10日 08:37
    FEMTransfer軟件可以實(shí)現(xiàn)Patran/Nastran/Femap、Abaqus、Ansys/Workbench、Sesam(Genie/Patranpre)、盈建科/PKPM等仿真分析軟件的有限元模型相互轉(zhuǎn)換,保證了板單元、梁?jiǎn)卧?、?shí)體單元、質(zhì)量點(diǎn)單元、彈簧單元的完美轉(zhuǎn)換,最終實(shí)現(xiàn)了只需要建立一個(gè)模型就可以在多種CAE仿真分析軟件中計(jì)算的目的,極大提高了工作效率
    0
1