輸出方法:abaqus最值隨時間變化
瀏覽:4706 評論:3 收藏:26
最近做項目,需要輸出abaqus中最大應變值隨時間變化的曲線,但是翻了很多帖子都沒找到相關的,所以后來自己寫了個Python代碼,用以提取最大值。需要用到這個功能的同學把代碼里的注釋刪掉直接運行就行。
viewportName = session.currentViewportName
j=getInput('how much frame','0') #要提取多少幀的最值,默認為0
#這一步也可以用在step上,我的需求始終是step-1,所以沒寫那部分代碼,和幀數的代碼同理
a=int(j)+1
i=1
while i<a:
cobject = session.viewports[viewportName].odbDisplay.setFrame(step=0, frame=i)
#有興趣的朋友可以print一下cobject1,看看odbDisplay里面包含了哪些函數
i+=1
cobject = session.viewports[viewportName].odbDisplay.contourOptions
#同上,想學習的朋友可以print一下cobject,
print("step=1", "frame=", i-1)
print(cobject.autoMaxValue)#輸出最大值
print(cobject.autoMinValue)#輸出最小值
值得注意的是,代碼里step和frame的值都比實際值要小1,比如我要提取本來是step-1的數值,但是代碼里要寫成step=0。當然我的代碼并不完整,這樣輸出的max/min只顯示在abaqus底部信息欄,還需要在Excel中處理數據。為了減少工作量,大家還可以添加直接寫入Excel處理數據的步驟,也可以完善二次開發,自動更改顯示組,更改輸出變量,盡量實現只需要run script,然后就能game over的。
之前做Python-abaqus二次開發一直在用宏錄制.py文件,然后在此基礎上修改,后來在知乎上跟一位大佬學習意識到這樣做的局限性,大家在學習時,盡量把幫助文檔和.py文件結合起來,因為abaqus中每個函數庫里都包含了極其豐富的函數,.py文件不會把我們的操作全部錄制進去,這時就需要print一下,看看這個庫里都包括哪些函數,然后結合幫助文檔進行學習。比如我就是通過py文件找到了contourOptions這個函數,又在幫助文檔中找到了maxvalue這一變量。


技術鄰APP
工程師必備
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP
11
3
26




















