想用python腳本創建一個耦合coupling關系,需要定義control piont和被控制的surfaces.兩者都可以先分別歸入到set 和surface里,最后用set和surface作為coupling創建時的引數,
ReferencePoint objects是從儲存在referencePoints中的:
>>> print myAssembly.referencePoints
{369: 'ReferencePoint object', 368: 'ReferencePoint object'}
所以,在referncePionts是一個字典,values是我們創建的RP點,keys是一個數字,數字越小說明創建比較早,這樣我們把refencePiont這個字典按KEY值排序就可以依次取出來用了
對于用到的RP點數目比較少(RP點數目小于PART的數目的情況),可以在PART里創建RP點,因為abaqus每個部件下面只允許有一個RP點,創建set比較方便(用dict.values()函式回傳一個包含字典value的list,而且這個len(list)=1),如下所示,
定義RP set
# 在part 中創建參考點
p = mdb.models[Model_Name].parts[Part_Name]
p.ReferencePoint(point=RP_location) #定義參考點
# 修改RP點名稱
p.features.changeKey(fromName='RP',toName=RP_Name)
r = p.referencePoints.values()
# referencePoints是一個字典,用values函式來回傳所有值的串列,又因為每一個部件只有一個RP點,所以r[0]就是我們建立的RP點
refPoints=(r[0], )
# 把rp點放進集合
p.Set(referencePoints=refPoints, name=Set_Name)
a = mdb.models[Model_Name].rootAssembly
region1=a.instances[Instance_Name].sets[Set_Name]
定義surface
# 進入裝配環境下創建surface
a = mdb.models[Model_Name].rootAssembly
s = a.instances[Instance_Name].faces
# 回傳一個face object
Face=s.findAt((
(z,y,z),
),
)
# 回傳一個face squence
Faces=Faces[0].getFacesByFaceAngle(angle=20.0)
# 創建surface
region2=a.Surface(side1Faces=Faces,name=Surf_Name)
創建coupling
mdb.models[Model_Name].Coupling(name='coupling', controlPoint=region1, surface=region2,influenceRadius=WHOLE_SURFACE, couplingType=KINEMATIC, localCsys=None, u1=ON, u2=ON, u3=ON, ur1=ON, ur2=ON, ur3=ON)
參考資料
- [1]ABAQUS中用Python調取(多個)參考點
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/540717.html
標籤:其他
上一篇:Lambda運算式
