review(drawing): правки по ревью реализации (Codex + pi/glm-5.1 + pi/kimi-k2.6)
- проверка возврата AddBranchByPoint/SetBranchTextPosition (bool) — ранняя диагностика вместо позднего RPC_E_SERVERFAULT (Codex, glm) - RU-алиасы в сообщении ShelfDirections.Parse и в описании инструмента (glm, kimi) - интеграционный тест направления полки параметризован Right/Left/Up/Down — покрывает всю поверхность ToKompas на реальном COM (glm, kimi) - отклонено (обоснование): unit ToKompas (граница проекта), e2e tool-обёртки (тонкая), angleDeg (нет Angle у ILeader), default text у AddText (вне объёма) 331 тест зелёный, сборка Release чистая. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -510,8 +510,10 @@ public sealed class DrawingService
|
||||
// выноска без ответвлений валит КОМПАС (RPC_E_SERVERFAULT). Проверено спайком.
|
||||
var branches = baseLeader as IBranchs
|
||||
?? throw new InvalidOperationException("Выноска не приводится к IBranchs.");
|
||||
branches.AddBranchByPoint(0, x, y); // остриё ответвления 0 (куда указывает стрелка)
|
||||
baseLeader.SetBranchTextPosition(textX, textY); // положение полки/текста
|
||||
if (!branches.AddBranchByPoint(0, x, y)) // остриё ответвления 0 (куда указывает стрелка)
|
||||
throw new InvalidOperationException("AddBranchByPoint вернул FALSE — ответвление выноски не создано.");
|
||||
if (!baseLeader.SetBranchTextPosition(textX, textY)) // положение полки/текста
|
||||
throw new InvalidOperationException("SetBranchTextPosition вернул FALSE — полка выноски не задана.");
|
||||
|
||||
var leader = baseLeader as ILeader
|
||||
?? throw new InvalidOperationException("Выноска не приводится к ILeader.");
|
||||
|
||||
@@ -44,7 +44,8 @@ public static class ShelfDirections
|
||||
"up" or "вверх" => ShelfDirection.Up,
|
||||
"down" or "вниз" => ShelfDirection.Down,
|
||||
_ => throw new ArgumentException(
|
||||
$"Неизвестное направление полки '{value}'. Допустимо: auto, right, left, up, down.",
|
||||
$"Неизвестное направление полки '{value}'. Допустимо: auto/авто, right/вправо, " +
|
||||
"left/влево, up/вверх, down/вниз.",
|
||||
nameof(value)),
|
||||
};
|
||||
}
|
||||
|
||||
@@ -211,7 +211,8 @@ public sealed class DrawingTools(KompasSession session, DrawingService drawing)
|
||||
[McpServerTool(Name = "drawing_add_leader")]
|
||||
[Description("Поставить линию-выноску с текстом на виде активного чертежа. Стрелка выноски указывает " +
|
||||
"в точку (x,y); текст text размещается на полке у точки (textX,textY) — всё в ЛОКАЛЬНОЙ СК вида (мм). " +
|
||||
"shelfDirection: auto (по умолчанию — КОМПАС сам) | right | left | up | down — направление полки. " +
|
||||
"shelfDirection: auto/авто (по умолчанию — КОМПАС сам) | right/вправо | left/влево | up/вверх | " +
|
||||
"down/вниз — направление полки. " +
|
||||
"viewNumber — номер вида из drawing_create_standard_views (0 = первый/главный). Точка острия (x,y) " +
|
||||
"должна отличаться от точки полки (textX,textY). Возвращает поставленный текст и номер вида.")]
|
||||
public async Task<string> AddLeader(
|
||||
|
||||
Reference in New Issue
Block a user