神乎其技!“面向對象“的 ABAQUS PYTHON 二次開發體驗

神乎其技!“面向對象”的 ABAQUS PYTHON 二次開發體驗

昨天,從“面向對象”的角度帶大家鳥瞰 ABAQUS PYTHON 二次開發。采用的例子簡單,可能大家領會不到“面向對象編程”的魔力。(“鳥瞰”一文請看http://www.yqgqt.org.cn/content/post/441360神乎其技!“面向對象“的 ABAQUS PYTHON 二次開發體驗的圖1

今天這篇文字將緊密結合 ABAQUS/CAE 的腳本運行功能,帶領大家一瞥“面向對象編程”的高效和神奇。

長長的命令

接觸過 ABAQUS PYTHON 二次開發的朋友,應該對下面這種長長的命令有印象。

mdb.models['Model-1'].parts['Part-1].edges[1]

# 代碼的含義是:選取Model-1模型中,Part-1部件的序號為1的輪廓線。

在 python 腳本中,可以用 highlight( )、unhighlight( ) 這兩個函數將選取的線、面,進行高亮(取消高亮)顯示。完整的代碼如下:

# 高亮顯示序號為1的邊

highlight(mdb.models['Model-1'].parts['Part-1].edges[1])

# 取消高亮顯示序號為1的邊

unhighlight(mdb.models['Model-1'].parts['Part-1].edges[1])

可見代碼變得更長了,編寫腳本的效率低了,閱讀腳本也不夠清晰明了。如果采用“面向對象編程”的“封裝”技術,情形就會截然不同。

“封裝”立方體

ss.png

用一個“class”(類型)把選取立方體“線”、“面”的操作“封裝”起來。python代碼如下:

ss.png (根據 ABAQUS/CAE 命名的特點,在代碼中為模型名稱、部件名稱定義了不傳參數進去時候的默認值)

把這段代碼保存在名為“script.py“的文本文件中。打開 abaqus/cae ,在 File / Run Script 導入腳本之后,就可以在命令行窗口用簡短的命令來高亮顯示線和面了。具體的命令如下:

box = box( ) # 實例化封裝的類

highlight( box.face(1 ) ) #高亮顯示序號為1的面

highlight( box.edge( ) ) #高亮顯示序號為0的邊

這些命令跟沒有封裝之前的命令比較,簡短了很多,而且意義明確、看起起來清晰明了??梢姟懊嫦驅ο缶幊獭钡纳衿?,實際上這些命令還可以繼續優化,變得更加的精簡!

神乎其技!“面向對象“的 ABAQUS PYTHON 二次開發體驗的圖4

極致的“封裝“,帶來更神奇的效果

前面只把選取線、面的操作“封裝“起來。如果將”高亮“、”取消高亮“這兩個操作也封裝進去,那命令會極致的簡化。封裝的python 代碼如下:

ss.png

導入腳本之后,在命令行只要輸入下面極簡的命令就可以實現高亮(取消高亮)顯示。

box = box( ) # 實例化封裝的類

box.hf( ) #高亮顯示序號為0的面

box.uhf( ) # 取消高亮顯示序號為0的面

box.he(1) # 高亮顯示序號為1的線

box.uhe(1) # 取消高亮顯示序號為1的線

現在請再對比一下最開始的命令。相信“面向對象編程“的神奇之處你定能體會到了。

# 最開始的命令

highlight(mdb.models['Model-1'].parts['Part-1].edges[1])

神乎其技!“面向對象“的 ABAQUS PYTHON 二次開發體驗的圖6

注:python 代碼源文件提供付費下載!對 python 不熟悉的朋友推薦前去下載。謝謝?。?a href="http://www.yqgqt.org.cn/content/post/441450">http://www.yqgqt.org.cn/content/post/441450)

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

TOP

12
1
6