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
