8ac92095b6
feat(query): перечисление граней + выбор грани по индексу QueryService.ListFacesAsync: обход EntityCollection(o3d_face), для каждой грани — индекс, тип поверхности (plane/cylinder/cone/sphere/torus/nurbs через ksFaceDefinition.Is*) и площадь (GetArea, мм²). Запись FaceInfo. PartModeler.OpenSketchOnFaceIndexAsync: эскиз на грани по индексу из list_faces — надёжнее выбора по точке (агенту не нужно угадывать координаты). Новые инструменты: list_faces, sketch_create_on_face_index. Тест List_faces_and_sketch_by_index: цилиндр → 3 грани (2 plane + 1 cylinder), площади торца ≈314 мм² и бока ≈1257 мм²; эскиз на торце по индексу → бобышка. Презентация: 28 инструментов, 18 тестов. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> @