神乎其技!“面向對象“的 ABAQUS PYTHON 二次開發體驗
瀏覽:4071 評論:1 收藏:6
神乎其技!“面向對象”的 ABAQUS PYTHON 二次開發體驗
昨天,從“面向對象”的角度帶大家鳥瞰 ABAQUS PYTHON 二次開發。采用的例子簡單,可能大家領會不到“面向對象編程”的魔力。(“鳥瞰”一文請看http://www.yqgqt.org.cn/content/post/441360)
今天這篇文字將緊密結合 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])
可見代碼變得更長了,編寫腳本的效率低了,閱讀腳本也不夠清晰明了。如果采用“面向對象編程”的“封裝”技術,情形就會截然不同。
“封裝”立方體

用一個“class”(類型)把選取立方體“線”、“面”的操作“封裝”起來。python代碼如下:
(根據 ABAQUS/CAE 命名的特點,在代碼中為模型名稱、部件名稱定義了不傳參數進去時候的默認值)
把這段代碼保存在名為“script.py“的文本文件中。打開 abaqus/cae ,在 File / Run Script 導入腳本之后,就可以在命令行窗口用簡短的命令來高亮顯示線和面了。具體的命令如下:
box = box( ) # 實例化封裝的類 highlight( box.face(1 ) ) #高亮顯示序號為1的面 highlight( box.edge( ) ) #高亮顯示序號為0的邊
這些命令跟沒有封裝之前的命令比較,簡短了很多,而且意義明確、看起起來清晰明了。可見“面向對象編程”的神奇,實際上這些命令還可以繼續優化,變得更加的精簡!
極致的“封裝“,帶來更神奇的效果
前面只把選取線、面的操作“封裝“起來。如果將”高亮“、”取消高亮“這兩個操作也封裝進去,那命令會極致的簡化。封裝的python 代碼如下:
導入腳本之后,在命令行只要輸入下面極簡的命令就可以實現高亮(取消高亮)顯示。
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])
注:python 代碼源文件提供付費下載!對 python 不熟悉的朋友推薦前去下載。謝謝!(http://www.yqgqt.org.cn/content/post/441450)
技術鄰APP
工程師必備
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP
12
1
6




















