Abaqus 利用FindAt函數根據坐標查找點,線,面
verts = v.findAt(((20.19686, -169.513997, 27.798593), ),
Return value:A Vertex object or a sequence of Vertex objects.
實例:
######選擇一個點施加集中力
a1 = mdb.models['Model-1'].rootAssembly
v1 = a1.instances['Part-1-1'].vertices
verts1 = v1.findAt(((5.0,5.0,200.0),))
region = a1.Set(vertices=verts1, name='Set-2')
mdb.models['Model-1'].ConcentratedForce(name='Load-1', createStepName='Step-1',
######選擇兩個點施加集中力
a1 = mdb.models['Model-1'].rootAssembly
v1 = a1.instances['Part-1-1'].vertices
verts1 = v1.findAt(((5.0,5.0,200.0),),((5.0,-5.0,200.0),))
region = a1.Set(vertices=verts1, name='Set-2')
mdb.models['Model-1'].ConcentratedForce(name='Load-1', createStepName='Step-1',
#####選擇四個點施加集中力
a1 = mdb.models['Model-1'].rootAssembly
v1 = a1.instances['Part-1-1'].vertices
verts1 = v1.findAt(((5.0,5.0,200.0),),((5.0,-5.0,200.0),),((-5.0,-5.0,200.0),),((-5.0,5.0,200.0),))
region = a1.Set(vertices=verts1, name='Set-2')
mdb.models['Model-1'].ConcentratedForce(name='Load-1', createStepName='Step-1',
其實查找線和面其實也類似。
--------------------------------------------------------------------------------
-----------------------------------查找線---------------------------------------
示例:
#加載
#一次選擇一條邊進行加載
a = mdb.models['Model-1'].rootAssembly
s1 = a.instances['Part-1-1'].edges
#這個點的坐標只需要在這條線上即可,這個坐標位置處不一定得有關鍵點存在
side1Edges1 =s1.findAt(((20.0,5.0,0.0),))
region = a.Surface(side1Edges=side1Edges1, name='Surf-1')
mdb.models['Model-1'].Pressure(name='Load-1', createStepName='Step-1',
#####一次選擇兩條邊進行加載
#這個點的坐標只需要在這條線上即可,這個坐標位置處不一定得有關鍵點存在
side1Edges2 =s1.findAt(((10.0,10.0,0.0),),((-10.0,10.0,0),))
region2 = a.Surface(side1Edges=side1Edges2, name='Surf-1')
mdb.models['Model-1'].Pressure(name='Load-1', createStepName='Step-1',
#選擇一條弧線進行加載
import math
cood_x=5.0*math.sin(45.0/180.0*math.pi)
cood_y=5.0*math.cos(45.0/180.0*math.pi)
side1Edges3 =s1.findAt(((cood_x,cood_y,0.0),))
region3 = a.Surface(side1Edges=side1Edges3, name='Surf-1')
mdb.models['Model-1'].Pressure(name='Load-1', createStepName='Step-1',
#選擇一個院的四條弧線進行加載
cood_x=5.0*math.sin(45.0/180.0*math.pi)
cood_y=5.0*math.cos(45.0/180.0*math.pi)
side1Edges4 =s1.findAt(((cood_x,cood_y,0.0),),((-cood_x,cood_y,0.0),),((-cood_x,-cood_y,0.0),),((cood_x,-cood_y,0.0),))
region4 = a.Surface(side1Edges=side1Edges4, name='Surf-1')
mdb.models['Model-1'].Pressure(name='Load-1', createStepName='Step-1',
#######選擇一條邊施加約束
a = mdb.models['Model-1'].rootAssembly
e1 = a.instances['Part-1-1'].edges
edges1 = e1.findAt(((-20.0,5.0,0.0),))
region = a.Set(edges=edges1, name='Set-1')
mdb.models['Model-1'].DisplacementBC(name='BC-1', createStepName='Step-1',
mdb.models['Model-1'].boundaryConditions['BC-1'].move('Step-1', 'Initial')
#######選擇兩條邊施加約束
edges1 = e1.findAt(((-20.0,5.0,0.0),),((-20.0,-5.0,0.0),))
region = a.Set(edges=edges1, name='Set-1')
mdb.models['Model-1'].DisplacementBC(name='BC-1', createStepName='Step-1',
mdb.models['Model-1'].boundaryConditions['BC-1'].move('Step-1', 'Initial')
#######選擇一條弧線施加約束
import math
cood_x=5.0*math.sin(45.0/180.0*math.pi)
cood_y=5.0*math.cos(45.0/180.0*math.pi)
edges1 = e1.findAt(((cood_x,cood_y,0.0),))
region = a.Set(edges=edges1, name='Set-1')
mdb.models['Model-1'].DisplacementBC(name='BC-1', createStepName='Step-1',
mdb.models['Model-1'].boundaryConditions['BC-1'].move('Step-1', 'Initial')
#######選擇圓的四條弧線施加約束
edges1 = e1.findAt(((cood_x,cood_y,0.0),),((-cood_x,cood_y,0.0),),((-cood_x,-cood_y,0.0),),((cood_x,-cood_y,0.0),))
region = a.Set(edges=edges1, name='Set-1')
mdb.models['Model-1'].DisplacementBC(name='BC-1', createStepName='Step-1',
mdb.models['Model-1'].boundaryConditions['BC-1'].move('Step-1', 'Initial')
--------------------------------------------------------------------------------
-----------------------------------查找面---------------------------------------
示例:
a = mdb.models['Model-1'].rootAssembly
s1 = a.instances['Part-1-1'].faces
side1Faces1 = s1.getSequenceFromMask(mask=('[#20 ]', ), )
region = a.Surface(side1Faces=side1Faces1, name='Surf-1')
mdb.models['Model-1'].Pressure(name='Load-1', createStepName='Step-1',
######選擇一個面加載
a = mdb.models['Model-1'].rootAssembly
s1 = a.instances['Part-1-1'].faces
side1Faces1 = s1.findAt(((0.0,0.0,200.0),))
region = a.Surface(side1Faces=side1Faces1, name='Surf-1')
mdb.models['Model-1'].Pressure(name='Load-1', createStepName='Step-1',
######選擇兩個個面加載
a = mdb.models['Model-1'].rootAssembly
s1 = a.instances['Part-1-1'].faces
side1Faces1 = s1.findAt(((0.0,0.0,200.0),),((0.0,5.0,100.0),))
region = a.Surface(side1Faces=side1Faces1, name='Surf-1')
mdb.models['Model-1'].Pressure(name='Load-1', createStepName='Step-1',
######選擇一個面施加約束
a = mdb.models['Model-1'].rootAssembly
f1 = a.instances['Part-1-1'].faces
faces1 = f1.findAt(((0.0,0.0,0.0),))
region = a.Set(faces=faces1, name='Set-1')
mdb.models['Model-1'].DisplacementBC(name='BC-1', createStepName='Step-1',
mdb.models['Model-1'].boundaryConditions['BC-1'].move('Step-1', 'Initial')
######選擇兩個面施加約束
a = mdb.models['Model-1'].rootAssembly
f1 = a.instances['Part-1-1'].faces
faces1 = f1.findAt(((0.0,0.0,200.0),),((0.0,5.0,100.0),))
region = a.Set(faces=faces1, name='Set-1')
mdb.models['Model-1'].DisplacementBC(name='BC-1', createStepName='Step-1',
mdb.models['Model-1'].boundaryConditions['BC-1'].move('Step-1', 'Initial')
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















