Python二次開發(fā)——常用內(nèi)核指令

Python二次開發(fā)——常用內(nèi)核指令

本次推文主要分享有關abaqus——Python二次開發(fā)的常用內(nèi)核指令,方便我們高效地進行Python二次開發(fā),代碼主要源自《Abaqus GUI程序開發(fā)指南Python語言》,對二次開發(fā)感興趣的小伙伴可以關注我的個人公眾號:易木木響叮當

常用指令

高亮顯示

# 高亮單個對象
p = mdb.models['Model-1'].parts['Part-1']
# 指定零件上某邊
f1 = p.edges[0]          
# 高亮顯示該邊
highlight(f1)         
#指定零件上某單元面
f3 = p.elementFaces[1]                        
#高亮顯示該單元面
highlight(f3)                               
#取消高亮顯示
unhighlight(f3)                             
# 高亮顯示多個對象
e = p.elements 
p.Set(elements=e,name='ele_set')  
highlight(p.sets['ele_set'])

Python二次開發(fā)——常用內(nèi)核指令的圖1

圖1 高亮顯示指定邊和指定面

創(chuàng)建集合

# ---------------創(chuàng)建單元集合---------------
# 指定part對象
p = mdb.models['Model-1'].parts['Part-1']
# 指定部件所有單元
e = p.elements
# 創(chuàng)建包含所有單元的集合,set名為 ele_all
p.Set(elements=e,name='ele_all')
# 創(chuàng)建索引號為 0~9 的單元集合,set名為 ele_set1
p.Set(elements=e[0:10],name='ele_set1')

# ---------------創(chuàng)建節(jié)點集合-----------------
# 指定部件所有節(jié)點
n = p.nodes
# 創(chuàng)建包含所有節(jié)點的集合,set名為 node_all
p.Set(nodes=n,name='node_all')
# 指定部件的實體塊
c = p.cells
# 將部件的第一個實體塊創(chuàng)建一個集合,名為 set_cell
p.Set(cells=c[0:1],name='set_cell')
# 指定部件的幾何面
f = p.faces
# 將部件第一個幾何面創(chuàng)建為集合,名為 set_face
p.Set(faces=f[0:1],name='set_face')

用同樣的方法也可以對點和線創(chuàng)建集合。

單元和節(jié)點重新編號

startLabel為起始編號,increment為順序編號增量,該方法只針對孤立網(wǎng)格.inp或.odb導入的網(wǎng)格)。

# 對部件單元重新編號
p.renumberElement(startLabel=100,increment=1)
# 對部件節(jié)點重新編號
p.renumberNode(startLabel=100,increment=1)

創(chuàng)建基于單元的面集合

對于六面體單元,每個單元有6個面,用戶可以選擇需要生成的多個方向的內(nèi)面。 face1Elements、face2Elements、face3Elements、face4Elements、face5Elements、face6Elements分別表示每個單元6個方向的面。

e = p.elements
# 將所有單元的2,3方向面創(chuàng)建為面集
surf = p.Surface(face2Elements=e,face3Elements=e,name='plate_surf')
# 不同的高亮顯示
highlight(surf)
highlight(p.surfaces['plate_surf'])

統(tǒng)計部件或者實例的單元、節(jié)點數(shù)目

# 獲取所有單元數(shù) ne
ne = len(p.elements)
# 獲取所有節(jié)點數(shù) nn
nn = len(p.nodes)
print ne,nn
# 獲取所有實體塊數(shù) nc
nc = len(p.cells)
# 獲取所有幾何面數(shù) nf
nf = len(p.faces)
# 獲取所有幾何邊數(shù) ned
ned = len(p.edges)
# 獲取所有幾何頂點數(shù) nv
nv = len(p.vertices)
# 獲取所有集合數(shù) nsets
nsets = len(p.sets)
# 獲取所有復合材料layup數(shù) nlayup
nlayup = len(p.compositeLayups)
# 獲取所有基準數(shù) nd
nd = len(p.datums)
# 獲取所有單元面數(shù) nface
nface = len(p.elementFaces)
# 獲取所有特征數(shù) nfeature
nfeature = len(p.features)

合并節(jié)點

適用于孤立網(wǎng)格,謹慎使用!

p = mdb.models['Model-1'].parts['Part-1-mesh']
n = p.nodes
# 合并節(jié)點1和節(jié)點9

p.mergeNodes(node1=n[0],node2=n[8])

Python二次開發(fā)——常用內(nèi)核指令的圖2

圖2 合并節(jié)點前


Python二次開發(fā)——常用內(nèi)核指令的圖3

圖3 合并節(jié)點后

elementFaces和elemFaces的區(qū)別

f1 = p.elementFaces
f2 = p.elemFaces
len(f1)
len(f2)

elementFaces不重復存儲兩個相鄰單元的共用面,elemFaces存儲的是每個單元的所有面。

findAt 的使用

p = mdb.models['Model-1'].parts['Part-1']
f = p.faces
c = p.cells
# 定義過某點的面
f1 = f.findAt((1,0,0))
# 定義過兩點的幾何體
c1 = c.findAt((1,0,0),(1,0,1))

日期函數(shù)

from datetime import date 
import time
# 輸出當前的系統(tǒng)時間
time.asctime()

Python二次開發(fā)——常用內(nèi)核指令的圖4

圖4 輸出系統(tǒng)時間

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

TOP

3
1
9