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