Если вы хотите найти лица с большим допуском, используйте getByBoundingBox
.Там вы можете указать диапазон с вашим допуском.например,
point = (x,y,z) # your coordinates
tol = 1e-5 # your tolerance
faces = mdb.models['Model1'].parts['x'].faces.getByBoundingBox(xMin = point[0]-tol, xMax = point[0]+tol,yMin = point[1]-tol, yMax = point[1]+tol,zMin = point[2]-tol, zMax = point[2]+tol,) # faces on the coordinates within your tolerance
Далее вы можете продвинуть это, сделав функцию, чтобы вы могли применить ту же процедуру к списку координат, что и в методе findAt
.
РЕДАКТИРОВАТЬ:
Или еще лучше getByBoundingSphere
.В этом случае это еще проще:
point = (x,y,z) # your coordinates
tol = 1e-5 # your tolerance
faces = mdb.models['Model1'].parts['x'].faces.getByBoundingSphere(center = point, radius=tol) # faces on the coordinates within your tolerance
РЕДАКТИРОВАТЬ2: Забудьте выше.используйте getClosest
.там вы можете указать список координат и допуск, чтобы поведение было похоже на findAt
только с пользовательским допуском.
point = (x,y,z) # your coordinates
point2 = (x2,y2,z2) # your coordinates
tol = 1e-5 # your tolerance
faces = mdb.models['Model1'].parts['x'].faces.getClosest(coordinates =(point,point2), searchTolerance=tol) # faces on the coordinates within your tolerance