Hello Alexey,

After some investigations, I still don't understand how it could work like that.

At first : "checkFaceTask" is called :

`def checkFaceTask(face):`

global vertices

face_vertices = [vertices[v] for v in face.vertices]

checkFace(face, face_vertices)

But face.vertices is just a tuple of 3 integers.

So then, "checkFace" take as parameters "face", which is a model.face, and "face_vertices", which is a list of 3 integers:

`def checkFace(face, face_vertices):`

global region

R = region.rot # Bounding box rotation matrix

C = region.center # Bounding box center vector

size = region.size

remove_vertices = 0

for vertex in face_vertices:

v = vertex.coord

v.size = 3

v_c = v - C

v_r = R.t() * v_c

if abs(v_r.x) > abs(size.x / 2.):

remove_vertices += 1

elif abs(v_r.y) > abs(size.y / 2.):

remove_vertices += 1

elif abs(v_r.z) > abs(size.z / 2.):

remove_vertices += 1

else:

continue

if remove_vertices == 3:

face.selected = True

Then how it's possible to call vertex.coord for vertex in face_vertices, because vertex become an integer, so no .coord exist

After some test in Metashape console, I got the same fail.

Regards