輸出方法:abaqus最值隨時間變化

最近做項目,需要輸出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這一變量。

輸出方法:abaqus最值隨時間變化的圖1

1615390041(1).jpg

輸出方法:abaqus最值隨時間變化的圖3

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

11
3
26