Choosing a specific surface as a stationary BC
Choosing a specific surface as a stationary BC
(OP)
I'm new to Abaqus coding and writing a program that applies a load to a rectangle on one surface, with a stationary BC point on the opposite. I partitioned a smaller part of the surface to be stationary while the rest of it will be able to move. I'm having trouble applying the BC to that specific region. here is my code:
mdb.models['Model'].rootAssembly.Set(faces= mdb.models['Model'].rootAssembly.instances['Rectangle-1'].faces.getSequenceFromMask(
('[#1 ]', ), ), name='ThePoint')
mdb.models['Model'].DisplacementBC(amplitude=UNSET, createStepName=
'Initial', distributionType=UNIFORM, fieldName=', localCsys=None, name=
"PointBC", region=mdb.models['Model'].rootAssembly.sets['ThePoint'],
u1=SET, u2=SET, u3=SET, ur1=SET, ur2=SET, ur3=SET)
This works but isn't the right region. I tried to use a findAt command to find the name of the smaller part of the surface.
mdb.models['Model'].rootAssembly.instances['Rectangle-1'].vertices.findAt(((alpha),),((beta),),name='facet')
Where alpha and beta are points on the edge of the smaller surface, but I got an invalid syntax error.
Does anyone know how I can remedy this issue?
mdb.models['Model'].rootAssembly.Set(faces= mdb.models['Model'].rootAssembly.instances['Rectangle-1'].faces.getSequenceFromMask(
('[#1 ]', ), ), name='ThePoint')
mdb.models['Model'].DisplacementBC(amplitude=UNSET, createStepName=
'Initial', distributionType=UNIFORM, fieldName=', localCsys=None, name=
"PointBC", region=mdb.models['Model'].rootAssembly.sets['ThePoint'],
u1=SET, u2=SET, u3=SET, ur1=SET, ur2=SET, ur3=SET)
This works but isn't the right region. I tried to use a findAt command to find the name of the smaller part of the surface.
mdb.models['Model'].rootAssembly.instances['Rectangle-1'].vertices.findAt(((alpha),),((beta),),name='facet')
Where alpha and beta are points on the edge of the smaller surface, but I got an invalid syntax error.
Does anyone know how I can remedy this issue?





RE: Choosing a specific surface as a stationary BC
In general: The findAt() requires that you have very precise coordinates - that means very close to the entity you want to get.
If that's not the case, then you should use getClosest().