28d2ae3868
Новый слой «модель как данные» (приоритетный над model_snapshot): - describe_model — структурный «паспорт» детали одним вызовом (габарит, МЦХ, тела, сводка топологии, дерево построения с параметрами, переменные) - list_features / list_bodies / list_variables - describe_face / describe_edge (drill-down по индексу) - measure (расстояние/угол между гранями/рёбрами/вершинами) - model_snapshot понижен до fallback для визуально-пространственных вопросов Реализация: ModelInspectionService (COM) + чистый InspectionText (рендер, группировка, детект «импорт без истории») + record-модели; InspectionTools. Дерево читается через ksPart.GetFeature()->SubFeatureCollection; точный тип и параметры операций берутся из GetObject()->GetDefinition() (ksFeature.type отдаёт лишь coarse o3d_entity). Снимок дерева также включает слои conversion (STEP), editing (move_face/solid) и validation, развивавшиеся параллельно. Полный прогон: 61 тест зелёный, 43 MCP-инструмента. Документация (README, ARCHITECTURE, OPEN_QUESTIONS, CLAUDE.md, presentation.html) синхронизирована. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
21 lines
1.0 KiB
C#
21 lines
1.0 KiB
C#
namespace Kompas.Mcp.Core.Validation;
|
|
|
|
/// <summary>Диагностика операции дерева построения, находящейся в ошибке/требующей перестроения.</summary>
|
|
public sealed record OperationError
|
|
{
|
|
/// <summary>Имя операции в дереве.</summary>
|
|
public required string Name { get; init; }
|
|
|
|
/// <summary>Код ошибки построения (ErrorType3d); 0 — ошибки нет.</summary>
|
|
public required int ErrorCode { get; init; }
|
|
|
|
/// <summary>Человекочитаемое описание кода.</summary>
|
|
public required string Description { get; init; }
|
|
|
|
/// <summary>false — операция вырождена (не дала корректной геометрии).</summary>
|
|
public required bool Valid { get; init; }
|
|
|
|
/// <summary>true — операция помечена «требует перестроения» (флаг ksFSRebuild).</summary>
|
|
public required bool NeedsRebuild { get; init; }
|
|
}
|