二次開發(fā)可以不是從零開始
在 abaqus CAE 做二次開發(fā),其中一個(gè)好處就是能夠快速的參數(shù)化建立分析模型。
如果分析模型已經(jīng)手動(dòng)建好了,或者有了一個(gè)現(xiàn)成的模型,那二次開發(fā)實(shí)現(xiàn)參數(shù)化還有另一種思路:復(fù)用既有模型。
復(fù)用既有模型好處有很多,比如:模型的材料參數(shù)比較多,直接復(fù)用則省去了手動(dòng)再配置的麻煩;如果只是局部需要參數(shù)化修改,那復(fù)用模型會(huì)省去不少建模的代碼,等等。通常,復(fù)用的分析模型是已經(jīng)比較完善的模型,只是沒有實(shí)現(xiàn)參數(shù)化。針對(duì)既有模型的二次開發(fā),就像實(shí)施一場(chǎng)“外科手術(shù)”。
復(fù)用既有模型的第一步
Abaqus二次開發(fā)有很豐富的命令,并且文檔介紹也很齊全,不存在“技術(shù)門檻”,更多的是讓開發(fā)思路更豐富和增加對(duì)abaqus二次開發(fā)接口的熟悉程度。
復(fù)用既有模型的第一步:要根據(jù)完整路徑打開它,然后把模型對(duì)象拷貝到當(dāng)前模型數(shù)據(jù)庫(kù)中(mdb)。涉及的命令在“Abaqus Scripting Reference Guide”中的“Python commands”第30.1條有詳細(xì)介紹。
具體命令:
打開既有模型數(shù)據(jù)庫(kù):openAuxMdb(…)
關(guān)閉既有模型數(shù)據(jù)庫(kù):closeAuxMdb(…)
拷貝既有模型:copyAuxMdbModel(…)
(注:以上三條命令都是以小寫字母開頭,根據(jù)abaqus二次開發(fā)命令的慣例:以小寫字母開頭的命令不會(huì)生成新的對(duì)象,以大寫字母開頭的命令會(huì)返回一個(gè)新的對(duì)象??芍陨系拿顑H僅是對(duì)把既有模型數(shù)據(jù)庫(kù)從硬盤讀入了內(nèi)存,沒有對(duì)它做任何修改,也沒有生成新的編程對(duì)象。)
關(guān)于命令的具體使用方法,閱讀介紹文檔基本不會(huì)有問題。唯一需要注意的是abaqusCAE的版本,這也是復(fù)用既有模型的一個(gè)硬傷。高版本創(chuàng)建的.cae文件不能被低版本的abaqusCAE打開。這可能一定程度上限制了這種二次開發(fā)方法的使用范圍,但目前有很多做好的算例都是基于底版本的(比如6.14版本),所以只要確保不采用更舊的版本就基本不會(huì)有太多問題。
一場(chǎng)“外科手術(shù)”般的二次開發(fā)(三大關(guān)鍵)
只能說此處省略一萬(wàn)字了,具體的二次開發(fā)因需求而已。
這里提幾個(gè)方面:第一,幾何元素的選擇和布爾運(yùn)算將會(huì)是二次開發(fā)中常用到的操作?!斑x擇”操作有非常方便的命令可以支持(比如下圖中的幾個(gè)命令);但是“布爾運(yùn)算”的操作在abaqusCAE自帶的python命令中不是特別友好,只能依靠region和set來完成布爾運(yùn)算。本人對(duì)底層做了一些研究,實(shí)現(xiàn)了一種非常方便的布爾運(yùn)算方法并做成了命令,需要的可以聯(lián)系我。
第二,可能會(huì)遇到“獨(dú)立網(wǎng)格”的問題,導(dǎo)致模型無(wú)法修改或難以修改。這主要是由于模型可能是采用inp文件導(dǎo)入的。解決這種問題需要做些額外處理,比如把需要做參數(shù)化的局部單獨(dú)提取出來,采用part來替代。這里涉及到獨(dú)立網(wǎng)格的切割和可能的邊界條件的改變,以及替換的part的網(wǎng)格匹配問題。這些具體的問題根據(jù)需求的不同,基本能夠妥善的解決。當(dāng)然解決的方法是獨(dú)立研發(fā)的,如果需要可以取得聯(lián)系具體商議。大致原理:將需要替換的部分做成set,然后通過改寫inp文件的方式做切割后,再用新的part來替換。
第三,網(wǎng)格重新劃分的問題。應(yīng)該說只要改模型,不管是手動(dòng)的還是二次開發(fā)修改,都可能需要重新劃分網(wǎng)格。
復(fù)用既有模型的二次開發(fā),基本上是逢山開路、遇水搭橋,沒有一個(gè)放之四海而皆準(zhǔn)的套路。
復(fù)用既有模型實(shí)際上是軟件工程的實(shí)踐方法
為了說明這點(diǎn),需要借助一個(gè)例子:如果使用過Autocad,肯定知道每次新建文件都需要選擇模板,也可以自己制作模板。其實(shí)模板就是一個(gè)通用化的空模型,里面只配置了參數(shù)而沒有實(shí)際的模型。
所以,你需要復(fù)用的模型,也可以采用這種思路,你只需要把各種繁瑣的參數(shù)配置到.cae里面,里面的幾何模型可以隨便畫。這種情況下,cae文件就相當(dāng)于是一個(gè)配置文件了。
結(jié)語(yǔ)
二次開發(fā)如果說簡(jiǎn)單,那就是運(yùn)行一段腳本;如果說復(fù)雜,那就是一個(gè)軟件子系統(tǒng)。開發(fā)的思路和實(shí)現(xiàn)的方式會(huì)有不同,而采用那種思路和方法,決于你的需求和模型的重要程度。
編輯:lyn
-
數(shù)據(jù)庫(kù)
+關(guān)注
關(guān)注
7文章
3752瀏覽量
64233 -
模型
+關(guān)注
關(guān)注
1文章
3116瀏覽量
48660 -
ABAQUS
+關(guān)注
關(guān)注
1文章
35瀏覽量
13676
原文標(biāo)題:abaqus CAE 二次開發(fā)-復(fù)用既有模型要點(diǎn)詳解
文章出處:【微信號(hào):sim_ol,微信公眾號(hào):模擬在線】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論