鳥瞰 ABAQUS/CAE 的 PYTHON 二次開發(fā),“面向?qū)ο蟆痹撊绾卫斫??
鳥瞰 ABAQUS/CAE 的 PYTHON 二次開發(fā),“面向?qū)ο蟆痹撊绾卫斫??
如果你嘗試去了解或?qū)W習(xí)ABAQUS/CAE 的PYTHON 二次開發(fā),你就會(huì)被告知:“ABAQUS/CAE 的 PYTHON 二次開發(fā)是面向?qū)ο缶幊痰摹!?/p>
這篇文字就帶各位從“面向?qū)ο缶幊獭边@個(gè)角度來(lái)初步認(rèn)識(shí)一下ABAQUS/CAE 的 PYTHON 二次開發(fā)。
換個(gè)表達(dá)去理解
首先,“對(duì)象”可以換成“實(shí)例”這個(gè)詞語(yǔ)來(lái)表達(dá),可以樸素的理解為“實(shí)際的例子”、“實(shí)實(shí)在在的例子”。
過(guò)去面向過(guò)程編程,變量都是一個(gè)一個(gè)松散的進(jìn)行定義,比如為了描述下面這個(gè)邊長(zhǎng)20cm的立方體模型,會(huì)像這樣定義變量和函數(shù)來(lái)描述它:
# L長(zhǎng)度 W寬度 H高度 L = 20.0 W = 20.0 H = 20.0 # 這個(gè)函數(shù)用來(lái)計(jì)算體積 def volume (L, W, H): V = L * W * H return V
而面向?qū)ο缶幊虝?huì)這樣來(lái)描述它:
# 邊長(zhǎng)變量 和 計(jì)算體積的函數(shù) 被包含在 model 這個(gè)類型里面 class model (object): def __init__(self, L, W, H): self.L = L self.W = W self.H = H def volume (self): return self.L * self.W * self.H
兩種方式的區(qū)別是非常明顯的。如果有兩個(gè)尺寸不同的立方體模型,前一種方法為了區(qū)分不同立方體模型的參數(shù),也許會(huì)給參數(shù)定義下標(biāo),L1, W1, H1, L2, W2, H2。而后面的方法只需要給每個(gè)立方體模型命名,比如立方體分別命名為 model1、model2,那他們的邊長(zhǎng)、體積就可以這樣來(lái)表達(dá)了:
model1.L, model1.W, model1.H, model1.volume()
model2.L, model2.W, model2.H, model2.volume()
含義非常明確,參數(shù)不會(huì)混亂,各個(gè)參數(shù)不需要再重新定義了。
下面是 python源代碼實(shí)際運(yùn)行的截圖:
所以,“對(duì)象”作為“實(shí)實(shí)在在的例子”,它的“實(shí)實(shí)在在”就在于把反映共同特征的信息(變量、函數(shù))聚攏在一起,放到“class”(類型)里面。這種方式有個(gè)專業(yè)的術(shù)語(yǔ)來(lái)表達(dá):封裝。放到“class”里面的變量稱為“成員變量”或“屬性”,放到“class”里面的函數(shù)稱為“成員函數(shù)”或“方法”。
ABAQUS/CAE 里面的“對(duì)象”
其實(shí) ABAQUS/CAE 里面的“對(duì)象”十分顯而易見。
界面左側(cè)的樹形菜單(下圖)就是一個(gè)具象的“對(duì)象”,它們是自下而上一級(jí)一級(jí)被包含的,其實(shí)就是類似上面的例子一樣被“封裝”了起來(lái)。每次在界面上建模就是往這個(gè)“對(duì)象里面“填進(jìn)”各種數(shù)值、信息,而python 二次開發(fā)就是直接用代碼的方式來(lái)完成往“對(duì)象”里面“填進(jìn)”各種數(shù)值、信息的過(guò)程。
工程師必備
- 項(xiàng)目客服
- 培訓(xùn)客服
- 平臺(tái)客服
TOP




















