基於Python的ABAQUS開發介紹(二)

基於Python的ABAQUS開發介紹(二)

來自專欄 CAE模擬空間10 人贊了文章

在前述文章里整體對abaqus的python編程進行了介紹,那麼下面針對各部分的功能模塊進行簡單介紹,首先是編程初始化部分。

在開始該部分工作之前,需要我們對abaqus的python腳本開發包相關層級關係有一個基本的了解,這個在以往的一些文章中或多或少提到過。我們可以直接通過參考幫助文檔來作了解(參考abaqus6.14-《abaqus scripting users guide》中的6.1小節)。

只有我們了解各個模塊之間的層級關係之後,在初始化以及後續編程過程中我們才能更好的實現相應功能。一般而言為了能夠使編程順利,無論能否用得著,我們都將所有模塊均導入,"寧濫勿缺",這樣保險一些。

abaqus基於python擴展出500多種對象模型,它們之間存在著不同的層級和包含關係,通常可以分為三大類:Session、MDB以及Odb,如圖-1所示為開發包中的各功能模塊層級介紹。其中根據顏色分為Container容器和Singular object單個對象,Container中還包含有其它對象,而Singular object僅為自己。

圖-1 模塊層級關係

在系列文章(一)中,我們通過下面的代碼實現初始化,其中*可以理解為所有,所以第一句可以理解為導入abaqus模塊下的所有公共對象。通過這一命令,我們才能使用mdb.*、session.*這些命令,這是面向對象編程的基本思路。

1 from abaqus import *2 from abaqusConstant import *3 from caeModules import *

第二句代碼的意思是導入abaqus中用到的所有符號常量,通常是整型或者浮點變數,但是為了能夠清晰的表明代碼的含義都以大寫英文單詞出現,這與C語言中定義的符號常量意義差不多,比如下面的代碼中的THREE_DDEFORMABLE_BODY,定義我們建立的模型是三維可變形實體模型,是一類專有名詞,在abaqus中有特定的含義,如果不事先通過abaqusConstant導入則使用該語句將會報錯。

1 testPart=testModel.Part(name=Test,dimensionality=THREE_D,type=DEFORMABLE_BODY)

第三句則是實現abaqus窗口中所有對象模塊的導入,一般來講,有這三句命令,初始化工作基本完成。

簡單的總結一下就是:初始化工作屬於「寧濫勿缺」,為了保證程序運行的正常,先把所有可能需要的東西準備充分,所謂兵馬未動,糧草先行,這些都是程序基礎支撐。

本文就先介紹到這裡,後面將介紹其它模塊的編寫,如果覺得文章有意義,歡迎轉發讚賞,期待您的支持和鼓勵。

另歡迎關注公眾號,更多文章發佈於weixin公眾號:cae_space

掃一掃關注。

推薦閱讀:

淺談步戰車自動炮雙路供彈技術
【指南】溫故知新:機械瓣置換後中斷抗凝,如何橋接治療?
賽車場上的瘋狂撞擊Top15【GIF】:失控的機械,愚蠢的人類
機械錶復興簡史:1989-2000
解放軍沒有機械化步兵營(連)

TAG:Abaqus | Python | 機械 |